IDE 6.7: Multilingual mit Userwahl

Alles zu NetBeans als RCP-Platform

Moderator: arittner

IDE 6.7: Multilingual mit Userwahl

Beitragvon Dreamlight » 23.06.2009, 08:28

Hallo Zusammen,
ich habe den Artikel von Josch auf seiner Seite IDE 6.7: Multilingual switch in's Angloamerikanische gelesen.

Dachte mir "Cool, genau das was ich suche"... Ausprobiert, funktioniert. Hier nochmals ein ganz großes Lob an Josch, ohne ihn wäre das NetBeans Forum nicht das was es wäre :D .
Damit kann ich in meinem Programm Dreampalace, welches ich zur Zeit mit NetBeans 6.5 als RCP programmiere, auf Multilanguage umstellen. Zumindest, was die Spraceh der IDE betrifft...

Ganz opligatorisch taucht da bei mir natürlich eine Frage auf :wink: .
Damit die neue Sprache erkannt wird, ist in der Datei etc/netbeans.conf die entsprechende Sprache mittels -J-Duser.country=US -J-Duser.language=en beim Flag netbeans_default_options einzufügen.
Dieser Weg ist für einen User eines Programms nicht akzeptabel. Ich würde gerne ein Menü habe, wo nach Sprachauswahl das Programm mit der neuen Sprache neu startet.

Muss dazu die Datei überschrieben werden oder gibt es da die Möglichkeit einen Flag der IDE beim Starten mitzugeben, so dass dann die passende Sprache geladen wird?
Peter

Dream it, awaken in it...
Und wenn ihr wollt, könnt ihr das mit Dreampalace.
Kennt ihr schon MultiLingual with NetBeans oder ABC-List?
Benutzeravatar
Dreamlight
 
Beiträge: 152
Registriert: 16.01.2009, 18:11
Wohnort: Niedersachsen

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon Dreamlight » 23.06.2009, 10:30

Wäre ja auch zu schön gewesen :cry: .
Wenn ich ein Programm in der IDE normal laufen lasse, wird es mit der eingestellten Sprache gestartet -> nur als Zip-Distribution hat es nur die englische Sprache.

Der locale-Ordner mit den Sprachen fehlt in der Distribution völlig. Es bringt nichts, wenn ich den locale-Ordner einfach in \platform10\modules kopiere + die conf-Datei anpasse. Sprache wird nicht erkannt :? .
Sind in der Zip-Distribution noch irgendwelche Dateien anzupassen, so dass das Programm dann im locale-Ordner nach der Übersetzung sucht?
Peter

Dream it, awaken in it...
Und wenn ihr wollt, könnt ihr das mit Dreampalace.
Kennt ihr schon MultiLingual with NetBeans oder ABC-List?
Benutzeravatar
Dreamlight
 
Beiträge: 152
Registriert: 16.01.2009, 18:11
Wohnort: Niedersachsen

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon Dreamlight » 23.06.2009, 12:49

:lol: ,
wer sags den... es funktioniert... zumindest von der conf-Datei aus :D .

Vorbereitung:
In den Ordnern platform10/core, -/lib und -/modules sind die locale-Ordner zu kopieren. Ich habe dazu die locale-Ordner von der englischen + deutschen Version von NetBeans 6.7 RC3 genommen, da damit die beiden Sprachbereiche abgedeckt sind.

Sprache bestimmen:
In der etc/conf-Datei meines Programms heißt der Parameter default_options. Dort einfach -J-Duser.country=DE -J-Duser.language=de anhängen.

Frage:
Jetzt ist immer noch die Frage offen, wie ich diesen Parameter von der laufenden IDE aus bestimmen kann.
Muss ich dazu die Datei neu schreiben und nach Programmstart wird dann die neue Sprache geladen oder gibt es eine Möglichkeit den Parameter in einem Modul-Installer zu setzen, so dass nach Neustart der aktuelle Parameter die Sprache bestimmt?
Peter

Dream it, awaken in it...
Und wenn ihr wollt, könnt ihr das mit Dreampalace.
Kennt ihr schon MultiLingual with NetBeans oder ABC-List?
Benutzeravatar
Dreamlight
 
Beiträge: 152
Registriert: 16.01.2009, 18:11
Wohnort: Niedersachsen

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon eppleton » 24.06.2009, 14:53

