Jump to content

9 Screenshots

About This File

CK3 Mod Translator


by Heyvanushi


EN

CK3 Mod Translator is a tool for localizing mods for Paradox Interactive games, built to make translating faster and easier. It automatically finds localization files, replaces strings with ready-made translations from the vanilla game and your previous mod version, and machine-translates everything else.

It also handles any data stored in key "value" format inside .yml and .csv files.

9 supported languages. Officially supports all nine CK3 languages: English, French, German, Spanish, Russian, Korean, Simplified Chinese, Japanese and Polish. Because the program processes universal key "value" files and the language codes are fully configurable, it works just as well for Stellaris and other Paradox Interactive titles, not only for Crusader Kings III.

Features:

  • Target-language localization folder in one click. The l_english header automatically becomes l_russian (and so on for every language CK3 supports), files are renamed from _l_english.yml to _l_russian.yml and placed into the target-language subfolder. No more manual header edits or file renaming.
  • Vanilla localization scan. Program scans the CK3 vanilla localization folder. If a key with the same value is found, the mod string is replaced with the official in-game translation. Perfect when a modder copied a whole vanilla file, changed a few lines, and shipped the mod β€” no need to figure out which lines were modified.
  • Machine translation for everything else. All strings not found in vanilla or the previous version are translated online (MyMemory, Google, DeepL, XCL). Machine translation still needs a human pass, but a built-in editor with the original text shown above each field makes proofreading easy.
  • Escaping of game variables and parameters.[Concept(...)] calls, [second.GetTitledFirstName] commands, Β£iconΒ£ icon references, #P/#N/#color_yellow color tags, and \n escapes are wrapped in markers and never damaged by the online translator. Game code is never rewritten or quoted.
  • Previous version localization. Point the program at the folder with your mod's previous translation. On mod updates it compares strings: already translated lines are reused, nothing is translated twice, and you never search manually for "what strings were added".
  • Safe reuse. Translations from cache, dictionary and previous version are validated: broken fragments, corrupted markers, or results that literally repeat the source are rejected and re-translated.
  • Smart text filtering. Strings with no real text (pure code, icons, references) are left untouched; long texts are pre-processed so that only meaningful words reach the translator. Results are checked against the source: damaged fragments, quoted game code and other artifacts are filtered out and sent for re-translation β€” this keeps the output clean and noticeably improves quality.


RU

CK3 Mod Translator β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄ΠΎΠ² для ΠΈΠ³Ρ€ ΠΎΡ‚ студии Paradox Interactive. Она ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΌΠΎΠ΄ΠΎΠ² ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ быстрым: автоматичСски Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, подставляСт Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ ΠΈΠ· ванильной вСрсии ΠΈΠ³Ρ€Ρ‹ ΠΈ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии ΠΌΠΎΠ΄Π°, Π° всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠ½Π»Π°ΠΉΠ½.

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡ "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅" Π² Ρ„Π°ΠΉΠ»Π°Ρ… .yml ΠΈ .csv.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 9 языков. ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС Π΄Π΅Π²ΡΡ‚ΡŒ языков CK3: английский, французский, Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΈΠΉ, испанский, русский, корСйский, ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½Ρ‹ΠΉ китайский, японский ΠΈ польский. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠ»ΡŽΡ‡ "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅", Π° ΠΊΠΎΠ΄Ρ‹ языков Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Crusader Kings III, Π½ΠΎ ΠΈ с Stellaris ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈΠ³Ρ€Π°ΠΌΠΈ Paradox Interactive.

