# Plugin Spracheinstellungen und Auslesen von Strings



## FelixLpz (28. Sep 2013)

Hallo Leute. 
Ich bin zur Zeit am Verzweifeln, vielleicht liegt auch die Lösung vor meinen Augen und ich sehe diese nicht...
Habe eine *.jar-Datei, darin liegen eine "config.yml", eine "languageDE.yml"(kann auch txt oder was auch immer sein) und auch "languageEN.yml". Des Weiteren das package mit den ganzen einzelnen Klassen.

- NAME.jar - config.yml
               - package - class1
                              - class2 ...
               - language.yml

Aus der "config.yml" wird ausgelesen, ob es einen Rückgabewert "EN" oder "DE" gibt.

Je nach dem Wert, soll die "languageDE.yml" oder languageEN.yml" aufgewählt werden.

...

In meinen anderen Classes gibt es "messages", die dann auf der jeweiligen Sprache ausgegeben werden soll. Es soll also ein Sammelsorium von Stings in den "languages.." stehen, der ausgelesen werden soll.

Mein bisheriger Code...:
--> MAINCLASS

```
String language = this.getConfig().getString("Config.test.language");
		if(language.equalsIgnoreCase("DE"))
		{
			
			String relativ;
			try 
			{
				
				relativ = new File(".").getCanonicalPath();
				String absolout = new File(relativ +"\\plugins\\NAME.jar").toString();
				absolout.contains("language");
				
				p.sendMessage(absolout);
				if(absolout.startsWith("language"))
				{
					p.sendMessage(absolout + " DEUTSCH");
					p.sendMessage(language);
				}
		 
			} catch (IOException e) {
			
				e.printStackTrace();
			}
```

Wie übergebe ich die Werte und wie kann ich diese am Besten wieder abrufen.

Vielen Dank schonmal.


----------



## Gucky (28. Sep 2013)

Mir ist nicht ganz klar geworden, an wen genau du die Werte übergeben willst. Wenn du die Datei lesen willst, wäre wohl der BufferedReader oder der FileInputtStream das beste für dich. Und was soll das 
	
	
	
	





```
absolout.contains("language") ;
```
 mitten im Code? Das prüft nur etwas und gibt dann einen Wert zurück. Mehr macht es nicht.


----------



## FelixLpz (28. Sep 2013)

Hallo und schonmal vielen Dank für deine Antwort. Des "Contains" hatte ich da nur zu Testzwecken, sorry.
Also, das Projekt fungiert als Plugin für ein Spiel. Wenn der Spieler einen Befehl eingibt soll etwas passieren, daraufhin bekommt der Spieler eine Nachricht zurückgeschickt. Ich möchte in der .jar Datei 2 weitere Dateien einbinden (languageDE und languageEN). 
In der "Config" gibt es einen String, wo beschrieben steht, ob "DE" oder "EN" ausgewählt ist, für den Spieleserver. Das "DE" oder "EN" wiederrum soll ausschlaggebend sein, welche Datei (languageDE oder EN) ausgewählt seind soll und daraufhin, je Befehl (der Wert der Zurückgegeben wird), z.B. ...startsWith("ABC"); soll die bestimmte Zeile ausgewählt werden, die zurückgegeben werden soll. Dann soll der Spieler die ausgewählte Zeile als "p.sendMessage(..);" bekommen.


----------



## Gucky (28. Sep 2013)

Da kommen wir der Sache schon näher. Und du musst dich nicht entschuldigen. 

Aber wo genau hakt es bei dir noch? Du scheinst ja schon eine genaue Vorstellung davon zu haben, was du genau haben willst.


----------



## FelixLpz (29. Sep 2013)

Ich habe mal eclipse geöffnet. Da sieht man mal ein Teil der Struktur in der *.jar-Datei und die betreffenden "languages.txt".






Funktioniert: 
- Auslesen der Config, ob "DE" oder "EN"

Funktioniert nicht:
- je nach Befehl, den String aus der "language" auslesen und ausgeben.
Bsp:


----------



## Gucky (29. Sep 2013)

Du könntest die einzelnen Zeilen in der Datei durchnummerieren. Jedem Befehl reservierst du dann eine Zeile. Je nach Bedarf ließt du dann die besagte Zeile aus.
Welcher Teil soll denn den Text auslesen?


----------



## FelixLpz (29. Sep 2013)

Das auslesen und Nummerieren ist eine gute idee für "startsWith", aber ich habe das Problem dasss ich irgendwie nicht auf die "languages"-Dateien in der jar zugreifen kann. Muss man da irgendetwas bestimmtes beachten?


----------



## Gucky (29. Sep 2013)

Jetzt sind wir da, wo ich hinwollte. Du suchst eine Möglichkeit um auf eine Textdatei zuzugreifen, um dort Text auszulesen. Aber diese Textdatei ist im .jar Archiv. 

Da empfehle ich dir den BufferedReader oder wenn du die Zeilen mitzählen willst dann den LineNumberReader.

Der Pfad, den du da angeben musst beginnt mit einem Schrägstrich und folgt dann dem Pfad ab dem Projektverzeichnis, welches du compilierst.


----------

