summaryrefslogtreecommitdiff
path: root/site_scons/site_tools/gettext.py
blob: 3571706132573ceaa6c64676b10dd994bb5f7101 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from SCons.Builder import Builder
from SCons.Util    import WhereIs, is_List

def generate(env):
    try:
        env["MSGFMT"]
    except KeyError:
        env["XGETTEXT"] = WhereIs("xgettext") or 'xgettext'
        env["MSGFMT"] = WhereIs("msgfmt")
        msgfmt = Builder(action = "$MSGFMT -c --statistics -o $TARGET $SOURCE",
                         src_suffix = ".po",
                         suffix = ".mo",
                         single_source = True)
        env["BUILDERS"]["Msgfmt"] = msgfmt

        env["MSGMERGE"] = WhereIs("msgmerge") or 'msgmerge'
        msgmerge = Builder(action = "$MSGMERGE $TARGET $SOURCE -o $TARGET",
                           src_suffix = ".pot",
                           suffix = ".po",
                           single_source = True)
        env["BUILDERS"]["MsgMerge"] = msgmerge

        env["MSGINIT"] = WhereIs("msginit") or 'msginit'
        msginit = Builder(action = "$MSGINIT -i $SOURCE -o $TARGET --no-translator",
                          src_suffix = ".pot",
                          suffix = ".po",
                          single_source = True)
        env["BUILDERS"]["MsgInit"] = msginit

        def MsgInitMerge(env, target, source):
            #print target[0].path, os.path.exists(target[0].abspath)
            if os.path.exists(target[0].abspath):
                return env.MsgMerge(target, source)
            else:
                return env.MsgInit(target, source)
        env["BUILDERS"]["MsgInitMerge"] = MsgInitMerge

def exists():
    return True