diff --git a/pyproject.toml b/pyproject.toml index 76ac7c87..3bf50d47 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,7 +51,8 @@ tests = [ "imgtests.web" = [ "**/*.css", "**/*.js", - "**/*.html" + "**/*.html", + "**/*.mo", ] [tool.ruff] diff --git a/src/imgtests/web/locale/ru/LC_MESSAGES/django.mo b/src/imgtests/web/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 00000000..a8d5735c Binary files /dev/null and b/src/imgtests/web/locale/ru/LC_MESSAGES/django.mo differ diff --git a/src/imgtests/web/locale/ru/LC_MESSAGES/django.po b/src/imgtests/web/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 00000000..1fec9d73 --- /dev/null +++ b/src/imgtests/web/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,176 @@ +# Translation file +# This file is distributed under the same license as the imgtests package. +# Vadim Kazakov vadimdim308@gmail.com, 2026. +# +# +msgid "" +msgstr "" +"Project-Id-Version: imgtests 0.0.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-16 13:14+0000\n" +"PO-Revision-Date: 2026-05-16 13:14+0000\n" +"Last-Translator: Vadim Kazakov vadimdim308@gmail.com\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" +#: tests_interface/templates/tests_interface/base.html:7 +#: tests_interface/templates/tests_interface/index.html:4 +msgid "Test Dashboard" +msgstr "Панель тестирования" + +#: tests_interface/templates/tests_interface/distro_page.html:4 +msgid "Tests" +msgstr "Тесты" + +#: tests_interface/templates/tests_interface/distro_page.html:9 +#: tests_interface/templates/tests_interface/excel_reports.html:9 +#: tests_interface/templates/tests_interface/reports_list.html:9 +msgid "Back to Dashboard" +msgstr "На главную страницу" + +#: tests_interface/templates/tests_interface/distro_page.html:11 +msgid "Tests page for" +msgstr "Страница тестов для" + +#: tests_interface/templates/tests_interface/distro_page.html:24 +msgid "Test Configuration" +msgstr "Конфигурация тестов" + +#: tests_interface/templates/tests_interface/distro_page.html:28 +msgid "Select runner:" +msgstr "Выберите runner" + +#: tests_interface/templates/tests_interface/distro_page.html:30 +msgid "Basic" +msgstr "Обычный" + +#: tests_interface/templates/tests_interface/distro_page.html:31 +msgid "Profiled" +msgstr "С профилированием" + +#: tests_interface/templates/tests_interface/distro_page.html:40 +msgid "Use Default Configuration" +msgstr "Использовать стандартную конфигурацию" + +#: tests_interface/templates/tests_interface/distro_page.html:43 +msgid "Custom Configuration" +msgstr "Пользовательская конфигурация" + +#: tests_interface/templates/tests_interface/distro_page.html:49 +msgid "Number of test runs:" +msgstr "Количество запусков тестов" + +#: tests_interface/templates/tests_interface/distro_page.html:62 +msgid "Select Test Suites and Configure Duration:" +msgstr "Выберите наборы тестов и длительность" + +#: tests_interface/templates/tests_interface/distro_page.html:67 +msgid "Individual Tests (optional):" +msgstr "Отдельные тесты (опционально):" + +#: tests_interface/templates/tests_interface/distro_page.html:73 +msgid "Save Configuration" +msgstr "Сохранить конфигурацию" + +#: tests_interface/templates/tests_interface/distro_page.html:80 +#: tests_interface/templates/tests_interface/index.html:20 +msgid "Reset to Default" +msgstr "Восстановить конфигурацию по умолчанию" + +#: tests_interface/templates/tests_interface/distro_page.html:88 +msgid "Run tests" +msgstr "Запустить тесты" + +#: tests_interface/templates/tests_interface/excel_reports.html:4 +#: tests_interface/templates/tests_interface/excel_reports.html:11 +msgid "Excel Reports" +msgstr "Отчеты Excel" + +#: tests_interface/templates/tests_interface/excel_reports.html:17 +msgid "Generate New Excel Report" +msgstr "Сгенерировать новый Excel-отчет" + +#: tests_interface/templates/tests_interface/excel_reports.html:61 +#, python-format +msgid "Size: %(report.size|filesizeformat)s" +msgstr "Размер: %(report.size|filesizeformat)s" + +#: tests_interface/templates/tests_interface/excel_reports.html:65 +msgid "Download" +msgstr "Скачать" + +#: tests_interface/templates/tests_interface/excel_reports.html:81 +#: tests_interface/templates/tests_interface/reports_list.html:153 +#, python-format +msgid "Total: %(reports|length)s report(s)" +msgstr "Всего: %(reports|length)s report(s)" + +#: tests_interface/templates/tests_interface/excel_reports.html:95 +msgid "No Excel Reports" +msgstr "Нет Excel-отчетов" + +#: tests_interface/templates/tests_interface/excel_reports.html:98 +msgid "Click \"Generate New Excel Report\" to create one." +msgstr "Нажмите \"Сгенерировать новый Excel-отчет\" чтобы создать его" + +#: tests_interface/templates/tests_interface/index.html:4 +msgid "Home" +msgstr "Главная страница" + +#: tests_interface/templates/tests_interface/index.html:9 +msgid "Test Platform Dashboard" +msgstr "Панель управления тестами" + +#: tests_interface/templates/tests_interface/index.html:11 +msgid "Select a platform to view test results and reports" +msgstr "Выберите платформу для просмотров результатов тестов и отчетов" + +#: tests_interface/templates/tests_interface/index.html:17 +msgid "Add Distribution" +msgstr "Добавить дистрибутив" + +#: tests_interface/templates/tests_interface/reports_list.html:4 +msgid "All Reports" +msgstr "Все отчеты" + +#: tests_interface/templates/tests_interface/reports_list.html:11 +msgid "Test Reports" +msgstr "Отчеты о тестировании" + +#: tests_interface/templates/tests_interface/reports_list.html:26 +msgid "Generate Comparison Report" +msgstr "Создать сравнительный отчет" + +#: tests_interface/templates/tests_interface/reports_list.html:44 +msgid "Experiment 1" +msgstr "Эксперимент 1" + +#: tests_interface/templates/tests_interface/reports_list.html:55 +#: tests_interface/templates/tests_interface/reports_list.html:77 +msgid "Select" +msgstr "Выберите" + +#: tests_interface/templates/tests_interface/reports_list.html:66 +msgid "Experiment 2" +msgstr "Эксперимент 2" + +#: tests_interface/templates/tests_interface/reports_list.html:87 +#: tests_interface/templates/tests_interface/reports_list.html:258 +msgid "Generate" +msgstr "Сгенерировать" + +#: tests_interface/templates/tests_interface/reports_list.html:166 +msgid "No Reports Found" +msgstr "Отчеты не найдены" + +#: tests_interface/templates/tests_interface/reports_list.html:168 +msgid "No reports available yet. Run some tests to generate reports." +msgstr "Отчетов еще нет. Запустите тесты для их создания" + +#: tests_interface/templates/tests_interface/reports_list.html:174 +msgid "Run Tests" +msgstr "Запустить тесты" diff --git a/src/imgtests/web/tests/settings.py b/src/imgtests/web/tests/settings.py index c4362fee..02bc85b8 100644 --- a/src/imgtests/web/tests/settings.py +++ b/src/imgtests/web/tests/settings.py @@ -44,6 +44,7 @@ class DjangoSettings(BaseSettings): MIDDLEWARE = [ "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", + "django.middleware.locale.LocaleMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware", @@ -59,6 +60,7 @@ class DjangoSettings(BaseSettings): "OPTIONS": { "context_processors": [ "django.template.context_processors.request", + "django.template.context_processors.i18n", "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", ], @@ -95,7 +97,16 @@ class DjangoSettings(BaseSettings): ] -LANGUAGE_CODE = "en-us" +LANGUAGE_CODE = "en" + +LANGUAGES = [ + ("en", "English"), + ("ru", "Русский"), +] + +LOCALE_PATHS = [ + BASE_DIR / "locale", +] TIME_ZONE = "UTC" diff --git a/src/imgtests/web/tests_interface/templates/tests_interface/base.html b/src/imgtests/web/tests_interface/templates/tests_interface/base.html index 9ee7887e..e31e4cf2 100644 --- a/src/imgtests/web/tests_interface/templates/tests_interface/base.html +++ b/src/imgtests/web/tests_interface/templates/tests_interface/base.html @@ -1,9 +1,10 @@ - +{% load i18n %} + - {% block title %}Test Dashboard{% endblock %} + {% block title %}{% translate "Test Dashboard" %}{% endblock %} {% load static %} diff --git a/src/imgtests/web/tests_interface/templates/tests_interface/distro_page.html b/src/imgtests/web/tests_interface/templates/tests_interface/distro_page.html index aab7b927..c9ed3801 100644 --- a/src/imgtests/web/tests_interface/templates/tests_interface/distro_page.html +++ b/src/imgtests/web/tests_interface/templates/tests_interface/distro_page.html @@ -1,13 +1,14 @@ {% extends 'tests_interface/base.html' %} +{% load i18n %} -{% block title %}{{distro.display_name}} Tests{% endblock %} +{% block title %}{{distro.display_name}} {% translate "Tests" %}{% endblock %} {% block content %}
- Back to Dashboard + {% translate "Back to Dashboard" %}
-

Tests page for {{ distro.display_name }}

+

{% translate "Tests page for" %} {{ distro.display_name }}

@@ -20,64 +21,63 @@

Tests page for {{ distro.display_name }}

border-radius: 5px; " > -

Test Configuration

+

{% translate "Test Configuration" %}

-
-
- -
-
+
+ +
+
@@ -132,7 +132,7 @@

Subsystems

- +
- ← Back to Dashboard + ← {% translate "Back to Dashboard" %}
-

Excel Reports

+

{% translate "Excel Reports" %}

@@ -57,11 +58,11 @@

Excel Reports

margin-top: 5px; " > - Size: {{ report.size|filesizeformat }} + {% blocktranslate %}Size: {{ report.size|filesizeformat }}{% endblocktranslate %}
- Download + {% translate "Download" %}
@@ -77,7 +78,7 @@

Excel Reports

color: #8d6e63; " > - Total: {{ reports|length }} report(s) + {% blocktranslate %}Total: {{ reports|length }} report(s){% endblocktranslate %} {% else %}
Excel Reports >
📊

- No Excel Reports + {% translate "No Excel Reports" %}

- Click "Generate New Excel Report" to create one. + {% translate 'Click "Generate New Excel Report" to create one.' %}

{% endif %} diff --git a/src/imgtests/web/tests_interface/templates/tests_interface/index.html b/src/imgtests/web/tests_interface/templates/tests_interface/index.html index b8bc1166..a161899c 100644 --- a/src/imgtests/web/tests_interface/templates/tests_interface/index.html +++ b/src/imgtests/web/tests_interface/templates/tests_interface/index.html @@ -1,22 +1,23 @@ {% extends 'tests_interface/base.html' %} +{% load i18n %} -{% block title %}Home - Test Dashboard{% endblock %} +{% block title %}{% translate "Home" %} - {% translate "Test Dashboard" %}{% endblock %} {% block content %}
-

Test Platform Dashboard

+

{% translate "Test Platform Dashboard" %}

- Select a platform to view test results and reports + {% translate "Select a platform to view test results and reports" %}

diff --git a/src/imgtests/web/tests_interface/templates/tests_interface/reports_list.html b/src/imgtests/web/tests_interface/templates/tests_interface/reports_list.html index c0e9c83c..44d6f324 100644 --- a/src/imgtests/web/tests_interface/templates/tests_interface/reports_list.html +++ b/src/imgtests/web/tests_interface/templates/tests_interface/reports_list.html @@ -1,13 +1,16 @@ {% extends 'tests_interface/base.html' %} +{% load i18n %} -{% block title %}All Reports{%endblock%} +{% block title %}{% translate "All Reports" %}{%endblock%} {% block content %}
- ← Back to Dashboard + ← {% translate "Back to Dashboard" %}
-

Test Reports

+

{% translate "Test Reports" %}

@@ -22,7 +25,7 @@

Test Reports

" >

- Generate Comparison Report + {% translate "Generate Comparison Report" %}

font-size: 0.85rem; color: #795548; " - >Experiment 1{% translate "Experiment 1" %}
@@ -62,7 +65,7 @@

font-size: 0.85rem; color: #795548; " - >Experiment 2{% translate "Experiment 2" %}

@@ -83,7 +86,7 @@

style="padding: 8px 20px" disabled > - Generate + {% translate "Generate" %}

@@ -149,7 +152,7 @@

color: #8d6e63; " > - Total: {{ reports|length }} report(s) + {% blocktranslate %}Total: {{ reports|length }} report(s){% endblocktranslate %}

{% else %}
" >
📊
-

No Reports Found

+

+ {% translate "No Reports Found" %} +

- No reports available yet. Run some tests to generate reports. + {% translate "No reports available yet. Run some tests to generate reports." %}

Run Tests{% translate "Run Tests" %}
{% endif %}