1
0
Fork 0
mirror of https://github.com/mealie-recipes/mealie.git synced 2025-08-05 21:45:25 +02:00

Feature/improve localization (#1147)

* use locale to set language header

* rewrite i18n provider and drop dependency

* rename file

* rename CrudMixin to HttpRepo

* refactor: code-cleanup

* add crowdin source

* remove unused translations

* grab translations from dev branch

* add translation support for foods, units, and labels

* remove rich import
This commit is contained in:
Hayden 2022-04-10 14:07:35 -08:00 committed by GitHub
parent db095656e1
commit 7866f0f46e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
71 changed files with 4736 additions and 3642 deletions

View file

@ -2,6 +2,7 @@ from pathlib import Path
CWD = Path(__file__).parent
locale_dir = CWD / "locale"
migrations_paprika = CWD / "migrations/paprika.zip"

View file

@ -0,0 +1,8 @@
{
"language": "af-ZA",
"t1": "test2",
"t2": {
"1": "value1",
"2": "value2"
}
}

View file

@ -0,0 +1,8 @@
{
"language": "en-US",
"t1": "test2",
"t2": {
"1": "value1",
"2": "value2"
}
}

View file

@ -0,0 +1,65 @@
from mealie.pkgs.i18n import JsonProvider, ProviderFactory
from tests.data import locale_dir
def test_json_provider():
provider = JsonProvider({"test": "test"})
assert provider.t("test") == "test"
assert provider.t("test2", "DEFAULT") == "DEFAULT"
def test_json_provider_nested_keys():
nested_dict = {
"root": {
"tier1": "tire1_value",
},
}
provider = JsonProvider(nested_dict)
assert provider.t("root.tier1") == "tire1_value"
def test_json_provider_nested_keys_not_found():
nested_dict = {
"root": {
"tier1": "tire1_value",
},
}
provider = JsonProvider(nested_dict)
assert provider.t("root.tier2") == "root.tier2"
def test_locale_provider_defaults():
factory = ProviderFactory(locale_dir)
assert factory.get("en-US") is not None
assert factory.get("asdfadsf") is not None
assert factory._store["en-US"].locks == 1
factory.release("en-US")
assert "en-US" not in factory._store
def test_locale_providers_store_locks():
factory = ProviderFactory(locale_dir)
factory.get("en-US")
factory.get("en-US")
factory.get("en-US")
assert factory._store["en-US"].locks == 3
factory.release("en-US")
assert factory._store["en-US"].locks == 2
factory.release("en-US")
factory.release("en-US")
assert "en-US" not in factory._store

View file

@ -1,9 +1,9 @@
from mealie.core import exceptions
from mealie.lang import get_locale_provider
from mealie.lang import local_provider
def test_mealie_registered_exceptions() -> None:
provider = get_locale_provider()
provider = local_provider()
lookup = exceptions.mealie_registered_exceptions(provider)