Wenn Du die Sprache umstellen möchtest, kannst Du das in einem Module Installer tun, z.B. so :

@Override
public void restored() {
Locale.setDefault(Locale.ENGLISH);
}

Die Logik dazu musst Du Dir selber basteln. Weil NB für die meisten Actions den Displayname jedesmal aus den resourcebundles holt, stellt Dir das sogar einen Teil der UI automatisch um. Die meisten MenuItems sind danach geupdated.

--Toni
eppleton
 
Beiträge: 14
Registriert: 26.03.2008, 11:16
Wohnort: München

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon Dreamlight » 26.06.2009, 08:47

Hallo eppleton,
danke für deinen Ratschlag.

Da sehe ich allerdings zwei Probleme:
Die Locale-Konstanten für die Spracheinstellung sind stark eingeschränkt. NetBeans 6.7 hat viele zusätzliche Sprachen, die über die Locale-Konstanten nicht abgeglichen werden, z. Bsp. Türkisch oder Schwedisch.

Des Weiteren stimmt es nicht, dass die meisten MenuItems aktualisiert werden.
Im Slashscreen sehe ich dann zwar Italienisch oder Japanisch, aber in der IDE wird bei den meisten Sprachen Englisch für die Menüs verwendet. Die Bundle_xy werden allerdings erkannt, so dass ich dann in meiner Test-TopComponent "Japanisch" oder "Italienisch" usw. lesen kann.


Ich habe weiterhin noch verschiedene Einstellungen im Flag 'default_options' in der conf-Datei getestet:
Da meine meisten Bundles mit einer einfachen Endung enden (_de und nicht _de_DE), habe ich im Flag nur den Parameter '-J-Duser.language=de' gesetzt.
Funktioniert wunderbar, außer die Sprachdateien in NetBeans habe eine doppelte Endung. Alle anderen Sprachen werden im Slashscreen und in der IDE richtig umgesetzt (außer _ar, zeigte Englisch).

Richtig cool 8) , wenn in der IDE auf einmal japanische Schriftzeichen sind... auch wenn ich kein Wort davon verstehe :lol: .
Peter

Dream it, awaken in it...
Und wenn ihr wollt, könnt ihr das mit Dreampalace.
Kennt ihr schon MultiLingual with NetBeans oder ABC-List?
Benutzeravatar
Dreamlight
 
Beiträge: 152
Registriert: 16.01.2009, 18:11
Wohnort: Niedersachsen

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon eppleton » 26.06.2009, 11:12

Die Menüs selbst werden nicht geupdated, aber -wie gesagt- die Menuitems sollten sich ändern. NB verwendet für die meisten Platform-Actions das Pattern:

public String getName() {
return NbBundle.getMessage(SaveAction.class, "Save");
}
Nach einem umstellen der Locale -Einstellung sollte das MenuItem das auch reflektieren. Es gibt ein paar Ausnahmen, wie z.B. die SaveAsAction. Deshalb funktioniert das nicht für alle MenuItems. Wundert mich, dass das bei Dir überhaupt nicht funktioniert. Welche Version von NetBeans verwendest Du denn?

--Toni
eppleton
 
Beiträge: 14
Registriert: 26.03.2008, 11:16
Wohnort: München

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon Dreamlight » 26.06.2009, 12:11

Hallo Toni,
ich habe die Test mit NetBeans 6.7 RC3 gemacht.

Die Sprach-Jars aus platform10 habe ich aus einer englischen und deutschen Version von 6.7 RC3 zusammengelegt. So habe ich insgesamt 20 mögliche Sprachen.
Getestet habe ich eine Zip-Distribution, die ich von Hand mit den Sprach-Jars erweitert habe, da diese von NetBeans nicht mit verpackt werden.

Wenn ich die conf-Datei ändere, dann wird die entsprechende Sprache im Menü (+ Items) richtig angezeigt,
wenn ich vom Modul-Installer eine Locale setze, dann sehe ich zwar im Slashscreen die gewählte Sprache, aber bei den meisten Locales ist das Menü Englisch.
Peter

Dream it, awaken in it...
Und wenn ihr wollt, könnt ihr das mit Dreampalace.
Kennt ihr schon MultiLingual with NetBeans oder ABC-List?
Benutzeravatar
Dreamlight
 
Beiträge: 152
Registriert: 16.01.2009, 18:11
Wohnort: Niedersachsen

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon eppleton » 26.06.2009, 12:34

