diff --git a/.gitignore b/.gitignore index 322623d..c74f4dd 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,4 @@ vendor .noseids tmp/* *~ -locale/* +*.mo diff --git a/bin/autol10n.sh b/bin/autol10n.sh deleted file mode 100755 index 4de9ed8..0000000 --- a/bin/autol10n.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -# Automatically pull L10n dirs from SVN, compile, then push to git. -# Runs on all project dirs named *-autol10n. - -# Settings -GIT=`/usr/bin/which git` -FIND=`/usr/bin/which find` -DEVDIR=$HOME/dev - -# Update everything -for dir in `$FIND "$DEVDIR" -maxdepth 1 -name '*-autol10n'`; do -cd $dir - $GIT pull -q origin master - cd locale - $GIT svn rebase - - # Compile .mo, commit if changed - ./compile-mo.sh . - $FIND . -name '*.mo' -exec $GIT add {} \; - $GIT status - if [ $? -eq 0 ]; then - $GIT commit -m 'compiled .mo files (automatic commit)' - fi - - # Push to SVN and git - $GIT svn dcommit && $GIT push -q origin master - - cd .. - - $GIT add locale - $GIT status locale - if [ $? -eq 0 ]; then - $GIT commit -m 'L10n update (automatic commit)' - $GIT push -q origin master - fi -done diff --git a/bin/compile-mo.sh b/bin/compile-mo.sh index 8330cac..98cbf1c 100755 --- a/bin/compile-mo.sh +++ b/bin/compile-mo.sh @@ -1,19 +1,28 @@ #!/bin/bash -# syntax: -# compile-mo.sh locale-dir/ +TARGET=$1 +LOCKFILE="/tmp/compile-mo-${2}.lock" function usage() { echo "syntax:" - echo "compile.sh locale-dir/" + echo " compile-mo.sh locale-dir/ [unique]" + echo "unique is an optional string that will be used as the name of the lockfile" exit 1 } # check if file and dir are there -if [[ ($# -ne 1) || (! -d "$1") ]]; then usage; fi +if [[ ($# -gt 2) || (! -d "$TARGET") ]]; then usage; fi -for lang in `find $1 -type f -name "*.po"`; do +# check if the lockfile exists +if [ -e $LOCKFILE ]; then + echo "$LOCKFILE present, exiting" + exit 99 +fi + +touch $LOCKFILE +for lang in `find $TARGET -type f -name "*.po"`; do dir=`dirname $lang` stem=`basename $lang .po` msgfmt -o ${dir}/${stem}.mo $lang done +rm $LOCKFILE diff --git a/bin/update_site.py b/bin/update_site.py old mode 100644 new mode 100755 index dbc2427..c495386 --- a/bin/update_site.py +++ b/bin/update_site.py @@ -16,6 +16,7 @@ import sys from textwrap import dedent from optparse import OptionParser +from hashlib import md5 # Constants PROJECT = 0 @@ -28,10 +29,17 @@ 'prod': ['prod', 'master'], } +# The URL of the SVN repository with the localization files (*.po). If you set +# it to a non-empty value, remember to `git rm --cached -r locale` in the root +# of the project. Example: +# LOCALE_REPO_URL = 'https://svn.mozilla.org/projects/l10n-misc/trunk/playdoh/locale' +LOCALE_REPO_URL = '' + GIT_PULL = "git pull -q origin %(branch)s" GIT_SUBMODULE = "git submodule update --init" +SVN_CO = "svn checkout --force %(url)s locale" SVN_UP = "svn update" -COMPILE_PO = "./compile.sh" +COMPILE_MO = "./bin/compile-mo.sh %(localedir)s %(unique)s" EXEC = 'exec' CHDIR = 'chdir' @@ -41,6 +49,8 @@ def update_site(env, debug): """Run through commands to update this site.""" error_updating = False here = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) + locale = os.path.join(here, 'locale') + unique = md5(locale).hexdigest() project_branch = {'branch': ENV_BRANCH[env][PROJECT]} vendor_branch = {'branch': ENV_BRANCH[env][VENDOR]} @@ -50,17 +60,24 @@ def update_site(env, debug): (EXEC, GIT_SUBMODULE), ] + # Checkout the locale repo into locale/ if the URL is known + if LOCALE_REPO_URL and not os.path.exists(os.path.join(locale, '.svn')): + commands += [ + (EXEC, SVN_CO % {'url': LOCALE_REPO_URL}), + (EXEC, COMPILE_MO % {'localedir': locale, 'unique': unique}), + ] + # Update locale dir if applicable - if os.path.exists(os.path.join(here, 'locale', '.svn')): + if os.path.exists(os.path.join(locale, '.svn')): commands += [ - (CHDIR, os.path.join(here, 'locale')), + (CHDIR, locale), (EXEC, SVN_UP), - (EXEC, COMPILE_PO), (CHDIR, here), + (EXEC, COMPILE_MO % {'localedir': locale, 'unique': unique}), ] - elif os.path.exists(os.path.join(here, 'locale', '.git')): + elif os.path.exists(os.path.join(locale, '.git')): commands += [ - (CHDIR, os.path.join(here, 'locale')), + (CHDIR, locale), (EXEC, GIT_PULL % 'master'), (CHDIR, here), ] diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po new file mode 100644 index 0000000..8efa125 --- /dev/null +++ b/locale/en_US/LC_MESSAGES/messages.po @@ -0,0 +1,31 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-05-26 18:11-0700\n" +"PO-Revision-Date: 2011-05-26 18:11-0700\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.8.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps/examples/templates/examples/home.html:5 +msgid "Hello world" +msgstr "Hello world" + +#. This is a localizer comment +#: apps/examples/templates/examples/home.html:9 +msgid "This is a test view." +msgstr "This is a test view." + +#: apps/examples/templates/examples/home.html:11 +msgid "Learn you some Playdoh and then go build something awesome." +msgstr "Learn you some Playdoh and then go build something awesome." + +#: apps/examples/templates/examples/home.html:17 +msgid "Current locale: %(LANG)s.
Available locales: %(langs)s." +msgstr "Current locale: %(LANG)s.
Available locales: %(langs)s." diff --git a/locale/fr/LC_MESSAGES/messages.po b/locale/fr/LC_MESSAGES/messages.po new file mode 100644 index 0000000..f37fec8 --- /dev/null +++ b/locale/fr/LC_MESSAGES/messages.po @@ -0,0 +1,29 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-03 19:07-0700\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: apps/examples/templates/examples/home.html:5 +msgid "Hello world" +msgstr "Bonjour le monde" + +#. This is a localizer comment +#: apps/examples/templates/examples/home.html:9 +msgid "This is a test view." +msgstr "Ceci est une vue de test." + +#: apps/examples/templates/examples/home.html:11 +msgid "Learn you some Playdoh and then go build something awesome." +msgstr "Apprends à jouer avec Playdoh et construis quelque chose de génial." + +#: apps/examples/templates/examples/home.html:17 +msgid "Current locale: %(LANG)s.
Available locales: %(langs)s." +msgstr "Langue active : %(LANG)s.
Langues disponibles : %(langs)s." diff --git a/locale/templates/LC_MESSAGES/messages.pot b/locale/templates/LC_MESSAGES/messages.pot new file mode 100644 index 0000000..2739fad --- /dev/null +++ b/locale/templates/LC_MESSAGES/messages.pot @@ -0,0 +1,32 @@ +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-03 19:07-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.8.0\n" + +#: apps/examples/templates/examples/home.html:5 +msgid "Hello world" +msgstr "" + +#. This is a localizer comment +#: apps/examples/templates/examples/home.html:9 +msgid "This is a test view." +msgstr "" + +#: apps/examples/templates/examples/home.html:11 +msgid "" +"Learn you some Playdoh and then go build " +"something awesome." +msgstr "" + +#: apps/examples/templates/examples/home.html:17 +msgid "Current locale: %(LANG)s.
Available locales: %(langs)s." +msgstr ""