From c1f14ff50c4d8ed8b6b3940b3aa6beb4b88b6a9d Mon Sep 17 00:00:00 2001 From: Dr_Perry_Coke <76223634+DrPerryCoke@users.noreply.github.com> Date: Wed, 20 Sep 2023 10:35:38 +0300 Subject: [PATCH 1/2] Add Russian localization --- client/public/locales/ru/common.json | 245 +++++++++++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 client/public/locales/ru/common.json diff --git a/client/public/locales/ru/common.json b/client/public/locales/ru/common.json new file mode 100644 index 000000000..f82cee4b3 --- /dev/null +++ b/client/public/locales/ru/common.json @@ -0,0 +1,245 @@ +{ + "actions": { + "list": "Список", + "create": "Создать", + "edit": "Редактировать", + "show": "Просмотр", + "clone": "Клонировать" + }, + "buttons": { + "create": "Создать", + "save": "Сохранить", + "logout": "Выйте", + "delete": "Удалить", + "edit": "Редактировать", + "cancel": "Отмена", + "confirm": "Вы уверены?", + "filter": "Фильтр", + "clear": "Очистить", + "refresh": "Обновить", + "show": "Просмотр", + "undo": "Отменить", + "import": "Импорт", + "clone": "Клонировать", + "archive": "В архив", + "unArchive": "Из архива", + "hideArchived": "Скрыть архивные", + "showArchived": "Показать архивные", + "notAccessTitle": "У вас нет разрешения на доступ", + "hideColumns": "Скрыть столбцы", + "clearFilters": "Очистить фильтр" + }, + "warnWhenUnsavedChanges": "Вы уверены, что хотите выйти? У вас есть несохраненные изменения.", + "notifications": { + "success": "Успешно", + "error": "Ошибка (status code: {{statusCode}})", + "undoable": "У вас есть {{seconds}} секунд, чтобы отменить действие.", + "createSuccess": "Успешно создано {{resource}}", + "createError": "Произошла ошибка при создании{{resource}} (status code: {{statusCode}})", + "deleteSuccess": "Успеешно удалено {{resource}}", + "deleteError": "Ошибка при удалении {{resource}} (status code: {{statusCode}})", + "editSuccess": "Успешно отредактировано {{resource}}", + "editError": "Ошибка при редактировании {{resource}} (status code: {{statusCode}})", + "importProgress": "Импорт: {{processed}}/{{total}}" + }, + "loading": "Загрузка", + "version": "Версия", + "unknown": "Неизвестно", + "yes": "Да", + "no": "Нет", + "tags": { + "clone": "Клонировать" + }, + "dashboard": { + "title": "Панель" + }, + "printing": { + "generic": { + "title": "Печать", + "description": "Настройте параметры ниже, чтобы получить желаемый макет печати. Имейте в виду, что принтеры и ваша ОС могут применять свои собственные поля и масштабирование, поэтому вам, возможно, придется выполнить несколько проб и ошибок, прежде чем все будет правильно. Прежде чем печатать на этикетках, проверьте это на листе обычной бумаги.", + "helpMargin": "Поля должны быть настроены в соответствии с вашей этикеточной бумагой и принтером. Их изменение повлияет на размер всей сетки.", + "helpPrinterMargin": "В безопасной зоне должно быть установлено, насколько близко к краю бумаги может печатать ваш принтер. Изменение этих значений не повлияет на всю сетку.", + "print": "Распечатать", + "columns": "Столбцы", + "rows": "Строки", + "paperSize": "Размер бумаги", + "customSize": "Настроить", + "dimensions": "Размеры", + "showBorder": "Показать границу", + "previewScale": "Масштаб предварительного просмотра", + "skipItems": "Пропустить элементы", + "contentSettings": "Настройки контента", + "layoutSettings": "Настройки макета", + "horizontalSpacing": "Горизонтальный интервал", + "verticalSpacing": "Вертикальный интервал", + "marginLeft": "Левое поле", + "marginRight": "Правое поле", + "marginTop": "Верхнее поле", + "marginBottom": "Нижнее поле", + "printerMarginLeft": "Безопасная зона слева", + "printerMarginRight": "Безопасная зона справа", + "printerMarginTop": "Безопасная зона сверху", + "printerMarginBottom": "Безопасная зона снизу", + "borders": { + "none": "Неизвестно", + "border": "Границы", + "grid": "Сетка" + } + }, + "qrcode": { + "button": "Распечатать QR-коды", + "title": "Печать QR-кода", + "spoolWeight": "Вес катушки: {{weight}}", + "lotNr": "№ партии: {{lot}}", + "bedTemp": "ТС: {{temp}}", + "extruderTemp": "ТЕ: {{temp}}", + "textSize": "Размер текста", + "showSpoolmanIcon": "Показать иконку Spoolman", + "showVendor": "Производитель", + "showContent": "Печать информации", + "showLotNr": "№ партии", + "showSpoolWeight": "Вес катушки", + "showTemperatures": "Temperatures", + "showSpoolComment": "Комментарий к катушке", + "showFilamentComment": "Комментарий к филаменту", + "showVendorComment": "Комментарий к продавцу" + }, + "spoolSelect": { + "title": "Выберите катушки", + "description": "Выберите катушки для печати QR-кодов.", + "showArchived": "Показать архивные", + "noSpoolsSelected": "Вы не выбрали ни одной катушки.", + "selectAll": "Выбрать/отменить выбор всего", + "selectedTotal_one": "{{count}} катушка выбрана", + "selectedTotal_other": "{{count}} катушки выбраны" + } + }, + "scanner": { + "title": "Сканер QR-кода", + "description": "Отсканируйте QR-код Spoolman, чтобы просмотреть подробную информацию о катушке.", + "error": { + "notAllowed": "Вы запретили доступ к камере.", + "insecureContext": "Страница не обслуживается по протоколу HTTPS.", + "streamApiNotSupported": "Браузер не поддерживает API MediaStream.", + "notReadable": "Камера не читается.", + "notFound": "Ни одна камера не найдена.", + "unknown": "Произошла неизвестная ошибка. ({{error}})" + } + }, + "spool": { + "spool": "Катушки", + "fields": { + "id": "Id", + "filament_name": "Филамент", + "filament": "Филамент", + "material": "Тип", + "used_weight": "Использованный вес", + "remaining_weight": "Оставшийся вес", + "used_length": "Использованная длина", + "remaining_length": "Оставшаяся длина", + "location": "Расположение", + "lot_nr": "№ партии", + "first_used": "Первое использование", + "last_used": "Последнее использование", + "registered": "Добавлен", + "comment": "Комментарий", + "archived": "В архиве" + }, + "fields_help": { + "used_weight": "Сколько филамента было использовано с катушки. На новой катушке должно быть использовано 0 г.", + "location": "Где находится катушка, если у вас есть несколько мест хранения катушек.", + "lot_nr": "Номер партии производителя. Может использоваться для обеспечения однородного цвета отпечатка при использовании нескольких катушек." + }, + "titles": { + "create": "Создать Катушку", + "clone": "Клонировать Катушку", + "edit": "Редактировать Катушку", + "list": "Катушки", + "show": "Показать Катушку", + "archive": "Архивировать Катушку" + }, + "messages": { + "archive": "Вы уверены, что хотите добавить в архив эту катушку?" + } + }, + "filament": { + "filament": "Филаменты", + "fields": { + "id": "Id", + "vendor_name": "Производитель", + "vendor": "Производитель", + "name": "Имя", + "material": "Тип", + "price": "Цена", + "density": "Плотность", + "diameter": "Диаметр", + "weight": "Вес", + "spool_weight": "Вес катушки", + "article_number": "Артикул", + "registered": "Добавлен", + "comment": "Комментарий", + "settings_extruder_temp": "Температура экструдера", + "settings_bed_temp": "Температура стола", + "color_hex": "Цвет" + }, + "fields_help": { + "name": "Название филамента, чтобы отличить этот тип филамента от друго филамента того же производителя. Например, должен содержать цвет.", + "material": "Например: PLA, ABS, PETG и т.д.", + "price": "Цена полной катушки в валюте, настроенной системой.", + "weight": "Вес филамента на полной катушке (вес нетто). Сюда не следует включать вес самой катушки, а только филамента. Это то, что обычно пишут на упаковке.", + "spool_weight": "Вес пустой катушки. В настоящее время ни для чего не используется, но может использоваться сторонними приложениями, например. Рассчитайте вес филамента на основе измерения веса.", + "article_number": "Например: EAN, UPC, и т.д" + }, + "titles": { + "create": "Создать филамент", + "clone": "Клонировать филамент", + "edit": "Редактировать филамент", + "list": "Филаменты", + "show": "Показать филамент" + } + }, + "vendor": { + "vendor": "Производитель", + "fields": { + "id": "Id", + "name": "Имя", + "registered": "Зарегистрирован", + "comment": "Комментарий" + }, + "titles": { + "create": "Создать производителя", + "clone": "Клонировать производителя", + "edit": "Редактировать производителя", + "list": "Производители", + "show": "Показать производителя" + } + }, + "table": { + "actions": "Действия" + }, + "documentTitle": { + "default": "Spoolman", + "suffix": " | Spoolman", + "filament": { + "list": "Филаменты | Spoolman", + "show": "#{{id}} Показать филамент | Spoolman", + "edit": "#{{id}} Редактировать филамент | Spoolman", + "create": "Создать филамент | Spoolman", + "clone": "#{{id}} Клонировать филамент | Spoolman" + }, + "spool": { + "list": "Катушки | Spoolman", + "show": "#{{id}} Показать катушку | Spoolman", + "edit": "#{{id}} Редактировать катушку | Spoolman", + "create": "Создать катушку | Spoolman", + "clone": "#{{id}} Клонировать катушку | Spoolman" + }, + "vendor": { + "list": "Производители | Spoolman", + "show": "#{{id}} Показать производителя | Spoolman", + "edit": "#{{id}} Редактировать производителя | Spoolman", + "create": "Создать производителя | Spoolman", + "clone": "#{{id}} Клонировать производителя | Spoolman" + } + } +} From 447443c086bb479c9e6023d3866ae18770ff180c Mon Sep 17 00:00:00 2001 From: Dr_Perry_Coke <76223634+DrPerryCoke@users.noreply.github.com> Date: Wed, 20 Sep 2023 10:37:05 +0300 Subject: [PATCH 2/2] Update i18n.ts --- client/src/i18n.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/client/src/i18n.ts b/client/src/i18n.ts index fb33e2c1b..bc07d2b46 100644 --- a/client/src/i18n.ts +++ b/client/src/i18n.ts @@ -40,6 +40,11 @@ export const languages: { [key: string]: Language } = { countryCode: "pl", fullCode: "pl-PL", }, + ["ru"]: { + name: "Русский", + countryCode: "ru", + fullCode: "ru-RU", + }, } i18n