Procés de traducció d'un programa informàtic anomenat OpenOffice

Jesús Corrius i Llavina

jesus@softcatala.org

"Baixem, doncs, i confonguem la seva llengua perquè ningú no entengui la parla del seu germà"

(Gen 11:7)

Terminologia

Internacionalització (I18N): Modificació d'un programa informàtic de manera que permeti que aquest pugui gestionar múltiples llenguatges de manera eficaç.

Localització (L10N): Conversió d'un producte (programa, pàgina web, ajuda en línia, documentació) d'una llengua a una altra, tot fent que el producte sigui lingüísticament i culturalment apropiat pels parlants de la llengua de destinació.

Traducció

Fases generals del procés

Fase 1: Extracció

Fase 2: Traducció

Fase 3: Integració

Fase 1: Extracció

Familiarització amb el producte

Anàlisi de les cadenes originals

Creació d'un glossari

Extracció de les cadenes

Conversió de les cadenes en un format còmode de treballar pels traductors

Familiartizació amb el producte

No podem traduir correctament un programa que no coneixem

"Si volem entendre el món, com a mínim n'hem d'estimar una petita part"

(Henrik Ibsen)

Anàlisi de les cadenes originals

Format intern de les cadenes

Recursos multiplataforma (Windows, GNU/Linux, Solaris)

Estructures de dades en el codi font en 3 tipus de fitxer diferents.

FixedText FT_FORMULA_RESULT

{

Text = "Ergebnis" ;

Text [ ENGLISH ] = "Result" ;

Text [ italian ] = "Risultato" ;

}

StringList [ english_us ] =

{

< "Last Used" ; Default ; > ;

< "All" ; Default ; > ;

< "Database" ; Default ; > ;

}

"Totes les famílies felices s'assemblen, totes les famílies desgraciades ho són a la seva manera"

(Lev Tolstoi)

Anàlisi de les cadenes originals

Codificació:

Format de text UNIX

Indentificar possibles problemes en la traducció abans que es produexin:

Llargada de les caixes de diàleg

Cadenes que no es poden traduir

Caràcters especials (en Win98 no es veu correctament el punt de la ela gemminada)

"Totes les famílies felices s'assemblen, totes les famílies desgraciades ho són a la seva manera"

(Lev Tolstoi)

Creació d'un glossari

Per què és important crear un glossari?

Perquè és una eina de consulta imprescindible, el desconeixement de la qual impedeix poder ser traductor del producte.

Perquè l'anàlisi terminològic que hem fet el puguin aprofitar altres persones o entitats com a guia.

Perquè ens pot servir per fer la pretraducció de les cadenes

Per coherència en les traduccions. Per exemple com s'ha de traduir la paraula “File” en la versió catalana d'OpenOffice?

Creació d'un glossari

El glossari de l'OpenOffice en català

Conté gairebé 7.000 paraules anglès-català sobre ofimàtica

Es pot consultar des de: http://www.softcatala.org/projectes/openoffice/glossari.htm

Necessita un repàs per actualitzar-lo a les últimes versions i algú que en faci un buidat terminològic. Algú s'hi anima?

Extracció de les cadenes

Format original en el codi font del programa OpenOffice

Format intermig d'enginyeria de producte

Format de traducció (fitxers PO)

Extracció de les cadenes

Format intermig d'enginyeria?

Necessitat de tenir un format còmode per corregir petits errors, incoherències, etc.

Mantenir les cadenes agrupades.

Característiques

S'ha de poder importar/exportar de manera molt fàcil al producte amb un risc del 0% (o molt petit)

Conté informació tècnica que pot “molestar” els traductors, però imprescindible per l'enginyeria de producte

Format molt estricte.

Extracció de les cadenes

Format intermig

basctl	source\basicide\basidesh.src	0	string	RID_STR_FILTER_ALLFILES	0	37	<Tot>	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_NOMODULE	0	37	< Cap mòdul >	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_WRONGPASSWORD	0	37	Contrasenya incorrecta.	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_OPEN	0	37	Carrega	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_SAVE	0	37	Desa	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_SOURCETOBIG	0	37	El text font és massa gran i no es pot compilar ni desar.\n Suprimiu alguns dels comentaris o transferiu alguns mètodes a un altre mòdul.	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_ERROROPENSTORAGE	0	37	S'ha produït un error en obrir el fitxer	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_ERROROPENLIB	0	37	S'ha produït un error en carregar la biblioteca	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_NOLIBINSTORAGE	0	37	El fitxer no conté cap biblioteca del BASIC	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_BADSBXNAME	0	37	El nom no és vàlid	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_LIBNAMETOLONG	0	37	Un nom de biblioteca pot tenir fins a 30 caràcters.	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_ERRORCHOOSEMACRO	0	37	Les macros d'altres documents no són accessibles.	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_LIBISREADONLY	0	37	Aquesta llibreria és de només lectura.	20020426 20:25:25

basctl	source\basicide\basidesh.src	0	string	RID_STR_REPLACELIB	0	37	No es pot reemplaçar 'XX'.	20020426 20:25:25

