Merge pull request #275 from wrwrwr/fix/indonesian

Fix support for Indonesian language ('_id' language suffix).
This commit is contained in:
Jacek Tomaszewski 2014-10-24 20:21:29 +02:00
commit af672f3160
2 changed files with 10 additions and 0 deletions

View file

@ -965,6 +965,10 @@ class ForeignKeyFieldsTest(ModeltranslationTestBase):
self.assertEqual(manager.filter(test_fks__title='f_title_de').count(), 0)
self.assertEqual(manager.filter(test_fks__title_de='f_title_de').count(), 1)
def test_indonesian(self):
field = models.ForeignKeyModel._meta.get_field('test')
self.assertNotEqual(field.attname, build_localized_fieldname(field.name, 'id'))
def assertQuerysetsEqual(self, qs1, qs2):
pk = lambda o: o.pk
return self.assertEqual(sorted(qs1, key=pk), sorted(qs2, key=pk))

View file

@ -30,10 +30,16 @@ def get_translation_fields(field):
def build_localized_fieldname(field_name, lang):
if lang == 'id':
# The 2-letter Indonesian language code is problematic with the
# current naming scheme as Django foreign keys also add "id" suffix.
lang = 'ind'
return str('%s_%s' % (field_name, lang.replace('-', '_')))
def _build_localized_verbose_name(verbose_name, lang):
if lang == 'id':
lang = 'ind'
return force_text('%s [%s]') % (force_text(verbose_name), lang)
build_localized_verbose_name = lazy(_build_localized_verbose_name, six.text_type)