2018-06-21 14:07:53 +02:00
|
|
|
# Translation
|
|
|
|
|
2018-06-21 15:21:02 +02:00
|
|
|
We use [Zanata](http://zanata.org/) as translation platform.
|
2018-06-21 14:07:53 +02:00
|
|
|
Please do not edit xml files directly from Git, you have to use Zanata!
|
|
|
|
|
|
|
|
If you don't see your locale in the platform, please [create an issue](https://github.com/Chocobozzz/PeerTube/issues) so we add it!
|
|
|
|
|
|
|
|
|
|
|
|
## How to
|
|
|
|
|
2018-07-26 13:46:36 +02:00
|
|
|
* Create an account: https://trad.framasoft.org/account/register
|
|
|
|
* Join a language team: https://trad.framasoft.org/languages
|
|
|
|
* Go to the PeerTube page https://trad.framasoft.org/iteration/view/peertube/develop
|
2018-06-21 14:07:53 +02:00
|
|
|
* Choose the locale and begin to translate PeerTube!
|
|
|
|
|
|
|
|
|
|
|
|
## Files
|
|
|
|
|
|
|
|
There are 4 files:
|
|
|
|
* **angular**: contains client strings
|
2018-06-21 18:29:28 +02:00
|
|
|
* **player**: contains player strings.
|
|
|
|
Most of the strings come from VideoJS, so you can help yourself by using [video.js JSON files](https://github.com/videojs/video.js/tree/master/lang)
|
|
|
|
* **server**: contains server strings (privacies, licences...)
|
2018-06-21 14:07:53 +02:00
|
|
|
* **iso639**: contains iso639 (languages) strings used by PeerTube to describe the audio language of a particular video.
|
2018-06-21 15:21:02 +02:00
|
|
|
It's the reason why these strings should be translated too. There are many strings so do not hesitate to translate only main audio languages.
|
2018-06-27 08:28:43 +02:00
|
|
|
|
|
|
|
## Tips
|
|
|
|
|
2019-05-13 17:45:00 +02:00
|
|
|
### Special tags
|
|
|
|
|
2018-06-27 08:28:43 +02:00
|
|
|
You must not translate special tags like `<x id="INTERPOLATION" ... />`.
|
|
|
|
|
|
|
|
For example:
|
|
|
|
```<x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views```
|
|
|
|
|
|
|
|
should be in french
|
2019-05-13 17:45:00 +02:00
|
|
|
```<x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> vues```
|
|
|
|
|
|
|
|
|
|
|
|
### Singular/plural
|
|
|
|
|
|
|
|
For singular/plural translations, you must translate values inside `{` and `}`.
|
|
|
|
|
|
|
|
For example:
|
|
|
|
|
|
|
|
```{VAR_PLURAL, plural, =0 {No videos} =1 {1 video} other {<x id="INTERPOLATION" equiv-text="{{ playlist.videosLength }}"/> videos} }```
|
|
|
|
|
|
|
|
should be in french
|
|
|
|
|
|
|
|
```{VAR_PLURAL, plural, =0 {Aucune vidéos} =1 {1 vidéo} other {<x id="INTERPOLATION" equiv-text="{{ playlist.videosLength }}"/> vidéos} }```
|