| Internationalization notes |
| -------------------------- |
| - apps: |
| - use setlocale to parse locale env vars and set to language code |
| - use textdomain to set the text domain of their app |
| - use bindtextdomain to tie the domain to a locale dir |
| - use gettext (possibly disguised as _) to translate in the current domain |
| |
| - libraries: |
| - should only use bindtextdomain to tie a domain to a locale dir |
| - use dgettext (possibly disguised as _) to translate from a set domain |
| |
| - How to make your plug-in code translatable: |
| - include <gst/gst-i18n-plugin.h> in all files that mark strings for |
| translation, or do the bindtextdomain call |
| - in plugin_init, add a block like this: |
| |
| #ifdef ENABLE_NLS |
| GST_DEBUG ("binding text domain %s to locale dir %s", GETTEXT_PACKAGE, |
| LOCALEDIR); |
| bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); |
| #endif /* ENABLE_NLS */ |
| |
| - mark all strings you want translated for translation by wrapping them in |
| _() |
| - typically, these are all strings that serve as the message string for a |
| GST_ELEMENT_ERROR or _WARNING |
| - but it could also consist of any strings that may end up being presented |
| to the user (for example mixer track) |
| |
| Things to watch out for |
| ----------------------- |
| - forgetting to bindtextdomain is an error that is not always noticeable, |
| because: |
| - any plugin from the same module being init'd binds the text domain, |
| so you may forget it in B, and still have it work because A bound the |
| domain |
| - without a bindtextdomain call, any domain is bound to the system locale |
| dir - so you could still have translations if it happens to be where the |
| translations are |
| |
| - our translations are managed by the Translation Project |
| http://www.iro.umontreal.ca/translation/ |
| They are updated by the release manager for prereleases using |
| make download-po |
| As the translator project website clearly states, only accept translations |
| from the translation project, and direct would-be translators there: |
| "It would defeat the purpose of the teams if you were directly accepting PO |
| files from individual translators, or were having "contracts" with them. If |
| people write to you, wanting to volunteer as translators, direct them to |
| translation@iro.umontreal.ca, and the translation coordinator will send them |
| appropriate documentation." |