internationalization mostly completed

This commit is contained in:
hneemann 2016-03-25 22:46:53 +01:00
parent 17fba52679
commit 3f45cb1138
3 changed files with 182 additions and 8 deletions

View File

@ -18,27 +18,36 @@ public class Lang {
return InstanceHolder.INSTANCE.getKey(key, params); return InstanceHolder.INSTANCE.getKey(key, params);
} }
private ResourceBundle bundle; private final ResourceBundle defaultBundle;
private ResourceBundle localeBundle;
private Lang() { private Lang() {
Locale currentLocale = Locale.getDefault(); Locale currentLocale = Locale.getDefault();
defaultBundle = ResourceBundle.getBundle("lang/lang", Locale.ENGLISH);
try { try {
bundle = ResourceBundle.getBundle("lang/lang", currentLocale); localeBundle = ResourceBundle.getBundle("lang/lang", currentLocale);
} catch (MissingResourceException e) { } catch (MissingResourceException e) {
bundle = ResourceBundle.getBundle("lang/lang", Locale.ENGLISH);
} }
} }
private String getKey(String key, Object... params) { private String getKey(String key, Object... params) {
try { try {
return decodeString(localeBundle, key, params);
} catch (MissingResourceException e) {
System.out.println(key + "=" + key.substring(key.indexOf("_") + 1));
try {
return decodeString(defaultBundle, key, params);
} catch (MissingResourceException e1) {
return key;
}
}
}
private String decodeString(ResourceBundle bundle, String key, Object[] params) {
String str = bundle.getString(key); String str = bundle.getString(key);
if (params != null && params.length > 0) if (params != null && params.length > 0)
str = MessageFormat.format(str, params); str = MessageFormat.format(str, params);
return str; return str;
} catch (MissingResourceException e) {
System.out.println(key + "=" + key.substring(key.indexOf("_") + 1));
return key + " is missing";
}
} }
} }

View File

@ -0,0 +1,82 @@
digital=Digital
message=Digital\n\nEin einfacher Simulator f\u00FCr digitale Schaltkreise.\n\nGeschrieben von Helmut Neemann 2016
ok=Ok
key_dataBits=Datenbits
key_numberInputs=Anzahl der Eing\u00E4nge
key_label=Bezeichnung
key_value=Wert
key_default=Vorgabe
key_color=Farbe
key_inputSplitting=Eingansaufteilung
key_outputSplitting=Ausgangsaufteilung
key_frequency=Frequenz
key_selectorBits=Anzahl der Auswahlbits
key_signed=Vorzeichen
key_data=Daten
err_seemsToOscillate=Die Schaltung scheint zu oszillieren
err_notInitialized=Die Schaltung ist nicht initialisiert
err_isAlreadyInitialized=Die Schaltung wurde bereits initialisiert
err_noClockFound=Kein Taktgeber in der Schaltung gefunden
err_moreThenOneClocksFound=Es gibt mehr als einen Taktgeber
err_noInputsAvailable=Es sind keine Eing\u00E4nge vorhanden
err_burnError=Es sind mehrere Ausg\u00E4nge zusammengeschaltet
err_needs_N0_bits_found_N2_bits=Es werden {0} Bits ben\u00F6tigt, aber es wurden {1} Bits gefunden
err_selectorInputCountMismatch=Die Zahl der Eing\u00E4nge passt nicht zur Bitbreite der Auswahlleitung
err_splitterBitsMismatch=Die Bitzahl am Spiltter passt nicht
err_pinWithoutName=Es gibt einen Pin ohne einen Namen
err_pin_N_unknown=Pin {0} ist unbekannt
err_pin_N_notFound=Pin {0} wurde nicht gefunden.
err_netOfPin_N_notFound=Das Netz von Pin {0} wirde nicht gefunden
err_N_isNotInputOrOutput=Pin {0} ist werden Eingang noch Ausgang
err_pin_N0_atElement_N1_notFound=Pin {0} von Element {1} wurde nicht gefunden
err_noValueSetFor_N0_atElement_N1=Kein Wet gesetzt f\u00FCr {0} an Element {1}
err_onOutConnectedToWire=Kein Ausgang mit der Leitung verbunden
err_output_N_notDefined=Ausgang {0} ist nicht definiert
err_pinNotPresent=Pin nicht vorhanden
err_duplicateElement_N=Doppeltes Element {0}
err_element_N_notFound=Element {0} nicht gefunden
attr_dialogTitle=Eigenschaften
msg_errorEditingValue=Fehler bei der Eingabe eines Wertes
msg_color=
msg_errorImportingModel=
msg_errorCreatingModel=
msg_errorWritingFile=
msg_errorReadingFile=
msg_errorCalculatingStep=Fehler beim Berechnen eines Schrittes
btn_edit=Bearbeiten
btn_load=Laden
tt_moveItemUp=Eintrag nach oben schieben
tt_moveItemDown=Eintrag nach unten schieben
menu_file=Datei
menu_new=Neu
menu_open=\u00D6ffnen
menu_save=Speichern
menu_saveAs=Speichern unter
menu_elements=Elemente
menu_custom=Benutzerdefiniert
menu_import=Importieren
menu_import_tt=Importiert ein Model als verwendbares Bauteil
menu_refresh=Neu Laden
menu_refresh_tt=Alle importieren Modelle werden neu geladen
menu_wire=Verbindung
menu_wire_tt=Erzeugt eine neue Verbindung
menu_element=Element
menu_element_tt=Verschiebt Elemente oder bearbeitet dessen Eigenschaften
menu_select=Auswahl
menu_select_tt=W\u00E4hlt Elemente aus um diese zu verschieben. Per Rechtsklick k\u00F6nnen diese Elemente kopiert werden
menu_edit=Bearbeiten
menu_orderInputs=Ordnen der Eing\u00E4nge
menu_orderInputs_tt=Sortiert die Eing\u00E4nge f\u00FCr die Verwendeung als eingebettetes Model
menu_orderOutputs=Sortieren der Ausg\u00E4nge
menu_orderOutputs_tt=Sortiert die Ausg\u00E4nge f\u00FCr die Verwendeung als eingebettetes Model
menu_run=Starten
menu_run_tt=Startet das Modell
menu_step=Schritt
menu_step_tt=F\u00FChrt einen Schritt aus
menu_micro=Mikro
menu_micro_tt=Startet das Modell im Mikroschrittmodus
menu_speedTest=Geschwindigkeitstest
menu_speedTest_tt=F\u00FChrt einen Geschwindigkeitstest durch. Es wird die maximal m\u00F6gliche Taktfrequenz ermittelt
menu_trace=Signalverlauf
menu_runClock=Taktgeber starten
menu_runClock_tt=Wenn gew\u00E4hlt, werden beim Starten auch die Taktgeber gestartet

