Per un sistema embedded con GUI, stiamo usando il nostro sistema di traduzione personalizzato. Le stringhe sono memorizzate nel codice ROM di un microcontrollore.Gettext senza un filesystem
Attualmente abbiamo fino a 10 lingue e circa 400 stringhe tradotte (varia a seconda della variante del prodotto).
Il nostro sistema attuale è piuttosto ingombrante e credo che gettext sarebbe una soluzione migliore.
Per quanto ho capito gettext, richiede l'utilizzo di bindtextdomain
per impostare la directory contenente i file di traduzione compilati (* .mo).
C'è un modo per leggere la traduzione dalla memoria? Vorrei inserire i file * .mo compilati nel binario e impostare gettext per usarli. In alternativa, i dati di traduzione verrebbero archiviati in una EEPROM di dati senza un filesystem.
Oppure si può consigliare un sistema di traduzione diverso da utilizzare in un sistema di microcontrollori (16 o 32 bit, da 256 a 512 kbyte ROM) con un'interfaccia C?
Edit: Devo aggiungere che essere in grado di gestire le traduzioni oltre al firmware del microcontrollore sarebbe un motivo per passare a gettext. I dati di traduzione appropriati verrebbero caricati dall'utente con un software di configurazione che già forniamo con i nostri sistemi.
Forse gettext sarebbe eccessivo nel tuo caso? Forse farai qualcosa come [questo] (http://code.google.com/p/bta-meteo-logger/source/browse/C/daemon/lang.h)? –
È possibile configurare un disco RAM sopra l'I/O file binario o falso. –