SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Descarregar

Internacionalitzar els esquelets (plantilles)

Juny de 2004 — mis à jour le : Febrer de 2011

Totes les versions d’aquest article:

La internacionalització dels esquelets (plantilles), que tractem en aquest article, està disponible a partir de l’SPIP 1.7.


Perquè crear esquelets (plantilles) multilingües?

A partir de la publicació dels documents, l’SPIP adapta algunes informacions «automàtiques» a la llengua desitjada. Particularment, les dades es mostren en la llengua del lloc, o d’un article, o d’una secció, els formularis es mostren en la llengua corresponent (per exemple la interfície per penjar els missatges dels fòrums)... Tot això està ja traduït a l’SPIP.

Però, amb això no n’hi ha prou: els webmestres insereixen en les seves plantilles un cert nombre d’informacions, descrivint essencialment els principis de navegació en el lloc. És necessari, per exemple, mostrar els texts de l’estil «Mapa del lloc», «Respondre a aquest article», «Articles del mateix autor», «Dins la mateixa secció»... Quan un lloc té només una llengua, aquests diferents elements són fàcils d’inserir: s’insereixen tal qual en el codi HTML de les plantilles. El problema sorgeix quan el lloc és multilingüe: a sota d’un article en francès, volem mostrar «Répondre à cet article», però a sota d’un article anglès, tenim necessitat de mostrar un altre text («Comment on this article»).

[SPIP 1.7.2] proposa tres mètodes per gestionar aquests elements de text diferents segons les llengües:

