MultiLang
55 строк · 1.5 Кб
1""" This tool allows generation of gettext .mo compiled files, pot files from source code files
2and pot files for merging.
3
4Three new builders are added into the constructed environment:
5
6- gettextMoFile: generates .mo file from .pot file using msgfmt.
7- gettextPotFile: Generates .pot file from source code files.
8- gettextMergePotFile: Creates a .pot file appropriate for merging into existing .po files.
9
10To properly configure get text, define the following variables:
11
12- gettext_package_bugs_address
13- gettext_package_name
14- gettext_package_version
15
16
17"""
18from SCons.Action import Action19
20
21def exists(env):22return True23
24
25XGETTEXT_COMMON_ARGS = (26"--msgid-bugs-address='$gettext_package_bugs_address' "27"--package-name='$gettext_package_name' "28"--package-version='$gettext_package_version' "29"--keyword=pgettext:1c,2 "30"-c -o $TARGET $SOURCES"31)
32
33
34def generate(env):35env.SetDefault(gettext_package_bugs_address="example@example.com")36env.SetDefault(gettext_package_name="")37env.SetDefault(gettext_package_version="")38
39env['BUILDERS']['gettextMoFile'] = env.Builder(40action=Action("msgfmt -o $TARGET $SOURCE", "Compiling translation $SOURCE"),41suffix=".mo",42src_suffix=".po"43)44
45env['BUILDERS']['gettextPotFile'] = env.Builder(46action=Action("xgettext " + XGETTEXT_COMMON_ARGS, "Generating pot file $TARGET"),47suffix=".pot")48
49env['BUILDERS']['gettextMergePotFile'] = env.Builder(50action=Action(51"xgettext " + "--omit-header --no-location " + XGETTEXT_COMMON_ARGS,52"Generating pot file $TARGET"53),54suffix=".pot"55)56