View File

@ -0,0 +1,83 @@
digital=Digital
message=Digital\nA simple simulator for digital circuits.\n\nWritten bei H.Neemann in 2016
ok=Ok
# Attribute Keys
key_dataBits=Data Bits
key_numberInputs=Number of Inputs
key_label=Label
key_value=Value
key_default=Default
key_color=Color
key_inputSplitting=Input Splitting
key_outputSplitting=Otput Splitting
key_frequency=Frequency
key_selectorBits=Number of Selector Bits
key_signed=Signed
key_data=Data
err_seemsToOscillate=Logic seems to oscillate
err_notInitialized=Logic not initialized
err_isAlreadyInitialized=Logic is already initialized
err_noClockFound=No clock found in logic
err_moreThenOneClocksFound=There are more then one clock
err_noInputsAvailable=No inputs available to set
err_burnError=More then one output is active on a wire
err_needs_N0_bits_found_N2_bits=There are {0} bits needed, but {1} bits found
err_selectorInputCountMismatch=Number of inputs does not match selector bit count
err_splitterBitsMismatch=Bit count of splitter is not matching
err_pinWithoutName=Found a pin without a name
err_pin_N_unknown=Pin {0} unknown
err_pin_N_notFound=Pin {0} not found
err_netOfPin_N_notFound=Net of pin {0} not found
err_N_isNotInputOrOutput=Pin {0} is not a input or output
err_pin_N0_atElement_N1_notFound=Pin {0} not found at Element {1}
err_noValueSetFor_N0_atElement_N1=No value set for {0} at Element {1}
err_onOutConnectedToWire=No output connected to a wire
err_output_N_notDefined=Output {0} not defined
err_pinNotPresent=Pin not present
err_duplicateElement_N=Duplicate element {0}
err_element_N_notFound=Element {0} not found
attr_dialogTitle=Attributes
msg_errorEditingValue=Error editing a atribute value
msg_color=Color
msg_errorImportingModel=Error importing a model
msg_errorCreatingModel=Error creating the model
msg_errorWritingFile=Error writing a file
msg_errorReadingFile=Error reading a file
msg_errorCalculatingStep=Error calculating a step
btn_edit=Edit
btn_load=Load
tt_moveItemUp=Move the item up
tt_moveItemDown=Move the item down
menu_file=File
menu_new=New
menu_open=Open
menu_save=Save
menu_saveAs=Save As
menu_elements=Elements
menu_custom=Custom
menu_import=Import
menu_import_tt=Imports a model as a useable Element!
menu_refresh=Reload
menu_refresh_tt=Reload all imported models
menu_wire=Wire
menu_wire_tt=Add new wires to circuit
menu_element=Element
menu_element_tt=Moves Elements or edits its properties
menu_select=Select
menu_select_tt=Selects elements to move or delete them. Also right click copies the selected elements.
menu_edit=Edit
menu_orderInputs=Order Inputs
menu_orderInputs_tt=Order the inputs for the usage as nested model
menu_orderOutputs=Order Outputs
menu_orderOutputs_tt=Order the outputs for the usage as nested model
menu_run=Run
menu_run_tt=Runs the model
menu_step=Step
menu_step_tt=Calculating a micro step
menu_micro=Micro
menu_micro_tt=Runs the Model in micro stepping mode
menu_speedTest=Speed Test
menu_speedTest_tt=Performs a speed test by calculating the max. clock frequency.
menu_trace=Trace
menu_runClock=Run Clock
menu_runClock_tt=If selected the clocks in the circuit are started