[Android] Android en valencià
Joan Montané
joan a montane.cat
dim mar 29 21:35:10 CEST 2011
Bona nit Vicent, benvingut
potser ja ho coneixes, però hi ha una iniciativa anomenada
Softvalencià, que treballa per difondre el valencià a les noves
tecnologies.
http://www.softvalencia.org/ i la llista
http://llistes.softcatala.org/mailman/listinfo/softvalencia
Si t'agrada tenir programari en valencià, passa-t'hi.
Anant el tema Android.
El que demanes, ho he rumiat de fa mesos, però ara mateix, no es pot
fer ben fet en la versió Android actual. Et faig un resum, espero que
se m'entengui.
Alerta!!!! Rotllo mooolt llarg, us he avisat.
Primer, la part positiva:
Fa unes setmanes vaig descobrir que l'Android, internament, reconeix
el codi locale ca-valencia, hi posa Català (valencià) o Catalan
(Valencian). Si tens un Android amb el Morelocale2 pots provar-ho tu
mateix posant el codi ca-valencia o ca-ES-valencia. A tots els efectes
el teu mòbil reconeixerà els programes que estiguin traduïts al català
(general) i es mostraran en aquesta llengua, alhora que
t'identificaràs com a valencianoparlant. Cal tenir present que aquest
és el codi que pertoca a la variant valenciana del català segons els
estàndards i és el que es fa servir al Linux i Windows.
Això és un èxit molt important, ja que hi ha molt pocs locales amb
variant tipus ca-valencia que l'Android reconegui. La meva impressió
és que aquests pocs codis van inclosos en la llibreria ICU que fa
servir java i de rebot han anat a parar a l'Android, :-)
Ara la part negativa (i molt):
El sistema de localització d'aplicacions d'Android (les traduccions)
fa servir fitxers xml. Només cal traduir aquests fitxers xml per
afegir una nova llengua. Tècnicament es pot adaptar la traducció
catalana oficial de Google i fer l'adaptació valenciana. Ara ve el
problema. Cal que els programes "trobin" aquesta traducció.
Resulta que els xml han d'estar en un directori amb una nomenclatura
determinada [1], per exemple values-ca/ o values-es o values-en-rUS/
(pel català, castellà o anglès dels EUA). Aquesta nomenclatura [1]
permet especificar un munt de coses... però no pas la variant de
llengua, :-((((((( En un primer moment creia que era una manca de
documentació, que la "combinació" per ubicar els xml del català
(valencià) seria alguna cosa com values-ca-valencia,
values-ca-vvalencia values-ca a valencia o quelcom semblant. Després
d'algunes proves fracassades i d'haver resseguit el codi font i trobat
la funció que llegeix el nom del directori on es troben les
traduccions i el processa, puc afirmar que Android no té previst de
cap forma les variants de llengües en el sistema de traduccions.
Resum:
1.- sí es pot indicar a l'Android que vols català (valencià), :-)
2.- no hi ha cap sistema per a que els programes "trobin" la traducció
del català (valencià) indicat al punt anterior, :(
3.- en no trobar les traduccions del codi ca-valencia, es fan servir
les traduccions del codi ca, corresponent al català (general).
4.- si l'aplicació fa servir un sistema de traducció propi, diferent
del nadiu d'Android, sí seria possible mostrar la traducció de català
(valencià). Per exemple, el Firefox4 per a Android té paquet català
(general) i català (valencià).
Per tant, ara mateix, l'única diferència actual entre tenir el codi ca
o ca-valencia és com t'identifiques en visitar pàgines web o cercar al
google.
Alternatives? Poques, cap és bona, i l'única bona crec que costarà que
l'acceptin a l'AOSP, el projecte "pare" d'Android, i segur, no hi
podríem comptar fins a futures versions no pas per a les versions
actuals 2.x o 3.x.
Opció 1 (la bona): Fer un pedaç a la funció que llegeix l'estructura
de directoris de recursos [1] i afegir la possibilitat que "trobi" el
codi de variant. Seria l'opció bona però lenta... molt lenta. Un cop
acceptat, la resta és fàcil, i automàticament faria servir una altra
traducció si la variant pròpia no hi és.
Opció 2 (la dolenta): Fer servir un codi específic pel català
(valencià), per exemple ca-XV. Amb això es podrien conviure les dues
traduccions; la general a values-ca/ i la valenciana a values-ca-XV/.
Problema? Visualment funcionaria (l'usuari veuria les menús en català
(valencià)), però de portes en fora no és el codi que toca i no
s'hauria de fer servir (els estàndards són molt importants). Això
faria que difícilment l'AOSP acceptés les traduccions valencianes amb
codi ca-XV a la branca oficial.
Opció 3 (la mooolt dolenta, més aviat absurda): Posar les traduccions
valencianes en comptes de les catalanes fent servir el codi
values-ca/. Això només per a ROMs personalitzades. La traducció dels
programes de tercers seria la que portes el programa en si (amb tota
probabilitat la general).
Sobre l'opcio 1, caldria fer el pedaç que implementés les variants,
vaig mirar la funció fa un parell de setmanes i és factible, no sóc
programador però potser algú més espavilat que jo podria fer-ho.
Disculpeu que no indiqui en aquest correu la funció en qüestió, però
no tinc la informació a mà.
Sobre l'opció 2, és una "solució" que no té futur a llarg termini i no
entrarà a la branca oficial. Però seria molt important fer servir un
codi basant el ca, com és el ca-XV, ja que això identifica l'usuari
com a catalonoparlant i així, en cas de no haver traducció valenciana
es mostraria la general. Sobretot, no es pot fer servir el codi ca-VA
(que seria el corresponent al... català del Vaticà?!)
Tota aquest rotllo, es refereix, només a les aplicacions bàsiques que
venen amb l'Android. Però la mateixa solució caldria aplicar als
programes de tercers que facin servir els sistema de localització
d'aplicacions d'Android (per exemple l'Opera o el Gmail, per exemple).
Fins aquí tot aquest rotllo referent al problema tècnic de la
traducció valenciana.
Sobre la traducció en si mateix (dels fitxers xml)... no crec que
sigui complicat. Però s'hauran de reivisar molts fitxers, perquè la
transformació xml a po, perd informació interna que cal revisar no
sigui crítica.
Fins aquí el mega-rotllo del Joan
Tornaré... amb més detalls, :)
Joan Montané
[1] http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources
Més informació sobre la llista de correu Android