mirror of
https://github.com/django/django.git
synced 2024-12-22 17:16:24 +00:00
Fixed #24159 -- Made compilemessages run across all apps.
Updated the command to match the documentation, which states it runs over all .po files.
This commit is contained in:
parent
7bda2d8ebc
commit
40f0a84cb1
2
AUTHORS
2
AUTHORS
@ -462,7 +462,7 @@ answer newbie questions, and generally made Django that much better:
|
|||||||
Matt Deacalion Stevens <matt@dirtymonkey.co.uk>
|
Matt Deacalion Stevens <matt@dirtymonkey.co.uk>
|
||||||
Matt Dennenbaum
|
Matt Dennenbaum
|
||||||
Matthew Flanagan <http://wadofstuff.blogspot.com>
|
Matthew Flanagan <http://wadofstuff.blogspot.com>
|
||||||
Matthew Somerville <matthew-github@dracos.co.uk>
|
Matthew Somerville <matthew-django@dracos.co.uk>
|
||||||
Matthew Tretter <m@tthewwithanm.com>
|
Matthew Tretter <m@tthewwithanm.com>
|
||||||
Matthias Kestenholz <mk@406.ch>
|
Matthias Kestenholz <mk@406.ch>
|
||||||
Matthias Pronk <django@masida.nl>
|
Matthias Pronk <django@masida.nl>
|
||||||
|
@ -61,6 +61,12 @@ class Command(BaseCommand):
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
basedirs.extend(upath(path) for path in settings.LOCALE_PATHS)
|
basedirs.extend(upath(path) for path in settings.LOCALE_PATHS)
|
||||||
|
|
||||||
|
# Walk entire tree, looking for locale directories
|
||||||
|
for dirpath, dirnames, filenames in os.walk('.', topdown=True):
|
||||||
|
for dirname in dirnames:
|
||||||
|
if dirname == 'locale':
|
||||||
|
basedirs.append(os.path.join(dirpath, dirname))
|
||||||
|
|
||||||
# Gather existing directories.
|
# Gather existing directories.
|
||||||
basedirs = set(map(os.path.abspath, filter(os.path.isdir, basedirs)))
|
basedirs = set(map(os.path.abspath, filter(os.path.isdir, basedirs)))
|
||||||
|
|
||||||
|
@ -161,6 +161,11 @@ are excluded.
|
|||||||
You can pass ``--use-fuzzy`` option (or ``-f``) to include fuzzy translations
|
You can pass ``--use-fuzzy`` option (or ``-f``) to include fuzzy translations
|
||||||
into compiled files.
|
into compiled files.
|
||||||
|
|
||||||
|
.. versionchanged:: 1.9
|
||||||
|
|
||||||
|
``compilemessages`` now matches the operation of :djadmin:`makemessages`,
|
||||||
|
scanning the project tree for ``.po`` files to compile.
|
||||||
|
|
||||||
.. versionchanged:: 1.8
|
.. versionchanged:: 1.8
|
||||||
|
|
||||||
Added ``--exclude`` and ``--use-fuzzy`` options.
|
Added ``--exclude`` and ``--use-fuzzy`` options.
|
||||||
|
@ -193,6 +193,10 @@ Internationalization
|
|||||||
:ttag:`get_language_info` template tag. Also added a corresponding template
|
:ttag:`get_language_info` template tag. Also added a corresponding template
|
||||||
filter: :tfilter:`language_name_translated`.
|
filter: :tfilter:`language_name_translated`.
|
||||||
|
|
||||||
|
* You can now run :djadmin:`compilemessages` from the root directory of your
|
||||||
|
project and it will find all the app message files that were created by
|
||||||
|
:djadmin:`makemessages`.
|
||||||
|
|
||||||
Management Commands
|
Management Commands
|
||||||
^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
@ -1583,6 +1583,11 @@ which you ran :djadmin:`django-admin makemessages <makemessages>`, run
|
|||||||
|
|
||||||
That's it. Your translations are ready for use.
|
That's it. Your translations are ready for use.
|
||||||
|
|
||||||
|
.. versionchanged:: 1.9
|
||||||
|
|
||||||
|
``compilemessages`` now matches the operation of :djadmin:`makemessages`,
|
||||||
|
scanning the project tree for ``.po`` files to compile.
|
||||||
|
|
||||||
.. admonition:: Working on Windows?
|
.. admonition:: Working on Windows?
|
||||||
|
|
||||||
If you're using Windows and need to install the GNU gettext utilities so
|
If you're using Windows and need to install the GNU gettext utilities so
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-03-30 12:51+0000\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"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||||
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
|
#
|
||||||
|
msgid "Lenin"
|
||||||
|
msgstr "Ленин"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Vodka"
|
||||||
|
msgstr "Водка"
|
@ -192,14 +192,21 @@ class CompilationErrorHandling(MessageCompilationTests):
|
|||||||
call_command('compilemessages', locale=[self.LOCALE], stdout=StringIO())
|
call_command('compilemessages', locale=[self.LOCALE], stdout=StringIO())
|
||||||
|
|
||||||
|
|
||||||
class FuzzyTranslationTest(MessageCompilationTests):
|
class ProjectAndAppTests(MessageCompilationTests):
|
||||||
|
|
||||||
LOCALE = 'ru'
|
LOCALE = 'ru'
|
||||||
MO_FILE = 'locale/%s/LC_MESSAGES/django.mo' % LOCALE
|
PROJECT_MO_FILE = 'locale/%s/LC_MESSAGES/django.mo' % LOCALE
|
||||||
|
APP_MO_FILE = 'app_with_locale/locale/%s/LC_MESSAGES/django.mo' % LOCALE
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
super(ProjectAndAppTests, self).setUp()
|
||||||
|
self.addCleanup(self.rmfile, os.path.join(self.test_dir, self.PROJECT_MO_FILE))
|
||||||
|
self.addCleanup(self.rmfile, os.path.join(self.test_dir, self.APP_MO_FILE))
|
||||||
|
|
||||||
|
|
||||||
|
class FuzzyTranslationTest(ProjectAndAppTests):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(FuzzyTranslationTest, self).setUp()
|
super(FuzzyTranslationTest, self).setUp()
|
||||||
self.addCleanup(self.rmfile, os.path.join(self.test_dir, self.MO_FILE))
|
|
||||||
gettext_module._translations = {} # flush cache or test will be useless
|
gettext_module._translations = {} # flush cache or test will be useless
|
||||||
|
|
||||||
def test_nofuzzy_compiling(self):
|
def test_nofuzzy_compiling(self):
|
||||||
@ -215,3 +222,11 @@ class FuzzyTranslationTest(MessageCompilationTests):
|
|||||||
with translation.override(self.LOCALE):
|
with translation.override(self.LOCALE):
|
||||||
self.assertEqual(ugettext('Lenin'), force_text('Ленин'))
|
self.assertEqual(ugettext('Lenin'), force_text('Ленин'))
|
||||||
self.assertEqual(ugettext('Vodka'), force_text('Водка'))
|
self.assertEqual(ugettext('Vodka'), force_text('Водка'))
|
||||||
|
|
||||||
|
|
||||||
|
class AppCompilationTest(ProjectAndAppTests):
|
||||||
|
|
||||||
|
def test_app_locale_compiled(self):
|
||||||
|
call_command('compilemessages', locale=[self.LOCALE], stdout=StringIO())
|
||||||
|
self.assertTrue(os.path.exists(self.PROJECT_MO_FILE))
|
||||||
|
self.assertTrue(os.path.exists(self.APP_MO_FILE))
|
||||||
|
Loading…
Reference in New Issue
Block a user