— (1) un mètode que consisteix en emmagatzemar els elements de text dels esquelets en fitxers de llengua (un fitxer diferent per cada llengua utilitzada en el lloc), separats dels esquelets; un esquelet únic (per exemple article.html que cridi, segons els codis definits pel webmestre, aquests elements de text en funció de la llengua utilitzada; d’aquesta manera, un mateix esquelet article.html mostrarà automàticament el text «Répondre à cet article» o «Comment on this document» en funció de la llengua de l’article. Aquest mètode és molt aconsellable, ofereix el màxim d’agilitat, facilita les actualitzacions del lloc (es treballa amb un únic esquelet que gestiona automàticament diverses llengües), i al final s’afegiran a SPIP unes eines que facilitin el treball col·lectiu de traducció de la interfície del vostre lloc (diversos administradors, parlant cadascú una llengua diferent, podran traduir la interfície d’un mateix lloc des de l’espai privat, sense necessitat d’intervenir en els fitxers dels esquelets);

— (2) un mètode accessible més ràpidament, tècnicament més simple, basat en la creació de fitxers d’esquelets diferents per cada llengua. Amb aquest mètode, es fabrica un fitxer article.html per gestionar els articles en francès, i un fitxer article.en.html pels articles en anglès (nota: article.html gestiona en realitat totes les llengües excepte l’anglès). Aquest mètode no s’aconsella si el lloc utilitza diverses llengües i/o si s’utilitzen esquelets diferents segons les seccions. D’altra banda, en tots els casos és molt beneficiós substituir-lo pel mètode 3 descrit a continuació:

— (3) el mètode dels «blocs multilingües», introduït per [SPIP 1.7.2] , funciona tant en els continguts com en els esquelets. En tindrem prou afegint a l’esquelet la següent construcció:

i la frase es mostrarà en la llengua que desitgem. Tot i que aquest sistema és molt àgil té encara les seves limitacions després que la quantitat de llengües és important i que es desitja que diferents traductors puguin intervenir en el lloc (és necessari, en efecte, que aquests puguin modificar l’esquelet, el que el mètode dels fitxers de llengua permet evitar).

1. Mètode dels fitxers de llengua

El principi dels fitxers de llengua consisteix en inserir a dins d’una plantilla única un codi, que correspondrà en cada llengua a un element de text (una «cadena»); entre les diferents llengües el codi no varia, però el text es tradueix.

Per exemple, podem decidir que el codi telechargement correspon a:
— en francès, a la cadena «télécharger ce fichier»,
— en anglès, a la cadena «download this file»,
— en català, a la cadena «descarregar aquest arxiu»,
— etc.

Dins del fitxer de la plantilla dels articles (un sol fitxer gestionarà totes les llengües), article.html, n’hi ha prou en inserir el codi (fixeu-vos en la sintaxi):

En el moment que un article es publica, aquest codi serà substituït per la seva traducció a la llengua de l’article.

Per exemple, en la plantilla article.html, inserirem dins el bucle que mostra els documents associats a l’article, el codi següent:

Si aquest article és en francès, tindrem:

<a href="/IMG/jpg/mondocument.jpg">télécharger ce fichier</a>

si és en català:

<a href="/IMG/jpg/mondocument.jpg">descarregar aquest arxiu</a>

i així successivament. Una única plantilla, que conté un codi únic, mostra un text traduït en totes les llengües que s’utilitzen en aquest lloc.

-  Utilitzar texts ja traduïts

Per facilitar el treball dels webmestres, l’SPIP proporciona un conjunt de cadenes ja traduïdes (pels traductors de l’SPIP). Utilitzant aquestes cadenes, que corresponen a elements de text utilitzats freqüentment en llocs Web, el webmestre pot de manera molt ràpida realitzar una interfície que funcioni en diverses llengües, encara que ell no les parli.

Podeu llistar les cadenes disponibles des de l’espai privat: aneu a la secció «Gestió de les llengües» dins d’«Administració del lloc», després cliqueu a la pestanya «Fitxers de les llengües». Ja només us cal cercar i triar aquells codis que voleu per realitzar les vostres plantilles.

PNG - 14.4 kB
Els fitxers de llengua a l’espai privat

Exemple : un webmestre vol realitzar la interfície per un lloc en francès, en català i en àrab, però ell no parla l’àrab. Inserint dins de les plantilles els codis proporcionats per l’ SPIP, no s’ha de preocupar d’obtenir traduccions en àrab, perquè el treball més important de traducció ja l’han fet els traductors de l’SPIP; d’aquesta manera, posant a punt la interfície en francès, amb els codis donats per l’SPIP, sap que les seves pàgines es mostraran en català i en àrab.

Si més endavant s’hi vol afegir articles en polonès, aquests es mostraran immediatament amb els elements de text traduïts en polonès, sense que el webmestre tingui d’intervenir altre cop.

Una altra avantatge d’aquest mètode: facilita la creació de plantilles «a distribuir» immediatament multilingües. Les plantilles fetes seguint aquest mètode seran utilitzables immediatament en totes les llengües en les que sigui traduït l’SPIP.

Des d’un punt de vista tècnic, els elements de text proporcionats de manera estàndard amb l’SPIP són emmagatzemats dins els fitxers de llengua «públic» :
— /ecrire/lang/public_fr.php conté les cadenes en francès,
— /ecrire/lang/public_en.php en anglès
— etc.

-  Crear els seus propis codis

És possible crear els seus propis codis, corresponents a les cadenes que un mateix desitja adjuntar.

Es tracta, llavors, de crear els fitxers de llengua personals, seguint el model dels fitxers public.... Per crear els vostres propis, els instal·lareu en un directori squelettes/lang a crear en cas que no existeixi.
— local_fr.php per definir les cadenes en francès,
— local_en.php en anglès,
— local_ca.php en català,
— ...

Històric: A les versions anteriors a [SPIP 1.8], els fitxers de llengua personals es situaven només en el directori /ecrire/lang.

Per exemple, podrem crear les cadenes següents:
— telechargement per mostrar «Descarregar la última versió»,
— quoideneuf per mostrar «Modificacions recents».

Segons aquest mètode, si s’insereixen a les plantilles els codis <:telechargement:> et <:quoideneuf:>, seran mostrats amb les traduccions corresponents, tal i com han estat definides en els fitxers local_...php.

Adonem-nos que els codis són arbitraris: sou vosaltres que els escolliu. Us recomanem, evidentment, escollir aquells codis que us sigui més fàcil de retenir (abans que números, per exemple). Com passa sovint amb els codis informàtics, és preferible utilitzar únicament lletres de l’alfabet llatí i sense accents...

Els fitxers de llengua contenen les diferents traduccions dels codis que utilitzareu: són fitxers PHP que contenen cadascun un quadre associant als codis les cadenes corresponents de cada llengua.

Contindran, per exemple:

-  Versió francesa:

-  Versió catalana:

La construcció és la següent:

— al començament del fitxer:

— al final del fitxer:

— la part que un mateix ha d’enriquir consisteix en diverses línies de definicions, com el model :

N.B. Cada línia de definició s’acaba amb una coma, excepte la darrera línia.

N.B.2. El text de la cadena a traduir s’ha de convertir en codis HTML (els caràcters accentuats, per exemple, són convertits en el seu equivalent HTML, del tipus &eacute;).

Els apòstrofs a l’interior de la cadena, perquè no desapareguin, han d’anar precedits del caràcter de control «contrabarra». Per exemple, la cadena « sur l’internet » s’ha d’escriure: sur l\'internet.

Nota: al final, està previst incloure una eina que permeti gestionar i crear els propis fitxers de llengua sense haver de modificar «a mà» els fitxers PHP. Aquesta eina facilitarà a més l’ús de caràcters «especials» (caràcters accentuats, caràcters d’alfabets no occidentals, apòstrofs...), així com la possibilitat que diverses persones col·laborin en el procés de traducció de la interfície del lloc públic.

De moment, l’eina que permet gestionar la traducció de les cadenes de text no es dóna directament amb l’SPIP, i el seu ús més general (la fem servir per traduir tota la interfície de l’SPIP, i no solament els fitxers de llengua del tipus local...php) fa que sigui una mica complex en relació a aquesta tasca. El programa, trad-lang, que ens serveix per traduir el programari SPIP, el lloc spip.net, etc., es troba disponible sota llicència GNU/GPL, però no està integrat en estàndard a l’SPIP. Podeu descarregar-lo, per utilitzar-lo al vostre lloc o per altres projectes de programari. Si el milloreu o teniu idees per transformar-lo, dirigiu-vos a la llista de traductors de l’SPIP, spip-trad.

2. Esquelets separats per cada llengua

El segon mètode, més accessible als webmestres novells, consisteix en crear plantilles diferents per cadascuna de les llengües. Una mica sobre el mateix principi que consisteix a crear plantilles específiques diferents per diferents seccions per obtenir interfícies gràfiques diferents.

Volem fer un lloc en francès (llengua per defecte), en anglès i en català. Fem tres fitxers diferents:
— article.html pel francès (en realitat, per totes les llengües que no tenen un fitxer de llengua específic),
— article.en.html per l’anglès,
— article.ca.html pel català.

(Nota : si es publica un article en alemany, com que no hi ha cap plantilla article.de.html en el nostre lloc, és la plantilla article.html la que es farà servir).

Important: per tal que les plantilles «per llengua», definits amb l’afegit d’un .lang final del nom, siguin tinguts en compte, és necessari obligatòriament que existeixi una versió «per defecte» del lloc.

Aquí, si article.html no existeix (s’hauria preferit anomenar directament un article.fr.html), els fitxers anglès i català no es tindran en compte.

Es pot combinar això amb el nom «per secció», i es tindrà en compte l’ordre següent:
— article=8.es.html (l’esquelet pels articles en català de la secció 8, però no les sub-seccions),
— article=8.html (l’esquelet pels articles de la secció 8, però no per les sub-seccions),
— article-2.es.html (l’esquelet pels articles en català de la secció 2 i les seves sub-seccions),
— article-2.html (l’esquelet pels articles de la secció 2 i les seves sub-seccions),
— article.ca.html (l’esquelet pels articles en català),
— article.html (l’esquelet pels articles),
— article-dist.html (l’esquelet pels articles que porta l’SPIP).

Nota: tret d’algunes excepcions, es necessari utilitzar aquí els codis de llengües amb dues lletres normalitzats per l’ISO, com «ca». Podem trobar la llista a la web de la Biblioteca del Congrés dels Estats Units. (evident!). Per assegurar-nos un màxim de compatibilitat, utilitzarem prioritàriament els codis ISO de dues lletres (« iso 639-1 »), quan existeixen, i per una designació més especialitzada d’una llengua dins la seva família lingüística els codis ISO de tres lletres (« iso 639-2 T»). Per exemple, l’alemany serà anomenat com «de». Però l’ISO només té en compte 182 llengües de les 5.000 a 7.000 llengües parlades al món; per aquelles llengües que encara no estan inscrites en aquesta llista, ens podem guiar en la llista que proposa el lloc ethnologue.com; per saber-ne més coses, adreceu-vos a la llista spip-trad.
Simplificar-se la vida. Un dels mètodes d’estructuració molt simple que permet SPIP per gestionar un lloc multilingüe consisteix en associar directament les llengües a les seccions (i no article per article). Així, en el cas en el que els articles d’una mateixa llengua es reagrupen en una mateixa secció (veure per sectors), ens podem limitar a crear les plantilles específiques per secció, sense utilitzar llavors els noms de fitxers per llengües.

D’aquesta manera, si tots els articles en català són reagrupats a la secció 8 (i les seves sub-seccions), només cal que anomenem el fitxer adaptat al català rubrique-8.html més que rubrique.ca.html.

Podem endevinar els problemes que poden sorgir amb aquest mètode:
— el fitxer article-2.html ha d’existir si volem que article-2.ca.html pugui ser seleccionat ;
— no podem decidir, a la inversa, que article.ca.html ha de ser utilitzat en lloc d’article-2.html si article-2.ca.html no existeix: la selecció per seccions té sempre prioritat per damunt de la selecció per llengües;
— una correcció de compaginació en una plantilla implica fer la mateixa correcció en les altres versions,
— hem de poder inserir nosaltres mateixos elements de text dins els fitxers de les plantilles, encara que no comprenguem forçosament la llengua (imagineu-vos crear així les plantilles en àrab encara que parleu només una mica el francès de l’oest o bastant malament l’occità del nord...).

Aquest mètode està destinat doncs a aquells que volen treballar ràpidament en llocs poc complexes (pocs o sense plantilles específiques a les seccions) i/o que tinguin poques llengües diferents. En el moment que el vostre projecte esdevé una mica més ambiciós, és del tot aconsellable treballar amb el mètode dels fitxers de llengua.

3. Els blocs multilingües

Els blocs multi definits a l’article Realitzar un lloc multilingüe funcionen tan bé en el text dels autors o les paraules clau com en els esquelets. Atenció, aquests blocs gestionen només el text, i no el bucles SPIP !

Per gestionar ràpidament un lloc multilingüe en un primer temps és, sens cap mena de dubte, el millor mètode, a la vegada accessible i eficaç; després, un cop el vostre lloc sigui estable, si teniu necessitat d’afinar les vostres plantilles (per exemple, per obrir-les a més llengües; o per distribuir-les com a contrib; o fins i tot per «professionalitzar-les»), necessitareu transformar els vostres blocs multi en fitxers de llengua.


Descarregar l’esquelet d’aquesta pàgina Lloc Web fet amb l’SPIP | Espace de traduction | Espai privat