ВозмоТности:

  • ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ язык Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ l_english автоматичСски прСвращаСтся Π² l_russian (ΠΈ Ρ‚Π°ΠΊ для любого языка, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ CK3), Ρ„Π°ΠΉΠ»Ρ‹ _l_english.yml ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² _l_russian.yml ΠΈ Ρ€Π°ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡƒ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ языка. Никаких Ρ€ΡƒΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΎΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ.
  • Π‘ΠΊΠ°Π½ ванильной Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сканируСт ΠΏΠ°ΠΏΠΊΡƒ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ванильной CK3. Если ΠΊΠ»ΡŽΡ‡ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π°ΠΉΠ΄Π΅Π½ β€” строка ΠΌΠΎΠ΄Π° замСняСтся Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹. ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π°Π²Ρ‚ΠΎΡ€ скопировал Ρ†Π΅Π»Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, помСнял ΠΏΠ°Ρ€Ρƒ строк ΠΈ Π²Ρ‹Π»ΠΎΠΆΠΈΠ» ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ: ΠΈΡΠΊΠ°Ρ‚ΡŒ Β«Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ измСнилось» Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.
  • ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Π² Π²Π°Π½ΠΈΠ»ΠΈ ΠΈ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии, пСрСводятся ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°ΠΌΠΈ (MyMemory, Google, DeepL, XCL). ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ всё ΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡ‚ΠΊΠΈ, Π½ΠΎ встроСнный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΠΎΠΌ Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ это просто.
  • Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ³Ρ€Ρ‹. ΠšΠΎΠ½Ρ†Π΅ΠΏΡ‚Ρ‹ [Concept(...)], ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ [second.GetTitledFirstName], ссылки Π½Π° ΠΈΠΊΠΎΠ½ΠΊΠΈ Β£iconΒ£, Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ #P/#N/#color_yellow ΠΈ пСрСносы \n Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽΡ‚ΡΡ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π°ΠΌΠΈ ΠΈ Π½Π΅ ΠΈΡΠΊΠ°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΎΠΌ. Код ΠΈΠ³Ρ€Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ пСрСписываСтся ΠΈ Π½Π΅ бСрётся Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.
  • Локализация ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ с ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсии ΠΌΠΎΠ΄Π°. ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° свСряСт строки: ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π· Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ пСрСводится, Π° Β«Ρ‡Ρ‚ΠΎ добавилось» ΠΈΡΠΊΠ°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.
  • БСзопасноС ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ ΠΈΠ· кэша, словаря ΠΈ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ: ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, испорчСнныС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ ΠΈ Β«ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹Β», дословно ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ исходник, ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ пСрСводятся Π·Π°Π½ΠΎΠ²ΠΎ.
  • Умная Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ тСкста. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π±Π΅Π· настоящСго тСкста (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ΄, ΠΈΠΊΠΎΠ½ΠΊΠΈ, ссылки) Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°ΡŽΡ‚ΡΡ; тСкст ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ обрабатываСтся Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΡƒ уходят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ слова. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ свСряСтся с исходником: ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ β€” это Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ качСство Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.


Автор: Heyvanushi

Edited by Heyvanushi


What's New in Version 09/12/26 11:13 AM

Released

Paradox Mod Translation β€” ΠΆΡƒΡ€Π½Π°Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ

Β 

