introduced a new language system

This commit is contained in:
hneemann 2016-06-12 15:58:20 +02:00
parent 1aa5ea4cd0
commit a5d4be2b56
16 changed files with 1158 additions and 904 deletions

View File

@ -2,8 +2,7 @@ package de.neemann.digital.core.element;
import de.neemann.digital.core.io.IntFormat;
import de.neemann.digital.core.memory.DataField;
import de.neemann.digital.lang.Language;
import de.neemann.digital.lang.Languages;
import de.neemann.gui.language.Language;
import java.util.Locale;
@ -207,7 +206,7 @@ public final class Keys {
* The Gui Language
*/
public static final Key<Language> SETTINGS_LANGUAGE
= new Key<>("Language", Languages.getInstance().getDefault());
= new Key<>("Language", new Language());
/**

View File

@ -18,7 +18,7 @@ import de.neemann.digital.draw.shapes.Drawable;
import de.neemann.digital.draw.shapes.ShapeFactory;
import de.neemann.digital.gui.components.AttributeDialog;
import de.neemann.digital.lang.Lang;
import de.neemann.digital.lang.Language;
import de.neemann.gui.language.Language;
import java.awt.*;
import java.io.*;

View File

@ -7,10 +7,10 @@ import de.neemann.digital.core.io.IntFormat;
import de.neemann.digital.core.memory.DataField;
import de.neemann.digital.core.memory.ROM;
import de.neemann.digital.lang.Lang;
import de.neemann.digital.lang.Language;
import de.neemann.digital.lang.Languages;
import de.neemann.gui.ErrorMessage;
import de.neemann.gui.ToolTipAction;
import de.neemann.gui.language.Bundle;
import de.neemann.gui.language.Language;
import javax.swing.*;
import java.awt.*;
@ -18,6 +18,7 @@ import java.awt.event.ActionEvent;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.util.HashMap;
import java.util.List;
/**
* @author hneemann
@ -312,8 +313,10 @@ public final class EditorFactory {
private JComboBox comb;
public LanguageEditor(Language language, Key<Rotation> key) {
comb = new JComboBox<>(Languages.getInstance().getSupportedLanguages());
comb.setSelectedIndex(Languages.getInstance().getIndexOf(language));
Bundle b = Lang.getBundle();
List<Language> supLang = b.getSupportedLanguages();
comb = new JComboBox<>(supLang.toArray(new Language[supLang.size()]));
comb.setSelectedItem(Lang.currentLanguage());
}
@Override
@ -323,7 +326,7 @@ public final class EditorFactory {
@Override
public Language getValue() {
return Languages.getInstance().getByIndex(comb.getSelectedIndex());
return (Language) comb.getSelectedItem();
}
}
}

View File

@ -1,9 +1,11 @@
package de.neemann.digital.lang;
import de.neemann.gui.language.Bundle;
import de.neemann.gui.language.Language;
import de.neemann.gui.language.Resources;
import java.text.MessageFormat;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.prefs.Preferences;
/**
@ -49,44 +51,58 @@ public final class Lang {
return InstanceHolder.INSTANCE.getKeyNull(key, params);
}
private final ResourceBundle defaultBundle;
private ResourceBundle localeBundle;
/**
* @return the resource bundle
*/
public static Bundle getBundle() {
return InstanceHolder.INSTANCE.bundle;
}
/**
* @return the current language
*/
public static Language currentLanguage() {
return InstanceHolder.INSTANCE.currentLanguage;
}
private final Bundle bundle;
private final Resources defaultBundle;
private final Resources localeBundle;
private final Language currentLanguage;
private Lang() {
defaultBundle = ResourceBundle.getBundle("lang/lang", Locale.ENGLISH);
try {
String lang = PREFS.get(LANGUAGE, null);
Locale currentLocale = Languages.getInstance().getLocaleByName(lang);
localeBundle = ResourceBundle.getBundle("lang/lang", currentLocale);
} catch (MissingResourceException e) {
}
bundle = new Bundle("lang/lang");
defaultBundle = bundle.getResources("en");
String lang = PREFS.get(LANGUAGE, Locale.getDefault().getLanguage());
localeBundle = bundle.getResources(lang);
if (localeBundle != null)
currentLanguage = new Language(lang);
else
currentLanguage = new Language("en");
}
private String getKey(String key, Object... params) {
try {
return decodeString(localeBundle, key, params);
} catch (MissingResourceException e) {
String str = null;
if (localeBundle != null)
str = decodeString(localeBundle, key, params);
if (str == null) {
System.out.println(key + "=" + key.substring(key.indexOf("_") + 1));
try {
return decodeString(defaultBundle, key, params);
} catch (MissingResourceException e1) {
return key;
}
str = decodeString(defaultBundle, key, params);
if (str == null)
str = key;
}
return str;
}
private String getKeyNull(String key, Object... params) {
try {
return decodeString(localeBundle, key, params);
} catch (MissingResourceException e) {
// System.out.println(key + "=" + key.substring(key.indexOf("_") + 1));
return null;
}
return decodeString(localeBundle, key, params);
}
private String decodeString(ResourceBundle bundle, String key, Object[] params) {
String str = bundle.getString(key);
if (params != null && params.length > 0)
private String decodeString(Resources resources, String key, Object[] params) {
String str = resources.get(key);
if (str != null && params != null && params.length > 0)
str = MessageFormat.format(str, params);
return str;
}

View File

@ -1,54 +0,0 @@
package de.neemann.digital.lang;
import java.util.Locale;
/**
* @author hneemann
*/
public final class Language {
private final String name;
private transient Locale locale;
/**
* Creates a new instance
*
* @param name the languages name
*/
public Language(String name) {
this.name = name;
}
/**
* Creates a new instance
*
* @param locale the locale
*/
public Language(Locale locale) {
this(locale.getLanguage());
this.locale = locale;
}
@Override
public String toString() {
return name;
}
/**
* Returns the locale
*
* @return the locale
*/
Locale getLocale() {
return locale;
}
/**
* returns the name
*
* @return the name
*/
public String getName() {
return name;
}
}

View File

@ -1,106 +0,0 @@
package de.neemann.digital.lang;
import java.util.ArrayList;
import java.util.Locale;
/**
* @author hneemann
*/
public final class Languages {
private static final class InstanceHolder {
private static final Languages INSTANCE = new Languages();
}
/**
* @return the languages instance
*/
public static Languages getInstance() {
return InstanceHolder.INSTANCE;
}
private final ArrayList<Language> list = new ArrayList<>();
private String[] strArray;
private Languages() {
add(Locale.US);
add(Locale.GERMANY);
}
private void add(Locale locale) {
list.add(new Language(locale));
}
/**
* Returns a list of all supported languages
*
* @return the languages list
*/
public String[] getSupportedLanguages() {
if (strArray == null) {
strArray = new String[list.size()];
for (int i = 0; i < strArray.length; i++)
strArray[i] = list.get(i).getLocale().getDisplayName();
}
return strArray;
}
/**
* Returns the index of the given language
*
* @param language the language
* @return the index
*/
public int getIndexOf(Language language) {
for (int i = 0; i < list.size(); i++)
if (list.get(i).getName().equals(language.getName()))
return i;
return 0;
}
/**
* Returns the language by the languages index
*
* @param index the index
* @return the language
*/
public Language getByIndex(int index) {
return list.get(index);
}
/**
* Returns the default language
*
* @return the systems language, if there is a translation, US otherwise
*/
public Language getDefault() {
String lang = Locale.getDefault().getLanguage();
for (Language l : list) {
if (l.getLocale().getLanguage().equals(lang))
return l;
}
return list.get(0);
}
/**
* Returns a locale by the given name
*
* @param lang the language name
* @return the locale matching the language
*/
public Locale getLocaleByName(String lang) {
return getLanguageByName(lang).getLocale();
}
private Language getLanguageByName(String lang) {
if (lang == null)
return getDefault();
for (Language l : list)
if (l.getName().equals(lang))
return l;
return getDefault();
}
}

View File

@ -0,0 +1,65 @@
package de.neemann.gui.language;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.StaxDriver;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author hneemann
*/
public class Bundle {
private final HashMap<String, String> languages;
private final String name;
private final ArrayList<Language> list;
private static XStream getxStream() {
XStream xStream = new XStream(new StaxDriver());
xStream.alias("languages", Map.class);
xStream.registerConverter(new Resources.MapEntryConverter());
return xStream;
}
/**
* Creates a new instance
*
* @param name the bundles name
*/
public Bundle(String name) {
this.name = name;
InputStream in = getClass().getClassLoader().getResourceAsStream(name + ".xml");
XStream xStream = getxStream();
languages = (HashMap<String, String>) xStream.fromXML(in);
list = new ArrayList<>();
for (Map.Entry<String, String> e : languages.entrySet())
list.add(new Language(e.getKey(), e.getValue()));
}
/**
* returnce the resources for the given language
*
* @param lang the language
* @return the resources
*/
public Resources getResources(String lang) {
if (!languages.containsKey(lang))
return null;
InputStream in = getClass().getClassLoader().getResourceAsStream(name + "_" + lang + ".xml");
return new Resources(in);
}
/**
* Returns all supported languages
*
* @return the languages
*/
public List<Language> getSupportedLanguages() {
return list;
}
}

View File

@ -0,0 +1,75 @@
package de.neemann.gui.language;
import java.util.Locale;
/**
* @author hneemann
*/
public final class Language implements Comparable<Language> {
private final String name;
private final String displayName;
/**
* Creates a new instance
*
* @param name the languages name
*/
public Language(String name) {
this(name, "");
}
/**
* Creates a new instance with the current language
*/
public Language() {
this(Locale.getDefault().getLanguage());
}
/**
* Creates new instance
*
* @param name name, eq. "en" or "de"
* @param displayName displayname
*/
public Language(String name, String displayName) {
this.name = name;
this.displayName = displayName;
}
@Override
public String toString() {
return displayName;
}
/**
* returns the name
*
* @return the name
*/
public String getName() {
return name;
}
@Override
public int compareTo(Language o) {
return displayName.compareTo(o.displayName);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Language language = (Language) o;
return name != null ? name.equals(language.name) : language.name == null;
}
@Override
public int hashCode() {
return name != null ? name.hashCode() : 0;
}
}

View File

@ -0,0 +1,125 @@
package de.neemann.gui.language;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.converters.Converter;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import com.thoughtworks.xstream.io.xml.PrettyPrintWriter;
import com.thoughtworks.xstream.io.xml.StaxDriver;
import java.io.*;
import java.util.*;
/**
* @author hneemann
*/
public class Resources {
private static XStream getxStream() {
XStream xStream = new XStream(new StaxDriver());
xStream.alias("resources", Map.class);
xStream.registerConverter(new MapEntryConverter());
return xStream;
}
private final Map<String, String> resourceMap;
Resources() {
this(new HashMap<String, String>());
}
private Resources(ResourceBundle bundle) {
this(createMap(bundle));
}
private static Map<String, String> createMap(ResourceBundle bundle) {
Map<String, String> map = new TreeMap<>();
Enumeration<String> en = bundle.getKeys();
while (en.hasMoreElements()) {
String key = en.nextElement();
String value = bundle.getString(key);
map.put(key, value);
}
return map;
}
private Resources(Map<String, String> map) {
resourceMap = map;
}
/**
* Reads the recources from the given stream
*
* @param in the input stream
*/
public Resources(InputStream in) {
this(loadMap(in));
}
private static HashMap<String, String> loadMap(InputStream in) {
XStream xStream = getxStream();
return (HashMap<String, String>) xStream.fromXML(in);
}
void save(OutputStream out) throws IOException {
XStream xStream = getxStream();
try (Writer w = new OutputStreamWriter(out, "utf-8")) {
w.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
xStream.marshal(resourceMap, new PrettyPrintWriter(w));
}
}
void put(String key, String value) {
resourceMap.put(key, value);
}
/**
* Returns a entry by the given key
*
* @param key the key
* @return the entry
*/
public String get(String key) {
return resourceMap.get(key);
}
static class MapEntryConverter implements Converter {
public boolean canConvert(Class clazz) {
return Map.class.isAssignableFrom(clazz);
}
public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext context) {
Map map = (Map) value;
for (Object obj : map.entrySet()) {
Map.Entry entry = (Map.Entry) obj;
writer.startNode("string");
writer.addAttribute("name", entry.getKey().toString());
writer.setValue(entry.getValue().toString());
writer.endNode();
}
}
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
Map<String, String> map = new HashMap<>();
while (reader.hasMoreChildren()) {
reader.moveDown();
String key = reader.getAttribute("name");
String value = reader.getValue();
map.put(key, value);
reader.moveUp();
}
return map;
}
}
/**
public static void main(String[] args) throws IOException {
ResourceBundle bundle = ResourceBundle.getBundle("lang/lang", Locale.GERMAN);
Resources r = new Resources(bundle);
r.save(new FileOutputStream("/home/hneemann/Dokumente/Java/digital/src/main/resources/lang/lang_de.xml"));
}*/
}

View File

@ -0,0 +1,6 @@
/**
* Simple classes to replace the java resource bundles
*
* @author hneemann
*/
package de.neemann.gui.language;

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<languages>
<lang name="en">English</lang>
<lang name="de">Deutsch</lang>
</languages>

View File

@ -1,356 +0,0 @@
digital=Digital
message=Digital\n\nEin einfacher Simulator f\u00FCr digitale Schaltkreise.\n\nGeschrieben von Helmut Neemann 2016
ok=Ok
addr=Adresse
#Library
lib_Logic=Logisch
lib_io=IO
lib_mux=Multiplexer
lib_wires=Leitungen
lib_flipFlops=FlipFlops
lib_memory=Speicher
lib_arithmetic=Arithmetik
key_Bits=Datenbits
key_Inputs=Anzahl der Eing\u00E4nge
key_Label=Bezeichnung
key_Value=Wert
key_Default=Vorgabe
key_Default_tt=Wird beim Schaltungsstart gesetzt
key_Color=Farbe
key_InputSplitting=Eingangsaufteilung
key_InputSplitting_tt=Zum Beispiel "4,2,2" oder "[Bits]*[Anzahl] wie "1*16" f\u00FCr 16 einzelne Bits
key_OutputSplitting=Ausgangsaufteilung
key_OutputSplitting_tt=Zum Beispiel "4,2,2" oder "[Bits]*[Anzahl] wie "1*16" f\u00FCr 16 einzelne Bits
key_runRealTime=Echtzeittakt starten
key_runRealTime_tt=Wenn eingeschaltet, wird beim Start der Schaltung der Echtzeittakt gestartet
key_Frequency=Frequenz/Hz
key_Frequency_tt=Gibt die Frequenz an, wenn der Echtzeittakt aktiviert ist
key_SelectorBits=Anzahl der Auswahlbits
key_Signed=Vorzeichen
key_Data=Daten
key_AddrBits=Adress Bits
key_flipSelPos=Tausche Position des Selectors
key_rotation=Rotation
key_Width=Breite
key_Width_tt=Breite des Symbols wenn diese Schaltung in eine andere eingef\u00FCgt wird.
key_Cycles=Timeout Zyklen
key_Cycles_tt=Wenn nach dieser Anzahl von Takten kein Break eingegangen ist, wird ein Fehler erzeugt
key_termWidth=Zeichen pro Zeile
key_termHeight=Zeilen
key_valueIsProbe=Als Messwert verwenden
key_valueIsProbe_tt=Wenn gesetzt, taucht der Wert als Messwert in Graph und Tabelle auf
key_showList=Zeige Listing an, wenn verf\u00FCgbar
key_showDataTable=Zeige Messwertetabelle
key_showDataGraph=Zeige Messwertegraph
key_showDataGraphMicro=Zeige Messwertgraph im Gatterschrittmodus
key_maxStepCount=Maximale Messpunktezahl
key_microStep=Zeige Einzelgatterschritte
key_isHighZ=Eingang kann hochohmig sein
key_Description=Beschreibung
key_NetName=Netzname
key_NetName_tt=Alle Netze mit identischem Namen werden miteinander verbunden.
key_IEEEShapes=Verwende US Symbole (IEEE 91-1984)
key_IEEEShapes_tt=Verwende IEEE 91-1984 Symbole anstelle der rechteckige Symbole
key_intFormat=Zahlenformat
key_intFormat_def=Vorgabe
key_intFormat_dec=Dezimal
key_intFormat_hex=Hexadezimal
key_intFormat_bin=Bin\u00E4r
key_intFormat_ascii=ASCII
key_Language=Sprache
attr_openCircuitLabel=Enthaltene Schaltung:
attr_openCircuit=Anzeigen
attr_openCircuit_tt=\u00D6ffnet die Schaltung in einem neuen Fenster.
elem_And=Und
elem_NAnd=Nicht Und
elem_Or=Oder
elem_NOr=Nicht Oder
elem_XOr=Exclusiv Oder
elem_XNOr=Nicht Exclusiv Oder
elem_Not=Nicht
elem_LookUpTable=LookUpTable
elem_LookUpTable_tt=Erzeugt einen Ausgabewert aus einer Tabelle.\nAuf diese Weise kann jedes kombinatorische Gatter erzeugt werden.
elem_In=Eingang
elem_In_tt=Ein Eingang der genutzt werden kann, um eine Verbindung zu einem eingebettetem Element herzustellen.
elem_Out=Ausgang
elem_Out_tt=Ein Ausgang der genutzt werden kann, um eine Verbindung zu einem eingebettetem Element herzustellen.
elem_LED=LED
elem_Button=Taster
elem_Probe=Messwert
elem_Probe_tt=Ein Messwert, welcher im Messwertgraphen dargestellt werden kann.
elem_Seven-Seg=Siebensegmentanzeige
elem_Seven-Seg_tt=Siebensegmentanzeige bei der jedes Segment \u00FCber einen eigenen Eingang gesteuert werden kann.
elem_Seven-Seg-Hex=Siebensegmentanzeige Hex
elem_Seven-Seg-Hex_tt=Siebensegmentanzeige mit einem 4 Bit hexadezimalem Eingang.
elem_Terminal=Terminal
elem_Terminal_tt=Ein Terminal auf dem ASCII-Zeichen ausgegeben werden k\u00F6nnen. \u00D6ffnet ein eigenes Fenster.
elem_Terminal_pin_D=Terminal_pin_D
elem_Terminal_pin_C=Terminal_pin_C
elem_Data=Messwertgraph
elem_Data_tt=Zeigt einen Messwertgraphen innerhalb des Schaltkreisbereichs.\nEs k\u00F6nnen sowohl komplette Takte als auch einzelne Gatter-Ver\u00E4nderungen angezeigt werden.
elem_Multiplexer=Multiplexer
elem_Multiplexer_tt=W\u00E4hlt eine der Eingangsleitungen aus, und gibt dessen Wert am Ausgang aus.
elem_Multiplexer_pin_sel=Mit dieser Leitung wird der Eingang ausgew\u00E4hlt
elem_Demultiplexer=Demultiplexer
elem_Demultiplexer_tt=Gibt ein Eingangssignal auf einem w\u00E4hlbaren Ausgang aus, die anderen Ausg\u00E4nge sind Null.
elem_Demultiplexer_pin_sel=Mit dieser Leitung wird der Ausgang ausgew\u00E4hlt
elem_Decoder=Decoder
elem_Decoder_tt=Eine w\u00E4hlbare Ausgangsleitung geht auf Eins, alle anderen sind Null.
elem_Decode_pin_sel=Mit dieser Leitung wird der zu aktivierende Ausgang ausgew\u00E4hlt
elem_Const=Konstante
elem_Const_tt=Eine einfache Konstante.
elem_Splitter=Splitter
elem_Splitter_tt=F\u00FChrt mehrere Leitungen zu einer gemeinsamen Leitung zusammen, bzw. splittet diese wieder auf.
elem_Clock=Takt
elem_Clock_tt=Ein Takstignal. Dieses Taksignal kann \u00FCber die Echtzeituhr gesteuert werden.
elem_Delay=Verz\u00F6gerung
elem_Delay_tt=Verz\u00F6gert ein Signal f\u00FCr eine Gatterlaufzeit.
elem_Driver=Treiber
elem_DriverInvSel=Treiber, invertierte Auswahl
elem_Reset=Reset
elem_Reset_tt=Der Ausgang dieses Elements ist Null, solange sich die Schaltung nach dem Einschalten in der Stabilisierungsphase befindet.\nHat sich die Schaltung stabilisiert wird der Ausgang auf Eins gesetzt.
elem_Break=Break
elem_Break_tt=Wenn der Eingang dieses Elementes zu Eins wird, wird der schnelle Simulationslauf beendet.\nDieses Element kann verwendet werden, um einen Assemblerbefehl BRK zu implementieren.\nEs kann dann ein Programm bis zum n\u00E4chsten BRK-Befehl ausgef\u00FChrt werden.
elem_RS_FF=RS_FF
elem_JK_FF=JK_FF
elem_D_FF=D_FF
elem_T_FF=T_FF
elem_Register=Register
elem_ROM=ROM
elem_ROM_pin_address=Adresse des Datenwortes welches ausgelesen werden soll.
elem_ROM_pin_sel=Ist dieser Pin high (1) ist der Ausgang aktiviert. Ist er low (0) ist der Ausgang hochohmig.
elem_ROM_pin_data=Hier wird das Datenwort ausgegeben, wenn der Baustein aktiviert ist.
elem_RAMDualPort=RAMDualPort
elem_RAMDualPort_tt=Ein RAM Modul mit getrennten Anschl\u00FCssen f\u00FCr Lesen und Schreiben.\nEin gibt einen Eingang f\u00FCr das Beschreiben und einen Ausgang f\u00FCr das Auslesen der gespeicherten Daten.
elem_RAMDualPort_pin_addr=Die Adresse, an der gelesen und geschrieben wird.
elem_RAMDualPort_pin_dataIn=Der Daten die gespeichert werden sollen
elem_RAMDualPort_pin_str=Ist diese Leitung high wird das Datenwort gespeichert, wenn der Takt ansteigt.
elem_RAMDualPort_pin_c=Der Takt
elem_RAMDualPort_pin_ld=Ist diese Leitung high, wird der Ausgang aktiviert, und die Daten liegen dort an
elem_RAMDualPort_pin_dataOut=Der Datenausgang
elem_RAMSinglePort=RAMSinglePort
elem_RAMSinglePort_tt=Ein RAM Module mit einem bidirektionellem Anschluss f\u00FCr das Lesen und Schreiben von Daten.
elem_RAMSinglePort_pin_addr=Der Adresseingang.
elem_RAMSinglePort_pin_str=Ist dieser Eingang 1 wird mit steigendem Takt das Datenwort gespeichert.
elem_RAMSinglePort_pin_c=Takt
elem_RAMSinglePort_pin_ld=Ist dieser Eingang 1 wird das Datenwort ausgegeben.
elem_RAMSinglePort_pin_d=Der bidirektionale Datenanschlu\u00DF.
elem_Counter=Z\u00E4hler
elem_Add=Addierer
elem_Sub=Subtrahierer
elem_Mul=Multiplikator
elem_Comparator=Komparator
elem_Text=Text
elem_Text_tt=Zeigt einen einfachen Text in der Schaltung an.
rot_0=0\u00B0
rot_90=90\u00B0
rot_180=180\u00B0
rot_270=270\u00B0
err_seemsToOscillate=Die Schaltung scheint zu oszillieren!\nZur Analyse k\u00F6nnen Sie die Schaltung im Gatterschrittmodus ausf\u00FChren.
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 zusammengeschaltete Ausg\u00E4nge gleichzeitig aktiv
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 in {0}
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} wurde nicht gefunden
err_N_isNotInputOrOutput=Pin {0} in Element {1} ist werder Eingang noch Ausgang
err_duplicatePinLabel=Pin {0} in Element {1} exitiert mehrfach
err_pin_N0_atElement_N1_notFound=Pin {0} von Element {1} wurde nicht gefunden
err_noValueSetFor_N0_atElement_N1=Kein Wert 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
err_spitterDefSyntaxError=Fehler in der Definition {0} eines Splitters
err_noShapeFoundFor_N=Es wurde kein Diagramm f\u00FCr {0} gefunden.
err_invalidFileFormat=Ung\u00FCltiges Dateiformat
err_readOfHighZ=Lesen einer hochohmigen Leitung
err_notAllOutputsSameBits=Es haben nicht alle Ausg\u00E4nge die gleiche Bitbreite
err_notAllOutputsSupportHighZ=Wenn mehrere Ausg\u00E4nge verbunden sind, m\u00FCssen alle Ausg\u00E4nge Tri-State Ausg\u00E4nge sein
err_breakTimeOut=Nach {0} Zyklen ist kein Break aufgetreten
err_labelNotConnectedToNet_N=Ein Tunnel {0} ist nicht verbunden!
err_DFlipflopWithoutALabel=Flipflop hat keine Bezeichnung!
err_analyseNoInputs=Die Schaltung hat keine benannten Eing\u00E4nge
err_analyseNoOutputs=Die Schaltung hat keine benannten Ausg\u00E4nge
err_analyseValue_N_IsNotBinary=Der Wert {0} hat mehr als ein Bit.
err_containsVarAndNotVar=Enth\u00E4lt [var] und [nicht var]
err_varNotDefined_N=Variable {0} ist nicht definiert.
err_exact_N0_valuesNecessaryNot_N1=Es sind {0} Variablen erforderlich, nicht {1}
err_builder_exprNotSupported=Ausdruck {0} wird nicht unterst\u00FCtzt.
err_builder_operationNotSupported=Operation {0} wird nicht unterst\u00FCtzt.
err_toManyInputs_N=Zu viele Eing\u00E4nge. Es sind nur {0} Eing\u00E4nge erlaubt.
err_oneResultIsRequired=Table zu klein: Mindestens ein Ergebnis ist erforderlich!
err_tableBecomesToSmall=Es sind mindestens zwei Eing\u00E4nge erforderlich!
err_varNotAllowedInCUPL_N= In CUPL ist die Variable {0} nicht erlaubt!
err_pinMap_Pin_N_AssignedTwicerPin=Pin {0} doppelt belegt!
err_pinMap_toMannyInputsDefined=Zu viele Eing\u00E4nge definiert!
err_pinMap_toMannyOutputsDefined=Zu viele Ausg\u00E4nge definiert!
err_pinMap_noEqualsfound=Kein \"=\" gefunden!
err_pinMap_NoNameForPin_N=Kein Name f\u00FCr Pin {0}
err_pinMap_input_N_notAllowed=Eingang {0} ist nicht erlaubt!
err_pinMap_output_N_notAllowed=Ausgang {0} ist nicht erlaubt!
err_cannotAnalyse_N=Element {0} kann nicht analysiert werden.
err_ffNeedsToBeConnectedToClock=Flipflops m\u00FCssen direkt mit dem Takt verbunden sein.
err_aSingleClockNecessary=Es darf nur einen Takt geben.
attr_dialogTitle=Eigenschaften
msg_errorEditingValue=Fehler bei der Eingabe eines Wertes
msg_color=Farbe
msg_errorImportingModel=Fehler beim Import einer Schaltung
msg_errorCreatingModel=Fehler beim Erzeugen der Schaltung
msg_errorWritingFile=Fehler beim Schreiben einer Datei
msg_errorReadingFile=Fehler beim Lesen einer Datei
msg_errorCalculatingStep=Fehler beim Berechnen eines Schrittes
msg_missingShape_N=Es fehlt ein Diagramm f\u00FCr {0}
msg_fastRunError=Ein Fehler beim schnellen Lauf
msg_errorReadingListing_N0=Fehler beim Laden des Listings {0}
msg_clockError=Fehler bei der Berechnung einer Takt\u00E4nderung
msg_frequency_N=Die maximale Frequenz ber\u00E4gt {0}Hz.
msg_annalyseErr=Fehler bei der Analyse der Schaltung
msg_errorDuringCalculation=Fehler w\u00E4hrend der Vereinfachung.
msg_N_nodes={0} aktive Elemente
msg_restartNeeded=Die \u00C4nderung erfordert einen Neustart!
msg_pinMap_inputs=Eing\u00E4nge
msg_pinMap_outputs=Ausg\u00E4nge
msg_pinMap_pin_N_is_N=Pin {0}: {1}
msg_pinMap_notUsed=nicht verwendet
stat_clocks={0} Halbzyklen
btn_edit=Bearbeiten
btn_load=Laden
btn_reload=Neu Laden
btn_reload_tt=Letzte Datei noch einmal laden
btn_discard=Verwerfen
btn_save=Speichern
btn_editFurther=Weiter bearbeiten
tt_moveItemUp=Eintrag nach oben schieben
tt_moveItemDown=Eintrag nach unten schieben
tt_deleteItem=Eintrag l\u00F6schen
menu_file=Datei
menu_new=Neu
menu_open=\u00D6ffnen
menu_openWin=\u00D6ffnen in neuem Fenster
menu_openWin_tt=\u00D6ffnet eine Schaltung in einem neuen Fenster
menu_openRecent=Zuletzt verwendet
menu_save=Speichern
menu_saveAs=Speichern unter
menu_elements=Elemente
menu_custom=Benutzerdefiniert
menu_import=Importieren
menu_import_tt=Importiert eine Schaltung als verwendbares Bauteil
menu_refresh=Alle neu laden
menu_refresh_tt=Alle importierten Schaltungen werden neu geladen
menu_element=Elemente bearbeiten
menu_element_tt=Bearbeitet die vorhandenen Elemente oder dessen Eigenschaften
menu_edit=Bearbeiten
menu_orderInputs=Sortieren der Eing\u00E4nge
menu_orderInputs_tt=Sortiert die Eing\u00E4nge f\u00FCr die Verwendung als eingebettete Schaltung
menu_orderOutputs=Sortieren der Ausg\u00E4nge
menu_orderOutputs_tt=Sortiert die Ausg\u00E4nge f\u00FCr die Verwendung als eingebettete Schaltung
menu_orderMeasurements=Sortieren der Messwerte
menu_orderMeasurements_tt=Sortiert die Messwerte f\u00FCr die grafische Anzeige und die Tabellenansicht
menu_run=Start
menu_run_tt=Startet die Simulation der Schaltung
menu_step=Schritt
menu_step_tt=F\u00FChrt einen Einzelgatterschritt aus
menu_micro=Gatterschrittmodus
menu_micro_tt=Startet die Schaltung im Gatterschrittmodus
menu_speedTest=Geschwindigkeitstest
menu_speedTest_tt=F\u00FChrt einen Geschwindigkeitstest durch. Es wird die maximal m\u00F6gliche Taktfrequenz ermittelt
menu_help=Hilfe
menu_editAttributes=Schaltungsattribute bearbeiten
menu_editAttributes_tt=Diese Attribute beeinflussen die Schaltung, wenn sie in andere Schaltungen eingebettet wird.
menu_fast=Schneller Lauf
menu_fast_tt=F\u00FChrt die Schaltung aus, bis ein Stopsignal \u00FCber ein BRK-Element detektiert wird.
menu_export=Export
menu_exportPNGSmall=Export PNG klein
menu_exportPNGLarge=Export PNG gro\u00DF
menu_exportSVG=Export SVG
menu_exportSVGLaTex=Export SVG+LaTeX
menu_delete=L\u00F6schen
menu_delete_tt=L\u00F6scht ausgew\u00E4hlte Elemente
menu_editRunAttributes=Simulationseinstellungen
menu_editRunAttributes_tt=Einstellungen f\u00FCr den Start der Simulation
menu_saveData=Daten speichern
menu_saveData_tt=Speichert die Daten als CSV Datei
menu_analyse=Analyse
menu_analyse_tt=Analyse der aktuellen Schaltung
menu_synthesise=Synthese
menu_synthesise_tt=Erzeugt minimale boolsche Ausdr\u00FCcke, welche durch eine Wahrheitstabelle beschrieben werden.
menu_view=Ansicht
menu_maximize=Maximieren
menu_zoomIn=Vergr\u00F6\u00DFern
menu_zoomOut=Verkleinern
menu_table_new=Neu
menu_table_N_variables={0} Variablen
menu_table_new_combinatorial=Kombintorisch
menu_table_new_sequential=Automat
menu_table_reorder=Umsortieren
menu_table_inputs=Eing\u00E4nge
menu_table_outputs=Ausg\u00E4nge
menu_table_newColumns=Spalten hinzuf\u00FCgen
menu_table_columnsAdd=Ergebnisspalte hinzuf\u00FCgen
menu_table_columnsAdd_tt=F\u00FCgt der Tabelle eine Ergebnisspalte hinzu.
menu_table_columnsAddVariable=Variable hinzuf\u00FCgen
menu_table_columnsAddVariable_tt=F\u00FCgt der Tabelle eine Variablenspalte hinzu.
menu_table_create=Erzeugen
menu_table_createCircuit=Schaltung
menu_table_createCircuit_tt=Erzeugt eine Schaltung, welche der Wahrheitstabelle entspricht.
menu_table_createNAnd=Schaltung mit NAnd-Gattern
menu_table_createNAnd_tt=Erzeugt eine Schaltung, welche der Wahrheitstabelle entspricht nur mit NAnd-Gattern.
menu_table_createNOr=Schaltung mit NOr-Gattern
menu_table_createNOr_tt=Erzeugt eine Schaltung, welches der Wahrheitstabelle entspricht nur mit NOr-Gattern.
menu_table_createTwo=Schaltung mit Gattern mit zwei Eing\u00E4ngen
menu_table_createTwo_tt=Erzeugt eine Schaltung und verwendt nur Gatter mit zwei Eing\u00E4ngen
menu_table_createNAndTwo=Schaltung mit NAnd-Gattern mit zwei Eing\u00E4ngen
menu_table_createNAndTwo_tt=Erzeugt eine Schaltung, welches der Wahrheitstabelle entspricht nur mit NAnd-Gattern mit zwei Eing\u00E4ngen.
menu_table_createNOrTwo=Schaltung mit NOr-Gattern mit zwei Eing\u00E4ngen
menu_table_createNOrTwo_tt=Erzeugt eine Schaltung, welches der Wahrheitstabelle entspricht nur mit NOr-Gattern mit zwei Eing\u00E4ngen.
menu_table_createCUPL=CUPL
menu_table_createCUPL_tt=Erzeugt eine CUPL Quelldatei welche die Schaltung beschreibt.
menu_table_create_hardware=Bausteine
menu_table_create_jedec=JEDEC (*.jed)
menu_table_create_jedec_tt=Erzeugt eine JEDEC Datei f\u00FCr den Baustein
menu_table_exportTableLaTeX=Export LaTeX
menu_copy=Kopieren
menu_paste=Einf\u00FCgen
menu_rotate=Rotieren
menu_editSettings=Einstellungen
menu_editSettings_tt=Bearbeitet die globalen Einstellungen
menu_about=\u00DCber Digital
win_saveChanges=\u00C4nderungen speichern?
win_confirmExit=Beenden best\u00E4tigen!
win_stateChanged=Die Datei wurde ver\u00E4ndert!
win_measures=Messwerte
win_measures_microstep=Messwerte im Einzelgattermodus
win_measures_fullstep=Messwerte im Vollschrittmodus
win_listing=Listing
win_table=Tabelle
win_allSolutions=Alle m\u00F6glichen L\u00F6sungen
win_pinMapDialog=Pin-Zuordnung
win_table_exportDialog=Export