Format de treball dels traductors

Extracció de les cadenes

Format intermig

Format de treball dels traductors

Convertir la codificació de caràcters

Indexació de les cadenes

Divisió de les cadenes en fitxers petits

Formatar les cadenes

Pretraducció amb glossari

Pretraducció amb memòries de traducció

Afegir-hi suggerències, etc.

Extracció de les cadenes

Format intermig

Format de treball dels traductors

source\basicide\basidesh.src, RID_STR_OPEN, string

# Suggerència de traducció: Carrega

“Load”

Carrega

source\basicide\basidesh.src, RID_STR_RUNTIMEERROR, string

“Runtime error”

Error en temps d'execució

source\ui\wrtsh\wrtsh.src, STR_INSERT_UNDO, string

# Suggerència de traducció: Número

“Number”

Número

Fase 2: Traducció

Pretraducció

Recuperació de les cadenes

El format de fitxer PO

El nostre format

Eines de traducció

Pretraducció

El glossari que hem generat serveix per traduir parts del programa

Normalment hi ha moltes cadenes repetides.

Realimentació de traduccions

Utilitzar altres glossaris per fer pretraduccions.

Recuperació de les cadenes

Noves versions del programa

Versió actual del programa

Traduccions

Versió traduïda

?

Recuperació de les cadenes

!

Recuperació de les cadenes del programa

Recuperació de les cadenes d'ajuda

Cada cadena té el seu identificador

La majoria de programes proporcionen eines pròpies o estàndard

La majoria de programes no tenen en compte l'actualització de l'ajuda

Hem d'indexar el seu contingut per paràgrafs o frases

El format de fitxer PO

Què és un fitxer PO?

PO - Portable Executable / MO – Machine Object

POT - Fitxers base

Un fitxer PO per a cada idioma

GNU Gettext ofereix diverses utilitats per manipular les cadenes

El format de fitxer PO

Format genèric

espai-en-blanc

# comentaris-del-traductor

#. comentaris-automàtics

#: referència

#, indicador...

msgid cadena-original

msgstr cadena traduïda

# Revisat. Jc 12-03-2003

#. Glossari OpenOffice

#: SC_09743;String

#, fuzzy, no-c-format

msgid “Size”

msgstr “Mida”

El format de fitxer PO

Particularitats del format

Traduccions amb formes plurals

Traduccions de més d'una línia

msgid “”

“Achilles' wrath, to Greece the direful spring\n”

“Of woes unnumber'd, heav'nly Goddess, sing!\n”

msgstr “”

“Canta, oh dea, la còlera d'Aquil·les, fill de Peleu\n”

“que ocasionà infinits mals als aqueus, etc.\n”

msgid cadena-original-singular

msgid_plural cadena-original-plural

msgstr[0] cadena-traduïda-cas-0

...

msgstr[N] cadena-traduïda-cas-n

El format de fitxer PO

Indicadors

Indicador fuzzy:

El pot generar automàticament les eines o un traductor. Indica que la cadena msgstr pot no ser una traducció correcta. Només una persona pot decidir si és correcte o no. Una vegada decidit s'ha d'eliminar manualment.

Indicador no-c-format:

Indicador c-format:

Són generats automàticament per les eines de traducció per indicar el format de traducció de les cadenes. Amb el c-format les eines han de fer comprovació automàtica de la correcció del format de les cadenes.

El format de fitxer PO

Caràcters d'escapament (c-format)

\\	barra invertida	\n	nova línia

\a	alerta	\r	principi de línia

\b	enrera	\t	tabulació hortizontal

\f	pàgina lògica següent	\v	tabulació vertical

“Sóc home; \ni penso\tque res d’humà\n no m’és aliè”

Sóc home;

i penso	que res d'humà

no m'és aliè

El format de fitxer PO

Variables de substitució (c-format)

%%	tant per cent	%c	un sol caràcter

%o	valor en octal	%s	una cadena de text

%x	valor en hexadecimal	%f	valor en coma flotant

%d	valor en decimal	%g coma flotant de notació exp.

“S'ha trobat %d fitxers”	“S'ha tobat 8 fitxers”

“El meu nom és: %s”	“El meu nom és: Jesús”

“Ha escollit la lletra %c”	“Ha escollit la lletra a”

“Heu seleccionat %d vegades el component:\t%s %f.\n”

Heu seleccionat 10 vegades el component:	OpenOffice 1.0.

“You've selected component:\t%s%f %dtimes.\n”

El nostre format

Implementació molt semblant al format PO, però sense indicadors de control (Error)

Indicació en la referència del tipus de recurs: menú, pantalla d'avís, opcions de menú desplegable, botó, etc.

Recomanació de traduccions segons el glossari. Sense traducció automàtica.

Divisió dels fitxers en unes mides raonables i còmodes de treballar

El nostre format

Traducció de l'OpenOffice avui

Es poden extreure totes les cadenes amb una eina

