2010-02-02 16 views
26

Esistono alternative di traduzione/localizzazione generali a gettext?Alternative a gettext?

L'open source o proprietario non ha importanza.

Quando dico alternativa a gettext, intendo una libreria per l'internazionalizzazione, con un backend di localizzazione di sorta.

Il motivo che sto chiedendo è perché (tra le altre cose) trovo il modo in cui gettext fa le cose leggermente macchinose e statiche, soprattutto nel backend bit.

+0

Che cosa è esattamente di gettext si fa a trovare ingombrante? –

+1

È difficile puntare a qualcosa di specifico, ma è qualcosa a che fare con il flusso di lavoro di esso che si sente inefficiente. –

+2

Non penso che avresti trovato cose migliori. Ha una gamma molto ampia di strumenti con cui lavorare per la traduzione e l'estrazione di messaggi e così via. È il più popolare e probabilmente hai solo bisogno di impararlo bene. – Artyom

risposta

40

Prima di tutto penso che gettext sia uno dei migliori a questo punto.

Si può dare un'occhiata a Boost.Locale che può fornire una migliore API e utilizzare il modello di dizionario gettext: http://cppcms.sourceforge.net/boost_locale/docs/ (non parte ufficiale di Boost, ancora beta).


Modifica:

Se non ti piace ... gettext

Queste sono tecnologie di traduzione:

  • OASIS XLIFF
  • GNU gettext PO/mo file
  • PO SEI cataloghi
  • Qt ts/file tm
  • proprietà Java,
  • risorse di Windows.

Ora:

  • Ultima due schifezza totale ... molto difficile da usare tradurre e mantenere, non supportano forme plurali.
  • Qt ts/tm - richiede l'utilizzo del framework Qt. Hanno un modello molto simile a gettext. Soluzione non male, ma limitata a Qt. Non così utile nei programmi generici.
  • cataloghi POSIX - nessuno li usa, nessun supporto di forme plurali. Una schifezza.
  • OASIX XLIFF: soluzione "standard", dipende dall'XML, anche l'ICU richiede la compilazione su specifiche risorse dell'ICU da utilizzare. Strumenti di traduzione limitati, non conosco alcuna libreria che supporti XLIFF. Forme plurali non così facili da usare (ICU includeva supporto solo nella versione 4.x).

Ora che cosa abbiamo?

GNU gettext, ampiamente utilizzato, ha grandi strumenti, ha un grande supporto forme plurali, molto popolare nella comunità di traduttori ...

Quindi decidere, pensi davvero che gettext non è così buona soluzione?

Non credo. Non hai lavorato con altre soluzioni, quindi cerca di capire come funziona al primo posto.

+5

Vedi, questa è una risposta che stavo cercando. Alcune alternative reali. Non importa se sono buoni o cattivi, solo che posso vedere diversi modi di fare le cose. Apparentemente non ce ne sono così tanti, ma non è questo il punto. ;) –

+1

La traduzione di questi giorni non viene eseguita in Blocco note, ci sono strumenti WYSIWYG per la localizzazione e per lo sviluppo. Le risorse Java o Windows non sono in alcun modo più difficili da tradurre e gestire di qualsiasi altra cosa. –

+3

Le forme plurali in gettext non sono sufficienti per alcune lingue, e comunque il cramming di forme plurali nella stringa è qualcosa che solo i geek possono gestire, ma non i normali traduttori (con background linguistico). Le proprietà Java possono gestire plurali, vedere MessageFormat Esempio: "Là {0, scelta, 0 # non sono file | 1 # è un file | 1

2

commenti interessanti su gettext() e tutti quelli pro-gettext().

Non sto dicendo che non funzioni correttamente nella maggior parte dei casi, ma ho provato a gestire un progetto con esso e rapidamente mi sono sentito sopraffatto dalla durezza di usarlo. Forse oggi ci sono alcune interfacce utente per i traduttori, ma non l'ho nemmeno guardato. L'estrazione e la fusione di stringhe non lo fanno proprio per me.

Ora, grazie Artyom per aver parlato di XLIFF, che è una soluzione molto migliore per il mio ambiente poiché tutto è XML. Oh! E ci sono degli editor eccellenti là fuori. Ma se ti piace gettext() non li troverai. 8-)

io suggerire a guardare questo per esempio:

https://sourceforge.net/projects/wordforge2/

Ora, questo può dare al programmatore un incubo per far funzionare il tutto, ma quello che vogliamo è un sogno diventato vero per i traduttori (e zero lavoro da parte del programmatore come traduzioni, perché posso dirti che con gettext() ho dovuto fare tutto il lavoro!)

+0

Sono consapevole che questo post è vecchio. C'è una buona libreria Translate Toolkit (http://toolkit.translatehouse.org/). Il punto di gettext è: come definisci le stringhe da tradurre e le stringhe a non farlo. Come estrai quelle stringhe. Come si importano le stringhe tradotte che vengono mantenute aggiornate dopo un lungo periodo di tempo. Non si tratta di editor che usi per tradurre. Puoi convertire po a XLIFF e viceversa con Toolkit, usando script, senza lavoro manuale. – Pihhan

+0

Sì, la mia esperienza era intorno al 2004, quando dovevo fare tutto il lavoro a mano per ottenere tutto da tradurre. Oggi abbiamo strumenti molto migliori! –

2

C'è un'alternativa da Zend che supporta gettext *. file po/* .mo e molti altri formati. Molti server Apache memorizzano nella cache i file di traduzione perché gettext è implementato come modulo e il server deve essere riavviato per aggiornare i dati di traduzione.

L'implementazione Zend evita questo e supporta molti altri formati:

http://framework.zend.com/manual/1.12/en/zend.translate.html