IMPORTANT! Please use devel
branches for translations.
The server sends emails or SMS to users upon creation of a new account and when the user requests to reset the password:
- /server/templ/email-validation-en.templ
- /server/templ/email-password-reset-en.templ
- /server/templ/sms-validation-en.templ
Create a copy of the files naming them email-password-reset-XX.teml
, email-validation-XX.templ
, sms-validation-XX.templ
where XX
is the ISO-631-1 code of the new language. Translate the content and send a pull request with the new files. If you don't know how to create a pull request then just sent the translated files in any way you can.
The translations are located in two places: /src/i18n/ and /service-worker.js.
In order to add a translation, copy /src/i18n/en.json
to a file named /src/i18n/XX.json
where XX
is the BCP-47 code of the new language. If in doubt how to choose the BCP-47 language code, use a two letter ISO-631-1. Only the "translation":
line has to be translated, the "defaultMessage"
, "description"
etc should NOT be translated, they serve as help only, i.e.:
"action_block_contact": {
"translation": "Bloquear contacto", // <<<---- Only this string needs to be translated
"defaultMessage": "Block Contact", // This is the default message in English
"description": "Flat button [Block Contact]", // This is an explanation where/how the string is used.
"missing": false,
"obsolete": false
},
When translating the service-worker.js
, just add the strings directly to the file. Only two strings need to be translated "New message" and "New chat":
const i18n = {
...
'XX': {
'new_message': "New message",
'new_chat': "New chat",
},
...
Please send a pull request with the new files. If you don't know how to create a pull request just sent the files in any way you can.
A single file needs to be translated: /tinode/tindroid/app/src/main/res/values/strings.xml
Create a new directory values-XX
in app/src/main/res, where XX
is a two-letter ISO-631-1 code , optionally followed by a two letter ISO 3166-1-alpha-2 region code (preceded by lowercase r). For example values-pt.xml
would contain Portuguese translations while values-pt-rBR.xml
is for Brazilian Portuguese translations.
Make a copy of the file with English strings, place it to the new directory. Translate all the strings not marked with translatable="false"
(the strings with translatable="false"
don't need to be included at all) then send a pull request with the new file. If you don't know how to create a pull request then just sent the file in any way you can.
Unfortunately iOS localization process is very convoluted and generally requires Xcode
which runs only on Mac. Unless you are familiar with the iOS development, please create a feature request for the desired language and we will send you the file for translation.
If you feel brave enough, you can translate the following .xliff file and then send it to us in any way you can. Translate all the strings between the <target>
tags:
<trans-unit id="Action failed: %@" xml:space="preserve"> <!-- Do NOT change this line -->
<source>Action failed: %@</source> <!-- This is the default message in English. -->
<target>Se ha producido un error al realizar la acción: %@</target> <!-- Only this string "target" needs to be translated. -->
<note>Toast notification</note> <!-- This is an explanation where/how the string is used. -->
</trans-unit>
If you are familiar with Xcode and localization for iOS, the exported localizations are located at /Localizations.