A helper program to check conventions for git l10n contributions
git-po-helper
is a helper program for git l10n coordinator and git l10n
contributors to check conventions for git l10n contributions. Pull request to
git-l10n/git-po must comply with the
following conventions.
-
Only change files in the
po/
directory. Any l10n commit that violates this rule will be rejected.- Changes to the
git-gui/po
andgitk-git/po
directories belong to the sub-projects "git-gui" and "gitk", which have their own workflows. Please DO NOT send pull requests for these projects here. See Documentation/SubmittingPatches.
- Changes to the
-
Write a decent commit log for every l10n commit:
-
Add a prefix ("l10n:" followed by a space) in the subject of the commit log. Take history commits as an example:
git log --no-merges -- po/
. -
Do not use non-ASCII chracters in the subject of a commit.
-
The subject (the first line) of the commit log should have characters no more than 50.
-
Other lines of the commit log should not exceed 72 characters.
-
Like other git commits, add a "Signed-off-by:" signature in the trailer of the commit log.
Add a "Signed-off-by:" signature automatically by running
git commit -s
. -
Do not skew your clock to ensure accurate commit datetime.
-
-
Squash trivial commits so that the pull request for each git l10n update window contains a clear and small number of commits.
-
Check the "XX.po" file using the
msgfmt
command to make sure it has correct syntax. -
All translatable strings are present in your "po/XX.po". You can download the latest pot file from:
https://github.com/git-l10n/pot-changes/raw/pot/main/po/git.pot
-
Remove file-locations from your "po/XX.po" before submitting it to your commit. See the [Updating a "XX.po" file] section for reference in "po/README.md" of the Git repository.
To contribute for a new l10n language, contributor should follow additional conventions:
-
Initialize proper filename of the "XX.po" file conforming to iso-639 and iso-3166.
-
Must complete a minimal translation based on the
po/git-core.pot
template. Using the following command to initialize the minimalpo/XX.po
file:make po-init PO_FILE="po/XX.po"
-
Add a new entry in the
po/TEAMS
file with proper format.
git-po-helper
is written in golang, golang must be
installed before compiling.
Additional prerequsites need by git-po-helper
:
- git
- gettext
- iconv, which is used to check commit log encoding.
- gpg, which is used to verify commit with gpg signature.
Compile git-po-helper
using the following commands:
$ git clone https://github.com/git-l10n/git-po-helper.git
$ cd git-po-helper
$ make
$ make test
Install git-po-helper
:
$ cp git-po-helper /usr/local/bin/
See po/README.md of the Git project.
$ git-po-helper -h
Helper for git l10n
Usage:
git-po-helper [flags]
git-po-helper [command]
Available Commands:
check Check all ".po" files and commits
check-commits Check commits for l10n conventions
check-po Check syntax of XX.po file
diff Show changes between two l10n files
help Help about any command
init Create XX.po file
team Show team leader/members
update Update XX.po file
version Display the version of git-po-helper
Flags:
-h, --help help for git-po-helper
-q, --quiet count quiet mode
-v, --verbose count verbose mode
-V, --version Show version
Use "git-po-helper [command] --help" for more information about a command.