k3s/translations
Brendan Burns 700b6b3b7b Extract strings from the rollout command. 2017-02-11 22:15:10 -08:00
..
kubectl Extract strings from the rollout command. 2017-02-11 22:15:10 -08:00
test
README.md Add initial french translations as an example. 2017-01-29 22:56:48 -08:00
extract.py

README.md

Translations README

This is a basic sketch of the workflow needed to add translations:

Adding/Updating Translations

New languages

Create translations/kubectl/<language>/LC_MESSAGES/k8s.po. There's no need to update translations/test/... which is only used for unit tests.

There is an example PR here which adds support for French.

Move on to Adding new translations

Adding new translations

Edit the appropriate k8s.po file, poedit is a popular open source tool for translations.

Once you are done with your .po file, generate the corresponding k8s.mo file. poedit does this automatically on save.

We use the English translation as both the msg_id and the msg_context.

Regenerating the bindata file

Run `./hack/generate-bindata.sh, this will turn the translation files into generated code which will in turn be packaged into the Kubernetes binaries.

Extracting strings

There is a script in translations/extract.py that knows how to do some simple extraction. It needs a lot of work.

Using translations

To use translations, you simply need to add:

import pkg/i18n
...
// Get a translated string
translated := i18n.T("Your message in english here")

// Get a translated plural string
translated := i18n.T("You had % items", items)

// Translated error
return i18n.Error("Something bad happened")

// Translated plural error
return i18n.Error("%d bad things happened")

Analytics