This repository has been archived by the owner on Jan 8, 2019. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #40 from stasm/locale_dir
Provide a sample localization
- Loading branch information
Showing
9 changed files
with
225 additions
and
49 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,4 +14,4 @@ vendor | |
.noseids | ||
tmp/* | ||
*~ | ||
locale/* | ||
*.mo |
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,94 @@ | ||
import os | ||
import shutil | ||
|
||
from django.conf import settings | ||
import test_utils | ||
|
||
import manage | ||
|
||
|
||
class AcceptedLocalesTest(test_utils.TestCase): | ||
"""Test lazy evaluation of locale related settings. | ||
Verify that some localization-related settings are lazily evaluated based | ||
on the current value of the DEV variable. Depending on the value, | ||
DEV_LANGUAGES or PROD_LANGUAGES should be used. | ||
""" | ||
locale = manage.path('locale') | ||
locale_bkp = manage.path('locale_bkp') | ||
|
||
@classmethod | ||
def setup_class(cls): | ||
"""Create a directory structure for locale/. | ||
Back up the existing locale/ directory and create the following | ||
hierarchy in its place: | ||
- locale/en-US/LC_MESSAGES | ||
- locale/fr/LC_MESSAGES | ||
- locale/templates/LC_MESSAGES | ||
- locale/empty_file | ||
Also, set PROD_LANGUAGES to ('en-US',). | ||
""" | ||
if os.path.exists(cls.locale_bkp): | ||
raise Exception('A backup of locale/ exists at %s which might ' | ||
'mean that previous tests didn\'t end cleanly. ' | ||
'Skipping the test suite.' % cls.locale_bkp) | ||
cls.DEV = settings.DEV | ||
cls.PROD_LANGUAGES = settings.PROD_LANGUAGES | ||
cls.DEV_LANGUAGES = settings.DEV_LANGUAGES | ||
settings.PROD_LANGUAGES = ('en-US',) | ||
os.rename(cls.locale, cls.locale_bkp) | ||
for loc in ('en-US', 'fr', 'templates'): | ||
os.makedirs(os.path.join(cls.locale, loc, 'LC_MESSAGES')) | ||
open(os.path.join(cls.locale, 'empty_file'), 'w').close() | ||
|
||
@classmethod | ||
def teardown_class(cls): | ||
"""Remove the testing locale/ dir and bring back the backup.""" | ||
|
||
settings.DEV = cls.DEV | ||
settings.PROD_LANGUAGES = cls.PROD_LANGUAGES | ||
settings.DEV_LANGUAGES = cls.DEV_LANGUAGES | ||
shutil.rmtree(cls.locale) | ||
os.rename(cls.locale_bkp, cls.locale) | ||
|
||
def test_build_dev_languages(self): | ||
"""Test that the list of dev locales is built properly. | ||
On dev instances, the list of accepted locales should correspond to | ||
the per-locale directories in locale/. | ||
""" | ||
settings.DEV = True | ||
assert (settings.DEV_LANGUAGES == ['en-US', 'fr'] or | ||
settings.DEV_LANGUAGES == ['fr', 'en-US']), \ | ||
'DEV_LANGUAGES do not correspond to the contents of locale/.' | ||
|
||
def test_dev_languages(self): | ||
"""Test the accepted locales on dev instances. | ||
On dev instances, allow locales defined in DEV_LANGUAGES. | ||
""" | ||
settings.DEV = True | ||
# simulate the successful result of the DEV_LANGUAGES list | ||
# comprehension defined in settings. | ||
settings.DEV_LANGUAGES = ['en-US', 'fr'] | ||
assert settings.LANGUAGE_URL_MAP == {'en-us': 'en-US', 'fr': 'fr'}, \ | ||
('DEV is True, but DEV_LANGUAGES are not used to define the ' | ||
'allowed locales.') | ||
|
||
def test_prod_languages(self): | ||
"""Test the accepted locales on prod instances. | ||
On stage/prod instances, allow locales defined in PROD_LANGUAGES. | ||
""" | ||
settings.DEV = False | ||
assert settings.LANGUAGE_URL_MAP == {'en-us': 'en-US'}, \ | ||
('DEV is False, but PROD_LANGUAGES are not used to define the ' | ||
'allowed locales.') |
This file was deleted.
Oops, something went wrong.
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 |
---|---|---|
@@ -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 |
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,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 <em>test view</em>." | ||
msgstr "This is a <em>test view</em>." | ||
|
||
#: apps/examples/templates/examples/home.html:11 | ||
msgid "<a href=\"%(docs_url)s\">Learn you some Playdoh</a> and then go build something <strong>awesome</strong>." | ||
msgstr "<a href=\"%(docs_url)s\">Learn you some Playdoh</a> and then go build something <strong>awesome</strong>." | ||
|
||
#: apps/examples/templates/examples/home.html:17 | ||
msgid "Current locale: %(LANG)s.<br> Available locales: %(langs)s." | ||
msgstr "Current locale: %(LANG)s.<br> Available locales: %(langs)s." |
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,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 <em>test view</em>." | ||
msgstr "Ceci est une <em>vue de test</em>." | ||
|
||
#: apps/examples/templates/examples/home.html:11 | ||
msgid "<a href=\"%(docs_url)s\">Learn you some Playdoh</a> and then go build something <strong>awesome</strong>." | ||
msgstr "<a href=\"%(docs_url)s\">Apprends à jouer avec Playdoh</a> et construis quelque chose de <strong>génial</strong>." | ||
|
||
#: apps/examples/templates/examples/home.html:17 | ||
msgid "Current locale: %(LANG)s.<br> Available locales: %(langs)s." | ||
msgstr "Langue active : %(LANG)s.<br> Langues disponibles : %(langs)s." |
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,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 <EMAIL@ADDRESS>\n" | ||
"Language-Team: LANGUAGE <LL@li.org>\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 <em>test view</em>." | ||
msgstr "" | ||
|
||
#: apps/examples/templates/examples/home.html:11 | ||
msgid "" | ||
"<a href=\"%(docs_url)s\">Learn you some Playdoh</a> and then go build " | ||
"something <strong>awesome</strong>." | ||
msgstr "" | ||
|
||
#: apps/examples/templates/examples/home.html:17 | ||
msgid "Current locale: %(LANG)s.<br> Available locales: %(langs)s." | ||
msgstr "" |
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