i18n-abide
Version:
Express/connect module for Node i18n and l10n support
80 lines (52 loc) • 2.47 kB
Markdown
# Pre-requisites for String Wranglers
You should install Gnu gettext to get msginit, xgettext, and other tools.
What is a string wrangler?
A person or an automated build process that will merge and delete strings
between releases.
## Working with PO/POT files, and gettext
If using the default of PO/POT files instead of plist,
you must transform your strings such that `i18n-abide` can work with them.
### Setup Gettext
$ mkdir -p locale/templates/LC_MESSAGES
$ ./node_modules/.bin/extract-pot --locale locale .
If you look in `locale/templates/LC_MESSAGES/messages.pot` you will see your
strings have been extracted.
Edit this file and make sure `charset` is set to `UTF-8`.
If there are certain files or directories you want to exclude,
use `--exclude` one or more times. Example:
$ extract-pot --locale locale . --exclude tests --exclude examples
Example messages.pot:
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ./routes.js:81
msgid "Hey, careful, man, there's a beverage here!"
msgstr ""
#: views/404.ejs:5
msgid "This will not stand, ya know, this aggression will not stand, man."
msgstr ""
To create `po` files in bulk, do:
$ for l in en_US de es db_LB; do
mkdir -p locale/${l}/LC_MESSAGES/
msginit --input=./locale/templates/LC_MESSAGES/messages.pot \
--output-file=./locale/${l}/LC_MESSAGES/messages.po \
-l ${l}
done
If you look at `locale/en_US/LC_MESSAGES/messages.po`,
it will be very similar to your template messages.pot file.
This creates `.po` files which you can give to localizers to translate your copy.
Let's put the i18n-abide tools in our path:
$ export PATH=$PATH:node_modules/i18n-abide/bin
And run a string merge:
$ merge-po.sh ./locale
A merge takes strings from our `.pot` files and pushes them into our `.po` files.
If you have `podebug` installed, it also automatically translates `db-LB`.
## New Locales
To add a new language, and thus a new locale to BrowserID, do the following:
Assuming you want to add eo for Esperanto support...
mkdir -p locale/eo/LC_MESSAGES
msginit --input=./locale/templates/LC_MESSAGES/messages.pot \
--output-file=./locale/eo/LC_MESSAGES/messages.po \
-l eo
msginit --input=./locale/templates/LC_MESSAGES/client.pot \
--output-file=./locale/eo/LC_MESSAGES/client.po \
-l eo