View File

@ -0,0 +1,408 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="addr">Adresse</string>
<string name="attr_dialogTitle">Eigenschaften</string>
<string name="attr_openCircuit">Anzeigen</string>
<string name="attr_openCircuitLabel">Enthaltene Schaltung:</string>
<string name="attr_openCircuit_tt">Öffnet die Schaltung in einem neuen Fenster.</string>
<string name="btn_discard">Verwerfen</string>
<string name="btn_edit">Bearbeiten</string>
<string name="btn_editFurther">Weiter bearbeiten</string>
<string name="btn_load">Laden</string>
<string name="btn_reload">Neu Laden</string>
<string name="btn_reload_tt">Letzte Datei noch einmal laden</string>
<string name="btn_save">Speichern</string>
<string name="digital">Digital</string>
<string name="elem_Add">Addierer</string>
<string name="elem_And">Und</string>
<string name="elem_Break">Break</string>
<string name="elem_Break_tt">Wenn der Eingang dieses Elementes zu Eins wird, wird der schnelle Simulationslauf
beendet.
Dieses Element kann verwendet werden, um einen Assemblerbefehl BRK zu implementieren.
Es kann dann ein Programm bis zum nächsten BRK-Befehl ausgeführt werden.
</string>
<string name="elem_Button">Taster</string>
<string name="elem_Clock">Takt</string>
<string name="elem_Clock_tt">Ein Takstignal. Dieses Taksignal kann über die Echtzeituhr gesteuert werden.</string>
<string name="elem_Comparator">Komparator</string>
<string name="elem_Const">Konstante</string>
<string name="elem_Const_tt">Eine einfache Konstante.</string>
<string name="elem_Counter">Zähler</string>
<string name="elem_D_FF">D_FF</string>
<string name="elem_Data">Messwertgraph</string>
<string name="elem_Data_tt">Zeigt einen Messwertgraphen innerhalb des Schaltkreisbereichs.
Es können sowohl komplette Takte als auch einzelne Gatter-Veränderungen angezeigt werden.
</string>
<string name="elem_Decode_pin_sel">Mit dieser Leitung wird der zu aktivierende Ausgang ausgewählt</string>
<string name="elem_Decoder">Decoder</string>
<string name="elem_Decoder_tt">Eine wählbare Ausgangsleitung geht auf Eins, alle anderen sind Null.</string>
<string name="elem_Delay">Verzögerung</string>
<string name="elem_Delay_tt">Verzögert ein Signal für eine Gatterlaufzeit.</string>
<string name="elem_Demultiplexer">Demultiplexer</string>
<string name="elem_Demultiplexer_pin_sel">Mit dieser Leitung wird der Ausgang ausgewählt</string>
<string name="elem_Demultiplexer_tt">Gibt ein Eingangssignal auf einem wählbaren Ausgang aus, die anderen Ausgänge
sind Null.
</string>
<string name="elem_Driver">Treiber</string>
<string name="elem_DriverInvSel">Treiber, invertierte Auswahl</string>
<string name="elem_In">Eingang</string>
<string name="elem_In_tt">Ein Eingang der genutzt werden kann, um eine Verbindung zu einem eingebettetem Element
herzustellen.
</string>
<string name="elem_JK_FF">JK_FF</string>
<string name="elem_LED">LED</string>
<string name="elem_LookUpTable">LookUpTable</string>
<string name="elem_LookUpTable_tt">Erzeugt einen Ausgabewert aus einer Tabelle.
Auf diese Weise kann jedes kombinatorische Gatter erzeugt werden.
</string>
<string name="elem_Mul">Multiplikator</string>
<string name="elem_Multiplexer">Multiplexer</string>
<string name="elem_Multiplexer_pin_sel">Mit dieser Leitung wird der Eingang ausgewählt</string>
<string name="elem_Multiplexer_tt">Wählt eine der Eingangsleitungen aus, und gibt dessen Wert am Ausgang aus.
</string>
<string name="elem_NAnd">Nicht Und</string>
<string name="elem_NOr">Nicht Oder</string>
<string name="elem_Not">Nicht</string>
<string name="elem_Or">Oder</string>
<string name="elem_Out">Ausgang</string>
<string name="elem_Out_tt">Ein Ausgang der genutzt werden kann, um eine Verbindung zu einem eingebettetem Element
herzustellen.
</string>
<string name="elem_Probe">Messwert</string>
<string name="elem_Probe_tt">Ein Messwert, welcher im Messwertgraphen dargestellt werden kann.</string>
<string name="elem_RAMDualPort">RAMDualPort</string>
<string name="elem_RAMDualPort_pin_addr">Die Adresse, an der gelesen und geschrieben wird.</string>
<string name="elem_RAMDualPort_pin_c">Der Takt</string>
<string name="elem_RAMDualPort_pin_dataIn">Der Daten die gespeichert werden sollen</string>
<string name="elem_RAMDualPort_pin_dataOut">Der Datenausgang</string>
<string name="elem_RAMDualPort_pin_ld">Ist diese Leitung high, wird der Ausgang aktiviert, und die Daten liegen dort
an
</string>
<string name="elem_RAMDualPort_pin_str">Ist diese Leitung high wird das Datenwort gespeichert, wenn der Takt
ansteigt.
</string>
<string name="elem_RAMDualPort_tt">Ein RAM Modul mit getrennten Anschlüssen für Lesen und Schreiben.
Ein gibt einen Eingang für das Beschreiben und einen Ausgang für das Auslesen der gespeicherten Daten.
</string>
<string name="elem_RAMSinglePort">RAMSinglePort</string>
<string name="elem_RAMSinglePort_pin_addr">Der Adresseingang.</string>
<string name="elem_RAMSinglePort_pin_c">Takt</string>
<string name="elem_RAMSinglePort_pin_d">Der bidirektionale Datenanschluß.</string>
<string name="elem_RAMSinglePort_pin_ld">Ist dieser Eingang 1 wird das Datenwort ausgegeben.</string>
<string name="elem_RAMSinglePort_pin_str">Ist dieser Eingang 1 wird mit steigendem Takt das Datenwort gespeichert.
</string>
<string name="elem_RAMSinglePort_tt">Ein RAM Module mit einem bidirektionellem Anschluss für das Lesen und Schreiben
von Daten.
</string>
<string name="elem_ROM">ROM</string>
<string name="elem_ROM_pin_address">Adresse des Datenwortes welches ausgelesen werden soll.</string>
<string name="elem_ROM_pin_data">Hier wird das Datenwort ausgegeben, wenn der Baustein aktiviert ist.</string>
<string name="elem_ROM_pin_sel">Ist dieser Pin high (1) ist der Ausgang aktiviert. Ist er low (0) ist der Ausgang
hochohmig.
</string>
<string name="elem_RS_FF">RS_FF</string>
<string name="elem_Register">Register</string>
<string name="elem_Reset">Reset</string>
<string name="elem_Reset_tt">Der Ausgang dieses Elements ist Null, solange sich die Schaltung nach dem Einschalten
in der Stabilisierungsphase befindet.
Hat sich die Schaltung stabilisiert wird der Ausgang auf Eins gesetzt.
</string>
<string name="elem_Seven-Seg">Siebensegmentanzeige</string>
<string name="elem_Seven-Seg-Hex">Siebensegmentanzeige Hex</string>
<string name="elem_Seven-Seg-Hex_tt">Siebensegmentanzeige mit einem 4 Bit hexadezimalem Eingang.</string>
<string name="elem_Seven-Seg_tt">Siebensegmentanzeige bei der jedes Segment über einen eigenen Eingang gesteuert
werden kann.
</string>
<string name="elem_Splitter">Splitter</string>
<string name="elem_Splitter_tt">Führt mehrere Leitungen zu einer gemeinsamen Leitung zusammen, bzw. splittet diese
wieder auf.
</string>
<string name="elem_Sub">Subtrahierer</string>
<string name="elem_T_FF">T_FF</string>
<string name="elem_Terminal">Terminal</string>
<string name="elem_Terminal_pin_C">Terminal_pin_C</string>
<string name="elem_Terminal_pin_D">Terminal_pin_D</string>
<string name="elem_Terminal_tt">Ein Terminal auf dem ASCII-Zeichen ausgegeben werden können. Öffnet ein eigenes
Fenster.
</string>
<string name="elem_Text">Text</string>
<string name="elem_Text_tt">Zeigt einen einfachen Text in der Schaltung an.</string>
<string name="elem_XNOr">Nicht Exclusiv Oder</string>
<string name="elem_XOr">Exclusiv Oder</string>
<string name="err_DFlipflopWithoutALabel">Flipflop hat keine Bezeichnung!</string>
<string name="err_N_isNotInputOrOutput">Pin {0} in Element {1} ist werder Eingang noch Ausgang</string>
<string name="err_aSingleClockNecessary">Es darf nur einen Takt geben.</string>
<string name="err_analyseNoInputs">Die Schaltung hat keine benannten Eingänge</string>
<string name="err_analyseNoOutputs">Die Schaltung hat keine benannten Ausgänge</string>
<string name="err_analyseValue_N_IsNotBinary">Der Wert {0} hat mehr als ein Bit.</string>
<string name="err_breakTimeOut">Nach {0} Zyklen ist kein Break aufgetreten</string>
<string name="err_builder_exprNotSupported">Ausdruck {0} wird nicht unterstützt.</string>
<string name="err_builder_operationNotSupported">Operation {0} wird nicht unterstützt.</string>
<string name="err_burnError">Es sind mehrere zusammengeschaltete Ausgänge gleichzeitig aktiv</string>
<string name="err_cannotAnalyse_N">Element {0} kann nicht analysiert werden.</string>
<string name="err_containsVarAndNotVar">Enthält [var] und [nicht var]</string>
<string name="err_duplicateElement_N">Doppeltes Element {0}</string>
<string name="err_duplicatePinLabel">Pin {0} in Element {1} exitiert mehrfach</string>
<string name="err_element_N_notFound">Element {0} nicht gefunden</string>
<string name="err_exact_N0_valuesNecessaryNot_N1">Es sind {0} Variablen erforderlich, nicht {1}</string>
<string name="err_ffNeedsToBeConnectedToClock">Flipflops müssen direkt mit dem Takt verbunden sein.</string>
<string name="err_invalidFileFormat">Ungültiges Dateiformat</string>
<string name="err_isAlreadyInitialized">Die Schaltung wurde bereits initialisiert</string>
<string name="err_labelNotConnectedToNet_N">Ein Tunnel {0} ist nicht verbunden!</string>
<string name="err_moreThenOneClocksFound">Es gibt mehr als einen Taktgeber</string>
<string name="err_needs_N0_bits_found_N2_bits">Es werden {0} Bits benötigt, aber es wurden {1} Bits gefunden
</string>
<string name="err_netOfPin_N_notFound">Das Netz von Pin {0} wurde nicht gefunden</string>
<string name="err_noClockFound">Kein Taktgeber in der Schaltung gefunden</string>
<string name="err_noInputsAvailable">Es sind keine Eingänge vorhanden</string>
<string name="err_noShapeFoundFor_N">Es wurde kein Diagramm für {0} gefunden.</string>
<string name="err_noValueSetFor_N0_atElement_N1">Kein Wert gesetzt für {0} an Element {1}</string>
<string name="err_notAllOutputsSameBits">Es haben nicht alle Ausgänge die gleiche Bitbreite</string>
<string name="err_notAllOutputsSupportHighZ">Wenn mehrere Ausgänge verbunden sind, müssen alle Ausgänge Tri-State
Ausgänge sein
</string>
<string name="err_notInitialized">Die Schaltung ist nicht initialisiert</string>
<string name="err_onOutConnectedToWire">Kein Ausgang mit der Leitung verbunden</string>
<string name="err_oneResultIsRequired">Table zu klein: Mindestens ein Ergebnis ist erforderlich!</string>
<string name="err_output_N_notDefined">Ausgang {0} ist nicht definiert</string>
<string name="err_pinMap_NoNameForPin_N">Kein Name für Pin {0}</string>
<string name="err_pinMap_Pin_N_AssignedTwicerPin">Pin {0} doppelt belegt!</string>
<string name="err_pinMap_input_N_notAllowed">Eingang {0} ist nicht erlaubt!</string>
<string name="err_pinMap_noEqualsfound">Kein &quot;=&quot; gefunden!</string>
<string name="err_pinMap_output_N_notAllowed">Ausgang {0} ist nicht erlaubt!</string>
<string name="err_pinMap_toMannyInputsDefined">Zu viele Eingänge definiert!</string>
<string name="err_pinMap_toMannyOutputsDefined">Zu viele Ausgänge definiert!</string>
<string name="err_pinNotPresent">Pin nicht vorhanden</string>
<string name="err_pinWithoutName">Es gibt einen Pin ohne einen Namen in {0}</string>
<string name="err_pin_N0_atElement_N1_notFound">Pin {0} von Element {1} wurde nicht gefunden</string>
<string name="err_pin_N_notFound">Pin {0} wurde nicht gefunden.</string>
<string name="err_pin_N_unknown">Pin {0} ist unbekannt</string>
<string name="err_readOfHighZ">Lesen einer hochohmigen Leitung</string>
<string name="err_seemsToOscillate">Die Schaltung scheint zu oszillieren!
Zur Analyse können Sie die Schaltung im Gatterschrittmodus ausführen.
</string>
<string name="err_selectorInputCountMismatch">Die Zahl der Eingänge passt nicht zur Bitbreite der Auswahlleitung
</string>
<string name="err_spitterDefSyntaxError">Fehler in der Definition {0} eines Splitters</string>
<string name="err_splitterBitsMismatch">Die Bitzahl am Spiltter passt nicht</string>
<string name="err_tableBecomesToSmall">Es sind mindestens zwei Eingänge erforderlich!</string>
<string name="err_toManyInputs_N">Zu viele Eingänge. Es sind nur {0} Eingänge erlaubt.</string>
<string name="err_varNotAllowedInCUPL_N">In CUPL ist die Variable {0} nicht erlaubt!</string>
<string name="err_varNotDefined_N">Variable {0} ist nicht definiert.</string>
<string name="key_AddrBits">Adress Bits</string>
<string name="key_Bits">Datenbits</string>
<string name="key_Color">Farbe</string>
<string name="key_Cycles">Timeout Zyklen</string>
<string name="key_Cycles_tt">Wenn nach dieser Anzahl von Takten kein Break eingegangen ist, wird ein Fehler
erzeugt
</string>
<string name="key_Data">Daten</string>
<string name="key_Default">Vorgabe</string>
<string name="key_Default_tt">Wird beim Schaltungsstart gesetzt</string>
<string name="key_Description">Beschreibung</string>
<string name="key_Frequency">Frequenz/Hz</string>
<string name="key_Frequency_tt">Gibt die Frequenz an, wenn der Echtzeittakt aktiviert ist</string>
<string name="key_IEEEShapes">Verwende US Symbole (IEEE 91-1984)</string>
<string name="key_IEEEShapes_tt">Verwende IEEE 91-1984 Symbole anstelle der rechteckige Symbole</string>
<string name="key_InputSplitting">Eingangsaufteilung</string>
<string name="key_InputSplitting_tt">Zum Beispiel &quot;4,2,2&quot; oder &quot;[Bits]*[Anzahl] wie &quot;1*16&quot;
für 16 einzelne Bits
</string>
<string name="key_Inputs">Anzahl der Eingänge</string>
<string name="key_Label">Bezeichnung</string>
<string name="key_Language">Sprache</string>
<string name="key_NetName">Netzname</string>
<string name="key_NetName_tt">Alle Netze mit identischem Namen werden miteinander verbunden.</string>
<string name="key_OutputSplitting">Ausgangsaufteilung</string>
<string name="key_OutputSplitting_tt">Zum Beispiel &quot;4,2,2&quot; oder &quot;[Bits]*[Anzahl] wie &quot;1*16&quot;
für 16 einzelne Bits
</string>
<string name="key_SelectorBits">Anzahl der Auswahlbits</string>
<string name="key_Signed">Vorzeichen</string>
<string name="key_Value">Wert</string>
<string name="key_Width">Breite</string>
<string name="key_Width_tt">Breite des Symbols wenn diese Schaltung in eine andere eingefügt wird.</string>
<string name="key_flipSelPos">Tausche Position des Selectors</string>
<string name="key_intFormat">Zahlenformat</string>
<string name="key_intFormat_ascii">ASCII</string>
<string name="key_intFormat_bin">Binär</string>
<string name="key_intFormat_dec">Dezimal</string>
<string name="key_intFormat_def">Vorgabe</string>
<string name="key_intFormat_hex">Hexadezimal</string>
<string name="key_isHighZ">Eingang kann hochohmig sein</string>
<string name="key_maxStepCount">Maximale Messpunktezahl</string>
<string name="key_microStep">Zeige Einzelgatterschritte</string>
<string name="key_rotation">Rotation</string>
<string name="key_runRealTime">Echtzeittakt starten</string>
<string name="key_runRealTime_tt">Wenn eingeschaltet, wird beim Start der Schaltung der Echtzeittakt gestartet
</string>
<string name="key_showDataGraph">Zeige Messwertegraph</string>
<string name="key_showDataGraphMicro">Zeige Messwertgraph im Gatterschrittmodus</string>
<string name="key_showDataTable">Zeige Messwertetabelle</string>
<string name="key_showList">Zeige Listing an, wenn verfügbar</string>
<string name="key_termHeight">Zeilen</string>
<string name="key_termWidth">Zeichen pro Zeile</string>
<string name="key_valueIsProbe">Als Messwert verwenden</string>
<string name="key_valueIsProbe_tt">Wenn gesetzt, taucht der Wert als Messwert in Graph und Tabelle auf</string>
<string name="lib_Logic">Logisch</string>
<string name="lib_arithmetic">Arithmetik</string>
<string name="lib_flipFlops">FlipFlops</string>
<string name="lib_io">IO</string>
<string name="lib_memory">Speicher</string>
<string name="lib_mux">Multiplexer</string>
<string name="lib_wires">Leitungen</string>
<string name="menu_about">Über Digital</string>
<string name="menu_analyse">Analyse</string>
<string name="menu_analyse_tt">Analyse der aktuellen Schaltung</string>
<string name="menu_copy">Kopieren</string>
<string name="menu_custom">Benutzerdefiniert</string>
<string name="menu_delete">Löschen</string>
<string name="menu_delete_tt">Löscht ausgewählte Elemente</string>
<string name="menu_edit">Bearbeiten</string>
<string name="menu_editAttributes">Schaltungsattribute bearbeiten</string>
<string name="menu_editAttributes_tt">Diese Attribute beeinflussen die Schaltung, wenn sie in andere Schaltungen
eingebettet wird.
</string>
<string name="menu_editRunAttributes">Simulationseinstellungen</string>
<string name="menu_editRunAttributes_tt">Einstellungen für den Start der Simulation</string>
<string name="menu_editSettings">Einstellungen</string>
<string name="menu_editSettings_tt">Bearbeitet die globalen Einstellungen</string>
<string name="menu_element">Elemente bearbeiten</string>
<string name="menu_element_tt">Bearbeitet die vorhandenen Elemente oder dessen Eigenschaften</string>
<string name="menu_elements">Elemente</string>
<string name="menu_export">Export</string>
<string name="menu_exportPNGLarge">Export PNG groß</string>
<string name="menu_exportPNGSmall">Export PNG klein</string>
<string name="menu_exportSVG">Export SVG</string>
<string name="menu_exportSVGLaTex">Export SVG+LaTeX</string>
<string name="menu_fast">Schneller Lauf</string>
<string name="menu_fast_tt">Führt die Schaltung aus, bis ein Stopsignal über ein BRK-Element detektiert wird.
</string>
<string name="menu_file">Datei</string>
<string name="menu_help">Hilfe</string>
<string name="menu_import">Importieren</string>
<string name="menu_import_tt">Importiert eine Schaltung als verwendbares Bauteil</string>
<string name="menu_maximize">Maximieren</string>
<string name="menu_micro">Gatterschrittmodus</string>
<string name="menu_micro_tt">Startet die Schaltung im Gatterschrittmodus</string>
<string name="menu_new">Neu</string>
<string name="menu_open">Öffnen</string>
<string name="menu_openRecent">Zuletzt verwendet</string>
<string name="menu_openWin">Öffnen in neuem Fenster</string>
<string name="menu_openWin_tt">Öffnet eine Schaltung in einem neuen Fenster</string>
<string name="menu_orderInputs">Sortieren der Eingänge</string>
<string name="menu_orderInputs_tt">Sortiert die Eingänge für die Verwendung als eingebettete Schaltung</string>
<string name="menu_orderMeasurements">Sortieren der Messwerte</string>
<string name="menu_orderMeasurements_tt">Sortiert die Messwerte für die grafische Anzeige und die Tabellenansicht
</string>
<string name="menu_orderOutputs">Sortieren der Ausgänge</string>
<string name="menu_orderOutputs_tt">Sortiert die Ausgänge für die Verwendung als eingebettete Schaltung</string>
<string name="menu_paste">Einfügen</string>
<string name="menu_refresh">Alle neu laden</string>
<string name="menu_refresh_tt">Alle importierten Schaltungen werden neu geladen</string>
<string name="menu_rotate">Rotieren</string>
<string name="menu_run">Start</string>
<string name="menu_run_tt">Startet die Simulation der Schaltung</string>
<string name="menu_save">Speichern</string>
<string name="menu_saveAs">Speichern unter</string>
<string name="menu_saveData">Daten speichern</string>
<string name="menu_saveData_tt">Speichert die Daten als CSV Datei</string>
<string name="menu_speedTest">Geschwindigkeitstest</string>
<string name="menu_speedTest_tt">Führt einen Geschwindigkeitstest durch. Es wird die maximal mögliche Taktfrequenz
ermittelt
</string>
<string name="menu_step">Schritt</string>
<string name="menu_step_tt">Führt einen Einzelgatterschritt aus</string>
<string name="menu_synthesise">Synthese</string>
<string name="menu_synthesise_tt">Erzeugt minimale boolsche Ausdrücke, welche durch eine Wahrheitstabelle
beschrieben werden.
</string>
<string name="menu_table_N_variables">{0} Variablen</string>
<string name="menu_table_columnsAdd">Ergebnisspalte hinzufügen</string>
<string name="menu_table_columnsAddVariable">Variable hinzufügen</string>
<string name="menu_table_columnsAddVariable_tt">Fügt der Tabelle eine Variablenspalte hinzu.</string>
<string name="menu_table_columnsAdd_tt">Fügt der Tabelle eine Ergebnisspalte hinzu.</string>
<string name="menu_table_create">Erzeugen</string>
<string name="menu_table_createCUPL">CUPL</string>
<string name="menu_table_createCUPL_tt">Erzeugt eine CUPL Quelldatei welche die Schaltung beschreibt.</string>
<string name="menu_table_createCircuit">Schaltung</string>
<string name="menu_table_createCircuit_tt">Erzeugt eine Schaltung, welche der Wahrheitstabelle entspricht.</string>
<string name="menu_table_createNAnd">Schaltung mit NAnd-Gattern</string>
<string name="menu_table_createNAndTwo">Schaltung mit NAnd-Gattern mit zwei Eingängen</string>
<string name="menu_table_createNAndTwo_tt">Erzeugt eine Schaltung, welches der Wahrheitstabelle entspricht nur mit
NAnd-Gattern mit zwei Eingängen.
</string>
<string name="menu_table_createNAnd_tt">Erzeugt eine Schaltung, welche der Wahrheitstabelle entspricht nur mit
NAnd-Gattern.
</string>
<string name="menu_table_createNOr">Schaltung mit NOr-Gattern</string>
<string name="menu_table_createNOrTwo">Schaltung mit NOr-Gattern mit zwei Eingängen</string>
<string name="menu_table_createNOrTwo_tt">Erzeugt eine Schaltung, welches der Wahrheitstabelle entspricht nur mit
NOr-Gattern mit zwei Eingängen.
</string>
<string name="menu_table_createNOr_tt">Erzeugt eine Schaltung, welches der Wahrheitstabelle entspricht nur mit
NOr-Gattern.
</string>
<string name="menu_table_createTwo">Schaltung mit Gattern mit zwei Eingängen</string>
<string name="menu_table_createTwo_tt">Erzeugt eine Schaltung und verwendt nur Gatter mit zwei Eingängen</string>
<string name="menu_table_create_hardware">Bausteine</string>
<string name="menu_table_create_jedec">JEDEC (*.jed)</string>
<string name="menu_table_create_jedec_tt">Erzeugt eine JEDEC Datei für den Baustein</string>
<string name="menu_table_exportTableLaTeX">Export LaTeX</string>
<string name="menu_table_inputs">Eingänge</string>
<string name="menu_table_new">Neu</string>
<string name="menu_table_newColumns">Spalten hinzufügen</string>
<string name="menu_table_new_combinatorial">Kombintorisch</string>
<string name="menu_table_new_sequential">Automat</string>
<string name="menu_table_outputs">Ausgänge</string>
<string name="menu_table_reorder">Umsortieren</string>
<string name="menu_view">Ansicht</string>
<string name="menu_zoomIn">Vergrößern</string>
<string name="menu_zoomOut">Verkleinern</string>
<string name="message">Digital
Ein einfacher Simulator für digitale Schaltkreise.
Geschrieben von Helmut Neemann 2016
</string>
<string name="msg_N_nodes">{0} aktive Elemente</string>
<string name="msg_annalyseErr">Fehler bei der Analyse der Schaltung</string>
<string name="msg_clockError">Fehler bei der Berechnung einer Taktänderung</string>
<string name="msg_color">Farbe</string>
<string name="msg_errorCalculatingStep">Fehler beim Berechnen eines Schrittes</string>
<string name="msg_errorCreatingModel">Fehler beim Erzeugen der Schaltung</string>
<string name="msg_errorDuringCalculation">Fehler während der Vereinfachung.</string>
<string name="msg_errorEditingValue">Fehler bei der Eingabe eines Wertes</string>
<string name="msg_errorImportingModel">Fehler beim Import einer Schaltung</string>
<string name="msg_errorReadingFile">Fehler beim Lesen einer Datei</string>
<string name="msg_errorReadingListing_N0">Fehler beim Laden des Listings {0}</string>
<string name="msg_errorWritingFile">Fehler beim Schreiben einer Datei</string>
<string name="msg_fastRunError">Ein Fehler beim schnellen Lauf</string>
<string name="msg_frequency_N">Die maximale Frequenz berägt {0}Hz.</string>
<string name="msg_missingShape_N">Es fehlt ein Diagramm für {0}</string>
<string name="msg_pinMap_inputs">Eingänge</string>
<string name="msg_pinMap_notUsed">nicht verwendet</string>
<string name="msg_pinMap_outputs">Ausgänge</string>
<string name="msg_pinMap_pin_N_is_N">Pin {0}: {1}</string>
<string name="msg_restartNeeded">Die Änderung erfordert einen Neustart!</string>
<string name="ok">Ok</string>
<string name="rot_0"></string>
<string name="rot_180">180°</string>
<string name="rot_270">270°</string>
<string name="rot_90">90°</string>
<string name="stat_clocks">{0} Halbzyklen</string>
<string name="tt_deleteItem">Eintrag löschen</string>
<string name="tt_moveItemDown">Eintrag nach unten schieben</string>
<string name="tt_moveItemUp">Eintrag nach oben schieben</string>
<string name="win_allSolutions">Alle möglichen Lösungen</string>
<string name="win_confirmExit">Beenden bestätigen!</string>
<string name="win_listing">Listing</string>
<string name="win_measures">Messwerte</string>
<string name="win_measures_fullstep">Messwerte im Vollschrittmodus</string>
<string name="win_measures_microstep">Messwerte im Einzelgattermodus</string>
<string name="win_pinMapDialog">Pin-Zuordnung</string>
<string name="win_saveChanges">Änderungen speichern?</string>
<string name="win_stateChanged">Die Datei wurde verändert!</string>
<string name="win_table">Tabelle</string>
<string name="win_table_exportDialog">Export</string>
</resources>