1.0.6

Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ:

  • Π’ΠΊΠ»Π°Π΄ΠΊΠ° Β«ΠšΡ€Π°Ρˆ-Π»ΠΎΠ³ΠΈΒ» (Π² Π»Π΅Π²ΠΎΠΌ мСню, для CK3, CK2 ΠΈ Stellaris). ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π»ΠΎΠ³ΠΈ ΠΈΠ³Ρ€Ρ‹ (error.log, game.log, debug.log) ΠΈ ΠΆΡƒΡ€Π½Π°Π» Windows ΠΈ ΠΎΠ΄Π½ΠΈΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚:
    • Π²Π΅Ρ€Π΄ΠΈΠΊΡ‚ β€” Π΅ΡΡ‚ΡŒ Π»ΠΈ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Ρ†Π΅Π»ΠΎΠΌ;
    • ΠΊΡ€Π°ΡˆΠΈ ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»Π° Windows β€” ΠΊΠΎΠ΄ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, адрСс Π² памяти ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Π°Π³ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π±ΡƒΡ„Π΅Ρ€Π° Π² ck3.exe);
    • ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ошибок β€” Ρ‡Ρ‚ΠΎ Π·Π° ошибки ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ ΠΈ сколько Ρ€Π°Π· (Π½Π΅Ρ‚ Π²Π΅Ρ€Ρ‹ Ρƒ пСрсонаТа, ошибки скриптов, Π±ΠΈΡ‚Ρ‹Π΅ ссылки ΠΈ Ρ‚.ΠΏ.);
    • ΠΌΠΎΠ΄Ρ‹-Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠΈ β€” ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄Ρ‹ ΠΈΠ· вашСго Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° содСрТат упомянутыС Π² ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹;
    • сСссии ΠΈΠ³Ρ€Ρ‹ β€” ΠΊΠΎΠ³Π΄Π° ΠΈΠ³Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΠΈ сколько ошибок Π½Π°ΠΊΠΎΠΏΠΈΠ»Π°;
    • Ρ‚ΠΎΠΏ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ β€” самыС частыС сообщСния с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ;
    • Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Π°Ρ‰Π΅ всСго ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΡ‹Π΅ Π² ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ сразу Π·Π½Π°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΊΠΎΠΏΠ°Ρ‚ΡŒ.

    Анализ запускаСтся ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Β«ΠΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ» ΠΈ автоматичСски ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ.
  • ΠšΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° Β«Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ эти ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΒ». По ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρƒ ΠΈ ΠΊΡ€Π°Ρ…Ρƒ β€” понятноС объяснСниС (Β«Π§Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚Β») ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½ («Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΒ»), Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ΄Ρ‹ ошибок Windows (0xc0000409, 0xc0000005, 0xc0000374 ΠΈ Π΄Ρ€.).
  • Кнопка Β«ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΠ΅Β» для Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ΄ΠΎΠ²-Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² «Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΒ» β€” Ρ„Π°ΠΉΠ» открываСтся Π² ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅ Windows.

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ:

  • Кнопка Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ Π² плСйсСт» снова ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠΎΠ΄Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ (Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Stellaris ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒΡΡ ΠΌΠΎΠ΄Ρ‹ CK3).
  • Π’ списки добавлСния большС нСльзя случайно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π² плСйсСтС ΠΈΠ»ΠΈ ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΈΠ· Steam Workshop.
  • Окно Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ Π² плСйсСт» большС Π½Π΅ Β«ΡƒΠ΅Π·ΠΆΠ°Π΅Ρ‚Β» Π·Π° ΠΊΡ€Π°ΠΉ экрана: ΠΏΡ€ΠΈ большом спискС ΠΌΠΎΠ΄ΠΎΠ² ΠΊΠ½ΠΎΠΏΠΊΠ° Β«Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒΒ» ΠΎΡΡ‚Π°Π²Π°Π»Π°ΡΡŒ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΠΈ ΠΎΠΊΠ½ΠΎ нСльзя Π±Ρ‹Π»ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ высота ΠΎΠΊΠ½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°, список прокручиваСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ, Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, клавишСй Esc ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠΊΠΎΠΌ ΠΏΠΎ Ρ‚Ρ‘ΠΌΠ½ΠΎΠΌΡƒ Ρ„ΠΎΠ½Ρƒ.
  • Записи словаря ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° всСх языках, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ английский β†’ корСйский:
    • исправлСна Π³ΠΎΠ½ΠΊΠ° ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ β€” записи словаря большС Π½Π΅ Β«Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡΒ» Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ строк;
    • Ρ„Ρ€Π°Π·Ρ‹ ΠΈΠ· Π΄Π²ΡƒΡ… слов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«Lord RagnarrΒ») ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ сначала Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Π° ΠΏΡ€ΠΈ отсутствии Π² словарС β€” ΠΏΠΎ словам ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ;
    • слова ищутся Π² любом рСгистрС: запись Β«castleΒ» Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Β«CastleΒ» ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.
  • Π§Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ записи словаря ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡŒ ΠΊ ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΌ строкам: Π² настройках Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ кэш» ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» Π·Π°Π½ΠΎΠ²ΠΎ β€” ΠΈΠ½Π°Ρ‡Π΅ строки Π²ΠΎΠ·ΡŒΠΌΡƒΡ‚ΡΡ ΠΈΠ· старого кэша Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° словаря.

