11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ash$ bash -D localized.sh<br />

"Can’t cd to %s."<br />

"Enter the value: "<br />

Appen<strong>di</strong>ce I. Localizzazione<br />

Così viene elencato tutto il testo localizzato. (L’opzione -D elenca le stringhe tra doppi apici, precedute<br />

da $, senza eseguire lo script.)<br />

bash$ bash --dump-po-strings localized.sh<br />

#: a:6<br />

msgid "Can’t cd to %s."<br />

msgstr ""<br />

#: a:7<br />

msgid "Enter the value: "<br />

msgstr ""<br />

L’opzione <strong>di</strong> <strong>Bash</strong> --dump-po-strings assomiglia all’opzione -D, ma usa il formato gettext “po”.<br />

Nota: Bruno Haible precisa:<br />

A partire da gettext-0.12.2, si raccomanda l’uso <strong>di</strong> xgettext -o - localized.sh invece <strong>di</strong> bash<br />

--dump-po-strings localized.sh, perché xgettext:<br />

1. interpreta i coman<strong>di</strong> gettext e eval_gettext (mentre bash --dump-po-strings interpreta solamente la<br />

sua deprecata sintassi $"...")<br />

2. può togliere i commenti che il programmatore ha inserito per dare informazioni al traduttore.<br />

Questo co<strong>di</strong>ce <strong>di</strong> shell, quin<strong>di</strong>, non è più specifico <strong>di</strong> <strong>Bash</strong>: funziona allo stesso modo anche con<br />

<strong>Bash</strong> 1.x e altre implementazioni /bin/sh.<br />

Ora è necessario creare un file linguaggio.po, per ogni lingua in cui si vuole vengano tradotti i<br />

messaggi degli script, specificando msgstr. Alfredo Pironti ha fornito l’esempio seguente:<br />

fr.po:<br />

#: a:6<br />

msgid "Can’t cd to $var."<br />

msgstr "Impossible de se positionner dans le répertoire $var."<br />

#: a:7<br />

msgid "Enter the value: "<br />

msgstr "Entrez la valeur : "<br />

# Le stringhe vengono fornite per mezzo <strong>di</strong> variabili, non con la sintassi %s,<br />

#+ come nei programmi in C.<br />

#+ È una funzionalità bellissima se il programmatore ha l’accortezza<br />

#+ <strong>di</strong> usare nomi <strong>di</strong> variabili che ne esplicitano il contenuto!<br />

789

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!