forked from minetest/minetest
-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This solves two issues at once: * CMake would delete po files during ‘make clean’ because it thought they were autogenerated and not just managed * the only gettext tools readily available in Windows are so old they don't support options like --package-name The change also moves minetest.pot down one level, so we don't need to special case ‘en’ anymore. The downside is of course that you need some sane POSIX shell to update the po files.
- Loading branch information
Showing
4 changed files
with
86 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,7 +8,7 @@ msgid "" | |
msgstr "" | ||
"Project-Id-Version: minetest\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"POT-Creation-Date: 2011-07-22 11:02+0200\n" | ||
"POT-Creation-Date: 2011-07-24 10:16+0200\n" | ||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | ||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | ||
"Language-Team: LANGUAGE <[email protected]>\n" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
#!/bin/sh | ||
|
||
# Update/create minetest po files | ||
|
||
# an auxiliary function to abort processing with an optional error | ||
# message | ||
abort() { | ||
test -n "$1" && echo >&2 "$1" | ||
exit 1 | ||
} | ||
|
||
# The po/ directory is assumed to be parallel to the directory where | ||
# this script is. Relative paths are fine for us so we can just | ||
# use the following trick (works both for manual invocations and for | ||
# script found from PATH) | ||
scriptisin="$(dirname "$(which "$0")")" | ||
|
||
# The script is executed from the parent of po/, which is also the | ||
# parent of the script directory and of the src/ directory. | ||
# We go through $scriptisin so that it can be executed from whatever | ||
# directory and still work correctly | ||
cd "$scriptisin/.." | ||
|
||
test -e po || abort "po/ directory not found" | ||
test -d po || abort "po/ is not a directory!" | ||
|
||
# Get a list of the languages we have to update/create | ||
|
||
cd po || abort "couldn't change directory to po!" | ||
|
||
# This assumes that we won't have dirnames with space, which is | ||
# the case for language codes, which are the only subdirs we expect to | ||
# find in po/ anyway. If you put anything else there, you need to suffer | ||
# the consequences of your actions, so we don't do sanity checks | ||
langs="" | ||
|
||
for lang in * ; do | ||
if test ! -d $lang; then | ||
continue | ||
fi | ||
langs="$langs $lang" | ||
done | ||
|
||
# go back | ||
cd .. | ||
|
||
# First thing first, update the .pot template. We place it in the po/ | ||
# directory at the top level. You a recent enough xgettext that supports | ||
# --package-name | ||
potfile=po/minetest.pot | ||
xgettext --package-name=minetest -F -n -o $potfile src/*.cpp src/*.h | ||
|
||
# Now iterate on all languages and create the po file if missing, or update it | ||
# if it exists already | ||
for lang in $langs ; do # note the missing quotes around $langs | ||
pofile=po/$lang/minetest.po | ||
if test -e $pofile; then | ||
echo "[$lang]: updating strings" | ||
msgmerge -F -U $pofile $potfile | ||
else | ||
# This will ask for the translator identity | ||
echo "[$lang]: NEW strings" | ||
msginit -l $lang -o $pofile -i $potfile | ||
fi | ||
done |