Update translation doc
This commit is contained in:
parent
cb02a82c56
commit
4516eb56a1
@ -5,24 +5,72 @@ How to translate Miniflux to a new language?
|
||||
--------------------------------------------
|
||||
|
||||
- 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
|
||||
- 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:
|
||||
|
||||
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`
|
||||
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()`
|
||||
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?
|
||||
--------------------------------------
|
||||
|
||||
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
|
||||
3. Check with your local installation of Miniflux and send a pull-request
|
||||
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](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.
|
||||
|
Loading…
Reference in New Issue
Block a user