UNPKG

i18n-abide

Version:

Express/connect module for Node i18n and l10n support

80 lines (52 loc) 2.47 kB
# 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