Softcatala / translation-memory-tools

A set of tools to build, maintain and use translation memories
https://www.softcatala.org/recursos/memories/
29 stars 17 forks source link

Afegir suport per fitxers JSON bilingües #269

Closed pereorga closed 1 year ago

pereorga commented 1 year ago

Per exemple és necessari pel GlobalLeaks (entre altres, no és un format poc comú): https://github.com/globaleaks/GlobaLeaks/blob/main/client/app/data/l10n/ca.json

(tot i que en aquest cas, el mateix repositori també té més cadenes en un fitxer Gettext: https://raw.githubusercontent.com/globaleaks/GlobaLeaks/main/client/pot/ca.po)

Hauria d'estar suportat per Translate Toolkit: http://docs.translatehouse.org/projects/translate-toolkit/en/latest/commands/json2po.html. Actualització: veig que precisament no diu res de fitxers bilingües.

Veig implementada la funció _convert_json_file_to_po, però no sembla que funcioni per fitxers bilingües.

pereorga commented 1 year ago

També seria necessari pel Nextcloud, tot i que en aquest cas penja d'una clau (translations):

https://github.com/nextcloud/server/tree/master/apps https://github.com/nextcloud/text/tree/main/l10n https://github.com/nextcloud/collectives/tree/main/l10n

(i per l'històric, Nextcloud també té cadenes Android: https://github.com/nextcloud/android/tree/master/app/src/main/res/values-ca)

jordimas commented 1 year ago

Hola. El problema és que cada projecte estructura els JSON com vol sense seguir cap mena d'estàndard.

json2po només suporta el cas on el json expressa un clau i valor i llavors a través de la clau pots enllaçar el monolingüe anglès amb el monolingüe traduït, però no funciona fora d'aquest patró. Per exemple, si li passes per exemple:

https://raw.githubusercontent.com/globaleaks/GlobaLeaks/main/client/app/data/l10n/ca.json

i fas:

  json2po -i ca.json -o ca.po

generà:

#: .Log+in
msgid "Inicia sessió"
msgstr ""

#: .Languages
msgid "Idiomes"
msgstr ""

No està preparat perquè la clau sigui la traducció.

Jo veig tres solucions:

1) Contribuir a upstream json2po aquestes opcions. Ens caldria més exemples. No estic segur que ens ho acceptin. 2) Fer un importer nosaltres 3) Fer un un github a part on tinguem una eina de conversió específica

pereorga commented 1 year ago

1) sona bé, però deu ser el més complicat. 2) i 3) sobretot tindrien sentit si ho necessitem per projectes nous. De moment, per aquests exemples que ja són a Transifex, probablement els podem mantenir allà. (És a dir, encara que no deu ser molt esforç, no ho implementaria per una cosa que ja funciona.)

pereorga commented 1 year ago

Tanco de moment