Domanda

Ho esaminato alcune opzioni per consentire la localizzazione e l'internazionalizzazione di un'applicazione php dinamica. Sembra esserci una varietà di strumenti disponibili come gettext e Yahoo R3 e sono interessato a conoscere sia gli sviluppatori che i traduttori su quali strumenti sono buoni da usare e quali funzionalità sono importanti per facilitare il compito di implementazione e traduzione.

È stato utile?

Soluzione

L'implementazione di PHP gettext funziona in modo molto fluido. E i file po con po edit e gettext sono il modo migliore per gestire la localizzazione tenendo presente che nessuna soluzione di questo tipo può gestire completamente la complessità delle varie lingue. Ad esempio, il metodo gettext è molto buono su forme plurali, ma nulla di ciò che ho visto può gestire cose come la coniugazione.

Per maggiori informazioni vedi il mio post qui: Come costruisci un sito web multilingue?

Altri suggerimenti

Abbiamo armeggiato con Zend_Translate , dal momento che usiamo lo Zend Framework comunque. È molto ben documentato e finora estremamente solido.

In passato, ho praticamente usato la mia soluzione coltivata in casa principalmente. Ciò implica file di lingue con costanti o variabili che contengono tutte le parti di testo e vengono ripetutamente ripresi nella vista / modello in seguito.

Per quanto riguarda gettext, in passato ho sentito riferimenti sull'implementazione di gettext di PHP difettosa, ma non riesco davvero a fare il backup né ho riferimenti al momento.

Esistono numerose estensioni utili in pecl: http://pecl.php.net/packages.php?catpid=28& catname = Internazionalizzazione

In particolare, potresti voler controllare php-intl, che fornisce la maggior parte delle funzioni chiave i18n di International Components for Unicode (ICU)

la soluzione basata su database per mostrare i messaggi non è sempre buona, ho lavorato in un sito con più di 15 lingue e le traduzioni sono state un problema.

quindi il nostro design era:

  • app di traduzione in php-mysql (accesso alla traduzione, ecc.)
  • quindi le traduzioni sono scritte in arrangiamenti php
  • questi array sono anche memorizzati nella cache di APC per velocizzare il sito.

quindi per localizzare lingue diverse devi solo includere un

come

<?php
include('lang/en.php');
include('lang/en_us.php'); // this file overrides few keys from the last one.
?>

Xataface può essere usato abbastanza facilmente per internazionalizzare un'applicazione PHP / MySQL arbitraria. Supporta la traduzione sia del testo statico che dei dati del database. Tutto quello che devi fare è aggiungere una riga o 2 di codice in un paio di posizioni nella tua applicazione ed è bello andare.

http://xataface.com/documentation/tutorial/internationalization-with-dataface-0.6

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