Es ist wirklich ärgerlich, dass die locale JARs nicht automatisch mitkopiert werden. Man kann das allerdings auch automatisieren. Ich hatte mal eine ähnliche Aufgabe (nur die deutschen Locale Files mitkopieren) und habe dazu die ModuleSelector Klasse im Build harness angepasst. Das Problem ist die checkSelected Methode, in der für JAR files überprüft wird, ob es Module sind. Wenn Du da die Logik anpasst, werden die Locale Files mitkopiert. Das war die einfachste Lösung...

--Toni
eppleton
 
Beiträge: 14
Registriert: 26.03.2008, 11:16
Wohnort: München

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon arittner » 06.07.2009, 12:06

Dreamlight hat geschrieben:Da sehe ich allerdings zwei Probleme:
Die Locale-Konstanten für die Spracheinstellung sind stark eingeschränkt. NetBeans 6.7 hat viele zusätzliche Sprachen, die über die Locale-Konstanten nicht abgeglichen werden, z. Bsp. Türkisch oder Schwedisch.


Dann nimm einfach eine Zeichenkette: "TR" für Türkisch :-)

Des Weiteren stimmt es nicht, dass die meisten MenuItems aktualisiert werden.
Im Slashscreen sehe ich dann zwar Italienisch oder Japanisch, aber in der IDE wird bei den meisten Sprachen Englisch für die Menüs verwendet. Die Bundle_xy werden allerdings erkannt, so dass ich dann in meiner Test-TopComponent "Japanisch" oder "Italienisch" usw. lesen kann.


Man kann zwar beim Starten Parameter mitgeben (z.B. -D-Juser.country=ES) aber das ist ja nicht permanent. Also ist das Umschreiben der xxxx.conf am sinnvollsten.

Beste Grüße,
Josch.
JNBB/BeanDev: Das deutsche Blog zur NetBeans Platform
Bild
Sun Certified Specialist for NetBeans IDE
Benutzeravatar
arittner
 
Beiträge: 2887
Registriert: 05.08.2008, 08:20
Wohnort: Südniedersachsen

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon arittner » 06.07.2009, 12:08

Hi Toni!

eppleton hat geschrieben:Es ist wirklich ärgerlich, dass die locale JARs nicht automatisch mitkopiert werden. Man kann das allerdings auch automatisieren. Ich hatte mal eine ähnliche Aufgabe (nur die deutschen Locale Files mitkopieren) und habe dazu die ModuleSelector Klasse im Build harness angepasst. Das Problem ist die checkSelected Methode, in der für JAR files überprüft wird, ob es Module sind. Wenn Du da die Logik anpasst, werden die Locale Files mitkopiert. Das war die einfachste Lösung...

--Toni


Oh, nicht automatisch? Ist mir noch gar nicht aufgefallen. Also wieder Handarbeit ;-)

Beste Grüße,
Josch.
JNBB/BeanDev: Das deutsche Blog zur NetBeans Platform
Bild
Sun Certified Specialist for NetBeans IDE
Benutzeravatar
arittner
 
Beiträge: 2887
Registriert: 05.08.2008, 08:20
Wohnort: Südniedersachsen

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon Dreamlight » 06.07.2009, 16:19

arittner hat geschrieben:Man kann zwar beim Starten Parameter mitgeben (z.B. -D-Juser.country=ES) aber das ist ja nicht permanent. Also ist das Umschreiben der xxxx.conf am sinnvollsten.

Sehe ich auch so.
Mein Gedanke war, das ich für jede Sprache eine xy.conf schreibe mit der Spracheinstellung + Local-Endung im Dateiname. Nach Auswahl des Users wird einfach die Momentane-Conf Datei gelöscht und die Neue entsprechend ohne Local-Endung kopiert. Damit brauche ich die Datei nicht neu schreiben.
Peter

Dream it, awaken in it...
Und wenn ihr wollt, könnt ihr das mit Dreampalace.
Kennt ihr schon MultiLingual with NetBeans oder ABC-List?
Benutzeravatar
Dreamlight
 
Beiträge: 152
Registriert: 16.01.2009, 18:11
Wohnort: Niedersachsen

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon arittner » 08.07.2009, 10:59

Moin!

