Für ein eingebettetes System mit GUI verwenden wir unser benutzerdefiniertes Übersetzungssystem. Die Strings werden im Code-ROM eines Mikrocontrollers gespeichert.Gettext ohne Dateisystem
Derzeit haben wir bis zu 10 Sprachen und etwa 400 übersetzte Strings (variiert je nach Produktvariante).
Unser aktuelles System ist ziemlich umständlich und ich glaube, dass Gettext eine bessere Lösung wäre.
Soweit ich verstehe gettext, erfordert es die Verwendung von bindtextdomain
, um das Verzeichnis, das die kompilierten Übersetzungsdateien (* .mo) enthält.
Gibt es eine Möglichkeit, stattdessen die Übersetzung aus dem Speicher zu lesen? Das heißt, ich möchte die kompilierten * .mo-Dateien in die Binärdatei einschließen und gettext einrichten, um diese zu verwenden. Alternativ würden die Übersetzungsdaten in einem Daten-EEPROM ohne Dateisystem gespeichert werden.
Oder können Sie ein anderes Übersetzungssystem für den Einsatz in einem Mikrocontroller-System (16 oder 32 Bit, 256 bis 512 KByte ROM) mit einer C-Schnittstelle empfehlen?
Edit: Ich sollte hinzufügen, dass in der Lage, Übersetzungen abgesehen von der Firmware des Mikrocontrollers zu pflegen wäre ein Grund, um zu Gettext wechseln. Die entsprechenden Übersetzungsdaten würden vom Benutzer mit einer Konfigurationssoftware geladen, die wir bereits mit unseren Systemen liefern.
Vielleicht wäre gettext in Ihrem Fall übertrieben? Vielleicht machst du etwas wie [dies] (http://code.google.com/p/bta-meteo-logger/source/browse/C/daemon/lang.h)? –
Sie könnten entweder eine RAM-Disk oberhalb der binären oder falschen Datei-E/A einrichten. –