Best practice per la creazione di vari language pack in un sito? PHP
-
06-07-2019 - |
Domanda
Ho già creato un language pack per un sito, ma non sono sicuro che quello che sto facendo sia il metodo migliore.
Fondamentalmente, tutto ciò che ho è un file con variabili che definiscono le costanti di stringa. Di solito un insieme di array in cui un array di solito si riferisce a un particolare elemento del sito.
Quindi il codice del sito include solo il file appropriato basato su un flag e quindi riecheggia l'elemento array appropriato.
Quali sono alcuni modi per farlo per ridurre il mal di testa e le prestazioni di manutenzione?
Soluzione
Suggerisco di utilizzare Zend_Translate . È in qualche modo una combinazione degli altri suggerimenti che le persone lasciano qui, solo più mantenibili e progettati meglio.
Puoi cambiare gli adattatori in base alle tue preferenze (supporta gettext, csv e una moltitudine di altri), non hai bisogno di definizioni o globi che inquinano il tuo ambito globale ed è ben documentato.
Altri suggerimenti
L'opzione migliore che potresti avere, con PHP, è GetText , ma non tutti i server lo hanno incorporato, quindi potrebbe essere un blocco dello spettacolo se gestisci il tuo server.
Un paio dei modi più comuni per farlo sono:
1) Usa define ('SOME_STRING', 'Some string');
- hai semplicemente un file diverso riempito con queste definizioni per ogni lingua. Questo è molto semplice e non devi usare " global " dappertutto.
2) Avvolgi le stringhe in una funzione: translate ('My String')
- questo è più flessibile in quanto puoi analizzare il tuo codice per creare elenchi di stringhe da tradurre e aggiungere funzionalità come variabili , per esempio translate ('Posso contare fino a [numero]', 10);
(ovviamente, di solito scegli un nome di funzione più breve, come " _ ")