dakhnod / Meshenger

open source, P2P messenger without centralized server that works in a local network.
GNU General Public License v3.0
202 stars 45 forks source link

Use a translation platform to make translation of the interface easier #17

Open patogit opened 5 years ago

patogit commented 5 years ago

Hi folks, I participate in LibreMesh and so I found Meshenger. I see that the software is internationalized, and there are localized strings in English and German (with an empty file for French localization). For LibreMesh, we had great success connecting with TranslateWiki.net -- there the community of translators translated the LibreMesh interface into Greek and Mandarin within hours of connecting with the platform, and many other languages have been translated in the months we've been connected. And if you already know people who might translate if there were an easier interface, they can make an account on TranslateWiki.net.

Things to keep in mind: TranslateWiki.net has some guidelines -- you can read them here. For LibreMesh, the development workflow doesn't allow direct commits, so I set up a separate repo that serves as an exchange between the LibreMesh repo and TranslateWiki.net.

mwarning commented 4 years ago

Thanks for the hint!

wuniversales commented 4 years ago

Spanish translation:

<resources>
    <string name="app_name" translatable="false">Meshenger</string>
    <string name="action_settings">Ajustes</string>
    <string name="name_prompt">¿Cual debería de ser tu nombre?</string>
    <string name="scan_invitation">Escanea este código</string>
    <string name="paste_invitation">Pega los datos aquí</string>
    <string name="invalid_data">Datos erróneos</string>
    <string name="cancel">Cancelar</string>
    <string name="camera_permission_request">Se necesita el permiso de la cámara para escanear los códigos.</string>
    <string name="invalid_qr">Código QR no válido</string>
    <string name="network_connect_invitation">No hay información disponible, conéctese a una red.</string>
    <string name="menu_settings">Ajustes</string>
    <string name="menu_about">Acerca de...</string>
    <string name="call_connecting">Conectando...</string>
    <string name="settings_change_nick">Cambiar nick</string>
    <string name="settings_change_language">Cambiar idioma</string>
    <string name="about_source">Código fuente:</string>
    <string name="source_link" translatable="false">https://www.github.com/dakhnod/Meshenger/</string>
    <string name="about_author">Autor:</string>
    <string name="about_author_name" translatable="false">Daniel Dakhno</string>
    <string name="about_author_email" translatable="false">dakhnod@gmail.com</string>
    <string name="about_license">Licencia:</string>
    <string name="delete">Eliminar</string>
    <string name="rename">Renombrar</string>
    <string name="share">Compartir</string>
    <string name="contact_edit">Editar contacto</string>
    <string name="permission_mic">Microphone permission needed to make calls</string>
    <string name="hello">Hola!</string>
    <string name="settings_ignore_unsaved">Ignorar cambios</string>
    <string name="call_connected">Conectado.</string>
    <string name="call_denied">Rechazado</string>
    <string name="call_ringing">Llamando...</string>
    <string name="call_ended">Llamada finalizada</string>
    <string name="call_error">error</string>
    <string name="settings_nightmode">Modo Nocturno</string>
    <string name="about_version">Versión:</string>
</resources>
mwarning commented 4 years ago

@wuniversales nice. But since the project has moved, some more strings have been added. It would be nice if you could translate this file: https://github.com/meshenger-app/meshenger-android/blob/master/app/src/main/res/values/strings.xml

wuniversales commented 4 years ago

Updated, by the way, why not use www.transifex.com for translations?

