diff --git a/django/conf/locale/ar/LC_MESSAGES/django.mo b/django/conf/locale/ar/LC_MESSAGES/django.mo index 77bc44da15..9234d63ce3 100644 Binary files a/django/conf/locale/ar/LC_MESSAGES/django.mo and b/django/conf/locale/ar/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/ar/LC_MESSAGES/django.po b/django/conf/locale/ar/LC_MESSAGES/django.po index 28e2153032..2095a35873 100644 --- a/django/conf/locale/ar/LC_MESSAGES/django.po +++ b/django/conf/locale/ar/LC_MESSAGES/django.po @@ -5022,6 +5022,11 @@ msgstr "ديسمبر" msgid "or" msgstr "أو" +#. Translators: This string is used as a separator between list elements +#: utils/text.py:153 +msgid ", " +msgstr "، " + #: utils/timesince.py:21 msgid "year" msgid_plural "years" diff --git a/django/utils/text.py b/django/utils/text.py index b05460486d..00c999c5d5 100644 --- a/django/utils/text.py +++ b/django/utils/text.py @@ -1,7 +1,7 @@ import re from django.utils.encoding import force_unicode from django.utils.functional import allow_lazy -from django.utils.translation import ugettext_lazy +from django.utils.translation import ugettext_lazy, ugettext as _ from htmlentitydefs import name2codepoint # Capitalizes the first letter of a string. @@ -148,7 +148,10 @@ def get_text_list(list_, last_word=ugettext_lazy(u'or')): """ if len(list_) == 0: return u'' if len(list_) == 1: return force_unicode(list_[0]) - return u'%s %s %s' % (', '.join([force_unicode(i) for i in list_][:-1]), force_unicode(last_word), force_unicode(list_[-1])) + return u'%s %s %s' % ( + # Translators: This string is used as a separator between list elements + _(', ').join([force_unicode(i) for i in list_][:-1]), + force_unicode(last_word), force_unicode(list_[-1])) get_text_list = allow_lazy(get_text_list, unicode) def normalize_newlines(text): diff --git a/tests/regressiontests/text/tests.py b/tests/regressiontests/text/tests.py index fd02036f99..3036f8ec2e 100644 --- a/tests/regressiontests/text/tests.py +++ b/tests/regressiontests/text/tests.py @@ -4,12 +4,23 @@ from django.test import TestCase from django.utils.text import * from django.utils.http import urlquote, urlquote_plus, cookie_date, http_date from django.utils.encoding import iri_to_uri +from django.utils.translation import activate, deactivate class TextTests(TestCase): """ Tests for stuff in django.utils.text and other text munging util functions. """ + def test_get_text_list(self): + self.assertEqual(get_text_list(['a', 'b', 'c', 'd']), u'a, b, c or d') + self.assertEqual(get_text_list(['a', 'b', 'c'], 'and'), u'a, b and c') + self.assertEqual(get_text_list(['a', 'b'], 'and'), u'a and b') + self.assertEqual(get_text_list(['a']), u'a') + self.assertEqual(get_text_list([]), u'') + activate('ar') + self.assertEqual(get_text_list(['a', 'b', 'c']), u"a، b أو c") + deactivate() + def test_smart_split(self): self.assertEquals(list(smart_split(r'''This is "a person" test.''')),