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 ""