Diferència entre revisions de la pàgina «Transcript»

De KDE Català
Salta a:navegació, cerca
(Actualitzar a KF5)
m (Actualitzar el nom del fitxer ki18n5.js)
 
Línia 69: Línia 69:
 
* i tercer, un script que associa les <code>propietats</code> "de" i "de-horames" a la traducció de l'hora. El valor de la <code>propietat</code> "de" (s'utilitzarà per l'apostrofació) assignada a "una" és 'd\\'una'. El valor de la <code>propietat</code> "de-horames" assignada a "una" és 'de dues' (s'utilitzarà per a fer els quarts). Quan un valor té més d'una paraula cal assignar-lo entre cometes simples; i si el valor també conté una cometa simple, aquesta cal escapar-la amb una doble barra inversa \\).
 
* i tercer, un script que associa les <code>propietats</code> "de" i "de-horames" a la traducció de l'hora. El valor de la <code>propietat</code> "de" (s'utilitzarà per l'apostrofació) assignada a "una" és 'd\\'una'. El valor de la <code>propietat</code> "de-horames" assignada a "una" és 'de dues' (s'utilitzarà per a fer els quarts). Quan un valor té més d'una paraula cal assignar-lo entre cometes simples; i si el valor també conté una cometa simple, aquesta cal escapar-la amb una doble barra inversa \\).
   
El nom de l'script a aplicar, <code>propietats</code> en aquest cas, ha de coincidir amb el de la funció setMsgstrProps que hem utilitzat a la darrera línia no comentada del fitxer kdelibs4.js.
+
El nom de l'script a aplicar, <code>propietats</code> en aquest cas, ha de coincidir amb el de la funció setMsgstrProps que hem utilitzat a la darrera línia no comentada del fitxer ki1n5.js.
   
 
Els noms de les <code>propietats</code> ("de" i "de-horames") són totalment arbitraris. Però cal que coincideixin en el moment d'utilitzar-les. Fins aquí només hem assignat uns valors a unes propietats d'uns missatges traduïts. Encara no hem fet gaire mal. Ara veurem com utilitzem les <code>propietats</code> en els missatges a traduir:
 
Els noms de les <code>propietats</code> ("de" i "de-horames") són totalment arbitraris. Però cal que coincideixin en el moment d'utilitzar-les. Fins aquí només hem assignat uns valors a unes propietats d'uns missatges traduïts. Encara no hem fet gaire mal. Ara veurem com utilitzem les <code>propietats</code> en els missatges a traduir:
Línia 98: Línia 98:
 
* i tercer, un script que utilitza el valor assignat a la <code>propietat</code> "de-horames" associat a l'hora %1; quan %1 sigui "una", "de-horames" tindrà el valor "de dues" (tal com hem definit abans), i per tant, la traducció de "quarter past one" serà "un quart de dues". De manera equivalent, el segon missatge utilitza el valor assignat a la <code>propietat</code> "de" associat a l'hora %1; quan %1 sigui "onze", la traducció de "twenty five to eleven" serà "dos quarts i cinc d'onze".
 
* i tercer, un script que utilitza el valor assignat a la <code>propietat</code> "de-horames" associat a l'hora %1; quan %1 sigui "una", "de-horames" tindrà el valor "de dues" (tal com hem definit abans), i per tant, la traducció de "quarter past one" serà "un quart de dues". De manera equivalent, el segon missatge utilitza el valor assignat a la <code>propietat</code> "de" associat a l'hora %1; quan %1 sigui "onze", la traducció de "twenty five to eleven" serà "dos quarts i cinc d'onze".
   
Si en lloc d'obtenir la traducció scriptada correcta s'obté la traducció de reserva, molt probablement no teniu instal·lat correctament el fitxer kdelibs4.js (permisos, camí, etc.).
+
Si en lloc d'obtenir la traducció scriptada correcta s'obté la traducció de reserva, molt probablement no teniu instal·lat correctament el fitxer ki18n5.js (permisos, camí, etc.).
   
 
El meu agraïment a Chusslove Illich (Часлав Илић) per l'ajuda en adaptar el Transcript al català.
 
El meu agraïment a Chusslove Illich (Часлав Илић) per l'ajuda en adaptar el Transcript al català.

Revisió de 21:01, 5 març 2016

Logo KDE.png

 cat >> KDE

  Ubicació: cat >> KDE Inici



Transcript


Què és el Transcript?


El Transcript (Translation Scripting System) és una eina que permet substituir en temps d'execució les cadenes traduïdes, en funció del context. L'objectiu del Transcript és permetre al traductor que pugui construir traduccions correctes en casos que ara escapaven del seu control. Per exemple, quan un missatge té una variable (%1) que se substitueix en executar el programa, o quan dues cadenes sense relació esdevenen relacionades a la interfície gràfica.

Tota la informació sobre el Transcript la trobareu a la seva pàgina oficial.