Da es noch zu diesem Thema pass. Ich habe einen neuen Blogeintrag zum Neustart der platform10 geschrieben.

BeanDev: Neuerer Neustart der NetBeans Platform

Jesse Glick hatte in dem englischen Dev-Forum (und als Gastkommentar auf meinem Blog) darauf aufmerksam gemacht, dass das neue Update-Center diese "versteckte" Möglichkeit bietet.

Ich habe das alles noch mit der neuen StatusLineElementProvider - API gewürzt.

Beste Grüße,
Josch.
JNBB/BeanDev: Das deutsche Blog zur NetBeans Platform
Bild
Sun Certified Specialist for NetBeans IDE
Benutzeravatar
arittner
 
Beiträge: 2887
Registriert: 05.08.2008, 08:20
Wohnort: Südniedersachsen

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon Dreamlight » 08.07.2009, 13:02

Jep,
habe auf deinen neuen Artikel schon in NetBeans IDE neu starten ala UpdateCenter aufmerksam gemacht.

Ich selber bin gerade dabei eine kleines Demo-Programm in Java.net zu integieren.
Im Programm kann der User über den Menü-Schalter 'Sprache' eine Sprache auswählen und das Programm startet dann erneut mit der ausgewählten Sprache.

Im Programm sind folgende Features integriert:
a) Neustart des RCP-Programms mit der neuen Restart-Methode :D
b) Die Startdatei 'etc/programm.conf' umschreiben
c) Laden der Sprach-Jar-Dateien von NetBeans
d) Branding der eigenen Texte und
e) Branding eines Menü-Schalters
f) Abschlussarbeiten in der generierten Zip-Distribution

Dazu aber mehr auf der Seite Programm MultiLingual in java.net.

Leider war ich zu schnell...
Ich habe erst heute den Sourcecode in java.net geladen. Es wird noch etwas dauern, bis das Projekt für die Öffentlichkeit freigegeben ist.

Werde mich hier wieder melden, wenn es soweit ist :mrgreen: .
Peter

Dream it, awaken in it...
Und wenn ihr wollt, könnt ihr das mit Dreampalace.
Kennt ihr schon MultiLingual with NetBeans oder ABC-List?
Benutzeravatar
Dreamlight
 
Beiträge: 152
Registriert: 16.01.2009, 18:11
Wohnort: Niedersachsen

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon Dreamlight » 09.07.2009, 19:13

Okay,
nun ist es so weit... :D

Hier nochmals die Features des kleinen Demo-Programms:
a) Neustart des RCP-Programms mit der neuen Restart-Methode :D von Jesse Click
b) Die Startdatei 'etc/programm.conf' wird umgeschrieben
c) Laden der Sprach-Jar-Dateien von NetBeans
d) Branding der eigenen Texte und
e) Branding eines Menü-Schalters
f) Abschlussarbeiten in der generierten Zip-Distribution

Ihr könnt das Programm mit/ohne Sourcecode über MultiLingual in java.net downloaden.
Peter

Dream it, awaken in it...
Und wenn ihr wollt, könnt ihr das mit Dreampalace.
Kennt ihr schon MultiLingual with NetBeans oder ABC-List?
Benutzeravatar
Dreamlight
 
Beiträge: 152
Registriert: 16.01.2009, 18:11
Wohnort: Niedersachsen

Re: IDE 6.7: Multilingual mit Userwahl

Beitragvon Tux1000 » 09.07.2009, 19:44

Dreamlight hat geschrieben:Okay,
nun ist es so weit... :D


Irgendwie nicht...(zumindest nicht bei mir).

Habs spaßeshalber mal getestet und wenn ich eine Sprache auswähle und anschließend auf "Ja" klicke, wird das Prog zwar neu gestartet, aber die Sprache ist noch die alte. Erst wenn ich das Prog selbst schließe und wieder öffne ist die Sprache so eingestellt, wie ich sie zuletzt festgelegt habe...ist glaub ich nicht Sinn der Sache, oder?

Ach, übrigens. Getestet unter Debian Linux mit Java 1.6.0_12.

Gruß
Die beste und sicherste Tarnung ist immer noch die blanke und nackte Wahrheit. Die glaubt niemand! (Max Frisch)
Benutzeravatar
Tux1000
 
Beiträge: 166
Registriert: 05.04.2008, 17:09

Nächste

Zurück zu NetBeans - Platform / RCP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast