About This File
# CK3 Mod Translator
Универсальный переводчик локализации модов для Crusader Kings III.
CK3 Mod Translator — бесплатная настольная программа для Windows, которая в один клик переводит файлы локализации (`l_english.yml`, `l_russian.yml` и др.) модов для Crusader Kings III на нужный язык. Результат — готовый файл, который игра корректно читает: правильные заголовки языков, версии ключей и экранирование.
Портативная версия — не требует установки. Просто скачайте `.exe`, запустите и переводите. Данные (кэш, словари, история) сохраняются на вашем компьютере.
---
## Возможности
### 🚀 Быстрый массовый перевод
- Перевод целой папки мода или одного файла в несколько кликов.
- Пакетная обработка с прогресс-баром по ходу работы.
- Автоматическое распознавание структуры `.yml` файлов локализации CK3.
### 🌍 29 игровых языков
Поддержка всех языков, которые играет CK3: русский, английский, немецкий, французский, испанский, польский, украинский, китайский (упрощённый и традиционный), японский, корейский, португальский/бразильский, итальянский, турецкий, чешский, венгерский, нидерландский, скандинавские, финский, румынский, арабский, персидский, вьетнамский, тайский, латинский и другие.
### 🔌 Несколько провайдеров перевода
- XCL — встроенный локальный сервер перевода, стартует вместе с программой (без внешних ключей).
- Google Translate — через локальный прокси.
- DeepL — высокое качество (требуется API-ключ).
- MyMemory — бесплатный сервис без ключа.
### 🧠 Умный перевод
- Кэш переводов — повторные переводы мгновенные, без лишних запросов.
- Защита кода игры — метки, шаблоны и escape-последовательности (`\n`, `\t`) сохраняются нетронутыми.
- Словари и терминология— задайте свои термины и глоссарий; программа закрепит их по всему переводу.
- Умная обработка частичных переводов — переведённые строки не переводит повторно.
### 📚 Встроенные инструменты
- Редактор файлов — посмотреть и поправить любой `.yml` до/после перевода.
- История переводов — журнал всех выполненных операций.
- Управление кэшем — экспорт/импорт, просмотр статистики, очистка.
### 🧩 Плагины
Программу можно расширять своими плагинами. Напишите простой `.js`-файл — и добавьте свою логику перевода, постоянный глоссарий, своего переводчика или автоматические правки. Плагины включаются/выключаются в один клик.
---
## Быстрый старт
1. Скачайте и запустите `CK3 Mod Translator.rar`.
2. Нажмите «Выбрать папку» и укажите папку мода (там, где `localisation` / `localization`).
3. Выберите исходный и целевой язык.
4. Нажмите «Перевести» — готовые файлы появятся в папке целевого языка.
---
## Системные требования
- Windows 10 / 11 (x64)
- около **150 МБ** свободного места
- Интернет (для облачных провайдеров перевода)
---
## Важно
- Плагины — это исполняемый код. Устанавливайте только те плагины, которым доверяете.
- Для использования DeepL требуется API-ключ.
Edited by Heyvanushi
What's New in Version 1.0.2
Released
# Журнал обновлений
1.0.2
### Новое
-Обновлены шаблоны добавлен упрощенный китайский перевод
- Ванильный перевод. Программа умеет сканировать папку локализации ванильной игры CK3 (`localisation/english`, `localisation/russian` и т.п.). Если значение строки мода совпадает со строкой ванилы, берётся готовый официальный перевод — онлайн-переводчик не вызывается. Приоритет источников: терминология → словарь пользователя → ванильная локализация → онлайн-переводчик.
- Настройка «Ванильная локализация»: выбор папки ванили, очистка, индикатор просканированных ключей по языкам. Принимает и папку конкретного языка (`...\localization\russian`), и корень локализации — индексы строятся по всем языкам.
- Автоопределение папки ванильной локализации. Кнопка «Найти автоматически» ищет Crusader Kings III: реестр Steam (`SteamPath`), `libraryfolders.vdf`, а также распространённые папки-библиотеки (`steamapps`, `Steam`, `SteamLibrary`, `Games`, ...) на всех дисках; подходит и лицензионный `SteamLibrary\steamapps\common\Crusader Kings III\game\localization\{russian}`, и `\game\localisation`. В настройках показан стандартный путь.
- Локализация прошлой версии мода. Пользователь указывает папку, где лежит перевод прошлой версии (например, резервная копия мода до апдейта). Если строка уже переведена — перевод берётся из прошлой версии, строка не переводится повторно. Помогает после обновления мода: не нужно вручную искать, какие строки добавились, а какие уже переведены. Функцию можно отключить в настройках. Приоритет: терминология → словарь → прошлая версия → ванила → онлайн.
- Безопасность переиспользования: если под тем же ключом в прошлой версии лежит английский текст и он изменился в новой версии — старый перевод не берётся.
### Исправлено
- Код языка упрощённого китайского: `simplified_chinese` → `simp_chinese` (игнорировался CK3 — файлы `_l_simplified_chinese.yml` не подхватываются). Теперь файл создаётся как `_l_simp_chinese.yml` с заголовком `l_simp_chinese:`, как требует игра.
- Код бразильского португальского: `braz_portuguese` → `braz_por`.
- Список языков сужен до 9 языков, реально поддерживаемых CK3: english, french, german, spanish, russian, korean, simp_chinese, japanese, polish. Убраны 19 лишних кодов (portuguese, italian, turkish и др.), которые CK3 игнорирует.
### Технические изменения
- `src/translator/vanilla-dictionary.js` — новый сервис: рекурсивное сканирование `.yml`/`.csv`, индексы «текст → ключ» (с нормализацией пробелов) и «ключ → перевод»; перестройка при смене папки.
- `src/translator/previous-translations.js` — новый сервис: индексы «ключ → перевод» по языкам, сверка с исходным файлом при наличии.
- `src/translator/vanilla-finder.js` — поиск папки ванильной локализации через реестр Steam, `libraryfolders.vdf`, fallback-пути на всех дисках.
- `main.js` — сервисы `vanillaDict`, `previousTranslations`; IPC `select-vanilla-folder`, `clear-vanilla-folder`, `get-vanilla-stats`, `auto-detect-vanilla`, `select-previous-folder`, `clear-previous-folder`, `get-previous-translations-stats`; локальное разрешение переводов в потоке `translate-file` до вызова онлайн-переводчика; `buildAppMenu()` / `showAboutDialog()`.
- `public/renderer.js` — панели настройки ванильной локализации и локализации прошлой версии; `LANG_PREFIX` и `LANG_DISPLAY` сужены до 9 языков CK3.
- `preload.js` — IPC-методы ванильной и прошлой локализации.
- `public/index2.html` (+ синхронный `index.html`) — карточки «Ванильная локализация» и «Локализация прошлой версии» в настройках.
- `src/i18n/i18n.js` — ключи `vanillaLocalization`, `vanillaFolderHint`, `vanillaClear`, `vanillaNoFolder`, `vanillaMissingFolder`, `vanillaScanned`, `vanillaBuildError`, `vanillaAutoDetect`, `vanillaNotFound`, `vanillaStandardPath`, `previousLocalization`, `reusePrevious`, `previousFolderHint`, `previousNoFolder`, `previousScanned`, `previousBuildError`, `previousMissingFolder`.
1.0.1
Spoiler
### Упрощена установка
- Теперь это просто Exe приложение меньше весит проще использовать старый файл можно удалить.
### Интерфейс
- Редизайн панели «Перевод»:
- карточка мода — иконка, имя, счётчик файлов, путь, кнопка выбора папки;
- блок языков с кнопкой обмена (⇄) между исходным и целевым языком;
- большая кнопка запуска перевода и индикатор «Готово к переводу».
- Прогресс перевода в виде полосы + карточек статистики: файлы, строки, статус/время.
- Список файлов: флажки «в очередь», тулбар очереди («Выбрать все» / «Очистить очередь» / счётчик выбранных), кнопки действий для каждого файла — Просмотр, Редактировать файл, Редактировать перевод.
- Живой перевод интерфейса: убраны захардкоженные строки, все элементы идут через i18n.
- Очередь перевода. Файлы помечаются флажками, перевод идёт по очереди. У переведённых файлов появляется метка языка (Ru/En/Fr...), а кнопка показывает количество выбранных файлов.
- Кнопка «Просмотр» для выбранного файла: предпросмотр ключей с оригиналом, переводом и статусом.
- Кнопка «Редактировать перевод». Открывает переведённый файл в редакторе; над каждым полем показан оригинальный текст для сравнения.
- Плагины языков интерфейса. Плагин может добавлять новый язык интерфейса приложения (поля `uiLanguage`, `uiLanguageName`, `uiTranslations`). Отсутствующие ключи автоматически подставляются из английского.
- Создание шаблона плагина: выбор типа. «Логика перевода» или «Язык интерфейса» (с кодом и именем языка). Шаблон языка интерфейса содержит все ключи с секционными комментариями (`// Nav`, `// Preview`, ...).
- Пример языкового пакета. Немецкий интерфейс (`ui-german-de.js`) — готовый образец для создания своего языка.
- Нативные имена языков. В списке «Язык интерфейса» языки показываются своими собственными именами (Deutsch, Русский, English), независимо от текущего языка интерфейса.
### Исправлено
- Счётчик прогресса при очереди показывал «1 файл» вместо позиции в очереди (`i/N`).
- Предпросмотр не открывался из списка файлов.
- Кнопки «Сохранить настройки» и «Открыть консоль» наезжали друг на друга.
- Ряд элементов интерфейса оставался без перевода при английском языке (подписи прогресса «Файлов/Строк/Статус», «Готов к переводу», «Мод не выбран», «Выберите папку мода», «N файлов локализации», кнопки редактора «Close/Save», плейсхолдер поиска, подсказки панели плагинов).
- Кнопка «Редактировать перевод» больше не открывается автоматически после перевода — только вручную.
### Технические изменения
- `src/i18n/i18n.js`: `registerLanguage`, `getLanguages`, цепочка fallback (язык плагина → en → ключ), резолв нативного имени языка.
- `src/i18n/i18n-loader.js`: безопасное чтение локализационных плагинов из папки плагинов.
- `main.js`: IPC `get-ui-language-plugins`, расширенный IPC `create-plugin` (тип шаблона).
- `preload.js`: `i18n.ready`, `getLanguages`, `registerLanguages`; `api.getUiLanguagePlugins`.
- `src/plugins/plugin-manager.js`: `createUiPluginTemplate` / `createUiPluginFile` (ключи и секционные комментарии генерируются из актуального словаря `src/i18n/i18n.js`).
- Документация `src/plugins/PLUGINS.md` — раздел «Языки интерфейса через плагины».
1.0.0
Spoiler
Базовая версия: перевод модов CK3 через MyMemory/Google/DeepL/XCL, словарь, история, кэш, плагины, два языка интерфейса (русский/английский).