Domanda

Sto cercando di introdurre il supporto multilingue a un'applicazione CGI matura scritta in Perl. Inizialmente avevo pensato di implementare la mia soluzione usando un hash Perl (archiviato su disco) per i file di traduzione, ma poi mi sono imbattuto in un modulo CPAN che sembra fare proprio quello che voglio ( i18n ).

Qualcuno ha esperienza con l'internazionalizzazione (in particolare il modulo CPAN i18n) in Perl? Il modulo i18n è il metodo preferito per il supporto multilingue o devo riconsiderare una soluzione personalizzata?

Grazie

È stato utile?

Soluzione

Esiste un articolo del Perl Journal sulla localizzazione del software. Ti fornirà una buona idea di cosa puoi aspettarti quando aggiungi il supporto multilingue. È magnificamente scritto e divertente.

In particolare, l'articolo è stato scritto dalle persone che hanno scritto e mantenuto Locale :: Maketext , quindi consiglierei questo modulo semplicemente in base alla quantità di dolore, è chiaro che gli autori hanno dovuto resistere per farlo funzionare correttamente.

Altri suggerimenti

Vedi http://rassie.org/archives/247 per il confronto del moderno GNU gettext, Locale :: Maketext e Locale :: TextDomain.

In risposta a la mia domanda al riguardo uno dei commenti suggeriti leggendo questo articolo sulla localizzazione del codice perl.

Se hai tempo, dai un'occhiata al modo in cui viene eseguito I18N nel Jifty framework - sebbene inizialmente abbastanza confuso, è molto elegante e utilizzabile.

Sovraccaricano _ in modo da poter utilizzare _ (" testo per tradurre ") in qualsiasi punto del codice. Queste stringhe vengono quindi tradotte utilizzando Locale :: Maketext come di consueto.

Ciò che lo rende davvero potente è che rinviano la traduzione fino a quando la stringa non è necessaria utilizzando Scalare :: Rinvia in modo da poter iniziare ad aggiungere le stringhe in qualsiasi momento, anche prima di sapere in quale lingua saranno tradotte. Ad esempio nei file di configurazione, ecc. Questo rende davvero facile lavorare con I18N.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top