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?

È stato utile?

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 " _ ")

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