<resources>
    <string name="app_name" translatable="false">Meshenger</string>
    <string name="action_settings">Ajustes</string>
    <string name="name_prompt">¿Cual debería de ser tu nombre?</string>
    <string name="scan_invitation">Escanea este código QR</string>
    <string name="scan_invited">Escaneando código QR</string>
    <string name="paste_invitation">Pega los datos aquí</string>
    <string name="invalid_data">Dato no válido</string>
    <string name="invalid_name">Nombre no válido</string>
    <string name="cancel">Cancelar</string>
    <string name="next">Siguiente</string>
    <string name="setup_address_title">Configurar dirección de red</string>
    <string name="setup_address_message">No se encontró la tarjeta WiFi. Habilite el WiFi ahora (no se necesita Internet) u omitalo para configurarlo más tarde.</string>
    <string name="enter_password">Introduce la contraseña</string>
    <string name="path_title">Importar/Exportar Ruta</string>
    <string name="password_title">Contraseña</string>
    <string name="camera_permission_request">Se necesita permiso de la cámara para escanear códigos</string>
    <string name="invalid_qr">Código QR no válido</string>
    <string name="network_connect_invitation">No hay información disponible, conéctese a una red.</string>
    <string name="contact_has_no_address_warning">Advertencia: el contacto no tiene dirección</string>
    <string name="menu_settings">Ajustes</string>
    <string name="menu_license">Licencia</string>
    <string name="menu_backup">Copia de seguridad</string>
    <string name="menu_about">Acerca de...</string>
    <string name="menu_exit">Salir</string>
    <string name="call_connecting">Conectando...</string>
    <string name="unknown_caller">Llamada desconocida</string>
    <string name="settings_change_name">Cambiar Nombre</string>
    <string name="settings_change_language">Cambiar idioma</string>
    <string name="settings_change_address">Cambiar dirección</string>
    <string name="settings_change_password">Cambiar contraseña</string>
    <string name="settings_change_ice_servers">Cambiar servidores ICE</string>
    <string name="settings_nightmode">Modo Nocturno</string>
    <string name="settings_block_unknown">Bloquear llamadas desconocidas</string>
    <string name="settings_ignore_battery_optimizations">Ignorar las optimizaciones de batería</string>
    <string name="settings_development_mode">Modo de desarrollo</string>
    <string name="about_source">Código fuente:</string>
    <string name="source_link" translatable="false">https://github.com/meshenger-app</string>
    <string name="about_license">Licencia:</string>
    <string name="about_license_version">GPL-3.0-or-later</string>
    <string name="none">Nada</string>
    <string name="add">Añadir</string>
    <string name="delete">Eliminar</string>
    <string name="rename">Renombrar</string>
    <string name="share">Compartir</string>
    <string name="block">Bloquear</string>
    <string name="unblock">Desbloquear</string>
    <string name="replace">Reemplazar</string>
    <string name="pick">Coger</string>
    <string name="confirm">Confirmar</string>
    <string name="done">Aceptar</string>
    <string name="contact_edit">Editar Contacto</string>
    <string name="contact_exists">El contacto existe</string>
    <string name="permission_mic">Microphone permission needed to make calls</string>
    <string name="hello">¡Hola!</string>
    <string name="empty_list_item">Vacío</string>
    <string name="set_ice_servers_description">Establezca servidores públicos de ICE que ayuden a atravesar los límites de la red.</string>
    <string name="call_connected">Conectado.</string>
    <string name="call_denied">Rechazado</string>
    <string name="call_ringing">Llamando...</string>
    <string name="call_ended">Llamada finalizada</string>
    <string name="call_error">error</string>
    <string name="button_select">Seleccionar</string>
    <string name="button_import">Importar</string>
    <string name="button_export">Exportar</string>
    <string name="button_abort">Cancelar</string>
    <string name="button_rename">Renombrar</string>
    <string name="button_replace">Reeplazar</string>
    <string name="button_save">Guardar</string>
    <string name="button_add">Añadir</string>
    <string name="button_remove">Eliminar</string>
    <string name="title_contacts">Contactos</string>
    <string name="title_history">Historial</string>
    <string name="about_version">Versión:</string>
    <string name="about_version">Versión de la app:</string>
    <string name="about_info">Información de la App:</string>
    <string name="app_info">La aplicación Meshenger permite la comunicación de voz y video sin ningún servidor o acceso a Internet. Simplemente escanee el código QR de cada uno y llámenos. Esto funciona en la mayoría de las redes, p. en casa, en redes comunitarias o en el trabajo.</string>
    <string name="address_management">Gestión de dirección</string>
    <string name="qr_code_address_list">Lista de direcciones de códigos QR</string>
    <string name="currently_active">Actualmente activo</string>
    <string name="address_management_help_text">Seleccione una o más direcciones que se incluirán en su código QR. Una buena idea es usar la dirección MAC del adaptador WiFi (wlan0). Pero tenga en cuenta que está vinculado al hardware de su dispositivo. Si no hay una dirección MAC visible, habilite su WiFi.</string>
    <string name="listen_for_incoming_calls">Escuchar las llamadas entrantes.</string>
    <string name="file_does_not_exist">El archivo no existe</string>
    <string name="no_path_selected">Ninguna ruta seleccionada</string>
    <string name="file_already_exists">El archivo ya existe</string>
    <string name="invalid_address">Dirección no válida</string>
    <string name="no_file_name">Sin nombre de archivo</string>
    <string name="contact_already_exists">El contacto ya existe</string>
    <string name="enter_contact_name">Ingrese el nombre del contacto.</string>
    <string name="wrong_password">Contraseña incorrecta</string>
    <string name="contact_name_conflict">Existe un contacto con el mismo nombre.</string>
    <string name="contact_key_conflict">Existe un contacto con la misma clave.</string>
    <string name="contact_name_empty">El nombre del contacto está vacío.</string>
    <string name="contact_name_exists">Ya existe un contacto con ese nombre.</string>
    <string name="contact_remove">¿Eliminar contacto?</string>
    <string name="error">Error</string>
    <string name="ok">Ok</string>
    <string name="skip">Omitir</string>
    <string name="exit">Salir</string>
    <string name="yes">Si</string>
    <string name="no">No</string>
