Update translation doc

This commit is contained in:
Mathias Kresin 2015-02-08 16:58:03 +01:00
parent cb02a82c56
commit 4516eb56a1

View File

@ -5,24 +5,72 @@ How to translate Miniflux to a new language?
-------------------------------------------- --------------------------------------------
- Translations are stored inside the directory `locales` - Translations are stored inside the directory `locales`
- There is sub-directory for each language, by example for french we have `fr_FR`, for italian `it_IT` etc... - There is a sub-directory for each language, by example for the French we have `fr_FR`, Italian `it_IT` etc...
- A translation is a PHP file that return an Array with a key-value pairs - A translation is a PHP file that return an Array with a key-value pairs
- The key is the original text in english and the value is the translation for the corresponding language - The key is the original text in english and the value is the translation for the corresponding language
- **French translations are always up to date**
- Always use the last version (branch master)
French translations are always up to date (because I am french). ### Plurals
Each translation file has a plural formula defined. This formula is used to determine wether a plural for the current number is needed. For languages with multiple plurals, the formula determine which plural form is the right one.
You can get the formula for your language from https://localization-guide.readthedocs.org/en/latest/l10n/pluralforms.html.
The formula need to be adjusted to be valid php code. Do not hesitate to ask for an adjusted formula in the bugtracker.
You need to create a list of strings for terms that have a plural. For example the plural for the English translation looks like the following:
```
'plural' => function($n) { return ($n != 1); },
'After %d day' => array('After %d day', 'After %d days'),
```
### Create a new translation: ### Create a new translation:
1. Make a new directory: `locales/xx_XX` by example `locales/fr_CA` for French Canadian 1. Make a new directory: `locales/xx_XX` by example `locales/fr_CA` for French Canadian
2. Create a new file for the translation: `locales/xx_XX/translations.php` 2. Create a new file for the translation: `locales/xx_XX/translations.php`
3. Use the content of the french locales and replace the values 3. Use the content of the French locale and replace the values
4. Inside the file `models/config.php`, add a new entry for your translation inside the function `get_languages()` 4. Inside the file `models/config.php`, add a new entry for your translation inside the function `get_languages()`
5. Check with your local installation of Miniflux if everything is ok 5. Check with your local installation of Miniflux if everything is ok
6. Send a pull-request with Github 6. Send a [pull-request with Github](https://help.github.com/articles/using-pull-requests/)
How to update an existing translation? How to update an existing translation?
-------------------------------------- --------------------------------------
1. Open the translation file `locales/xx_XX/translations.php` 1. Open the translation file `locales/xx_XX/translations.php`
2. Missing translations are commented and the values are empty, just fill blank and remove comments 2. Missing translations are commented with `//` and the values are empty, just fill blank and remove the comment
3. Check with your local installation of Miniflux and send a pull-request 3. Check with your local installation of Miniflux and send a [pull-request](https://help.github.com/articles/using-pull-requests/)
How to add new translated text in the application?
--------------------------------------------------
Translations are displayed with the following functions in the source code:
- `t()`: escaped HTML text
- `tne()`: displayed with no escaping
- `dt()`: date using `strftime()` formats
Always use the english version in the source code.
How to find missing translations in the applications?
-----------------------------------------------------
From a Unix shell run:
```bash
./scripts/find-strings.sh
```
All missing translations are displayed on the screen. Put that in the french locale and sync other locales (see below).
How to synchronize translation files?
-------------------------------------
From a Unix shell run this command:
```bash
./scripts/sync-locales.php
```
The french translation is used a reference for other locales.