Пример #1
0
 def delete(self, lang=None):
     r"""
     Delete the translations of the `Context`\ 's `purview` in a language.
     """
     lang = _get_translate_language(lang)
     if lang != _get_default_language():
         _get_translations(self.query, lang).delete()
Пример #2
0
 def create(self, lang=None):
     r"""
     Create the translations of the `Context`\ 's `purview` in a language.
     """
     lang = _get_translate_language(lang)
     if lang != _get_default_language():
         _translations = [
             translations.models.Translation(
                 language=lang, text=text, **address
             ) for address, text in self._get_changed_fields()
         ]
         translations.models.Translation.objects.bulk_create(_translations)
Пример #3
0
 def update(self, lang=None):
     r"""
     Update the translations of the `Context`\ 's `purview` in a language.
     """
     lang = _get_translate_language(lang)
     if lang != _get_default_language():
         query = models.Q()
         _translations = []
         for address, text in self._get_changed_fields():
             query |= models.Q(**address)
             _translations.append(
                 translations.models.Translation(
                     language=lang, text=text, **address
                 )
             )
         _get_translations(query, lang).delete()
         translations.models.Translation.objects.bulk_create(_translations)
Пример #4
0
 def read(self, lang=None):
     r"""
     Read the translations of the `Context`\ 's `purview` in a language.
     """
     lang = _get_translate_language(lang)
     if lang != _get_default_language():
         _translations = _get_translations(self.query, lang)
         for translation in _translations:
             ct_id = translation.content_type.id
             obj_id = translation.object_id
             field = translation.field
             text = translation.text
             obj = self.mapping[ct_id][obj_id]
             if field in type(obj)._get_translatable_fields_names():
                 setattr(obj, field, text)
     else:
         self.reset()
Пример #5
0
    def test_invalid_custom(self):
        with self.assertRaises(ValueError) as error:
            _get_translate_language('xx')

        self.assertEqual(error.exception.args[0],
                         '`xx` is not a supported language.')
Пример #6
0
 def test_existing_accented_custom(self):
     self.assertEqual(_get_translate_language('en-gb'), 'en-gb')
Пример #7
0
 def test_unaccented_custom(self):
     self.assertEqual(_get_translate_language('en'), 'en')
Пример #8
0
 def test_existing_accented_active(self):
     self.assertEqual(_get_translate_language(), 'en-gb')
Пример #9
0
 def test_unaccented_active(self):
     self.assertEqual(_get_translate_language(), 'en')
Пример #10
0
 def translate(self, lang=None):
     """Translate the `TranslatableQuerySet` in a language."""
     clone = self.all()
     clone._trans_lang = _get_translate_language(lang)
     return clone