Ikiwiki w/ translations
=======================

Ikiwiki[1] is a perl-based wiki compiler.

This is routines to manage translatable parts of Ikiwiki and translations into
the following locales:

 * danish (da) by Jonas Smedegaard <dr@jones.dk>


Getting the source
------------------

This README file is available at http://source.jones.dk/ together with a GIT
repository with source of the translation routines. Pull it like this:

    git clone git://source.jones.dk/ikiwiki


Installation
------------

To pull in all translatable and translated parts, do this:

    make

If you have write access to one or more GIT repositories, you can override
their locations like this:

    make ikiwiki_ORIGIN=debian@source.jones.dk:/srv/git/source.jones.dk/ikiwiki_MODULE.git

To remove all translatable and translated parts, and anything else below those
directories without warning, do this:

    make ultraclean


Customizing
-----------

To publish your own forked repository through web, you first need to create a
special public repository that you "push" your changes into from your private
working repository - like this:

    GIT_DIR=public_dir/repository_name.git git --bare init --shared
    chmod +x public_dir/repository_name.git/hooks/post-update

To actually use your newly created public repository created above, you need to
populate it with your current working repository (the --all option is only this
once, not on subsequent pushes) - like this:

    git config remote.origin.url git-reference-to-public-repository
    git push --all

To instead populate your newly created public repository with a multi-branched
local repository, first make a complete clone with all branches setup locally,
and push it all - like this for repository with master and master-da branches:

    git clone git-reference-to-old-public-repository some-temp-dir
    cd some-temp-dir
    git checkout -b master-da origin/master-da
    git config remote.origin.url git-reference-to-public-repository
    git push --all

To resyncronize an older fork of the repository with newer upstream changes, do
like this (skip first command on subsequent updates):

    git remote add ikiwiki git://source.jones.dk/ikiwiki
    git pull ikiwiki master


Translation
-----------

Some modules (markdown files - template files are not yet supported by po4a) is
translatable through the gettext system using PO files.

To update PO templates for all modules marked as supporting gettext, do this:

    make pot

To update PO files for all supported locales of all supported modules, do this:

    make po

To update all gettext-supported modules based on newer PO files, do this:

    make translations

To initialize new locales, do like this (all on one line):

    make po po-init-modules="module1 module2" po-init-locales="da sv no"

If you want to initialize based on an existing locale rather than the master,
add the origin locale to the above make command similar to this:

    make po [...] po-init-fromlocale=de

To add new modules and locales as gettext supported, add them to *_POMODULES
and *_POLOCALES. Keep them alse in *_MODULES and *_LOCALES to support pulling
final translations without recreating from PO files.

Please beware that the automated po4a process is not perfected yet, so check
the result before use.


----

References:

[1] http://ikiwiki.info/