Skip to content
This repository has been archived by the owner on Mar 30, 2023. It is now read-only.

Latest commit

 

History

History
79 lines (52 loc) · 2.41 KB

GETTEXT.md

File metadata and controls

79 lines (52 loc) · 2.41 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