Sline c8aa72186e
chore: i18n (#5276)
* chore: notice i18n

* feat: add script to clean up unused i18n keys

* chore: cleanup i18n keys

* refactor(i18n/proxies): migrate proxies UI to structured locale keys

* chore: i18n for rule module

* chore: i18n for profile module

* chore: i18n for connections module

* chore: i18n for settings module

* chore: i18n for verge settings

* chore: i18n for theme settings

* chore: i18n for theme

* chore(i18n): components.home.*

* chore(i18n): remove unused i18n keys

* chore(i18n): components.profile.*

* chore(i18n): components.connection

* chore(i18n): pages.logs.*

* chore(i18n): pages.*.provider

* chore(i18n): components.settings.externalCors.*

* chore(i18n): components.settings.clash.*

* chore(i18n): components.settings.liteMode.*

* chore(i18n): components.settings.backup.*

* chore(i18n): components.settings.clash.port.*

* chore(i18n): components.settings.misc.*

* chore(i18n): components.settings.update.*

* chore(i18n): components.settings.sysproxy.*

* chore(i18n): components.settings.sysproxy.*

* chore(i18n): pages.profiles.notices/components.providers.notices

* refactor(notice): unify showNotice usage

* refactor(notice): add typed showNotice shortcuts, centralize defaults, and simplify subscriptions

* refactor: unify showNotice usage

* refactor(notice): unify showNotice API

* refactor(notice): unify showNotice usage

* chore(i18n): components.test.*

* chore(i18n): components.settings.dns.*

* chore(i18n): components.home.clashInfo.*

* chore(i18n): components.home.systemInfo.*

* chore(i18n): components.home.ipInfo/traffic.*

* chore(i18n): navigation.*

* refactor(i18n): remove pages.* namespace and migrate route texts under module-level page keys

* chore(i18n): common.*

* chore(i18n): common.*

* fix: change error handling in patch_profiles_config to return false when a switch is in progress

* fix: improve error handling in patch_profiles_config to prevent requests during profile switching

* fix: change error handling in patch_profiles_config to return false when a switch is in progress

fix: ensure CURRENT_SWITCHING_PROFILE is reset after config updates in perform_config_update and patch_profiles_config

* chore(i18n): restructure root-level locale keys into namespaces

* chore(i18n): add missing i18n keys

* docs: i18n guide

* chore: adjust i18n

* refactor(i18n): align UI actions and status labels with common keys

* refactor(i18n): unify two-name locale namespaces

* refactor(i18n/components): unify locale keys and update component references

* chore(i18n): add shared and entities namespaces to all locale files

* refactor(i18n): consolidate shared and entity namespaces across features

* chore(deps): update npm dependencies to ^7.3.5 (#5310)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(i18n): migrate shared editor modes and consolidate entities namespaces

* tmp

* refactor(i18n): flatten locales and move theme/validation strings

* docs: CONTRIBUTING_i18n.md

* refactor(i18n): restructure feedback and profile namespaces for better organization

* refactor(i18n): unify settings locale structure and update references

* refactor(i18n): reorganize locale keys for home, proxies, rules, connections, logs, unlock, and tests

* refactor(i18n/feedback/layout): unify shared toasts & normalize layout namespace

* refactor(i18n): centralize common UI strings in shared

* refactor(i18n): flatten headers and unify locale schema

* refactor(i18n): consolidate duplicate per-feature translations into shared namespace

* refactor(i18n): split locales into per-namespace files

* style: lint

* refactor(i18n): unify unlock UI translations under tests namespace

* feat(i18n): add type-checked translation keys

* style: eslint import order

* feat(i18n): replace ad-hoc loader with rust-i18n backend bundles

* chore(prebuild): remove locale-copy step

* fix(i18n, notice): propagate runtime params and update cleanup script path

* fix(i18n,notice): make locale formatting idempotent and guard early notice translations

* fix(i18n): resolve locale aliases and match OS codes correctly

* fix(unlock): use i18next-compatible double-brace interpolation in failure notice

* fix(i18n): route unlock error notices through translation keys

* fix(i18n): i18n types

* feat(i18n): localize upgrade notice for Clash core viewer

* fix(notice): ensure runtime overrides apply to prefix translations

* chore(i18n): replace literal notices with translation keys

* chore(i18n): types

* chore(i18n): regen typings before formatting to keep keys in sync

* chore(i18n): simply labels

* chore(i18n): adjust translation

* chore: remove eslint-plugin-i18next

* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend (#5341)

* chore(i18n): translate settings.json (missed in previous pass) (#5343)

* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend

* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend

* fix(i18n-tauri): quote placeholder-leading value in ko.yml to prevent rust_i18n parse panic

* chore(i18n): translate settings.json (forgot to include previously)

---------

Co-authored-by: rozan <34974262+thelojan@users.noreply.github.com>
2025-11-08 19:40:38 +08:00

130 lines
5.3 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"actions": {
"cancel": "Отмена",
"close": "Закрыть",
"confirm": "Подтвердить",
"save": "Сохранить",
"delete": "Удалить",
"edit": "Редактировать",
"new": "Новый",
"enable": "Включить",
"upgrade": "Обновить",
"restart": "Перезапустить",
"resetToDefault": "Сбросить настройки",
"refresh": "Обновить",
"retry": "Retry",
"refreshPage": "Refresh Page",
"showDetails": "Show Details",
"hideDetails": "Hide Details",
"listView": "Отображать в виде списка",
"tableView": "Отображать в виде таблицы",
"pause": "Пауза",
"resume": "Возобновить",
"closeAll": "Закрыть всё",
"clear": "Очистить"
},
"labels": {
"updateAt": "Обновлено в",
"timeout": "Тайм-аут",
"icon": "Иконка",
"name": "Название",
"readOnly": "Только для чтения",
"expireTime": "Время окончания",
"updateTime": "Время обновления",
"usedTotal": "Использовано / Всего",
"from": "От",
"password": "Пароль",
"retryAttempts": "Retry attempts",
"downloaded": "Скачано",
"uploaded": "Загружено"
},
"statuses": {
"enabled": "Включено",
"disabled": "Отключено",
"saving": "Saving...",
"empty": "Пусто"
},
"units": {
"milliseconds": "миллисекунды",
"seconds": "секунды",
"minutes": "минуты",
"kilobytes": "KB",
"files": "Files"
},
"placeholders": {
"filter": "Условия фильтрации",
"matchCase": "Учитывать регистр",
"matchWholeWord": "Полное совпадение слова",
"useRegex": "Использовать регулярные выражения"
},
"validation": {
"invalidRegex": "Invalid regular expression"
},
"window": {
"maximize": "Развернуть",
"minimize": "Свернуть"
},
"editorModes": {
"visualization": "Визуализация",
"advanced": "Дополнительно"
},
"feedback": {
"errors": {
"trafficStats": "Traffic Statistics Error",
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"notices": {
"raw": "{{message}}",
"prefixedRaw": "{{prefix}} {{message}}"
},
"notifications": {
"importSuccess": "Профиль успешно импортирован",
"importSubscriptionSuccess": "Подписка успешно импортирована",
"importWithClashProxy": "Profile Imported with Clash proxy",
"updateAvailable": "Update Available",
"saved": "Saved successfully",
"common": {
"copySuccess": "Скопировано",
"saveSuccess": "Configuration saved successfully",
"saveFailed": "Failed to save configuration"
}
},
"validation": {
"config": {
"failed": "Ошибка проверки конфигурации подписки, проверьте файл конфигурации, изменения отменены, ошибка:",
"bootFailed": "Ошибка проверки конфигурации при запуске, используется конфигурация по умолчанию, проверьте файл конфигурации, ошибка:",
"coreChangeFailed": "Ошибка проверки конфигурации при смене ядра, используется конфигурация по умолчанию, проверьте файл конфигурации, ошибка:",
"processTerminated": "Процесс проверки прерван"
},
"script": {
"syntaxError": "Ошибка синтаксиса скрипта, изменения отменены",
"missingMain": "Ошибка скрипта, изменения отменены",
"fileNotFound": "Файл не найден, изменения отменены",
"fileError": "Ошибка файла скрипта, изменения отменены"
},
"yaml": {
"syntaxError": "Ошибка синтаксиса YAML, откат изменений",
"readError": "Ошибка чтения YAML, откат изменений",
"mappingError": "Ошибка YAML Mapping, откат изменений",
"keyError": "Ошибка ключа YAML, откат изменений",
"generalError": "Ошибка YAML, откат изменений"
},
"merge": {
"syntaxError": "Ошибка синтаксиса Merge File, откат изменений",
"mappingError": "Ошибка сопоставления в Merge File, откат изменений",
"keyError": "Ошибка ключа в Merge File, откат изменений",
"generalError": "Ошибка Merge File, откат изменений"
}
}
},
"filters": {
"logLevels": {
"all": "ALL",
"debug": "DEBUG",
"info": "INFO",
"warn": "WARN",
"error": "ERROR"
}
}
}