Odoo18-Base/odoo/addons/base/tests/test_i18n.py
2025-01-06 10:57:38 +07:00

34 lines
1.5 KiB
Python

from odoo.tests import TransactionCase
from odoo.tools import format_list, py_to_js_locale
class I18nTest(TransactionCase):
def test_format_list(self):
lang = self.env["res.lang"]
formatted_text = format_list(self.env, ["Mario", "Luigi"])
self.assertEqual(formatted_text, "Mario and Luigi", "Should default to English.")
formatted_text = format_list(self.env, ["To be", "Not to be"], "or")
self.assertEqual(formatted_text, "To be or Not to be", "Should take the style into account.")
lang._activate_lang("fr_FR")
formatted_text = format_list(lang.with_context(lang="fr_FR").env, ["Athos", "Porthos", "Aramis"])
self.assertEqual(formatted_text, "Athos, Porthos et Aramis", "Should use the language of the user.")
formatted_text = format_list(
lang.with_context(lang="en_US").env, ["Athos", "Porthos", "Aramis"], lang_code="fr_FR",
)
self.assertEqual(formatted_text, "Athos, Porthos et Aramis", "Should use the chosen language.")
def test_py_to_js_locale(self):
self.assertEqual(py_to_js_locale("tg"), "tg")
self.assertEqual(py_to_js_locale("kab"), "kab")
self.assertEqual(py_to_js_locale("fr_BE"), "fr-BE")
self.assertEqual(py_to_js_locale("es_419"), "es-419")
self.assertEqual(py_to_js_locale("sr@latin"), "sr-Latn")
self.assertEqual(py_to_js_locale("sr@Cyrl"), "sr-Cyrl")
self.assertEqual(py_to_js_locale("sr_RS@latin"), "sr-Latn-RS")
self.assertEqual(py_to_js_locale("fr-TG"), "fr-TG")