From efa21cf9c0fbc17ed229faa46d5fa5dc8ddb937c Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Sun, 16 Nov 2025 00:52:39 +0300 Subject: [PATCH] =?UTF-8?q?Features:=201)=20Updated=20Russian=20translatio?= =?UTF-8?q?ns=20for=20UI=20terms=20like=20"Dashboard"=20=E2=86=92=20"?= =?UTF-8?q?=D0=9F=D0=B0=D0=BD=D0=B5=D0=BB=D1=8C",=20"Blogposts"=20?= =?UTF-8?q?=E2=86=92=20"=D0=9F=D0=BE=D1=81=D1=82=D1=8B",=20etc.;=202)=20Ad?= =?UTF-8?q?ded=20support=20for=20multiple=20locale=20directories=20in=20`L?= =?UTF-8?q?OCALE=5FPATHS`;=203)=20Introduced=20`LANGUAGE=5FURL=5FOVERRIDES?= =?UTF-8?q?`=20for=20URL=20language=20normalization.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: 1) Fixed case sensitivity in region code normalization (lowercase regions); 2) Corrected translation file updates to match new string values. Extra: 1) Refactored middleware to normalize language codes to lowercase; 2) Added new locale paths for engine modules; 3) Improved consistency in translation keys and fallbacks. --- evibes/locale/ru_RU/LC_MESSAGES/django.mo | Bin 11201 -> 11147 bytes evibes/locale/ru_RU/LC_MESSAGES/django.po | 10 +++++----- evibes/middleware.py | 4 ++-- evibes/settings/base.py | 10 ++++++++++ 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.mo b/evibes/locale/ru_RU/LC_MESSAGES/django.mo index 4568ee84b81c5f11b8702fdf591cb0beffd86739..f415534c4f0fd0a908fdaa9c71b4818ab2973bf3 100644 GIT binary patch delta 360 zcmXZYy-EW?5Ww*<5saRKA0T2QqMo^n;uSVZ5G=&r!fP$G48lEt=O-!7LUNsrAXo?r z=cUoYKpG|8?gQux*jWYy|3lL3Z)b*?VYeM7VfHi-kBG>oD>8~ZIEi~WgGc@R3CY}2@P+US?uz~c- zA+F#x>Y_KC#t$6BFVw|9{rC?Ti5-S)V}Sa=2(|yppA&iH(jYO5)k@D0^#`J6rw}a+ x-cP_5}4{lC=&qB!O-tY46C8_vbKYZxR&nl%hZKX!g$8kKuG@f7vFL4e- zT*pt`z{HYL9%j+(AEG&@j7hx4F}%ZLe8LhgI!di#-BEe9%i@b*2s3W)AO};_duRq6 zAeTDlwt^9w7yZU5{J~Ki=3z59ji&Z+0kgP``)K-VIEf99&#SX|Cz!_Ea?cAif8aj) z=+Dj1+)5}NiFHw8OB$9u%8Rrml2Dg}9eXRK3lbBy@s+S@Nhd1UgNXskSXYCJyOyl6 h*_Ng*NlTypr*Cd|;)bT8v?R3TnITQO&w?xO_YdUvY1jY& diff --git a/evibes/locale/ru_RU/LC_MESSAGES/django.po b/evibes/locale/ru_RU/LC_MESSAGES/django.po index 27509191..75d99626 100644 --- a/evibes/locale/ru_RU/LC_MESSAGES/django.po +++ b/evibes/locale/ru_RU/LC_MESSAGES/django.po @@ -235,7 +235,7 @@ msgstr "Меню" #: evibes/settings/unfold.py:67 msgid "Dashboard" -msgstr "Приборная панель" +msgstr "Панель" #: evibes/settings/unfold.py:72 msgid "Health" @@ -255,7 +255,7 @@ msgstr "Группы" #: evibes/settings/unfold.py:92 msgid "Products" -msgstr "Продукция" +msgstr "Товары" #: evibes/settings/unfold.py:97 msgid "Categories" @@ -267,15 +267,15 @@ msgstr "Бренды" #: evibes/settings/unfold.py:107 msgid "Blogposts" -msgstr "Записи в блогах" +msgstr "Посты" #: evibes/settings/unfold.py:112 msgid "Periodic Tasks" -msgstr "Периодические задания" +msgstr "Периодические задачи" #: evibes/settings/unfold.py:137 msgid "Taskboard" -msgstr "Доска задач" +msgstr "Канбан" #: evibes/settings/unfold.py:142 msgid "Support" diff --git a/evibes/middleware.py b/evibes/middleware.py index ea82a981..59b40f57 100644 --- a/evibes/middleware.py +++ b/evibes/middleware.py @@ -31,10 +31,10 @@ class CustomLocaleMiddleware(LocaleMiddleware): parts = lang.replace("_", "-").split("-") if len(parts) == 2: lang_code = parts[0].lower() - region = parts[1].upper() + region = parts[1].lower() normalized = f"{lang_code}-{region}" else: - normalized = lang + normalized = lang.lower() translation.activate(normalized) request.LANGUAGE_CODE = normalized diff --git a/evibes/settings/base.py b/evibes/settings/base.py index fbe8be79..ac687ea4 100644 --- a/evibes/settings/base.py +++ b/evibes/settings/base.py @@ -211,6 +211,14 @@ TEMPLATES: list[dict[str, str | list[str | Path] | dict[str, str | list[str]] | USE_I18N: bool = True +LOCALE_PATHS: tuple[Path, ...] = ( + (BASE_DIR / "evibes/locale"), + (BASE_DIR / "engine/blog/locale"), + (BASE_DIR / "engine/core/locale"), + (BASE_DIR / "engine/payments/locale"), + (BASE_DIR / "engine/vibes_auth/locale"), +) + LANGUAGES: tuple[tuple[str, str], ...] = ( ("ar-ar", "العربية"), ("cs-cz", "Česky"), @@ -301,6 +309,8 @@ CURRENCIES_WITH_SYMBOLS: tuple[tuple[str, str], ...] = ( ("VND", "₫"), ) +LANGUAGE_URL_OVERRIDES: dict[str, str] = {code.split("-")[0]: code for code, _ in LANGUAGES if "-" in code} + CURRENCY_CODE: str = dict(CURRENCIES_BY_LANGUAGES).get(LANGUAGE_CODE) # type: ignore[assignment] MODELTRANSLATION_FALLBACK_LANGUAGES: tuple[str, ...] = (LANGUAGE_CODE, "en-us", "de-de")