Support
Wiki Documentation
Support Forum
Mobile
- andRoc Android
- Rocweb Browser
- WIO-Control ESP32
- Rocview Tablet
- RC-Cab Android
DIY
User
Wiki writer
Legal
Support
Wiki Documentation
Support Forum
Mobile
DIY
User
Wiki writer
Legal
le traduzioni su LaunchPad.net sono in formato GNU Gettext, ma in Rocrail sono contenute in un file XML proprietario.
Il file XML contenente le traduzioni di Rocrail per il client Rocview è ubicato nel seguente percorso: /Rocrail/rocgui/res/messages.xml
.
Questo è un esempio contenente una stringa:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Messages> <Msg id="car" dialog="false" key=""> <de txt="Wagon"/> <en txt="Car"/> <nl txt="Wagon" tip="Een wagon."/> <sv txt="Car"/> <cs txt="Auto"/> <fr txt="Car"/> <da txt="Car"/> <es txt="Car"/> <it txt="Vagone"/> <hu txt="Kocsi"/> <tr txt="Car"/> </Msg> </Messages>
Attributo | Descrizione |
---|---|
id | Utilizzato nel codice sorgente per identificare un messaggio nella lingua selezionata |
dialog | Aggiunge tre puntini alla fine della stringa ed è utilizzato nelle voci dei menu che aprono finestre |
key | Scorciatoia da tastiera |
txt | Il messaggio ovvero la traduzione visualizzata nell'interfaccia |
tip | Il suggerimento visualizzato come popup soffermandosi con il mouse su un pulsante o come testo nella barra di stato se ci sofferma su una voce dei menu. |
Alcuni compilatori non riescono a gestire lunghi messaggi XML serializzati come singola stringa, quindi si rende necessaria la conversione in formato di array di caratteri utilizzando lo strumento di rocs xml2cstr:
Rocrail/unxgen/rocgui/res/messages.c
#ifdef __cplusplus extern "C" { #endif const char messages[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,32,115,116,97,110,100, 97,108,111,110,101,61,34,121,101,115,34,63,62,10,60,33,45,45,10,32,82,111, ... 62,10,0 }; #ifdef __cplusplus } #endif
Il file message.xml non è un modello, ma può essere utilizzato come file di ingresso da utilizzare con lo strumento di rocs lang2po:
lang2po -i messages.xml -o messages.pot -template -l en
Il file messages.pot può essere depositato su Launchpad.net come modello per le traduzioni.
L'unica modifica manuale da effettuare risiede nel pot header:
# ?. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <support@rocrail.net>, 2009. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Rocrail 1.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-26 07:51+0100\n" "PO-Revision-Date: 2009-04-29 21:15+0000\n" "Last-Translator: Rob Versluis <support@rocrail.net>\n" "Language-Team: English <EN@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2009-04-29 18:00+0000\n" "X-Generator: Launchpad (build Unknown)\n"
il modello utilizza la traduzione inglese come msgid:
#. # id="changelang" #, c-format msgid "Restart to change language." msgstr ""
Questa operazione può essere effettuata con lo stesso strumento di rocs utilizzato per la creazione di un modello:
lang2po -i messages.xml -o nl.po -l nl
Con il comando
msgfmt -c <file>
si può validare il file prima del deposito su Launchpad.
Lo strumento di rocs po2lang permette di importare file in formato Gnu Gettext all'interno di un preesistente file messages.xml di Rocrail:
po2lang -i rocrail-tr.po -o messages.xml -l tr
In questo esempio la lingua turca viene importata nel file messages.xml.
Se la lingua è già contenuta nel file messages.xml, le traduzioni preesistenti vengono sovrascritte.