![]() |
|
|
|||||||
| Plattformprogrammierung OSGi, Eclipse RCP und Co. |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 29.05.2007
Fachbeiträge: 4.932
Abgegebene Danke: 192
Erhielt 229 Danke für 225 Beiträge
|
Hallo
welche language pack brauche ich für die nativen Dialoge bei einer RCP anwendung unter 3.2.2?? archive.eclipse.org/eclipse/downloads/drops/L-3.2_Language_Packs-200607121700/index.php ich hab die RCP Runtime Binary Language Packs runtergeladen aber sind ja 20 neue plugins die ich da einfügen müsste??? Stimmt das??? |
|
|
| #2 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 20.08.2004
Fachbeiträge: 3.884
Abgegebene Danke: 0
Erhielt 2 Danke für 2 Beiträge
|
Ich habe nur 3 Languagepacks installiert:
org.eclipse.jface.nl1 org.eclipse.swt.nl1 org.eclipse.ui.workbench.nl1 Damit sind alle Dialoge, Meldungen, Preferences, Menüs etc. schon mal abgedeckt. Für die Hilfe und Ähnliches brauchst du dann bei Bedarf noch mehr nl1-Plugins.
__________________
Du musst zu der Veränderung werden, die du in der Welt sehen willst [Mahatma Ghandi] |
|
|
| #3 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Themenstarter
Registriert seit: 29.05.2007
Fachbeiträge: 4.932
Abgegebene Danke: 192
Erhielt 229 Danke für 225 Beiträge
|
ok alles klar dachte es gibt nur ein plugin....
wenn ich das System.getProperties().set("osgi.nl","<new_locale">); zu laufzeit ändern will hab ich schon mitbekommen dass es nicht geht... Aber wenn ich es neu setze und restart mache sollte er doch meine neuen einstellungen übernehmen oder? |
|
|
| #4 (permalink) | |
|
Premium-Benutzer
Registriert seit: 10.11.2004
Fachbeiträge: 20.047
Abgegebene Danke: 4
Erhielt 429 Danke für 400 Beiträge
|
Nein, ein Property ist flüchtig. Du brauchst schon einen Startup Parameter wie -Duser.locale=xy oder -nl xy
__________________
Take back the Desktop |
|
|
| #5 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Themenstarter
Registriert seit: 29.05.2007
Fachbeiträge: 4.932
Abgegebene Danke: 192
Erhielt 229 Danke für 225 Beiträge
|
also der einzigste weg dass zu machen ist das .ini file zu ändern...
www.toedter.com/blog/?p=19 hier kann man sich ein bsp runterladen... max-server.myftp.org/trac/mp3m |
|
|
| #6 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 20.08.2004
Fachbeiträge: 3.884
Abgegebene Danke: 0
Erhielt 2 Danke für 2 Beiträge
|
Wäre schön wenn man das zur Laufzeit ohne Neustart der Workbench machen könnte
__________________
Du musst zu der Veränderung werden, die du in der Welt sehen willst [Mahatma Ghandi] |
|
|
| #7 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Themenstarter
Registriert seit: 29.05.2007
Fachbeiträge: 4.932
Abgegebene Danke: 192
Erhielt 229 Danke für 225 Beiträge
|
ja das wäre auch gut für mich :P...
mit dem ini file musst du halt immer erst deployen... aber vielleicht gehts ja bald in der nächsten eclipse version https://bugs.eclipse.org/bugs/show_bug.cgi?id=222023 |
|
|
| #8 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 20.08.2004
Fachbeiträge: 3.884
Abgegebene Danke: 0
Erhielt 2 Danke für 2 Beiträge
|
Ohne Neustart stelle ich mir das aber ziemlich schwierig vor, weil dann alle Views/Editoren/Menüs etc neu erstellt werden müssten.
__________________
Du musst zu der Veränderung werden, die du in der Welt sehen willst [Mahatma Ghandi] |
|
|
| #9 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Themenstarter
Registriert seit: 29.05.2007
Fachbeiträge: 4.932
Abgegebene Danke: 192
Erhielt 229 Danke für 225 Beiträge
|
ja das stimmt , ich versuch grad noch die Locale zu beeinflussen
bevor die Workbench gestartet wird Code:
returnCode =
PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
|
|
|
| #10 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Themenstarter
Registriert seit: 29.05.2007
Fachbeiträge: 4.932
Abgegebene Danke: 192
Erhielt 229 Danke für 225 Beiträge
|
mhm habs mal so versucht aber leider bringt es nicht weiß jemand genau was die methode macht??? Dachte die reinitialiert vielleicht die bundles...
versteht jemand den mechanismus richtig wie nl pakete gesetzt werden?? Code:
Locale.setDefault(<new Locale>);
NLS.initializeMessages("org.eclipse.ui.internal.messages",
org.eclipse.ui.internal.WorkbenchMessages.class);
// andere
PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
|
|
|
| #11 (permalink) | |
|
Premium-Benutzer
Registriert seit: 10.11.2004
Fachbeiträge: 20.047
Abgegebene Danke: 4
Erhielt 429 Danke für 400 Beiträge
|
Es ist schon von Java aus technisch nicht möglich die Sprache zur Laufzeit zu wechseln, da alle Übersetzungen in public static final String Konstanten abgelegt sind.
__________________
Take back the Desktop |
|
|
| #12 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Themenstarter
Registriert seit: 29.05.2007
Fachbeiträge: 4.932
Abgegebene Danke: 192
Erhielt 229 Danke für 225 Beiträge
|
Soviel ich weiß stimmt des aber nicht...
Nehmen wir zum Beispiel WorkbenchMessages Code:
public class WorkbenchMessages extends NLS {
// ==============================================================================
// Workbench Actions
// ==============================================================================
// --- File Menu ---
public static String NewWizardAction_text;
public static String NewWizardAction_toolTip;
public static String CloseAllAction_text;
public static String CloseAllAction_toolTip;
public static String CloseAllSavedAction_text;
public static String CloseAllSavedAction_toolTip;
public static String CloseEditorAction_text;
public static String CloseEditorAction_toolTip;
public static String CloseOthersAction_text;
public static String CloseOthersAction_toolTip;
public static String NewEditorAction_text;
public static String NewEditorAction_tooltip;
public static String SaveAction_text;
public static String SaveAction_toolTip;
public static String SaveAs_text;
public static String SaveAs_toolTip;
public static String SaveAll_text;
public static String SaveAll_toolTip;
public static String Workbench_revert;
public static String Workbench_revertToolTip;
public static String Workbench_move;
public static String Workbench_moveToolTip;
public static String Workbench_rename;
public static String Workbench_renameToolTip;
public static String Workbench_refresh;
public static String Workbench_refreshToolTip;
public static String Workbench_properties;
public static String Workbench_propertiesToolTip;
public static String Workbench_print;
public static String Workbench_printToolTip;
public static String ExportResourcesAction_text;
public static String ExportResourcesAction_fileMenuText;
public static String ExportResourcesAction_toolTip;
public static String ImportResourcesAction_text;
public static String ImportResourcesAction_toolTip;
public static String OpenRecent_errorTitle;
public static String OpenRecent_unableToOpen;
public static String Exit_text;
public static String Exit_toolTip;
|
|
|
| #13 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 20.08.2004
Fachbeiträge: 3.884
Abgegebene Danke: 0
Erhielt 2 Danke für 2 Beiträge
|
Welchen NLS-Mechanismus verwendest du denn?
http://help.eclipse.org/help32/index...ze-strings.htm Ich bin bisher immer den traditionellen Weg ohne zusätzliche Klasse gegangen.
__________________
Du musst zu der Veränderung werden, die du in der Welt sehen willst [Mahatma Ghandi] |
|
|
| #14 (permalink) | |
|
Premium-Benutzer
Registriert seit: 10.11.2004
Fachbeiträge: 20.047
Abgegebene Danke: 4
Erhielt 429 Danke für 400 Beiträge
|
Ach, stimmt ja, die sind nicht final. Ändert trotzdem nichts, der Aufwand alle Strings zu ersetzen wäre viel zu groß. Jede Klasse die irgendwelche externalisierten Strings verwendet müsste in ein lächerlich großes Observer Monster eingespannt werden.
@foobar der Eclipse Weg ist ganz nützlich, da der Compiler deine Strings prüfen kann und wenn man eine Message Klasse pro Package verwendet, wird auch nur das geladen was benötigt wird.
__________________
Take back the Desktop |
|
|
| #15 (permalink) | ||||||||||||||||
|
Stammbenutzer
Viertel Gigabyte
Themenstarter
Registriert seit: 29.05.2007
Fachbeiträge: 4.932
Abgegebene Danke: 192
Erhielt 229 Danke für 225 Beiträge
|
ich glaub nicht dass ich mit deinem link die eclipse konstanten beeinflussen kann damit er mir die neu setzt bevor ich die workbench neu initialisert wird... @ wildcard ich kann mir doch via reflection mir alle konstanten holen und dann muss ich die neu setzen mit der entprechenden propertie datei... Mein Ziel ist es ja nur vor die workbench initalisiert wird das einmal zu machen sobald sie initialisiert ist kann man sie sprache nicht mehr ändern... |
|||||||||||||||
|
|
||||||||||||||||
| #16 (permalink) | ||||||||||||||||
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 20.08.2004
Fachbeiträge: 3.884
Abgegebene Danke: 0
Erhielt 2 Danke für 2 Beiträge
|
__________________
Du musst zu der Veränderung werden, die du in der Welt sehen willst [Mahatma Ghandi] |
|||||||||||||||
|
|
||||||||||||||||
| #17 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Themenstarter
Registriert seit: 29.05.2007
Fachbeiträge: 4.932
Abgegebene Danke: 192
Erhielt 229 Danke für 225 Beiträge
|
Hier meine lösung in der Klasse MessageResourceBundle gibt es folgende Methode...
sobald die applikation einmal gestartet wird , wird nlSuffixes !=null und es werden keine neuen bundles mehr geladen... wenn man die locale neu setzt nlSuffixes auf null setzt(Reflection) und die oben genannte methode ausführt funktioniert des mechanismus wunderba... Code:
private static String[] buildVariants(String root) {
if (nlSuffixes == null) {
//build list of suffixes for loading resource bundles
String nl = Locale.getDefault().toString();
ArrayList result = new ArrayList(4);
int lastSeparator;
while (true) {
result.add('_' + nl + EXTENSION);
lastSeparator = nl.lastIndexOf('_');
if (lastSeparator == -1)
break;
nl = nl.substring(0, lastSeparator);
}
//add the empty suffix last (most general)
result.add(EXTENSION);
nlSuffixes = (String[]) result.toArray(new String[result.size()]);
}
root = root.replace('.', '/');
String[] variants = new String[nlSuffixes.length];
for (int i = 0; i < variants.length; i++)
variants[i] = root + nlSuffixes[i];
return variants;
}
|
|
|
| #18 (permalink) | ||||||||||||||||
|
Premium-Benutzer
Registriert seit: 10.11.2004
Fachbeiträge: 20.047
Abgegebene Danke: 4
Erhielt 429 Danke für 400 Beiträge
|
__________________
Take back the Desktop |
|||||||||||||||
|
|
||||||||||||||||
| #19 (permalink) | |||||||||||||||||||||||||||||||
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 20.08.2004
Fachbeiträge: 3.884
Abgegebene Danke: 0
Erhielt 2 Danke für 2 Beiträge
|
__________________
Du musst zu der Veränderung werden, die du in der Welt sehen willst [Mahatma Ghandi] |
||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||
| #20 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 20.08.2004
Fachbeiträge: 3.884
Abgegebene Danke: 0
Erhielt 2 Danke für 2 Beiträge
|
Wie bringe ich Eclipse denn dazu den neuen NLS-Mechanismus zu verwenden? Ich habe das Bundle org.eclipse.osgi.util bereits überall hinzugefügt d.h. Runconfig, plugin etc. und trotzdem ist die Funktion im Externalizewizard nicht verfügbar? Was mache ich falsch?
__________________
Du musst zu der Veränderung werden, die du in der Welt sehen willst [Mahatma Ghandi] |
|
|
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Installation des deutschen Language Packs für Eclipse 3.3 | pc-world | Bücher, Tutorials und Links | 7 | 05.12.2010 11:32 |
| Language Packs. | Timo | IDEs und Tools | 4 | 09.08.2007 13:17 |
| JSP: page language ? | Java Basics - Anfänger-Themen | 1 | 05.07.2006 15:30 | |
| HILFE Languages packs installiren bei eclipse! | Silvio | Java Basics - Anfänger-Themen | 3 | 08.01.2006 12:15 |
| Sprache --> Language | Conker | AWT, Swing, JavaFX & SWT | 3 | 18.11.2003 04:58 |
| Lesezeichen |
|
|