Source

mercurial-translation-ja / README.en.txt

-------------------------------------------------------------------------------
                  Japanese translation for Mercurial
-------------------------------------------------------------------------------

This is the project to translate message file('i18n/ja.po') of
Mercurial distributed SCM(http://www.selenic.com/mercurial/wiki/).


* Terminology:

  - SRC      : source repo for Mercurial 
  - L10N-repo: translation working repo


* How to coordinate translation work in branches:

  - for translator:

    - [TRANSLATE] in 'default' branch of L10N-repo

      1. notify favorite translation part to maintainers and wait for
         acceptance of it

      2. translate corresponding part of 'ja.po'

         keywords included in '#' line preceding msgid means:

            - python-format:
              msgid is using "%xx"
              => useful to validate %xx usage by "msgfmt --check"

            - fuzzy:
              msgmerge detected modification of msgid
              => re-translation may be needed

         So, editing '#' line preceding msgid in ja.po file should be
         limited to eliminating fuzzy keyword at re-translation for
         msgid change

         Embed "XXXX" in translation to indicate that translation is anxious.

         * refer source file at the revision described in
           BASE_REVISION file, if you work with it

      3. check translation file format, and resolve problems, if you
         find out:

           % msgfmt --check L10N-repo/ja.po

         This invocation would show invalid usage of substitution
         format(such as '%x'), or invalid amount of
         new-line-char('\n')
         
         * do not apply msgmerge other than maintainer

      4. check translated messages in steps shown below, and resolve
         problem if you find out

           % cd SRC
           % cp L10N-repo/ja.po ./i18n/ja.po
           % make install
           % export LANGUAGE=ja
           % # re-produce situation when translated messages are shown

         * do not forget to configure PYTHONPATH env, if you install
           HG by "make install-home-bin" and so on

      5. create patch to update 'ja.po' and send it to
         maintainers, if not having public repository

      6. commit update of 'ja.po' and notify it to maintainers,
         if having public repository

      7. go back to step 3 for translation adjustment, if needed
         (e.g.: update of source documentation, style unification, and so on)

      8. (completed)

  - for maintainer:

    - apply MERGE process on demand
    - apply CATCHUP process at short intervals(weekly ?)
    - apply IMPORT process at 'i18n/ja.po' update in SRC
    - apply EXPORT process at long intervals(bimonthly ?)
    - check '#, fuzzy' parts in 'i18n/ja.po' found in UPDATE process
      and coordinate re-translation of them


    * [MERGE] changeset from translators:

      1. apply received patch on head in 'default' branch of
         L10N-repo, if translation is received by patch form

      2. 'hg pull' from repository of translator(and resolve multiple
         heads), if translation is published via public repository

      3. check translation, and request translator to re-translate, if
         needed

      4. Update translation dictionary(placed in head of ja.po file)
         or "Style of translation"(placed in tail of 'README.ja.txt'),
         if needed

      5. (completed)


    * [UPDATE] 'ja.po' of L10N-repo by 'hg.pot' of SRC:

      1. check 'ja.po' content of L10N-repo by:

           % msgfmt --check L10N-repo/ja.po

      2. resolve problems found and commit result, if needed

      3. update SRC by downloading tarball or pull-n-update

      4. update 'hg.pot' in SRC by:

           % make update-pot

      5. update 'ja.po' of L10N-repo with updated 'hg.pot' in SRC by:

           % msgmerge --update --no-location L10N-repo/ja.po SRC/i18n/hg.pot

      6. Write revision of SRC into L10N-repp/BASE_REVISION

      7. commit updated 'ja.po' and BASE_REVISION in L10N-repo

      8. resolve 'fuzzy' problems in updated 'ja.po', if needed

         DO ONLY adjustment relation between msgid/msgstr in this
         step.

         DO NOT adjust translation part in non-'default' branch, even
         if it is very simple adjustment.

         Keep '#, fuzzy' mark in 'ja.po' file to find target out
         easily for re-translation.

      9. commit updated 'ja.po' in L10N-repo

      10. check translation statistics, and request assigned
          translator to re-translate, if needed

            % msgmerge -o - L10N-repo/ja.po SRC/i18n/hg.pot |
              python L10N-repo/filestat.py |
              grep -f L10N-repo/assigned.txt

          * output format of above is: 'filename msgid done fuzzy'

      11. (completed)


    * [CATCHUP] update in SRC:

      1. merge from 'default' into 'downstream-line' branch of L10N-repo

      2. apply UPDATE process on head in 'downstream-line' branch of
         L10N-repo

      3. merge UPDATE-ed revision into 'default' branch of L10N-repo

      4. (completed)


    * [IMPORT] from SRC into L10N-repo:

      1. update SRC

      2. over-write 'ja.po' in 'sync-line' branch head of L10N-repo by
         new one in SRC

      3. do below steps, only if there is any incoming update of 'ja.po'

      4. commit 'ja.po' update in 'sync-line' branch of L10N-repo

      5. merge above new revision into 'downstream-line' branch of
         L10N-repo

      6. merge from 'default' into 'downstream-line' branch of L10N-repo

      7. apply UPDATE process on merged revision in
         'downstream-line' branch of L10N-repo

      8. merge UPDATE-ed revision into 'default' branch of L10N-repo

      9. (completed)


    * [EXPORT] from L10N-repo:

      0. finish CATCHUP process, and resolve all problems
         (also update PO-Revision-Date information in 'ja.po')

      1. decide exported revision in 'default' branch of L10N-repo

      2. merge above revision into 'upstream-line' branch of L10N-repo

      3. get difference of 'ja.po' from head of 'sync-line' branch to
         head of 'upstream-line' branch

      4. send above difference as updating patch for 'i18n/ja.po' to
         mercurial-devel ML

      5. resolve minor problems in 'upstream-line' branch of L10N-repo
         and re-send patch, if needed(e.g.: typo and so on)

      6. merge above two heads into 'sync-line', when sent patch is
         imported into official repo

      7. (completed)


* Style of translation:

  Please see 'README.ja.txt' for detail, because I can not explain it
  well in English :-<

-------------------------------------------------------------------------------