1.0.5

Spoiler

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ:

  • Β«Π‘ΠΈΡ‚Ρ‹Π΅Β» ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ ΠΎΡ‚ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΎΠ². Если ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ Π²Π΅Ρ€Π½ΡƒΠ» мусор вмСсто тСкста β€” ΠΏΠΎΠ»Π½ΠΎΡˆΠΈΡ€ΠΈΠ½Π½Ρ‹Π΅/псСвдографичСскиС символы
    U+FF01..FFEE
    , символ Π·Π°ΠΌΠ΅Π½Ρ‹
    U+FFFD
    ΠΎΡ‚ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½Π½ΠΎΠ³ΠΎ UTF-8 β€” строка опрСдСляСтся ΠΊΠ°ΠΊ бракованная ΠΈ автоматичСски отправляСтся Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Π°Ρ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° выполняСтся Ρ‚Π΅ΠΌ ΠΆΠ΅ сСгмСнтом ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·; Ссли ΠΈ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ мусор β€” бСрётся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.
  • ЧисловыС обозначСния Π² русском ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅. Английская Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°
    No2
    стала β„–2 (
    no thicker than a No2. pencil
    β†’ Β«Π½Π΅ Ρ‚ΠΎΠ»Ρ‰Π΅ ΠΊΠ°Ρ€Π°Π½Π΄Π°ΡˆΠ° β„–2Β»). Нормализация
    No
    /
    NΒΊ
    + число β†’
    β„–
    дСйствуСт Π½Π° всС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Π² русский послС восстановлСния ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ².
  • Π›ΠΈΡˆΠ½ΠΈΠ΅ латинскиС Π±ΡƒΠΊΠ²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄
    Β§
    -Ρ‚Π΅Π³Π°ΠΌΠΈ форматирования. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° оставляли ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ английского слова сразу послС Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° (
    Β§LDΠ’ΠΎ врСмя…
    ,
    Β§RRРыТиС…
    ,
    Β§LM ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΠΈβ€¦
    ). Π’Π°ΠΊΠΈΠ΅ Π±ΡƒΠΊΠ²Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ автоматичСски ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ:
    Β§LΠ’ΠΎ врСмя…
    ,
    Β§RРыТиС…
    ,
    Β§LΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΠΈβ€¦
    . Π›Π°Ρ‚ΠΈΠ½ΠΈΡ†Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… слов (
    Β§WPop
    ,
    Β§Yx6
    ,
    Β§HVoid
    ) Π½Π΅ затрагиваСтся.
  • Заглавная Π±ΡƒΠΊΠ²Π° Π² названиях. ЗначСния-названия, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ со строчной Π±ΡƒΠΊΠ²Ρ‹ (
    Ρ€ΡƒΡ‚ΠΈΠ½Π° ΡˆΠ»ΡŽΡ…ΠΈ
    ,
    дирСктриса
    ,
    ΡˆΠΈΠΏΠΎΠ²Π°Π½Π½Ρ‹Π΅ пСнисы
    ), Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ приводятся ΠΊ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ, с пропуском
    Β§
    -Ρ‚Π΅Π³ΠΎΠ² ΠΈ Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π±ΡƒΠΊΠ²Π΅ строки, ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ тСкст Π½Π΅ мСняСтся.

