Просмотр исходного кода

fix(i18n): localize Ukrainian weight unit

Olexandr 1 месяц назад
Родитель
Сommit
4cca2b5929

+ 2 - 2
frontend/scripts/check-i18n-parity.mjs

@@ -336,7 +336,7 @@ const KO_COGNATES = [
   'Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)',
   'Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)',
   'EC984C,#6CD4BC,A66EB9,D87694',
-  '{{weight}} г',                                      // unit suffix format string
+  '{{weight}}g',                                      // unit suffix format string
   'MakerWorld: {{designer}}',                         // brand + placeholder
   'email',                                            // OIDC claim name placeholder
   '{{printer}}: {{error}}',                           // pure placeholders
@@ -379,7 +379,7 @@ const TR_COGNATES = [
   'N/A', 'email',
   'STARTTLS (Port 587)', 'SSL/TLS (Port 465)',
   '({{count}}/8)', 'Hex: #{{hex}}', 'MakerWorld: {{designer}}',
-  '{{count}} filament', '{{printer}}: {{error}}', '{{weight}} г',
+  '{{count}} filament', '{{printer}}: {{error}}', '{{weight}}g',
   'Filament {{index}} ({{type}})',
   'EC984C,#6CD4BC,A66EB9,D87694',
   '{{filament}} @ {{temp}}°C',  // drying badge: filament code + universal °C

+ 34 - 1
frontend/src/i18n/locales/uk.ts

@@ -676,6 +676,21 @@ export default {
     },
     // HMS errors
     clickToViewHmsErrors: "Натисніть, щоб переглянути помилки HMS",
+    aiDetection: {
+      safe: "Безпечно",
+      warning: "Попередження",
+      failure: "Помилка",
+      idle: "Очікування",
+      tooltip: "Виявлення помилок за допомогою ШІ: {{status}} (оцінка {{score}}) — натисніть, щоб переглянути деталі",
+      tooltipIdle: "Виявлення помилок за допомогою ШІ ввімкнено — моніторинг почнеться з наступним друком — натисніть, щоб переглянути деталі",
+      modalTitle: "Виявлення помилок за допомогою ШІ — {{name}}",
+      currentStatus: "Стан",
+      score: "Оцінка",
+      framesAnalyzed: "Проаналізовано кадрів",
+      idleHint: "Зараз жоден друк не відстежується. Моніторинг автоматично почнеться з наступним друком.",
+      lastError: "Остання помилка",
+      openSettings: "Відкрити налаштування",
+    },
     estimatedCompletion: "Орієнтовний час виконання",
     plateNumber: "Пластина {{number}}",
     slotOptions: "Опції слота",
@@ -913,7 +928,7 @@ export default {
       estimated: "Приблизно: {{time}}",
       actual: "Фактично: {{time}}",
       accuracy: "Точність: {{percent}}%",
-      filament: "{{weight}}g",
+      filament: "{{weight}} г",
       layer: "{{count}} шар",
       layers: "Шарів: {{count}}",
       object: "{{count}} об’єкт",
@@ -1484,6 +1499,7 @@ export default {
     periodCost: "Вартість періоду",
     avgPerPrint: "Середнє на друк",
     usageOverTime: "Використання в часі",
+    energyOverTime: "Споживання енергії в часі",
     filamentByWeight: "Вага",
     printDuration: "Тривалість друку",
     printerUtilization: "Використання принтера",
@@ -3706,6 +3722,7 @@ export default {
     noPermissionRenameFolder: "Ви не маєте дозволу на перейменування папок",
     noPermissionLinkFolder: "Ви не маєте дозволу на пов’язування папок",
     noPermissionDeleteFolder: "Ви не маєте дозволу на видалення папок",
+    onlyEmptyFoldersDeletable: "Можна видаляти лише порожні папки",
     noPermissionPrint: "Ви не маєте дозволу на друк",
     noPermissionAddToQueue: "Ви не маєте дозволу на додавання в чергу",
     noPermissionSlice: "Ви не маєте дозволу нарізати файли",
@@ -3796,6 +3813,9 @@ export default {
     targetParts: "Цільові частини",
     targetPartsPlaceholder: "наприклад, 150",
     targetPartsHelp: "Загальна кількість необхідних об’єктів",
+    targetSets: "Копій кожного файлу",
+    targetSetsPlaceholder: "наприклад, 10",
+    targetSetsHelp: "Кількість друків кожного придатного до друку файлу",
     tagsLabel: "Теги (розділені комами)",
     tagsPlaceholder: "напр., ворон, функціональний, подарунок",
     dueDate: "Термін виконання",
@@ -3871,6 +3891,9 @@ export default {
     progress: {
       platesProgress: "Пластини Прогрес",
       partsProgress: "Прогрес запчастин",
+      setsProgress: "Завершені комплекти",
+      sets: "комплектів",
+      setsHint: "Комплект вважається завершеним, коли кожен придатний до друку файл надруковано стільки разів",
       printJobs: "завдання друку",
       parts: "частин",
       percentComplete: "{{percent}}% виконано",
@@ -3909,6 +3932,8 @@ export default {
       forQuickAccess: "до цього проєкту для швидкого доступу.",
       fileCount: "Файлів: {{count}}",
       empty: "Немає пов’язаних папок. Перейдіть до файлового менеджера та зв’яжіть папку з цим проєктом.",
+      printedCount: "Надруковано разів: {{count}}",
+      progressTooltip: "Завершено друків: {{done}} із {{target}}",
       noFiles: "У цій папці немає файлів.",
     },
     bom: {
@@ -4339,6 +4364,8 @@ export default {
     searchBrand: "Шукати бренд...",
     useCustomBrand: "Використовуйте \"{{brand}}\"",
     useCustomMaterial: "Використовуйте спеціальний матеріал: {{material}}",
+    suggestedOptions: "Рекомендовані",
+    allOptions: "Усі",
     colorName: "Назва кольору",
     colorNamePlaceholder: "Нефритовий білий, вогненно-червоний...",
     color: "Колір",
@@ -5464,6 +5491,7 @@ export default {
       discord: "Discord",
       webhook: "Webhook",
       homeassistant: "Home Assistant",
+      bark: "Bark",
     },
     // Provider descriptions
     providerDescriptions: {
@@ -5475,6 +5503,7 @@ export default {
       callmebot: "Безкоштовні сповіщення WhatsApp через CallMeBot",
       webhook: "Універсальний HTTP POST-запит на будь-який URL",
       homeassistant: "Постійні сповіщення на інформаційній панелі Home Assistant.",
+      bark: "Push-сповіщення iOS через Bark із можливістю самостійного розгортання",
     },
     // NotificationProviderCard
     lastSuccess: "Останнє успішне надсилання: {{date}}",
@@ -5513,6 +5542,9 @@ export default {
     printStarted: "Друк розпочато",
     plateNotEmpty: "Друкарська пластина не порожня",
     plateNotEmptyDescription: "Перед друком виявлено об’єкти",
+    plateClearRequired: "Потрібно очистити пластину",
+    plateClearRequiredDescription: "Друк завершено, черга очікує підтвердження очищення пластини",
+    plateClear: "Очищення пластини",
     printCompleted: "Друк завершено",
     bedCooledLabel: "Стіл охолов",
     bedCooledDescription: "Після друку стіл охолов нижче заданого порога",
@@ -5608,6 +5640,7 @@ export default {
     add: "додати",
     nameRequired: "Необхідно вказати ім’я",
     fieldRequired: "{{field}} — обов’язкове поле.",
+    haDataInvalid: "Поле «Дані» має містити дійсний об’єкт JSON, наприклад {\"priority\": \"high\", \"ttl\": 0}",
     // Config field labels
     phoneNumber: "Номер телефону",
     apiKey: "Ключ API",

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
static/assets/index-iZ6BPzxV.js


+ 1 - 1
static/index.html

@@ -26,7 +26,7 @@
 
     <!-- Splash screens for iOS -->
     <link rel="apple-touch-startup-image" href="/img/android-chrome-512x512.png" />
-    <script type="module" crossorigin src="/assets/index-DdbMydx0.js"></script>
+    <script type="module" crossorigin src="/assets/index-iZ6BPzxV.js"></script>
     <link rel="stylesheet" crossorigin href="/assets/index-D4bpNaiw.css">
   </head>
   <body>

Некоторые файлы не были показаны из-за большого количества измененных файлов