Hi ha scripts per convertir les cadenes en format PO

Existeix un framework especial per fer builds d'OpenOffice en diferents llengües fàcilment

Hi ha eines per traduir l'ajuda de manera més o menys automatitzada.

Eines de traducció

GNU Emacs: http://www.gnu.org/software/emacs/emacs.html

KBabel: http://i18n.kde.org/tools/kbabel/

Gtranslator: http://www.gtranslator.org/

PoEdit: http://poedit.sourceforge.net/

Microsoft Word: http://www.microsoft.com/office/word/default.asp

Eines de traducció

GNU Emacs: http://www.gnu.org/software/emacs/emacs.html

Pros:

Possiblement és el millor editor de textos que existeix (i ja té més de 30 anys)

És altament configurable

Té un mòdul especial per treballar amb fitxers PO

Contres:

És un programa molt díficil d'utilitzar pels que no són programadors. Necessites un curs per aprendre'n.

No té una interfície d'usuari moderna.

És molt gran, més de 70 Mb.

Eines de traducció

Eines de traducció

KBabel: http://i18n.kde.org/tools/kbabel/

Pros:

Permet mantenir catàlegs de projectes

Correcció ortogràfica automàtica.

És molt fàcil d'utilitzar i molt còmode.

Contres:

Només funciona sota la plataforma GNU/Linux

Està especialment dissenyat per treballar en l'entorn KDE.

Eines de traducció

Eines de traducció

Gtranslator: http://www.gtranslator.org/

Pros:

És molt fàcil d'utilitzar

Contres:

Només funciona sobre GNU/Linux.

El projecte està bastant abandonat.

Està especialment preparat per treballar en l'entorn GNOME.

Eines de traducció

Eines de traducció

PoEdit: http://poedit.sourceforge.net/

Pros:

Té les mateixes característiques que el kBabel o gtranslator.

Funciona sobre Windows.

Contres:

És bastant inestable sobre Windows.

El disseny de l'aplicació no és molt modern.

Eines de traducció

Eines de traducció

Microsoft Word: http://www.microsoft.com/office/word/default.asp

Pros:

La majoria de traductors es troben còmodes treballant amb aquest producte

Contres:

No té el més mínim respecte pels formats, codificació dels caràcters

No és gratuït. Val 150-250 Euros

El format DOC és secret

Eines de traducció

Fase 3: Integració

Correcció ortogràfica i gramatical de les cadenes

Adaptació terminològica del producte

Adaptació del producte a la nostra realitat cultural

Integració de components

El procés de proves

Producte final

Correcció ortogràfica i gramatical

La figura del corrector

No ha de tenir coneixements tècnics

S'encarrega de validar les cadenes a la recerca d'errors ortogràfics, gramaticals, barbarismes, etc.

Comprova que el vocabulari utilitzat sigui el propi del glossari del propi producte o del recull de termes de Softcatalà.

Vigila que s'hagi utilitzat les normes i guies de traducció de la guia d'estil de Softcatalà.

Adaptació terminològica

Coneixement elevat del producte

Coneixements tècnics a nivell de programador

Familiaritat amb l'estructura del codi font del programa

Capacitat de prendre decisions sobre terminologia

Requisits

Per regla general és el cap del projecte

Adaptació a la realitat cultural

Adaptar els formats del calendari, hora, moneda, etc.

Traducció de les plantilles

Traducció/adaptació de les fórmules matemàtiques de la fulla de càlcul i les macros

Permetre l'ús de la coma com a separador decimal

Permetre l'ús de la ela gemminada en la interfície gràfica

Diferents adaptacions del corrector ortogràfic, separador de síl·labes, etc.

Integració de components

Creació d'un paquet d'OpenOffice adaptat als usuaris catalano-parlants:

Plantilles

Correctors ortogràfics: català, castellà, anglès i francès

Divisor sil·làbic

Eines auxiliars

Procés de proves

Versions alpha

Versions beta

Release Candidates

Versió final

Hi ha un error!

Versions internes de desenvolupament

Versions en traducció. Alliberades a la llista

Traducció completa

Procés de proves

Versió original

Traducció

Procés de proves

Versió final

Versió original

Traducció

Procés de proves

Versió final

Versió original

Traducció

Procés de proves

Versió final

Windows

GNU/Linux

Solaris

Producte final

GRÀCIES

Vicky Alins, Marc Belzunces, Judith Bosch,

Òscar Del Pozo, Miquel Escarrà, Vicent Fornés, Adolf Fuertes, Pere Gualler, Ester Haba,

Adolf M. Iglesias, Amaia Iturraspe, Jordi Jover, Quico Llach, Marcel López, Jordi Mas,

Josep Molés, Joan Moratinos, Jesús Moreno, Míriam Pérez, Pere Pasqual Pérez, Toni Rosado, Begonya Soler, Josep M. Suelves, Laura Vilanova.

A tot l'equip d'OpenOffice.org i a rms per haver escrit el GCC

Jesús Corrius

2003-06-02T15:39:15