User Tools

Site Tools


translations-it

Traduzioni

Informazioni

le traduzioni su LaunchPad.net sono in formato GNU Gettext, ma in Rocrail sono contenute in un file XML proprietario.

File

Il file XML contenente le traduzioni di Rocrail per il client Rocview è ubicato nel seguente percorso: /Rocrail/rocgui/res/messages.xml.

Formato XML proprietario

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.

Conversione da UTF-8 a byte array

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

Creazione di un modello per GNU Gettext

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 ""

Creazione di una traduzione per GNU Gettext

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

Verifica del file generato

Con il comando

msgfmt -c <file>

si può validare il file prima del deposito su Launchpad.

Importazione di una traduzione dal formato GNU Gettext

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.

translations-it.txt · Last modified: 2018/11/12 08:56 (external edit)