View File

@ -1,351 +0,0 @@
digital=Digital
message=Digital\nA simple simulator for digital circuits.\n\nWritten bei H.Neemann in 2016
ok=Ok
addr=Address
#Library
lib_Logic=Logic
lib_io=IO
lib_mux=Plexers
lib_wires=Wires
lib_flipFlops=FlipFlops
lib_memory=Memory
lib_arithmetic=Arithmetic
# Attribute Keys
key_Bits=Data Bits
key_Inputs=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/Hz
key_SelectorBits=Number of Selector Bits
key_Signed=Signed
key_Data=Data
key_AddrBits=Address Bits
key_flipSelPos=Flip selector position
key_rotation=Rotation
key_Width=Width
key_Cycles=Timeout cycles
key_termWidth=Characters per line
key_termHeight=Lines
key_valueIsProbe=Use as measurment value
key_showList=Show list file if available
key_showDataTable=Show measurement values
key_showDataGraph=Show measurement graph
key_showDataGraphMicro=Show measurement graph in single gatem step mode
key_maxStepCount=Max number of steps to show
key_microStep=Show single gate steps
key_isHighZ=Is three-state input
key_runRealTime=Start real time clock
key_Description=Description
key_NetName=Netname
key_NetName_tt=All nets with identical name are connected together.
key_IEEEShapes=Use IEEE 91-1984 shapes
key_IEEEShapes_tt=Use IEEE 91-1984 shapes instead of rectangular shapes
key_intFormat=Number Format
key_intFormat_def=default
key_intFormat_dec=decimal
key_intFormat_hex=hex
key_intFormat_bin=bin
key_intFormat_ascii=ascii
key_Language=Language
attr_openCircuitLabel=Included circuit:
attr_openCircuit=Show
attr_openCircuit_tt=Opens the circuit in a new window.
elem_And=And
elem_NAnd=NAnd
elem_Or=Or
elem_NOr=NOr
elem_XOr=XOr
elem_XNOr=XNOr
elem_Not=Not
elem_LookUpTable=LookUpTable
elem_LookUpTable_tt=Gets the output value from a stored table.\nSo this gate can emulate every combinatorial gate.
elem_In=In
elem_In_tt=A input which can be used to connect the circuit if it is included in an other circuit.
elem_Out=Out
elem_Out_tt=A output which can be used to connect the circuit if it is included in an other circuit.
elem_LED=LED
elem_Button=Button
elem_Probe=Probe
elem_Probe_tt=A measurement value which can be shown in the data graph.
elem_Seven-Seg=Seven-Seg
elem_Seven-Seg_tt=Seven Segment Display, every segment has its own input.
elem_Seven-Seg-Hex=Seven-Seg-Hex
elem_Seven-Seg-Hex_tt=Seven Segment Display with a 4 bit input
elem_Terminal=Terminal
elem_Terminal_tt=You can write ASCI characters to this terminal.\nThe terminal opens its own window.
elem_Terminal_pin_D=The data to show in the terminal
elem_Terminal_pin_C=If this pin becomes high the data is displayed
elem_Data=Data graph
elem_Data_tt=Shows a data plot inside of the circuit panel.\nYou can plot complete clock steps or single gate changes.
elem_Multiplexer=Multiplexer
elem_Demultiplexer=Demultiplexer
elem_Decoder=Decoder
elem_Const=Const
elem_Const_tt=A simple constant value.
elem_Splitter=Splitter
elem_Splitter_tt=Splits or creates a wire bundle or a data bus with more than one bit.
elem_Clock=Clock
elem_Clock_tt=A clock signal. Its possible to control it by the real time clock.
elem_Delay=Delay
elem_Delay_tt=Delays the signal by on gate delay
elem_Driver=Driver
elem_DriverInvSel=Driver, inverted select
elem_Reset=Reset
elem_Reset_tt=The output of this element is hold down during the initialisation of the circuit.\nAfter the circuit has stabilized the output goes up.
elem_Break=Break
elem_Break_tt=If the input of this Element becomes high, the fast forward clocking is stopped.\nYou can use the element to implement a BRK assembly instruction.\nThen you can execute the circuit to the next BRK instruction.
elem_RS_FF=RS_FF
elem_JK_FF=JK_FF
elem_D_FF=D_FF
elem_T_FF=T_FF
elem_Register=Register
elem_ROM=ROM
elem_ROM_pin_address=Address of data word to output.
elem_ROM_pin_sel=If the input is high, the output is activated. If it is low, the data output is in high Z state.
elem_ROM_pin_data=The selected data word. Only readable if select input is high.
elem_RAMDualPort=RAMDualPort
elem_RAMDualPort_tt=A RAM module with separate inputs for storing and output for reading the stored data.
elem_RAMDualPort_pin_addr=The address to read and write
elem_RAMDualPort_pin_dataIn=The data to be stored in the RAM
elem_RAMDualPort_pin_str=If this input is high when the clock becomes high, the the data is stored
elem_RAMDualPort_pin_c=Clock
elem_RAMDualPort_pin_ld=If this input is high the output is activated and the data is visible at the output
elem_RAMDualPort_pin_dataOut=The data output pin
elem_RAMSinglePort=RAMSinglePort
elem_RAMSinglePort_tt=A RAM module with a bidirectional connection for reading and writing the data.
elem_RAMSinglePort_pin_addr=The address to read and write
elem_RAMSinglePort_pin_str=If this input is high when the clock becomes high, the the data is stored
elem_RAMSinglePort_pin_c=Clock
elem_RAMSinglePort_pin_ld=If this input is high the output is activated and the data is visible at the output
elem_RAMSinglePort_pin_d=Bidirectional data connection.
elem_Counter=Counter
elem_Add=Add
elem_Sub=Sub
elem_Mul=Mul
elem_Comparator=Comparator
elem_Text=Text
rot_0=0\u00B0
rot_90=90\u00B0
rot_180=180\u00B0
rot_270=270\u00B0
err_seemsToOscillate=Logic seems to oscillate\nTo analyse you can run the circuit in single gate step mode.
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 in {0}
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} in element {1} is not a input or output
err_duplicatePinLabel=Pin {0} in element {1} exists twice
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
err_spitterDefSyntaxError=Syntax error in splitter definition {0}
err_noShapeFoundFor_N=No shape found for Element {0}
err_invalidFileFormat=Invalid file format
err_readOfHighZ=Read of high Z value
err_notAllOutputsSameBits=Not all connected outputs have the same bit count
err_notAllOutputsSupportHighZ=If multiple outputs are connected together, all of them have to be three-state outputs
err_breakTimeOut=Break timeout after {0} cycles
err_varNotDefined_N=Variable {0} not defined
err_containsVarAndNotVar=Contains [var] and [not var]
err_exact_N0_valuesNecessaryNot_N1=Exact {0} variables necessary, not {1}
err_builder_exprNotSupported=Expression {0} not supported
err_builder_operationNotSupported=Operation {0} not supported
err_toManyInputs_N=To many inputs, allowed are {0}
err_oneResultIsRequired=Table to small: One result is required!
err_tableBecomesToSmall=Two inputs are required!
err_varNotAllowedInCUPL_N= Variable {0} is not allowed in CUPL source!
err_pinMap_Pin_N_AssignedTwicerPin=Pin {0} assigned twice!
err_pinMap_toMannyInputsDefined=To manny inputs defined
err_pinMap_toMannyOutputsDefined=To manny outputs defined
err_pinMap_noEqualsfound=No = found!
err_pinMap_NoNameForPin_N=No Name for pin {0}
err_pinMap_input_N_notAllowed=Input {0} not allowed!
err_pinMap_output_N_notAllowed=Output {0} not allowed!
err_cannotAnalyse_N=Cannot analyse Node {0}
err_ffNeedsToBeConnectedToClock=Flipflop needs to be connected to the clock.
err_aSingleClockNecessary=A single clock is necessary.
attr_dialogTitle=Attributes
msg_errorEditingValue=Error editing a atribute value
msg_color=Color
msg_errorImportingModel=Error importing a circuit
msg_errorCreatingModel=Error creating the circuit
msg_errorWritingFile=Error writing a file
msg_errorReadingFile=Error reading a file
msg_errorCalculatingStep=Error calculating a step
msg_missingShape_N=Shape {0} is missing
msg_fastRunError=Error at fast run
msg_errorReadingListing_N0=Error reading the listing {0}
msg_clockError=Error during a clock state change
msg_frequency_N=The maximum frequency is {0}Hz
msg_errorDuringCalculation=Error during simplification
msg_N_nodes={0} nodes
msg_restartNeeded=Change needs a restart to take effect!
msg_pinMap_inputs=Inputs
msg_pinMap_outputs=Onputs
msg_pinMap_pin_N_is_N=Pin {0}: {1}
msg_pinMap_notUsed=not used
stat_clocks={0} half cycles
btn_edit=Edit
btn_load=Load
btn_reload=Reload
btn_reload_tt=Reload last hex file
btn_discard=Discard Changes
btn_save=Save
btn_editFurther=Continue editing
tt_moveItemUp=Move the item up
tt_moveItemDown=Move the item down
tt_deleteItem=Deletes the selected item
menu_file=File
menu_new=New
menu_open=Open
menu_openWin=Open in New Window
menu_openWin_tt=Opens a circuit in a new window
menu_openRecent=Open Recent
menu_save=Save
menu_saveAs=Save As
menu_elements=Elements
menu_custom=Custom
menu_import=Import
menu_import_tt=Imports a circuit as a useable Element!
menu_refresh=Reload
menu_refresh_tt=Reload all imported circuits
menu_element=Edit Elements
menu_element_tt=Edits the circuit. Moves a single Element or edits its properties
menu_edit=Edit
menu_orderInputs=Order Inputs
menu_orderInputs_tt=Order the inputs for the usage as nested circuit
menu_orderOutputs=Order Outputs
menu_orderOutputs_tt=Order the outputs for the usage as nested circuit
menu_orderMeasurements=Order measurement values
menu_orderMeasurements_tt=Orders the measurement values in the graphical and table view
menu_run=Run
menu_run_tt=Runs the circuit
menu_step=Step
menu_step_tt=Calculating a single gate step
menu_micro=Single gate stepping
menu_micro_tt=Runs the circuit in single gate step mode
menu_speedTest=Speed Test
menu_speedTest_tt=Performs a speed test by calculating the max. clock frequency.
menu_help=Help
menu_about=About
menu_editAttributes=Edit circuit attributes
menu_editAttributes_tt=These attributes effect the behavior if the circuit is included in other circuits.
menu_fast=Run Fast
menu_fast_tt=Runs the circuit until a break is detected by the BRK element.
menu_export=Export
menu_exportSVG=Export SVG
menu_exportSVGLaTex=Export SVG+LaTeX
menu_exportPNGSmall=Export PNG small
menu_exportPNGLarge=Export PNG large
menu_delete=Delete elements
menu_delete_tt=Delete selected single element or group of elements
menu_editRunAttributes=Simulation Settings
menu_editRunAttributes_tt=Settings used to start the simulation
menu_saveData=Save Data
menu_saveData_tt=Save data as CSV file
menu_analyse=Analyse
menu_analyse_tt=Analyses the actual circuit
menu_synthesise=Synthesise
menu_synthesise_tt=Generates the minimal bool expressions described by a truth table.
menu_view=View
menu_maximize=Maximize
menu_zoomIn=Zoom In
menu_zoomOut=Zoom Out
menu_table_new=New
menu_table_N_variables={0} variables
menu_table_new_combinatorial=Combinatorial
menu_table_new_sequential=Sequential
menu_table_reorder=Reorder
menu_table_inputs=Inputs
menu_table_outputs=Outputs
menu_table_newColumns=Add Columns
menu_table_columnsAdd=Add a result Column
menu_table_columnsAdd_tt=Adds a new result column.
menu_table_columnsAddVariable=Add a variable Column
menu_table_columnsAddVariable_tt=Adds a new variable column.
menu_table_create=Create
menu_table_createCircuit=Circuit
menu_table_createCircuit_tt=Creates a circuit which reproduces the truth table.
menu_table_createNAnd=Circuit with NAnd gates
menu_table_createNAnd_tt=Creates a circuit which reproduces the truth table only with NAnd gates.
menu_table_createNOr=Circuit with NOr gates
menu_table_createNOr_tt=Creates a circuit which reproduces the truth table only with NOr gates.
menu_table_createTwo=Circuit with two input gates
menu_table_createTwo_tt=create circuit, use only gates with two inputs
menu_table_createNAndTwo=Circuit with NAnd gates with two inputs
menu_table_createNAndTwo_tt=Use only NAnd gates with two inputs.
menu_table_createNOrTwo=Circuit with NOr gates with two inputs
menu_table_createNOrTwo_tt=Use only NOr gates with two inputs.
menu_table_createCUPL=CUPL source
menu_table_createCUPL_tt=Creates a CUPL source file containing the define circuit.
menu_table_create_hardware=Device
menu_table_create_jedec=JEDEC (*.jed)
menu_table_create_jedec_tt=Creates a JEDEC file for the device
menu_table_exportTableLaTeX=Export LaTeX
menu_editSettings=Settings
menu_editSettings_tt=Edits Digitals Preferences
menu_copy=Copy
menu_paste=Paste
menu_rotate=Rotate
win_saveChanges=Save Changes?
win_confirmExit=Confirm Exit!
win_stateChanged=State Changed!
win_measures=Measurements
win_measures_microstep=Measurements single gate step
win_measures_fullstep=Measurements full clock step
win_listing=Listing
win_pinMapDialog=Pin Mapping
win_table_exportDialog=Export
key_InputSplitting_tt=Example "4,2,2" or "[Bits]*[Count] like "1*16" for 16 single bits
key_OutputSplitting_tt=Example "4,2,2" or "[Bits]*[Count] like "1*16" for 16 single bits
key_runRealTime_tt=If enabled the runtime clock is started when the circuit is started
key_Frequency_tt=The realtime frequency used for the real time clock
key_Cycles_tt=If this ammount of cycles is reached without a break signal, an error is created
key_valueIsProbe_tt=Is set the value is a measurement value and appears in the graph and data table
elem_Multiplexer_tt=Selects on of the input lines
elem_Multiplexer_pin_sel=This pin selects the input
elem_Demultiplexer_tt=Outputs the input to on of the outputs. The other outputs are zero.
elem_Demultiplexer_pin_sel=Selects the output
elem_Decoder_tt=One selectable output line is high, all other outputs are low.
elem_Decode_pin_sel=This input selects the enabled output
elem_Text_tt=Shows a text in the circuit
key_Default_tt=Is set if the circuit is started
err_labelNotConnectedToNet_N=A tunnel {0} is not connected!
key_Width_tt=With of symbol if this circuit is used in an element ins an other circuit.
err_analyseNoInputs=The circuit has no Inputs
err_analyseNoOutputs=The circuit has no outputs
err_analyseValue_N_IsNotBinary=The value {0} has more the one bit.
err_DFlipflopWithoutALabel=D-Flipflop has no label set
msg_annalyseErr=Error analysing the circuit
win_table=Table
win_allSolutions=All possible solutions