НовоС:

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΠ³Ρ€ Paradox: Crusader Kings III, Crusader Kings II ΠΈ Stellaris. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (YML-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ / CSV-ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ), поиск Π²Π°Π½ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΏΠΎΠΊ ΠΈ ΠΏΡƒΡ‚ΠΈ Π‘Π” Π»Π°ΡƒΠ½Ρ‡Π΅Ρ€Π° привязаны ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Π΅.
  • Π’Ρ‹Π±ΠΎΡ€ ΠΈΠ³Ρ€Ρ‹ пСрСнСсён Π²Π½ΠΈΠ· Π»Π΅Π²ΠΎΠΉ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ (ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ Π² настройках). ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΈΠ³Ρ€Π° сразу подтягиваСт свою ΠΏΠ°ΠΏΠΊΡƒ ванильной Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ; Ссли ΠΏΠ°ΠΏΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π° автоматичСски β€” открываСтся Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€.
  • Папки ванильной Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Β«ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ хранятся ΠΏΠΎ ΠΈΠ³Ρ€Π΅ (
    vanillaFolder_<ΠΈΠ³Ρ€Π°>
    /
    previousTranslationFolder_<ΠΈΠ³Ρ€Π°>
    ) ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ вслСд Π·Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€ΠΎΠΉ.
  • Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΎΠ² Steam Workshop: Π² спискС доступных ΠΌΠΎΠ΄ΠΎΠ² ΠΏΠ°Π½Π΅Π»ΠΈ Β«ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈΒ» ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠΎΠ΄Ρ‹ ΠΈΠ·
    steamapps\workshop\content\<AppId>
    Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² плСйсСт ΠΈ ΠΎΠ½ΠΈ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π°Π½Π°Π»ΠΈΠ·Π΅ совмСстимости.
  • Π Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π‘Π” Π»Π°ΡƒΠ½Ρ‡Π΅Ρ€Π° ΠΈΠΌΠ΅Π½ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΠΈΠ³Ρ€Π΅:
    launcher-v2.sqlite.bak-<ΠΈΠ³Ρ€Π°>-<Π΄Π°Ρ‚Π°>-<врСмя>
    .
  • Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° порядка Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ: Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ порядок (топологичСская сортировка ΠΏΠΎ зависимостям β€” Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ всСгда Π²Ρ‹ΡˆΠ΅ зависимого) с ΠΏΠΎΠΊΠ°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΠΌΠΎΠ΄Π°ΠΌ. Кнопка Β«ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉΒ» ΠΈ ручная пСрСстановка стрСлками с записью Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π²
    launcher-v2.sqlite
    .
  • БСзопасная запись порядка: Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΈΠ³Ρ€Π΅/Π»Π°ΡƒΠ½Ρ‡Π΅Ρ€Π΅ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° отсутствия
    -wal
    /
    -journal
    ); ΠΏΠ΅Ρ€Π΅Π΄ записью автоматичСски создаётся рСзСрвная копия. Если Π»Π°ΡƒΠ½Ρ‡Π΅Ρ€/ΠΈΠ³Ρ€Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ β€” ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ Π±Π»ΠΎΠΊ записи.

ВСхничСскиС измСнСния:

  • src/games/game-profiles.js
    β€” рССстр ΠΈΠ³Ρ€ (ΠΏΠ°ΠΏΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ/Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², парсСры, исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹, workshopAppId).
  • src/parser/ck2-parser.js
    β€” CSV-парсСр Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ CK2 (Π΄Π΅Ρ‚Π΅ΠΊΡ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° KEY;English;…;Russian, ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, запись Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ).
  • src/loc/loc-file.js
    ,
    src/loc/game-io.js
    β€” ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для всСх ΠΈΠ³Ρ€.
  • src/modcheck/workshop-mods.js
    β€” поиск ΠΌΠΎΠ΄ΠΎΠ² Steam Workshop ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ Steam.
  • src/modcheck/launcher-db.js
    β€” имя бэкапа с gameId; ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° source='workshop' ΠΏΡ€ΠΈ рСгистрации ΠΌΠΎΠ΄Π°; атомарная запись Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π²
    launcher-v2.sqlite
    со страховкой ΠΎΡ‚ Π½Π΅Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ сСссии.
  • main.js
    β€” IPC apply-game-change; эффСктивныС ΠΏΠ°ΠΏΠΊΠΈ Π²Π°Π½ΠΈΠ»ΠΈ/ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии ΠΏΠΎ ΠΈΠ³Ρ€Π΅; слияниС ΠΌΠΎΠ΄ΠΎΠ² Workshop Π² loadorder-available; IPC loadorder-apply.
  • public/renderer.js
    ,
    public/index.html
    β€” сСлСктор ΠΈΠ³Ρ€Ρ‹ Π² сайдбарС, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ настроСк ΠΏΠΎ ΠΈΠ³Ρ€Π΅, Π±Π»ΠΎΠΊ Β«Steam WorkshopΒ» Π² спискС добавлСния ΠΌΠΎΠ΄ΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ³ΠΎ порядка ΠΈ ручная пСрСстановка стрСлками.
  • src/i18n/i18n.js
    β€” ΠΊΠ»ΡŽΡ‡ΠΈ gameSwitched, loWorkshop (en/ru).
  • src/translator/translation-safety.js
    β€” Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ isGarbled(): ΠΏΠΎΠ»Π½ΠΎΡˆΠΈΡ€ΠΈΠ½Π½Ρ‹Π΅ символы
    \uFF01-\uFFEE
    ΠΈ replacement character
    \uFFFD
    .
  • main.js
    β€” пост-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² translateBatchClean: дСтСкция мусора с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ запросом; normalizeTargetNumbers (
    No2
    β†’
    β„–2
    ); cleanStrayTagLetters (лишниС латинскиС Π±ΡƒΠΊΠ²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄
    Β§
    ); capitalizeFirstLetter (заглавная Π² названиях).
  • src/modcheck/analysis.js
    β€” топологичСская сортировка Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ порядка Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
  • preload.js
    β€” applyLoadOrder.


