Desenvolupament d'Aplicacions

Laravel 5.4 translations

En versions anteriors de Laravel per poder tenir més d'un idioma a la web havíem de crear fitxers php amb un return d'un array clau-valor i després accedíem a ells fent ús de la funció trans de manera que trans('fitxer.clau') ens donava el valor.

Laravel 5.4 translations

Traduccions a Laravel 5.4

La solució anterior és elegant i molt útil, però al final acabem repetint claus i valors en diferents fitxers si no anàvem amb compte a l'hora de crear les traduccions. 

Des de Laravel 5.4, a part de mantenir aquesta opció, tenim una altra forma de realitzar-ho. La funció és "__('')" i el seu argument és el text que volem obtenir en l'idioma predeterminat. Per cada idioma diferent al default vam crear un [codi de l'idioma].json amb:
{
    "text en l'idioma default": "traducció"
}

Amb això no tindrem claus que recordar i per canviar un text solament hem de buscar quin és en l'idioma original i posar-li la traducció. Si en algun moment volem canviar el valor de l'idioma per defecte podem crear un [codi de l'idioma original].json i canviar la clau anterior per la nova, així ens estalviem canviar la clau en cada idioma que ja tenim creat. Té l'afegit que és un idioma menys del que preocupar-te, ja que escrivim l'idioma per defecte directament en les vistes i no en un fitxer per separat.

La part negativa és que els paquets no tenen accés a aquest json, aquests han de quedar-se amb el array php de clau valor i acabem tenint les traduccions barrejades entre l'opció de sempre i la nova.

La utilitat està al moment que tenim una pàgina ja acabada i l'últim dia demanen fer-la multiidioma, vam crear els N ".json" i en les vistes canviem els textos de "Aquest és el text" a "{{ __('Aquest és el text') }}", i això és molt mes ràpid que copiar el text, posar-ho en un array i tornar a la vista afegint-li la key que acabem de crear.

També és útil tenir totes les traduccions juntes, ens evita copiar mil arxius per idioma en comptes d'1 per idioma. Si volem crear un idioma nou solament hem de copiar un arxiu i modificar-ho amb l'idioma nou.

Comparteix aquest article

Articles Relacionats