View File

@ -0,0 +1,384 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="addr">Address</string>
<string name="attr_dialogTitle">Attributes</string>
<string name="attr_openCircuit">Show</string>
<string name="attr_openCircuitLabel">Included circuit:</string>
<string name="attr_openCircuit_tt">Opens the circuit in a new window.</string>
<string name="btn_discard">Discard Changes</string>
<string name="btn_edit">Edit</string>
<string name="btn_editFurther">Continue editing</string>
<string name="btn_load">Load</string>
<string name="btn_reload">Reload</string>
<string name="btn_reload_tt">Reload last hex file</string>
<string name="btn_save">Save</string>
<string name="digital">Digital</string>
<string name="elem_Add">Add</string>
<string name="elem_And">And</string>
<string name="elem_Break">Break</string>
<string name="elem_Break_tt">If the input of this Element becomes high, the fast forward clocking is stopped.
You can use the element to implement a BRK assembly instruction.
Then you can execute the circuit to the next BRK instruction.
</string>
<string name="elem_Button">Button</string>
<string name="elem_Clock">Clock</string>
<string name="elem_Clock_tt">A clock signal. Its possible to control it by the real time clock.</string>
<string name="elem_Comparator">Comparator</string>
<string name="elem_Const">Const</string>
<string name="elem_Const_tt">A simple constant value.</string>
<string name="elem_Counter">Counter</string>
<string name="elem_D_FF">D_FF</string>
<string name="elem_Data">Data graph</string>
<string name="elem_Data_tt">Shows a data plot inside of the circuit panel.
You can plot complete clock steps or single gate changes.
</string>
<string name="elem_Decode_pin_sel">This input selects the enabled output</string>
<string name="elem_Decoder">Decoder</string>
<string name="elem_Decoder_tt">One selectable output line is high, all other outputs are low.</string>
<string name="elem_Delay">Delay</string>
<string name="elem_Delay_tt">Delays the signal by on gate delay</string>
<string name="elem_Demultiplexer">Demultiplexer</string>
<string name="elem_Demultiplexer_pin_sel">Selects the output</string>
<string name="elem_Demultiplexer_tt">Outputs the input to on of the outputs. The other outputs are zero.</string>
<string name="elem_Driver">Driver</string>
<string name="elem_DriverInvSel">Driver, inverted select</string>
<string name="elem_In">In</string>
<string name="elem_In_tt">A input which can be used to connect the circuit if it is included in an other circuit.
</string>
<string name="elem_JK_FF">JK_FF</string>
<string name="elem_LED">LED</string>
<string name="elem_LookUpTable">LookUpTable</string>
<string name="elem_LookUpTable_tt">Gets the output value from a stored table.
So this gate can emulate every combinatorial gate.
</string>
<string name="elem_Mul">Mul</string>
<string name="elem_Multiplexer">Multiplexer</string>
<string name="elem_Multiplexer_pin_sel">This pin selects the input</string>
<string name="elem_Multiplexer_tt">Selects on of the input lines</string>
<string name="elem_NAnd">NAnd</string>
<string name="elem_NOr">NOr</string>
<string name="elem_Not">Not</string>
<string name="elem_Or">Or</string>
<string name="elem_Out">Out</string>
<string name="elem_Out_tt">A output which can be used to connect the circuit if it is included in an other
circuit.
</string>
<string name="elem_Probe">Probe</string>
<string name="elem_Probe_tt">A measurement value which can be shown in the data graph.</string>
<string name="elem_RAMDualPort">RAMDualPort</string>
<string name="elem_RAMDualPort_pin_addr">The address to read and write</string>
<string name="elem_RAMDualPort_pin_c">Clock</string>
<string name="elem_RAMDualPort_pin_dataIn">The data to be stored in the RAM</string>
<string name="elem_RAMDualPort_pin_dataOut">The data output pin</string>
<string name="elem_RAMDualPort_pin_ld">If this input is high the output is activated and the data is visible at the
output
</string>
<string name="elem_RAMDualPort_pin_str">If this input is high when the clock becomes high, the the data is stored
</string>
<string name="elem_RAMDualPort_tt">A RAM module with separate inputs for storing and output for reading the stored
data.
</string>
<string name="elem_RAMSinglePort">RAMSinglePort</string>
<string name="elem_RAMSinglePort_pin_addr">The address to read and write</string>
<string name="elem_RAMSinglePort_pin_c">Clock</string>
<string name="elem_RAMSinglePort_pin_d">Bidirectional data connection.</string>
<string name="elem_RAMSinglePort_pin_ld">If this input is high the output is activated and the data is visible at
the output
</string>
<string name="elem_RAMSinglePort_pin_str">If this input is high when the clock becomes high, the the data is
stored
</string>
<string name="elem_RAMSinglePort_tt">A RAM module with a bidirectional connection for reading and writing the
data.
</string>
<string name="elem_ROM">ROM</string>
<string name="elem_ROM_pin_address">Address of data word to output.</string>
<string name="elem_ROM_pin_data">The selected data word. Only readable if select input is high.</string>
<string name="elem_ROM_pin_sel">If the input is high, the output is activated. If it is low, the data output is in
high Z state.
</string>
<string name="elem_RS_FF">RS_FF</string>
<string name="elem_Register">Register</string>
<string name="elem_Reset">Reset</string>
<string name="elem_Reset_tt">The output of this element is hold down during the initialisation of the circuit.
After the circuit has stabilized the output goes up.
</string>
<string name="elem_Seven-Seg">Seven-Seg</string>
<string name="elem_Seven-Seg-Hex">Seven-Seg-Hex</string>
<string name="elem_Seven-Seg-Hex_tt">Seven Segment Display with a 4 bit input</string>
<string name="elem_Seven-Seg_tt">Seven Segment Display, every segment has its own input.</string>
<string name="elem_Splitter">Splitter</string>
<string name="elem_Splitter_tt">Splits or creates a wire bundle or a data bus with more than one bit.</string>
<string name="elem_Sub">Sub</string>
<string name="elem_T_FF">T_FF</string>
<string name="elem_Terminal">Terminal</string>
<string name="elem_Terminal_pin_C">If this pin becomes high the data is displayed</string>
<string name="elem_Terminal_pin_D">The data to show in the terminal</string>
<string name="elem_Terminal_tt">You can write ASCI characters to this terminal.
The terminal opens its own window.
</string>
<string name="elem_Text">Text</string>
<string name="elem_Text_tt">Shows a text in the circuit</string>
<string name="elem_XNOr">XNOr</string>
<string name="elem_XOr">XOr</string>
<string name="err_DFlipflopWithoutALabel">D-Flipflop has no label set</string>
<string name="err_N_isNotInputOrOutput">Pin {0} in element {1} is not a input or output</string>
<string name="err_aSingleClockNecessary">A single clock is necessary.</string>
<string name="err_analyseNoInputs">The circuit has no Inputs</string>
<string name="err_analyseNoOutputs">The circuit has no outputs</string>
<string name="err_analyseValue_N_IsNotBinary">The value {0} has more the one bit.</string>
<string name="err_breakTimeOut">Break timeout after {0} cycles</string>
<string name="err_builder_exprNotSupported">Expression {0} not supported</string>
<string name="err_builder_operationNotSupported">Operation {0} not supported</string>
<string name="err_burnError">More then one output is active on a wire</string>
<string name="err_cannotAnalyse_N">Cannot analyse Node {0}</string>
<string name="err_containsVarAndNotVar">Contains [var] and [not var]</string>
<string name="err_duplicateElement_N">Duplicate element {0}</string>
<string name="err_duplicatePinLabel">Pin {0} in element {1} exists twice</string>
<string name="err_element_N_notFound">Element {0} not found</string>
<string name="err_exact_N0_valuesNecessaryNot_N1">Exact {0} variables necessary, not {1}</string>
<string name="err_ffNeedsToBeConnectedToClock">Flipflop needs to be connected to the clock.</string>
<string name="err_invalidFileFormat">Invalid file format</string>
<string name="err_isAlreadyInitialized">Logic is already initialized</string>
<string name="err_labelNotConnectedToNet_N">A tunnel {0} is not connected!</string>
<string name="err_moreThenOneClocksFound">There are more then one clock</string>
<string name="err_needs_N0_bits_found_N2_bits">There are {0} bits needed, but {1} bits found</string>
<string name="err_netOfPin_N_notFound">Net of pin {0} not found</string>
<string name="err_noClockFound">No clock found in logic</string>
<string name="err_noInputsAvailable">No inputs available to set</string>
<string name="err_noShapeFoundFor_N">No shape found for Element {0}</string>
<string name="err_noValueSetFor_N0_atElement_N1">No value set for {0} at Element {1}</string>
<string name="err_notAllOutputsSameBits">Not all connected outputs have the same bit count</string>
<string name="err_notAllOutputsSupportHighZ">If multiple outputs are connected together, all of them have to be
three-state outputs
</string>
<string name="err_notInitialized">Logic not initialized</string>
<string name="err_onOutConnectedToWire">No output connected to a wire</string>
<string name="err_oneResultIsRequired">Table to small: One result is required!</string>
<string name="err_output_N_notDefined">Output {0} not defined</string>
<string name="err_pinMap_NoNameForPin_N">No Name for pin {0}</string>
<string name="err_pinMap_Pin_N_AssignedTwicerPin">Pin {0} assigned twice!</string>
<string name="err_pinMap_input_N_notAllowed">Input {0} not allowed!</string>
<string name="err_pinMap_noEqualsfound">No = found!</string>
<string name="err_pinMap_output_N_notAllowed">Output {0} not allowed!</string>
<string name="err_pinMap_toMannyInputsDefined">To manny inputs defined</string>
<string name="err_pinMap_toMannyOutputsDefined">To manny outputs defined</string>
<string name="err_pinNotPresent">Pin not present</string>
<string name="err_pinWithoutName">Found a pin without a name in {0}</string>
<string name="err_pin_N0_atElement_N1_notFound">Pin {0} not found at Element {1}</string>
<string name="err_pin_N_notFound">Pin {0} not found</string>
<string name="err_pin_N_unknown">Pin {0} unknown</string>
<string name="err_readOfHighZ">Read of high Z value</string>
<string name="err_seemsToOscillate">Logic seems to oscillate
To analyse you can run the circuit in single gate step mode.
</string>
<string name="err_selectorInputCountMismatch">Number of inputs does not match selector bit count</string>
<string name="err_spitterDefSyntaxError">Syntax error in splitter definition {0}</string>
<string name="err_splitterBitsMismatch">Bit count of splitter is not matching</string>
<string name="err_tableBecomesToSmall">Two inputs are required!</string>
<string name="err_toManyInputs_N">To many inputs, allowed are {0}</string>
<string name="err_varNotAllowedInCUPL_N">Variable {0} is not allowed in CUPL source!</string>
<string name="err_varNotDefined_N">Variable {0} not defined</string>
<string name="key_AddrBits">Address Bits</string>
<string name="key_Bits">Data Bits</string>
<string name="key_Color">Color</string>
<string name="key_Cycles">Timeout cycles</string>
<string name="key_Cycles_tt">If this ammount of cycles is reached without a break signal, an error is created
</string>
<string name="key_Data">Data</string>
<string name="key_Default">Default</string>
<string name="key_Default_tt">Is set if the circuit is started</string>
<string name="key_Description">Description</string>
<string name="key_Frequency">Frequency/Hz</string>
<string name="key_Frequency_tt">The realtime frequency used for the real time clock</string>
<string name="key_IEEEShapes">Use IEEE 91-1984 shapes</string>
<string name="key_IEEEShapes_tt">Use IEEE 91-1984 shapes instead of rectangular shapes</string>
<string name="key_InputSplitting">Input Splitting</string>
<string name="key_InputSplitting_tt">Example &quot;4,2,2&quot; or &quot;[Bits]*[Count] like &quot;1*16&quot; for 16
single bits
</string>
<string name="key_Inputs">Number of Inputs</string>
<string name="key_Label">Label</string>
<string name="key_Language">Language</string>
<string name="key_NetName">Netname</string>
<string name="key_NetName_tt">All nets with identical name are connected together.</string>
<string name="key_OutputSplitting">Otput Splitting</string>
<string name="key_OutputSplitting_tt">Example &quot;4,2,2&quot; or &quot;[Bits]*[Count] like &quot;1*16&quot; for 16
single bits
</string>
<string name="key_SelectorBits">Number of Selector Bits</string>
<string name="key_Signed">Signed</string>
<string name="key_Value">Value</string>
<string name="key_Width">Width</string>
<string name="key_Width_tt">With of symbol if this circuit is used in an element ins an other circuit.</string>
<string name="key_flipSelPos">Flip selector position</string>
<string name="key_intFormat">Number Format</string>
<string name="key_intFormat_ascii">ascii</string>
<string name="key_intFormat_bin">bin</string>
<string name="key_intFormat_dec">decimal</string>
<string name="key_intFormat_def">default</string>
<string name="key_intFormat_hex">hex</string>
<string name="key_isHighZ">Is three-state input</string>
<string name="key_maxStepCount">Max number of steps to show</string>
<string name="key_microStep">Show single gate steps</string>
<string name="key_rotation">Rotation</string>
<string name="key_runRealTime">Start real time clock</string>
<string name="key_runRealTime_tt">If enabled the runtime clock is started when the circuit is started</string>
<string name="key_showDataGraph">Show measurement graph</string>
<string name="key_showDataGraphMicro">Show measurement graph in single gatem step mode</string>
<string name="key_showDataTable">Show measurement values</string>
<string name="key_showList">Show list file if available</string>
<string name="key_termHeight">Lines</string>
<string name="key_termWidth">Characters per line</string>
<string name="key_valueIsProbe">Use as measurment value</string>
<string name="key_valueIsProbe_tt">Is set the value is a measurement value and appears in the graph and data table
</string>
<string name="lib_Logic">Logic</string>
<string name="lib_arithmetic">Arithmetic</string>
<string name="lib_flipFlops">FlipFlops</string>
<string name="lib_io">IO</string>
<string name="lib_memory">Memory</string>
<string name="lib_mux">Plexers</string>
<string name="lib_wires">Wires</string>
<string name="menu_about">About</string>
<string name="menu_analyse">Analyse</string>
<string name="menu_analyse_tt">Analyses the actual circuit</string>
<string name="menu_copy">Copy</string>
<string name="menu_custom">Custom</string>
<string name="menu_delete">Delete elements</string>
<string name="menu_delete_tt">Delete selected single element or group of elements</string>
<string name="menu_edit">Edit</string>
<string name="menu_editAttributes">Edit circuit attributes</string>
<string name="menu_editAttributes_tt">These attributes effect the behavior if the circuit is included in other
circuits.
</string>
<string name="menu_editRunAttributes">Simulation Settings</string>
<string name="menu_editRunAttributes_tt">Settings used to start the simulation</string>
<string name="menu_editSettings">Settings</string>
<string name="menu_editSettings_tt">Edits Digitals Preferences</string>
<string name="menu_element">Edit Elements</string>
<string name="menu_element_tt">Edits the circuit. Moves a single Element or edits its properties</string>
<string name="menu_elements">Elements</string>
<string name="menu_export">Export</string>
<string name="menu_exportPNGLarge">Export PNG large</string>
<string name="menu_exportPNGSmall">Export PNG small</string>
<string name="menu_exportSVG">Export SVG</string>
<string name="menu_exportSVGLaTex">Export SVG+LaTeX</string>
<string name="menu_fast">Run Fast</string>
<string name="menu_fast_tt">Runs the circuit until a break is detected by the BRK element.</string>
<string name="menu_file">File</string>
<string name="menu_help">Help</string>
<string name="menu_import">Import</string>
<string name="menu_import_tt">Imports a circuit as a useable Element!</string>
<string name="menu_maximize">Maximize</string>
<string name="menu_micro">Single gate stepping</string>
<string name="menu_micro_tt">Runs the circuit in single gate step mode</string>
<string name="menu_new">New</string>
<string name="menu_open">Open</string>
<string name="menu_openRecent">Open Recent</string>
<string name="menu_openWin">Open in New Window</string>
<string name="menu_openWin_tt">Opens a circuit in a new window</string>
<string name="menu_orderInputs">Order Inputs</string>
<string name="menu_orderInputs_tt">Order the inputs for the usage as nested circuit</string>
<string name="menu_orderMeasurements">Order measurement values</string>
<string name="menu_orderMeasurements_tt">Orders the measurement values in the graphical and table view</string>
<string name="menu_orderOutputs">Order Outputs</string>
<string name="menu_orderOutputs_tt">Order the outputs for the usage as nested circuit</string>
<string name="menu_paste">Paste</string>
<string name="menu_refresh">Reload</string>
<string name="menu_refresh_tt">Reload all imported circuits</string>
<string name="menu_rotate">Rotate</string>
<string name="menu_run">Run</string>
<string name="menu_run_tt">Runs the circuit</string>
<string name="menu_save">Save</string>
<string name="menu_saveAs">Save As</string>
<string name="menu_saveData">Save Data</string>
<string name="menu_saveData_tt">Save data as CSV file</string>
<string name="menu_speedTest">Speed Test</string>
<string name="menu_speedTest_tt">Performs a speed test by calculating the max. clock frequency.</string>
<string name="menu_step">Step</string>
<string name="menu_step_tt">Calculating a single gate step</string>
<string name="menu_synthesise">Synthesise</string>
<string name="menu_synthesise_tt">Generates the minimal bool expressions described by a truth table.</string>
<string name="menu_table_N_variables">{0} variables</string>
<string name="menu_table_columnsAdd">Add a result Column</string>
<string name="menu_table_columnsAddVariable">Add a variable Column</string>
<string name="menu_table_columnsAddVariable_tt">Adds a new variable column.</string>
<string name="menu_table_columnsAdd_tt">Adds a new result column.</string>
<string name="menu_table_create">Create</string>
<string name="menu_table_createCUPL">CUPL source</string>
<string name="menu_table_createCUPL_tt">Creates a CUPL source file containing the define circuit.</string>
<string name="menu_table_createCircuit">Circuit</string>
<string name="menu_table_createCircuit_tt">Creates a circuit which reproduces the truth table.</string>
<string name="menu_table_createNAnd">Circuit with NAnd gates</string>
<string name="menu_table_createNAndTwo">Circuit with NAnd gates with two inputs</string>
<string name="menu_table_createNAndTwo_tt">Use only NAnd gates with two inputs.</string>
<string name="menu_table_createNAnd_tt">Creates a circuit which reproduces the truth table only with NAnd gates.
</string>
<string name="menu_table_createNOr">Circuit with NOr gates</string>
<string name="menu_table_createNOrTwo">Circuit with NOr gates with two inputs</string>
<string name="menu_table_createNOrTwo_tt">Use only NOr gates with two inputs.</string>
<string name="menu_table_createNOr_tt">Creates a circuit which reproduces the truth table only with NOr gates.
</string>
<string name="menu_table_createTwo">Circuit with two input gates</string>
<string name="menu_table_createTwo_tt">create circuit, use only gates with two inputs</string>
<string name="menu_table_create_hardware">Device</string>
<string name="menu_table_create_jedec">JEDEC (*.jed)</string>
<string name="menu_table_create_jedec_tt">Creates a JEDEC file for the device</string>
<string name="menu_table_exportTableLaTeX">Export LaTeX</string>
<string name="menu_table_inputs">Inputs</string>
<string name="menu_table_new">New</string>
<string name="menu_table_newColumns">Add Columns</string>
<string name="menu_table_new_combinatorial">Combinatorial</string>
<string name="menu_table_new_sequential">Sequential</string>
<string name="menu_table_outputs">Outputs</string>
<string name="menu_table_reorder">Reorder</string>
<string name="menu_view">View</string>
<string name="menu_zoomIn">Zoom In</string>
<string name="menu_zoomOut">Zoom Out</string>
<string name="message">Digital
A simple simulator for digital circuits.
Written bei H.Neemann in 2016
</string>
<string name="msg_N_nodes">{0} nodes</string>
<string name="msg_annalyseErr">Error analysing the circuit</string>
<string name="msg_clockError">Error during a clock state change</string>
<string name="msg_color">Color</string>
<string name="msg_errorCalculatingStep">Error calculating a step</string>
<string name="msg_errorCreatingModel">Error creating the circuit</string>
<string name="msg_errorDuringCalculation">Error during simplification</string>
<string name="msg_errorEditingValue">Error editing a atribute value</string>
<string name="msg_errorImportingModel">Error importing a circuit</string>
<string name="msg_errorReadingFile">Error reading a file</string>
<string name="msg_errorReadingListing_N0">Error reading the listing {0}</string>
<string name="msg_errorWritingFile">Error writing a file</string>
<string name="msg_fastRunError">Error at fast run</string>
<string name="msg_frequency_N">The maximum frequency is {0}Hz</string>
<string name="msg_missingShape_N">Shape {0} is missing</string>
<string name="msg_pinMap_inputs">Inputs</string>
<string name="msg_pinMap_notUsed">not used</string>
<string name="msg_pinMap_outputs">Onputs</string>
<string name="msg_pinMap_pin_N_is_N">Pin {0}: {1}</string>
<string name="msg_restartNeeded">Change needs a restart to take effect!</string>
<string name="ok">Ok</string>
<string name="rot_0"></string>
<string name="rot_180">180°</string>
<string name="rot_270">270°</string>
<string name="rot_90">90°</string>
<string name="stat_clocks">{0} half cycles</string>
<string name="tt_deleteItem">Deletes the selected item</string>
<string name="tt_moveItemDown">Move the item down</string>
<string name="tt_moveItemUp">Move the item up</string>
<string name="win_allSolutions">All possible solutions</string>
<string name="win_confirmExit">Confirm Exit!</string>
<string name="win_listing">Listing</string>
<string name="win_measures">Measurements</string>
<string name="win_measures_fullstep">Measurements full clock step</string>
<string name="win_measures_microstep">Measurements single gate step</string>
<string name="win_pinMapDialog">Pin Mapping</string>
<string name="win_saveChanges">Save Changes?</string>
<string name="win_stateChanged">State Changed!</string>
<string name="win_table">Table</string>
<string name="win_table_exportDialog">Export</string>
</resources>

View File

@ -0,0 +1,35 @@
package de.neemann.gui.language;
import junit.framework.TestCase;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
/**
* @author hneemann
*/
public class ResourcesTest extends TestCase {
private static final String example
= "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
"<resources>\n" +
" <string name=\"menu_save\">Speichern</string>\n" +
" <string name=\"menu_open\">Öffnen</string>\n" +
"</resources>";
public void testWrite() throws Exception {
Resources res = new Resources();
res.put("menu_open", "Öffnen");
res.put("menu_save", "Speichern");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
res.save(baos);
assertEquals(example, baos.toString());
}
public void testRead() throws Exception {
Resources res = new Resources(new ByteArrayInputStream(example.getBytes()));
assertEquals("Öffnen", res.get("menu_open"));
assertEquals("Speichern", res.get("menu_save"));
}
}