start

# ini2po

Converts .ini files to Gettext PO format.

## Usage

    ini2po [options] <ini> <po>
    po2ini [options] -t <ini> <po> <ini>

Where:

<ini> | is a valid .ini file or directory of those files
<po> | is a directory of PO or POT files

Options (ini2po):

--version | show program's version number and exit
-h, --help | show this help message and exit
--manpage | output a manpage based on the help
--progress=PROGRESS | show progress as: dots, none, bar, names, verbose
--errorlevel=ERRORLEVEL | show errorlevel as: none, message, exception, traceback
-i INPUT, --input=INPUT | read from INPUT in php format
-x EXCLUDE, --exclude=EXCLUDE | exclude names matching EXCLUDE from input paths
-o OUTPUT, --output=OUTPUT | write to OUTPUT in po, pot formats
-t TEMPLATE, --template=TEMPLATE | read from TEMPLATE in php format
--psyco=MODE | use psyco to speed up the operation, modes: none, full, profile
-P, --pot | output PO Templates (.pot) rather than PO files (.po)
--duplicates=DUPLICATESTYLE | what to do with duplicate strings (identical source text): merge, msgid_comment, msgctxt, keep, msgid_comment_all (default: 'msgctxt')

Options (po2ini):

--version | show program's version number and exit
-h, --help | show this help message and exit
--manpage | output a manpage based on the help
--progress=PROGRESS | show progress as: dots, none, bar, names, verbose
--errorlevel=ERRORLEVEL | show errorlevel as: none, message, exception, traceback
-i INPUT, --input=INPUT | read from INPUT in po, pot formats
-x EXCLUDE, --exclude=EXCLUDE | exclude names matching EXCLUDE from input paths
-o OUTPUT, --output=OUTPUT | write to OUTPUT in php format
-t TEMPLATE, --template=TEMPLATE | read from TEMPLATE in php format
--psyco=MODE | use psyco to speed up the operation, modes: none, full, profile
--fuzzy | use translations marked fuzzy
--nofuzzy | don't use translations marked fuzzy (default)

## Examples

This example looks at roundtrip of .ini translations as well as recovery of existing translations.

First we need to create a set of POT files.

    ini2po -P ini/ pot/

All .ini files found in the `ini/` directory are converted to Gettext POT files and placed in the `pot/` directory.

If you are translating for the first time then you can skip the next step. If you need to recovery your existing translations then we do the following:

    ini2po -t lang/ zu/ po-zu/

Using the English .ini files found in `lang/` and your existing Zulu translation in `zu/` we create a set of PO files in `po-zu/`. These will now have your translations. Please be aware that in order for the to work 100% you need to have both English and Zulu at the same revision, if they are not you will have to review all translations.

You are now in a position to translate your recovered translations or your new POT files.

Once translated you can convert back as follows:

    po2ini -t lang/ po-zu/ zu/

Your translations found in the Zulu PO directory, `po-zu/`, will be converted to .ini using the files in `lang/` as templates and placing your newly translated .ini files in `zu/`.

To update your translations simply redo the POT creation step and make use of pot2po to bring your translation up-to-date.

## Issues

We do not extract comments from .ini files. These are sometimes needed as developers provide guidance to translators in these comments.

## Bugs

None known