-
Eliot Berriot authoredVerifiedae8df9b0
Translating Funkwhale
A step-by-step, beginner friendly guide is available at https://contribute.funkwhale.audio/guides/translate/
Thank you for reading this! If you want to help translate Funkwhale, you found the proper place :)
Translation is done via our own Weblate instance at https://translate.funkwhale.audio/projects/funkwhale/front/.
You can signup/login using your Gitlab account (from https://dev.funkwhale.audio).
Translation workflow
Once you're logged-in on the Weblate instance, you can suggest translations. Your suggestions will then be reviewer by the project maintainer or other translators to ensure consistency.
Guidelines
Respecting those guidelines is mandatory if you want your translation to be included:
- Use gender-neutral language and wording
Submitting a new language
- Pull the latest version of
develop
- Create a new branch, e.g
git checkout -b translations-new-fr-ca
- Add your new language code and name in
front/src/locales.js
. Use the native language name, as it is what appears in the UI selector. - Create the
po
file from template:
export LOCALE=fr_CA # replace with your actual locale code
mkdir -p front/locales/$LOCALE/LC_MESSAGES
msginit --no-wrap --no-translator --locale=$LOCALE --input=front/locales/app.pot --output-file=front/locales/$LOCALE/LC_MESSAGES/app.po
- Then commit your changes, push, and submit a pull request on the
develop
branch
Requesting a new language
If you cannot submit a new language yourself, you can request it by opening an issue here: https://dev.funkwhale.audio/funkwhale/funkwhale/issues
Extracting messages from source
We offer a script to update existing po
and pot
files with new translations
from the source code. This action should be run regularly, and in particular before
lots of translation work is expected (e.g a few weeks before a new release), or when
the UI code changes a lot. Otherwise, translators end up translating some obsolete messages,
or not translationg new messages.
-
Lock the translations on weblate (
Lock
button in the sidebar). This will prevent translators from working, and help prevent potential conflicts in the source code -
Commit and push changes from weblate (
Commit
andPush
buttons in the sidebar) - Pull
develop
in your local git repository to ensure you have the latest version of the translations - Create a dedicated branch with
git checkout -b translations-integration
- Extract the translations with
cd front && ./scripts/i18n-extract.sh
. This will update allpo
files as necessary - Review, commit and push the changes, then open a merge request on the
develop
branch - When the MR is merged, Unlock the translations on weblate (
Unlock
button in the sidebar).