</resources>
mwarning commented 4 years ago

@wuniversales thanks, applied: https://github.com/meshenger-app/meshenger-android/commit/d17b77c36a56e645d6fa564901738620032b77b2

marr-github commented 2 years ago

This is translation for Simplified Chinese (zh-CN):

<resources>
    <string name="app_name" translatable="false">Meshenger</string>
    <string name="action_settings">设置</string>
    <string name="name_prompt">该怎么称呼你?</string>
    <string name="scan_invitation">扫描此二维码</string>
    <string name="scan_invited">进行二维码扫描</string>
    <string name="paste_invitation">粘贴数据于此</string>
    <string name="invalid_data">无效的数据</string>
    <string name="invalid_name">无效的名称</string>
    <string name="cancel">取消</string>
    <string name="next">下一步</string>
    <string name="setup_address_title">设定网络地址</string>
    <string name="setup_address_message">未发现WiFi卡。现在启动WiFi(无需上网)或着跳过此步以后再作配置。</string>
    <string name="enter_password">输入密码</string>
    <string name="path_title">导入/导出路径</string>
    <string name="password_title">密码</string>
    <string name="camera_permission_request">扫描二维码需要有“相机”权限许可</string>
    <string name="invalid_qr">无效的二维码</string>
    <string name="network_connect_invitation">无可用信息,请连接到一个网络</string>
    <string name="contact_has_no_address_warning">警告:联系人无地址信息</string>
    <string name="menu_settings">设置</string>
    <string name="menu_license">许可证</string>
    <string name="menu_backup">备份</string>
    <string name="menu_about">关于</string>
    <string name="menu_exit">退出</string>
    <string name="call_connecting">正在呼叫...</string>
    <string name="unknown_caller">未知呼叫者</string>
    <string name="settings_change_name">更改名称</string>
    <string name="settings_change_language">更改语言</string>
    <string name="settings_change_address">更改地址</string>
    <string name="settings_change_password">更改密码</string>
    <string name="settings_change_ice_servers">更改ICE服务器</string>
    <string name="settings_nightmode">夜间模式</string>
    <string name="settings_block_unknown">屏蔽未知呼叫者</string>
    <string name="settings_ignore_battery_optimizations">无视电池优化设定</string>
    <string name="settings_development_mode">开发模式</string>
    <string name="about_source">源代码:</string>
    <string name="source_link" translatable="false">https://github.com/meshenger-app</string>
    <string name="about_license">许可证:</string>
    <string name="about_license_version">GPL-3.0或更新版</string>
    <string name="none">无</string>
    <string name="add">添加</string>
    <string name="delete">删除</string>
    <string name="rename">改名</string>
    <string name="share">分享</string>
    <string name="block">屏蔽</string>
    <string name="unblock">取消屏蔽</string>
    <string name="replace">替换</string>
    <string name="pick">采用</string>
    <string name="confirm">确认</string>
    <string name="done">完成</string>
    <string name="contact_edit">编辑联系人</string>
    <string name="contact_exists">联系人已存在</string>
    <string name="permission_mic">通话需要有“麦克风”权限许可</string>
    <string name="hello">你好!</string>
    <string name="empty_list_item">空</string>
    <string name="set_ice_servers_description">架设公共ICE服务器,以便跨越网络界限。</string>
    <string name="call_connected">已连接</string>
    <string name="call_denied">被拒绝</string>
    <string name="call_ringing">正在呼叫...</string>
    <string name="call_ended">通话结束</string>
    <string name="call_error">出错</string>
    <string name="button_select">选择</string>
    <string name="button_import">导入</string>
    <string name="button_export">导出</string>
    <string name="button_abort">中止</string>
    <string name="button_rename">改名</string>
    <string name="button_replace">替换</string>
    <string name="button_save">保存</string>
    <string name="button_add">添加</string>
    <string name="button_remove">消除</string>
    <string name="title_contacts">联系人</string>
    <string name="title_history">历史</string>
    <string name="about_version">APP版本:</string>
    <string name="about_info">APP说明:</string>
    <string name="app_info">Meshenger 可以实现音频视频通讯,却完全无需服务器与互联网的访问。相互扫描联系二维码即可彼此呼叫。这在大多数网络环境下都能使用。例如,家庭网络,社群网络,公司网络。</string>
    <string name="address_management">地址管理</string>
    <string name="qr_code_address_list">二维码地址列表</string>
    <string name="currently_active">当前有效地址</string>
    <string name="address_management_help_text">选择一个或多个地址,这将包含在生成二维码之中。建议使用WiFi适配器的MAC地址(wlan0)。不过需要注意的是,这个地址是与你的设备的硬件绑定的。如果没有出现MAC地址,开启WiFi。</string>
    <string name="listen_for_incoming_calls">等待呼入</string>
    <string name="file_does_not_exist">文件不存在</string>
    <string name="no_path_selected">没有选择路径</string>
    <string name="file_already_exists">文件已经存在</string>
    <string name="invalid_address">无效地址</string>
    <string name="no_file_name">无文件名</string>
    <string name="contact_already_exists">联系人已经存在</string>
    <string name="enter_contact_name">输入联系人名称</string>
    <string name="wrong_password">密码错误</string>
    <string name="contact_name_conflict">相同名称联系人已存在</string>
    <string name="contact_key_conflict">相同密钥联系人已存在</string>
    <string name="contact_name_empty">联系人名称为空</string>
    <string name="contact_name_exists">同样名称的联系人已经存在</string>
    <string name="contact_remove">消除联系人?</string>
    <string name="error">出错</string>
    <string name="ok">好的</string>
    <string name="skip">跳过</string>
    <string name="exit">退出</string>
    <string name="yes">是</string>
    <string name="no">否</string>
</resources>
mwarning commented 2 years ago

@marr-github thank you. i will try to make good use of it.