Newer
Older
ubixos-web / docroot / phpwiki / locale / translate.sh
@reddawg reddawg on 29 Jun 2004 1 KB UbixOS Web Site
#!/bin/bash
# translate.sh
#
# Usage:
#
#   ./locale/translate.sh
#
# This script should be run by
#
#    * PphWiki maintainers, before making a distribution
#    * Translators, after making a translation update
#

if [ ! -f index.php ]; then
	echo Usage: ./locale/translate.sh
	exit 2
fi

ALL_LINGUAS="nl es de sv it"

xgettext -L C++ -o locale/po/phpwiki.pot admin.php lib/*php
podir=locale/po
for i in $ALL_LINGUAS; do
	po=$podir/$i.po
	pot=$podir/phpwiki.pot
	locale=locale/$i/LC_MESSAGES

	msgmerge -o $po $po $pot
	mkdir -p $locale
	msgfmt -o $locale/phpwiki.mo $po

	awk -- '
BEGIN {
  msgid=""; msgstr="";
  print ("<?php\n");
}
/^msgid ""/ {
  if (msgid && str)
    print ("$locale[\"" msgid "\"] =\n   \"" str "\";");
  str="";
  next;
}
/^msgid "/ { #"{
  if (msgid && str)
    print ("$locale[\"" msgid "\"] =\n   \"" str "\";");
  str = substr ($0, 8, length ($0) - 8);
  msgstr="";
}
/^msgstr ""/ {
  msgid=str;
  str="";
  next;
}
/^msgstr "/ { #"{
  msgid=str;
  str = substr ($0, 9, length ($0) - 9);
  next;
}
/^"/ { #"{
  str = (str substr ($0, 2, length ($0) - 2));
  next;
}
END {
  if (msgid && str)
    print ("$locale[\"" msgid "\"] =\n   \"" str "\";");
  print ("\n;?>");
}

' $po > $locale/phpwiki.php
done