mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-10 19:56:59 +03:00
add config and documentation about uploading/downloading translations from Transifex
This commit is contained in:
parent
6fb37207d1
commit
7913947757
9
.tx/config
Normal file
9
.tx/config
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[main]
|
||||||
|
host = https://www.transifex.com
|
||||||
|
|
||||||
|
[django-rest-framework.djangopo]
|
||||||
|
file_filter = rest_framework/locale/<lang>/LC_MESSAGES/django.po
|
||||||
|
source_file = rest_framework/locale/en_US/LC_MESSAGES/django.po
|
||||||
|
source_lang = en_US
|
||||||
|
type = PO
|
||||||
|
|
|
@ -177,6 +177,57 @@ We recommend the [`django-reusable-app`][django-reusable-app] template as a good
|
||||||
|
|
||||||
Once your package is decently documented and available on PyPI open a pull request or issue, and we'll add a link to it from the main REST framework documentation.
|
Once your package is decently documented and available on PyPI open a pull request or issue, and we'll add a link to it from the main REST framework documentation.
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
If REST framework isn't translated into your language you can request that it is at the [Transifex project][transifex].
|
||||||
|
|
||||||
|
## Managing Transfiex
|
||||||
|
The [official Transifex client][transifex-client] is used to upload and download translations to Transifex. The client is installed using pip:
|
||||||
|
|
||||||
|
```
|
||||||
|
pip install transifex-client
|
||||||
|
```
|
||||||
|
|
||||||
|
To use it you'll need a login to Transifex which has a password, and you'll need to have administrative access to the Transifex project. You'll need to create a `~/.transifexrc` file which contains your authentication information:
|
||||||
|
|
||||||
|
```
|
||||||
|
[https://www.transifex.com]
|
||||||
|
username = user
|
||||||
|
token =
|
||||||
|
password = p@ssw0rd
|
||||||
|
hostname = https://www.transifex.com
|
||||||
|
```
|
||||||
|
|
||||||
|
## Upload new source translations
|
||||||
|
When any user-visible strings are changed, they should be uploaded to Transifex so that the translators can start to translate them. To do this, just run:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd rest_framework
|
||||||
|
django-admin.py makemessages -l en_US
|
||||||
|
cd ..
|
||||||
|
tx push -s
|
||||||
|
```
|
||||||
|
|
||||||
|
When pushing source files, Transifex will update the source strings of a resource to match those from the new source file.
|
||||||
|
|
||||||
|
Here's how differences between the old and new source files will be handled:
|
||||||
|
|
||||||
|
* New strings will be added.
|
||||||
|
* Modified strings will be added as well.
|
||||||
|
* Strings which do not exist in the new source file will be removed from the database, along with their translations. If that source strings gets re-added later then [Transifex Translation Memory][translation-memory] will automatically restore the translated string too.
|
||||||
|
|
||||||
|
|
||||||
|
## Get translations
|
||||||
|
When a translator has finished translating their work needs to be downloaded from Transifex into the source repo. To do this, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
tx pull -a
|
||||||
|
cd rest_framework
|
||||||
|
django-admin.py compilemessages
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then commit as normal.
|
||||||
|
|
||||||
[cite]: http://www.w3.org/People/Berners-Lee/FAQ.html
|
[cite]: http://www.w3.org/People/Berners-Lee/FAQ.html
|
||||||
[code-of-conduct]: https://www.djangoproject.com/conduct/
|
[code-of-conduct]: https://www.djangoproject.com/conduct/
|
||||||
[google-group]: https://groups.google.com/forum/?fromgroups#!forum/django-rest-framework
|
[google-group]: https://groups.google.com/forum/?fromgroups#!forum/django-rest-framework
|
||||||
|
@ -190,3 +241,6 @@ Once your package is decently documented and available on PyPI open a pull reque
|
||||||
[docs]: https://github.com/tomchristie/django-rest-framework/tree/master/docs
|
[docs]: https://github.com/tomchristie/django-rest-framework/tree/master/docs
|
||||||
[mou]: http://mouapp.com/
|
[mou]: http://mouapp.com/
|
||||||
[django-reusable-app]: https://github.com/dabapps/django-reusable-app
|
[django-reusable-app]: https://github.com/dabapps/django-reusable-app
|
||||||
|
[transifex]: https://www.transifex.com/projects/p/django-rest-framework/
|
||||||
|
[transifex-client]: https://pypi.python.org/pypi/transifex-client
|
||||||
|
[translation-memory]: http://docs.transifex.com/guides/tm#let-tm-automatically-populate-translations
|
|
@ -3,12 +3,14 @@ REST framework ships with translatable error messages. You can make these appea
|
||||||
|
|
||||||
## How to translate REST Framework errors
|
## How to translate REST Framework errors
|
||||||
|
|
||||||
|
REST framework translations are managed online using [Transifex.com][transifex]. To get started, checkout the guide in the [CONTRIBUTING.md guide][contributing].
|
||||||
|
|
||||||
|
Sometimes you may want to use REST Framework in a language which has not been translated yet on Transifex. If that is the case then you should translate the error messages locally.
|
||||||
|
|
||||||
|
#### How to translate REST Framework error messages locally:
|
||||||
|
|
||||||
This guide assumes you are already familiar with how to translate a Django app. If you're not, start by reading [Django's translation docs][django-translation].
|
This guide assumes you are already familiar with how to translate a Django app. If you're not, start by reading [Django's translation docs][django-translation].
|
||||||
|
|
||||||
|
|
||||||
#### To translate REST framework error messages:
|
|
||||||
|
|
||||||
1. Make a new folder where you want to store the translated errors. Add this
|
1. Make a new folder where you want to store the translated errors. Add this
|
||||||
path to your [`LOCALE_PATHS`][django-locale-paths] setting.
|
path to your [`LOCALE_PATHS`][django-locale-paths] setting.
|
||||||
|
|
||||||
|
@ -89,4 +91,5 @@ display as Django does. You can find more info in the [Django docs on discoveri
|
||||||
[django-translation]: https://docs.djangoproject.com/en/1.7/topics/i18n/translation
|
[django-translation]: https://docs.djangoproject.com/en/1.7/topics/i18n/translation
|
||||||
[django-language-preference]: https://docs.djangoproject.com/en/1.7/topics/i18n/translation/#how-django-discovers-language-preference
|
[django-language-preference]: https://docs.djangoproject.com/en/1.7/topics/i18n/translation/#how-django-discovers-language-preference
|
||||||
[django-locale-paths]: https://docs.djangoproject.com/en/1.7/ref/settings/#std:setting-LOCALE_PATHS
|
[django-locale-paths]: https://docs.djangoproject.com/en/1.7/ref/settings/#std:setting-LOCALE_PATHS
|
||||||
[django-locale-name]: https://docs.djangoproject.com/en/1.7/topics/i18n/#term-locale-name
|
[django-locale-name]: https://docs.djangoproject.com/en/1.7/topics/i18n/#term-locale-name
|
||||||
|
[contributing]: ../../CONTRIBUTING.md
|
||||||
|
|
Loading…
Reference in New Issue
Block a user