63 lines
1.5 KiB
Markdown
63 lines
1.5 KiB
Markdown
Translations
|
|
============
|
|
|
|
WTForms uses gettext to provide translations. Translations for various
|
|
strings rendered by WTForms are created and updated by the community. If
|
|
you notice that your locale is missing, or find a translation error,
|
|
please submit a fix.
|
|
|
|
|
|
Create
|
|
------
|
|
|
|
To create a translation, initialize a catalog in the new locale:
|
|
|
|
```
|
|
$ pybabel init --input-file src/wtforms/locale/wtforms.pot --output-dir src/wtforms/locale --domain wtforms --locale <your locale>
|
|
```
|
|
|
|
This will create some folders under the locale name and copy the
|
|
template.
|
|
|
|
Update
|
|
------
|
|
|
|
To add new translatable string to the catalog:
|
|
|
|
```
|
|
pybabel extract --copyright-holder="WTForms Team" --project="WTForms" --version="$(python -c 'import wtforms; print(wtforms.__version__)')" --output-file src/wtforms/locale/wtforms.pot src/wtforms
|
|
```
|
|
|
|
Edit
|
|
----
|
|
|
|
After creating a translation, or to edit an existing translation, open
|
|
the ``.po`` file. While they can be edited by hand, there are also tools
|
|
that make working with gettext files easier.
|
|
|
|
Make sure the `.po` file:
|
|
|
|
- Is a valid UTF-8 text file.
|
|
- Has the header filled out appropriately.
|
|
- Translates all messages.
|
|
|
|
|
|
Verify
|
|
------
|
|
|
|
After working on the catalog, verify that it compiles and produces the
|
|
correct translations.
|
|
|
|
```
|
|
$ pybabel compile --directory src/wtforms/locale --domain wtforms --statistics
|
|
```
|
|
|
|
Try loading your translations into some sample code to verify they look
|
|
correct.
|
|
|
|
|
|
Submit
|
|
------
|
|
|
|
To submit your translation, create a pull request on GitHub.
|