Tot seguit veurem la infraestructura necessària i un exemple.


Infraestructura del Transcript


Nota: actualment, el fitxer ki18n5.js ja està creat i disponible en el svn.

En primer lloc, cal crear el fitxer ca/scripts/frameworks/ki18n5/ki18n5.js (al KDE4, el fitxer era a ca/scripts/kdelibs/kdelibs4/kdelibs4.js) i posar-hi el codi d'script apropiat. Com que en principi només necessitem l'Automatic Property Calls, podem copiar el fragment de codi indicat aquí. A la darrera línia no comentada del codi, en lloc de properties s'ha canviat per propietats (cal fer país!). Per a instal·lar l'script cal tornar a executar scripts/autogen.sh ca i instal·lar el mòdul d'idioma de manera habitual. Només en cas d'afegir noves funcions caldrà incorporar-les en aquest fitxer.

Per a que funcioni el Transcript cal que l'usuari tingui accés de lectura a la seva ubicació definitiva, que habitualment és:

$KDEDIR/share/locale/ca/LC_SCRIPTS/ki18n5/ki18n5.js


Un exemple d'ús


Hi ha una pedra a la sabata de tots els traductors: el rellotge aproximat (fuzzy clock). Cada idioma té la seva pròpia manera d'indicar les hores, i la versió en anglès no és la més apropiada per utilitzar-la com a base per a la resta de traduccions. Això obliga a fer mans i mànigues per a obtenir unes traduccions mínimament correctes. Amb el Transcript, tot i que afegeix complexitat a les traduccions, permet resoldre amb elegància els problemes.

En el rellotge aproximat en català, tenim dues qüestions a resoldre:

  • l'apostrofació (d'una, de dues, ... , d'onze, de dotze)

Anem a veure com resolem les dues qüestions amb el Transcript seguint l'exemple del "plasma_applet_fuzzy_clock.po":


  msgctxt "hour in the messages below"
  msgid "one"
  msgstr ""
  "una"
  "|/|"
  "$[propietats de 'd\\'una' de-horames 'de dues']"
  ...
  msgctxt "hour in the messages below"
  msgid "ten"
  msgstr ""
  "deu"
  "|/|"
  "$[propietats de 'de deu' de-horames 'd\\'onze']"
  ...

A les traduccions (msgstr) de cada una de les hores podem veure que tenim:

  • primer, la seva traducció natural (una, dues, ..., dotze)
  • segon, un separador |/| que separa la part no scriptada de la part scriptada
  • i tercer, un script que associa les propietats "de" i "de-horames" a la traducció de l'hora. El valor de la propietat "de" (s'utilitzarà per l'apostrofació) assignada a "una" és 'd\\'una'. El valor de la propietat "de-horames" assignada a "una" és 'de dues' (s'utilitzarà per a fer els quarts). Quan un valor té més d'una paraula cal assignar-lo entre cometes simples; i si el valor també conté una cometa simple, aquesta cal escapar-la amb una doble barra inversa \\).

El nom de l'script a aplicar, propietats en aquest cas, ha de coincidir amb el de la funció setMsgstrProps que hem utilitzat a la darrera línia no comentada del fitxer ki1n5.js.

Els noms de les propietats ("de" i "de-horames") són totalment arbitraris. Però cal que coincideixin en el moment d'utilitzar-les. Fins aquí només hem assignat uns valors a unes propietats d'uns missatges traduïts. Encara no hem fet gaire mal. Ara veurem com utilitzem les propietats en els missatges a traduir:


  msgctxt "%1 the hour translated above"
  msgid "quarter past %1"
  msgstr ""
  "%1 i quart"
  "|/|"
  "un quart $[de-horames %1]"
  ...
  msgctxt "%1 the hour translated above"
  msgid "twenty five to %1"
  msgstr ""
  "dos quarts i cinc de %1"
  "|/|"
  "dos quarts i cinc $[de %1]"
  ...

A les traduccions dels missatges tenim:

  • primer, una traducció simple però poc acurada de reserva, per si falla la part scriptada
  • segon, un separador |/| que separa la part no scriptada de la part scriptada
  • i tercer, un script que utilitza el valor assignat a la propietat "de-horames" associat a l'hora %1; quan %1 sigui "una", "de-horames" tindrà el valor "de dues" (tal com hem definit abans), i per tant, la traducció de "quarter past one" serà "un quart de dues". De manera equivalent, el segon missatge utilitza el valor assignat a la propietat "de" associat a l'hora %1; quan %1 sigui "onze", la traducció de "twenty five to eleven" serà "dos quarts i cinc d'onze".

Si en lloc d'obtenir la traducció scriptada correcta s'obté la traducció de reserva, molt probablement no teniu instal·lat correctament el fitxer ki18n5.js (permisos, camí, etc.).

El meu agraïment a Chusslove Illich (Часлав Илић) per l'ajuda en adaptar el Transcript al català.