mirror of https://github.com/snachodog/mybuddy.git
61 lines
2.5 KiB
Markdown
61 lines
2.5 KiB
Markdown
|
# Translation
|
||
|
|
||
|
## POEditor
|
||
|
|
||
|
Baby Buddy uses [POEditor](https://poeditor.com/) for translation contributions.
|
||
|
Interested contributors can [join translation of Baby Buddy](https://poeditor.com/join/project/QwQqrpTIzn)
|
||
|
for access to a simple, web-based frontend for adding/editing translation files
|
||
|
to the project.
|
||
|
|
||
|
## Manual
|
||
|
|
||
|
Baby Buddy has support for translation/localization. A manual translation
|
||
|
process will look something like this:
|
||
|
|
||
|
1. Set up a development environment (see [Development environment](development-environment.md)).
|
||
|
|
||
|
1. Run `gulp makemessages -l xx` where `xx` is a specific locale code in the
|
||
|
[ISO 639-1 format](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g.,
|
||
|
"il" for Italian or "es" for Spanish). This creates a new translation file at
|
||
|
`locale/xx/LC_MESSAGES/django.po`, or updates one if it exists.
|
||
|
|
||
|
1. Open the created/updated `django.po` file and update the header template
|
||
|
with license and contact info.
|
||
|
|
||
|
1. Start translating! Each translatable string will have a `msgid` value with
|
||
|
the string in English and a corresponding (empty) `msgstr` value where a
|
||
|
translated string can be filled in.
|
||
|
|
||
|
1. Once all strings have been translated, run `gulp compilemessages -l xx` to
|
||
|
compile an optimized translation file (`locale/xx/LC_MESSAGES/django.mo`).
|
||
|
|
||
|
1. To expose the new translation as a user setting, add the locale code to the
|
||
|
`LANGUAGES` array in the base settings file (`babybuddy/settings/base.py`).
|
||
|
|
||
|
1. Check if Plotly offers a translation (in `node_modules/plotly.js/dist/`) for
|
||
|
the language. If it does:
|
||
|
|
||
|
1. Add the Plotly translation file path to [`gulpfile.config.js`](/gulpfile.config.js) in
|
||
|
`scriptsConfig.graph`.
|
||
|
|
||
|
1. Build, collect, and commit the `/static` folder (see
|
||
|
[`gulp updatestatic`](gulp-command-reference.md#updatestatic)).
|
||
|
|
||
|
1. Check if Moment offers a translation (in `node_modules/moment/locale/`) for
|
||
|
the language. If it does:
|
||
|
|
||
|
1. Add the Moment translation file path to [`gulpfile.config.js`](/gulpfile.config.js) in
|
||
|
`scriptsConfig.vendor`.
|
||
|
|
||
|
1. Build, collect, and commit the `/static` folder (see
|
||
|
[`gulp updatestatic`](gulp-command-reference.md#updatestatic)).
|
||
|
|
||
|
1. Run the development server, log in, and update the user language to test the
|
||
|
newly translated strings.
|
||
|
|
||
|
Once the translation is complete, commit the new files and changes to a fork
|
||
|
and [create a pull request](pull-requests.md) for review.
|
||
|
|
||
|
For more information on the Django translation process, see Django's
|
||
|
documentation section: [Translation](https://docs.djangoproject.com/en/4.0/topics/i18n/translation/).
|