This scons tool is a part of scons &t-link-gettext; toolset. It provides scons interface to msgmerge(1) command, which merges two Uniform style .po files together. MSGMERGE MSGMERGECOM MSGMERGECOMSTR MSGMERGEFLAGS POSUFFIX POTSUFFIX POUPDATE_ALIAS POTDOMAIN LINGUAS_FILE POAUTOINIT The builder belongs to &t-link-msgmerge; tool. The builder updates PO files with msgmerge(1), or initializes missing PO files as described in documentation of &t-link-msginit; tool and &b-link-POInit; builder (see also &cv-link-POAUTOINIT;). Note, that &b-POUpdate; does not add its targets to po-create alias as &b-link-POInit; does. Target nodes defined through &b-POUpdate; are not built by default (they're Ignored from '.' node). Instead, they are added automatically to special Alias ('po-update' by default). The alias name may be changed through the &cv-link-POUPDATE_ALIAS; construction variable. You can easilly update PO files in your project by scons po-update. Example 1. Update en.po and pl.po from messages.pot template (see also &cv-link-POTDOMAIN;), assuming that the later one exists or there is rule to build it (see &b-link-POTUpdate;): # ... env.POUpdate(['en','pl']) # messages.pot --> [en.po, pl.po] Example 2. Update en.po and pl.po from foo.pot template: # ... env.POUpdate(['en', 'pl'], ['foo']) # foo.pot --> [en.po, pl.pl] Example 3. Update en.po and pl.po from foo.pot (another version): # ... env.POUpdate(['en', 'pl'], POTDOMAIN='foo') # foo.pot -- > [en.po, pl.pl] Example 4. Update files for languages defined in LINGUAS file. The files are updated from messages.pot template: # ... env.POUpdate(LINGUAS_FILE = 1) # needs 'LINGUAS' file Example 5. Same as above, but update from foo.pot template: # ... env.POUpdate(LINGUAS_FILE = 1, source = ['foo']) Example 6. Update en.po and pl.po plus files for languages defined in LINGUAS file. The files are updated from messages.pot template: # produce 'en.po', 'pl.po' + files defined in 'LINGUAS': env.POUpdate(['en', 'pl' ], LINGUAS_FILE = 1) Example 7. Use &cv-link-POAUTOINIT; to automatically initialize PO file if it doesn't exist: # ... env.POUpdate(LINGUAS_FILE = 1, POAUTOINIT = 1) Example 8. Update PO files for languages defined in LINGUAS file. The files are updated from foo.pot template. All necessary settings are pre-configured via environment. # ... env['POAUTOINIT'] = 1 env['LINGUAS_FILE'] = 1 env['POTDOMAIN'] = 'foo' env.POUpdate() Common alias for all PO files being defined with &b-link-POUpdate; builder (default: 'po-update'). See &t-link-msgmerge; tool and &b-link-POUpdate; builder. Absolute path to msgmerge(1) binary as found by Detect(). See &t-link-msgmerge; tool and &b-link-POUpdate; builder. Complete command line to run msgmerge(1) command. See &t-link-msgmerge; tool and &b-link-POUpdate; builder. String to be displayed when msgmerge(1) is invoked (default: '', which means ``print &cv-link-MSGMERGECOM;''). See &t-link-msgmerge; tool and &b-link-POUpdate; builder. Additional flags to msgmerge(1) command. See &t-link-msgmerge; tool and &b-link-POUpdate; builder.