## 1.0.4

Spoiler
-Β ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ качСство ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°Β 
Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° потСря ΠΊΠ»ΡŽΡ‡Π΅ΠΉ с ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ послС Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (`"value" # attitude`). ΠŸΠ°Ρ€ΡΠ΅Ρ€ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π² ΠΊΠΎΠ½Ρ†Π΅ строки ΠΈ ΠΌΠΎΠ»Ρ‡Π° пропускал строки с хвостовым ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ β€” Ρ‚Π°ΠΊ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π²Ρ‹ΠΏΠ°Π΄Π°Π»ΠΈ Ρ†Π΅Π»Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ / `*_title_1` / `*_option_1`). Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ послС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ отсСкаСтся, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сохраняСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ.
- Π˜ΡΠΏΠΎΡ€Ρ‡Π΅Π½Π½Ρ‹Π΅ CK3-Ρ†Π²Π΅Ρ‚Π° Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅: `#P amorous#!` ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΊΠ°ΠΊ `#П Π²Π»ΡŽΠ±Ρ‡ΠΈΠ²Ρ‹ΠΉ#!` β€” ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ транслитСрировал Π±ΡƒΠΊΠ²Ρƒ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° (`P` β†’ `П`, `N` β†’ `Н`), ΠΈ ΠΈΠ³Ρ€Π° Π½Π΅ ΠΌΠΎΠ³Π»Π° Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚. Π’Π΅Π³ΠΈ форматирования (`#P`, `#N`, `#!`, `#color_yellow` ΠΈ Ρ‚.ΠΏ.) Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹: парсСр выдСляСт ΠΈΡ… Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Π΅ сСгмСнты, Π° сборщик Π±Π°Ρ‚Ρ‡Π° ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… Π² ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ `XQX{n}XQX` β€” ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ ΠΈΡ… Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°Π΅Ρ‚
Β 
## 1.0.3
Spoiler
### Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ
- Π‘Π»ΠΎΠΌΠ°Π½Π½Ρ‹Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠœΠ°Ρ€ΠΊΠ΅Ρ€ `QY{n}QY` ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ Google (dict-chrome-ex) ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π» Π² `Π‘Π“{n}Π”Π“` β€” Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΎ мусорноС `Π‘Π“0Π”Π“: Π‘Π“1Π‘Π“ (Π‘Π“2Π‘Π“)` вмСсто Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² `[THIS.Char...]`. ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° `XQX{n}XQX` (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ X/Q/Z ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΈ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°ΡŽΡ‚). Аналогично ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ `TQY{n}TQY` β†’ `ZQZ{n}ZQZ`.
- Π‘Π°Π³ с ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии. ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΠ»ΠΈΡΡŒ Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” кСш ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°ΠΏΠ΄Π΅ΠΉΡ‚Π° Π½Π΅ заполнялся. Π’Π΅ΠΏΠ΅Ρ€ΡŒ послС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Ρ„Π°ΠΉΠ» автоматичСски копируСтся Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии (ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ° Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ языка), Π° индСкс ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ обновляСтся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ сСссии.
- Π’Ρ‹Π»Π΅Ρ‚ ΠΈ зависаниС ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ консоли (DevTools, F12 / Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° β†’ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ консоль») Π² настройках. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° β€” связка Ρ„Π»Π°Π³ΠΎΠ² `--disable-gpu --disable-gpu-compositing --disable-software-rasterizer --use-gl=swiftshader` (задавалась в `main.js`😞 Π½Π΅ ΠΎΡΡ‚Π°Π²Π°Π»ΠΎΡΡŒ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, GPU-процСсс ΠΏΠ°Π΄Π°Π» с `Failed to create shared context for virtualization`. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π΅Π· `app.disableHardwareAcceleration()` (Electron 28 Π΄Π΅Π»Π°Π΅Ρ‚ это сам), лишниС Ρ„Π»Π°Π³ΠΈ ΡƒΠ±Ρ€Π°Π½Ρ‹ ΠΈΠ· `package.json` (`npm start` = `electron .`) ΠΈ ΠΈΠ· `main.js`.
- ЗависаниС ΠΏΡ€ΠΈ запускС, Ссли остался Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ процСсс ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ сСссии (послС сбоя). ΠŸΠΎΡ€Ρ‚Ρ‹ 18255/3000 ΠΈ кСш Chromium Π±Ρ‹Π»ΠΈ заняты зависшСй ΠΊΠΎΠΏΠΈΠ΅ΠΉ β€” Π½ΠΎΠ²Ρ‹ΠΉ запуск Π·Π°ΠΌΠ΅Ρ€Π·Π°Π» ΠΌΠΎΠ»Ρ‡Π°. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ инстанс: ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ стартС новая копия Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈ фокусируСт ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
- ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ с Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ `[THIS.Char...]` ΠΌΠΎΠ³Π»ΠΈ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π±ΠΈΡ‚Ρ‹ΠΌΠΈ (`Π‘Π“0Π”Π“: Π‘Π“1Π‘Π“ (Π‘Π“2Π‘Π“)`), Π΄Π°ΠΆΠ΅ послС смСны ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ². ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΈ исправлСния:
Β  - кСш ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии хранился ΠΏΠΎ сырому тСксту (минуя ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ) ΠΈ ΠΎΡ‚Π΄Π°Π²Π°Π» мусорныС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ β€” ΠΊΠ΅ΡˆΡƒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° вСрсия Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, записи 1.0.2 ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС 1.0.3;
Β  - ΠΏΠ°ΠΏΠΊΠ° «локализация ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии» содСрТала Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ 1.0.2 с Π±ΠΈΡ‚Ρ‹ΠΌΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π°ΠΌΠΈ, ΠΈ сСрвис ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ‚Π΄Π°Π²Π°Π» ΠΈΡ… Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ° β€” Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ (Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ `Π‘Π“{n}Π”Π“` / `Π‘Π“{n}Π‘Π“`) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ индСксации ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΈ пСрСводятся Π·Π°Π½ΠΎΠ²ΠΎ;
Β  - Π² Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π°Ρ… ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒΡΡ строки, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ Π΅Ρ‰Ρ‘ Π±ΠΎΠ»Π΅Π΅ старыми вСрсиями Π‘Π•Π— Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ²: ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ Π±Ρ€Π°Π» ΠΊΠΎΠ΄ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (`Β«[GetScheme(...)]Β»`) ΠΈΠ»ΠΈ пСрСписывал содСрТимоС скобок (`[schemes|E]` β†’ `[Concept('schemes', 'происков')|E]`). ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ· ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии ΠΈ ΠΈΠ· кэша Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ провСряСтся Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ: всС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ `[...]` исходника Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π²ΠΎΠΊΡ€ΡƒΠ³;
Β  - строки ΠΌΠΎΠ³Π»ΠΈ Β«Π·Π°ΡΡ‚Ρ€Π΅Π²Π°Ρ‚ΡŒΒ» Π½Π΅ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΌΠΈ, Ссли Π² кэшС/ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии/словарС Π±Ρ‹Π» записан Β«ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Β», Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ исходник (Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΎΠ²Π°Π»Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ° β€” 429/Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ β€” ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ ΠΏΠΎΠΏΠ°Π» Π² сохранённыС Π΄Π°Π½Π½Ρ‹Π΅). ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄, Ρ€Π°Π²Π½Ρ‹ΠΉ исходнику, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ тСкста Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ считаСтся ΠΏΡ€ΠΎΠ²Π°Π»ΠΎΠΌ ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ: такая строка всСгда ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΡƒ Π·Π°Π½ΠΎΠ²ΠΎ.
Β  - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° тСкста Π½Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ для Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ²
Β 

Β 

### ВСхничСскиС измСнСния

Β 

- `main.js` β€” ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² `QY{n}QY` β†’ `XQX{n}XQX`; Π²Ρ‹Π·ΠΎΠ² `saveTranslation` послС записи ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°; снят Π±Π»ΠΎΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΡ… GPU-Ρ„Π»Π°Π³ΠΎΠ² (остался `app.disableHardwareAcceleration()` + `no-sandbox`); `requestSingleInstanceLock` + ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ `second-instance`.
- `package.json` β€” скрипт `start` ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½ Π΄ΠΎ `electron .` (Ρ„Π»Π°Π³ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ зависания: CLI-Ρ„Π»Π°Π³ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ `commandLine.appendSwitch` Π² `main.js`).
- `src/cache/translation-cache.js` β€” вСрсия Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° кСша: Ρ„Π°ΠΉΠ» ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ `{ __version, entries }`, ΠΏΡ€ΠΈ нСсовпадСнии вСрсии кСш 1.0.2 Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.
- `src/translator/translation-safety.js` β€” Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ эвристик пригодности ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° для ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ: ΠΌΠ°Ρ€ΠΊΠ΅Ρ€-Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ `Π‘Π“{n}Π”Π“`/`Π‘Π“{n}Π‘Π“`, ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ содСрТимого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Β«ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Β», Ρ€Π°Π²Π½Ρ‹ΠΉ исходнику.
- `src/translator/previous-translations.js` β€” ΠΏΡ€ΠΈ построСнии индСкса ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ с Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠΌ старых ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² `Π‘Π“{n}Π”Π“` / `Π‘Π“{n}Π‘Π“`; ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° довСрСнности ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΏΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌ исходника.
- `src/cache/translation-cache.js` β€” ΠΏΡ€ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ Π² кэш ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ довСрСнности (испорчСнныС записи ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠΌΠ°Ρ…ΠΎΠΌ ΠΈ пСрСводятся Π·Π°Π½ΠΎΠ²ΠΎ).
- `main.js` β€” Π² локальной Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (`resolveLocal`: тСрминология β†’ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ β†’ ΠΏΡ€ΠΎΡˆΠ»Π°Ρ вСрсия β†’ ваниль) Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ принимаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ довСрСнности; ΠΈΠ½Π°Ρ‡Π΅ строки уходят Π² ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ с ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ².
- `src/terminology/terminology-engine.js` β€” ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² `TQY{n}TQY` β†’ `ZQZ{n}ZQZ`.
- `src/translator/previous-translations.js` β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ `saveTranslation(outputPath, targetLang)`: ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии + Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ in-memory индСкса.
1.0.2
Spoiler
-ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ китайский ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄
- Π’Π°Π½ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠΌΠ΅Π΅Ρ‚ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ванильной ΠΈΠ³Ρ€Ρ‹ 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, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, история, кэш, ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, Π΄Π²Π° языка интСрфСйса (русский/английский).

Β 


Other Files from Heyvanushi


×
×
  • Create New...