Archief - resource bundles

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Lefky

Legacy Member
ik zou 3 resource bundles moeten hebben, maar aangezien dit zelfstudie is en ik totaal nie snap van wat er op internet te vinden is probeer ik hier maar is ;)

dit is wat er in mijn domeinlaag staat

Code:
package domein;

import java.util.Locale;
import java.util.ResourceBundle;

import javax.swing.JOptionPane;

public class ResourceBundles {

	private ResourceBundle messages;
	
	public ResourceBundles(int index) {
		String taal = null;
		String land = null;
	
		switch(index) {
		
		case 1: taal = new String("en");
				land = new String("GB");
				break;
	
		case 2: taal = new String("fr");
				land = new String("FR");
				break;
		
		case 3: taal = new String("ne");
				 land = new String("BE");
				break;
		default: 			JOptionPane.showMessageDialog(null,
			    "De gekozen optie bestaat niet.",
			    "Keuze error",
			    JOptionPane.ERROR_MESSAGE);
		} 

		Locale currentLocale;
		currentLocale = new Locale(taal, land);
		messages = ResourceBundle.getBundle("MessagesBundle",currentLocale);

		setMessages(messages);
	}

	public ResourceBundle getMessages() {
		return messages;
	}

	public void setMessages(ResourceBundle messages) {
		this.messages = messages;
	}
}

en dit is 1 van mijn .properties files
Code:
*Applicatie*
Maak uw keuze door een cijfer in te drukken = Make your choice by entering a number
\n1: Kies een personage = \n1: Choose an existing character
\n2: Maak een nieuw personage = \n2: Make a new character 
\n3: Stoppen = \n3: Stop


iemand die mij kan zeggen of dit juist is?
en hoe krijg ik dit in mijn applicatie?

alvast bedankt

scipicore

Legacy Member
Ik zal u zeggen hoe ik het hier heb:

Code:
//Vanboven hebt ge volgende dingen
	private ResourceBundle resourceBundle;
	private Locale taal;

//hier uw invoer voor uw taal, ga ik hier niet bijzetten
		String taal = "";
		switch(keuze)
		{
			case 1: taal = "nl"; break;
			case 2: taal = "en"; break;
			case 3: taal = "fr"; break;
		}
		
		this.taal = new Locale(taal);
Dan hebt ge al uw Locale en is het simpelweg op deze manier gebruiken
Code:
resourceBundle.getString("voorbeeld")

dan hebt ge Resources_en.properties, Resources_nl.properties, ... waar in staat:

Resources_nl.properties
Code:
voorbeeld = Dit is het voorbeeld

Resources_fr.properties
Code:
voorbeeld = ca c'est l'exemple

Resources_en.properties
Code:
voorbeeld = this is the example


Behoorlijk anders als wat jij daar hebt.

NeverwinterX

Legacy Member
scipicore zei:
Ik zal u zeggen hoe ik het hier heb:

Code:
//Vanboven hebt ge volgende dingen
	private ResourceBundle resourceBundle;
	private Locale taal;

//hier uw invoer voor uw taal, ga ik hier niet bijzetten
		String taal = "";
		switch(keuze)
		{
			case 1: taal = "nl"; break;
			case 2: taal = "en"; break;
			case 3: taal = "fr"; break;
		}
		
		this.taal = new Locale(taal);
Dan hebt ge al uw Locale en is het simpelweg op deze manier gebruiken
Code:
resourceBundle.getString("voorbeeld")

(...)

Nog een extra stap nodig na de eerste om die locale te gebruiken:
Code:
ResourceBundle resourceBundle=
    ResourceBundle.getBundle("naam", taal );

Dus op de inhoud van de properties file na is het juist wat ge hebt killerk1ng. In uw properties files is wat links staat van de = een soort van algemene naam voor die string, wat na de = staat is de concrete string voor die locale.

Hier meer info: Backing a ResourceBundle with Properties Files (The Java™ Tutorials > Internationalization > Isolating Locale-Specific Data)

Lefky

Legacy Member
NeverwinterX zei:
Nog een extra stap nodig na de eerste om die locale te gebruiken:
Code:
ResourceBundle resourceBundle=
    ResourceBundle.getBundle("naam", taal );

Dus op de inhoud van de properties file na is het juist wat ge hebt killerk1ng. In uw properties files is wat links staat van de = een soort van algemene naam voor die string, wat na de = staat is de concrete string voor die locale.

Hier meer info: Backing a ResourceBundle with Properties Files (The Java™ Tutorials > Internationalization > Isolating Locale-Specific Data)

k thx alletwee
wa er links staat (key) is wa er in da applicatie ook staat ;) dus da mag zo blijven nie?
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan