1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
import unittest
from translationstring.tests.translations import Translations
class TranslatorIntegrationTests(unittest.TestCase):
def _makeTranslations(self):
import os
here = os.path.abspath(os.path.dirname(__file__))
localedir = os.path.join(here, 'fixtures', 'locales')
return Translations.load(localedir, locales=['de'])
def test_translator_ugettext_policy(self):
translations = self._makeTranslations()
from translationstring import Translator
from translationstring import ugettext_policy
from translationstring import TranslationString
translator = Translator(translations, ugettext_policy)
tstring = TranslationString(
'Enter a comma separated list of user names.')
result = translator(tstring)
self.assertEqual(result, 'Eine kommagetrennte Liste von Benutzernamen.')
def test_translator_dugettext_policy(self):
translations = self._makeTranslations()
from translationstring import Translator
from translationstring import dugettext_policy
from translationstring import TranslationString
translator = Translator(translations, dugettext_policy)
tstring = TranslationString(
'Enter a comma separated list of user names.')
result = translator(tstring)
self.assertEqual(result, 'Eine kommagetrennte Liste von Benutzernamen.')
def test_translator_with_interpolation(self):
translations = self._makeTranslations()
from translationstring import Translator
from translationstring import dugettext_policy
from translationstring import TranslationString
translator = Translator(translations, dugettext_policy)
tstring = TranslationString('Visit ${url}', mapping={'url':'url'})
result = translator(tstring)
self.assertEqual(result, 'Besuchen url')
def test_translator_with_interpolation_in_translate(self):
translations = self._makeTranslations()
from translationstring import Translator
from translationstring import dugettext_policy
from translationstring import TranslationString
translator = Translator(translations, dugettext_policy)
tstring = TranslationString('Visit ${url}')
result = translator(tstring, mapping={'url':'url'})
self.assertEqual(result, 'Besuchen url')
def test_translator_with_interpolation_overridden_in_translate(self):
translations = self._makeTranslations()
from translationstring import Translator
from translationstring import dugettext_policy
from translationstring import TranslationString
translator = Translator(translations, dugettext_policy)
tstring = TranslationString('Visit ${url}', mapping={'url':'url'})
result = translator(tstring, mapping={'url':'new_url'})
self.assertEqual(result, 'Besuchen new_url')
def test_translator_with_interpolation_partially_overridden_in_translate(self):
translations = self._makeTranslations()
from translationstring import Translator
from translationstring import dugettext_policy
from translationstring import TranslationString
translator = Translator(translations, dugettext_policy)
# Partial initial mapping
tstring = TranslationString('${one} ${two} ${three}', mapping={
'one': 'yksi', 'two': 'kaksi'})
# Partial override
result = translator(tstring, mapping={'two': 'kakkonen'})
self.assertEqual(result, 'yksi kakkonen ${three}')
# Make sure original mapping is not touched
self.assertEqual(tstring.mapping, {'one': 'yksi', 'two': 'kaksi'})
class PluralizerIntegrationTests(unittest.TestCase):
def _makeTranslations(self):
import os
here = os.path.abspath(os.path.dirname(__file__))
localedir = os.path.join(here, 'fixtures', 'locales')
return Translations.load(localedir, locales=['de'])
def test_pluralizer_ungettext_policy(self):
translations = self._makeTranslations()
from translationstring import Pluralizer
from translationstring import ungettext_policy
pluralizer = Pluralizer(translations, ungettext_policy)
result = pluralizer('Unable to find user: ${users}',
'Unable to find users: ${users}',
1,
mapping={'users':'users'})
self.assertEqual(result,
"Benutzer konnte nicht gefunden werden: users")
def test_pluralizer_dungettext_policy(self):
translations = self._makeTranslations()
from translationstring import Pluralizer
from translationstring import dungettext_policy
pluralizer = Pluralizer(translations, dungettext_policy)
result = pluralizer('Unable to find user: ${users}',
'Unable to find users: ${users}',
1,
domain='messages',
mapping={'users':'users'})
self.assertEqual(result,
"Benutzer konnte nicht gefunden werden: users")
|