Traducciones¶
Resumen¶
Esta página explica cómo funcionan las traducciones de las ExApps, igual que en las apps PHP salvo algunos ajustes: los archivos l10n del frontend y del backend, la sincronización con Transifex, cómo llegan las traducciones al servidor en los tipos manual-install y docker-install, y cómo ampliar el translationtool. Está dirigida a quienes desarrollan ExApps.
Fuente: documentación de Nextcloud, «developer_manual/exapp_development/tech_details/Translations», versión 3ad9158, licencia CC BY 3.0; traducida y adaptada para APS Conecta Gestión.
Las traducciones de las ExApps funcionan de la misma manera que en las apps PHP, con algunos ajustes y diferencias.
En resumen, basta con proporcionar para la app los archivos l10n/<lang>.js (para el frontend) y l10n/<lang>.json (para el backend).
Frontend¶
Para la parte del frontend, AppAPI inyectará el script l10n/<lang>.js de la configuración regional del usuario actual, de modo que el acceso a las cadenas traducidas se mantiene igual que antes en las apps PHP.
Nota
Los archivos l10n de la ExApp se incluyen solo en las páginas de interfaz de la ExApp (Menú superior), en Archivos (para FileAction) y en Ajustes (para DeclarativeSettings).
Backend¶
En la parte del backend de la ExApp, que puede escribirse en distintos lenguajes de programación, corresponde a quien desarrolla decidir cómo manejar los archivos de traducciones. Hay un repositorio de ejemplo con traducciones: ejemplo de interfaz con traducciones.
Hay dos funciones de Python que translationtool usa para extraer las cadenas de traducción: _('singular string') y _n('singular string', 'plural string', count).
Traducciones manuales¶
Las instrucciones de las traducciones manuales se encuentran aquí.
Sincronización con Transifex¶
Para la sincronización automática con Transifex solo se incluyen archivos .po.
Luego se pueden compilar a archivos .mo con el script scripts/compile_po_to_mo.sh de ui_example.
Instalación manual¶
En el tipo manual-install, quien administra tendrá que extraer manualmente la carpeta l10n de la ExApp al directorio de apps con permisos de escritura del servidor
(p. ej., /path/to/apps-writable/<appid>/l10n/*.(js|json)).
Esto permitirá que el servidor acceda a las cadenas de la ExApp con sus traducciones.
Nota
Solo la carpeta l10n debe estar presente en el lado del servidor; appinfo/info.xml podría hacer que el servidor la detecte por error como carpeta de una app PHP.
Instalación con Docker¶
En el tipo docker-install, AppAPI extraerá automáticamente al servidor la carpeta l10n desde el archivo de publicación de la ExApp durante la instalación.
Herramienta de traducción¶
Para añadir compatibilidad con el lenguaje que se use al translationtool de Nextcloud,
se puede crear un issue en el repositorio nextcloud/docker-ci
o abrir un pull request con los cambios realizados en la función createPotFile para extraer y convertir las cadenas de traducción.