PluginTranslator - Продвинутая система перевода плагинов [Утилита] [Переводчик] [1.1]

Исправления

🇰🇷 Корейский (и другие языки без пробелов между словами)

Исправлена кодировка в файлах .properties. Раньше корейский текст записывался как сырой UTF-8, из-за чего при чтении через java.util.Properties (или в редакторах, ожидающих стандартную для Java кодировку ISO-8859-1) текст превращался в нечитаемую кашу. Теперь весь не-ASCII текст корректно кодируется через \uXXXX последовательности - универсальный формат, который правильно понимает любой Java-загрузчик properties-файлов.

🇸🇦 Арабский (и другие языки с письмом справа налево - иврит, персидский, урду)
Исправлена системная проблема с плейсхолдерами: в RTL-языках символ юникода мог визуально переставлять цифры внутри строки, из-за чего служебные маркеры вида @@.0@@ разрывались на части и оставались видимым мусором в переводе. Теперь используется одиночный неделимый символ вместо последовательности символов - его невозможно разорвать при любой перестановке текста.

Прочие исправления
  • Убраны случайные хэш-последовательности (8e6adaf1f9ae...), которые Google Translate иногда вставлял в текст при переводе длинных строк
  • Убраны невидимые управляющие символы (Zero Width Space и подобные), которые аналогично попадали в перевод как артефакты разбивки текста на сегменты
  • Корректная обработка многострочных значений в YAML (в кавычках и без) - раньше могли ломать структуру файла и создавать невалидный YAML
  • YAML-файлы с задублированными ключами (невалидные по строгим правилам, но встречаются на практике) больше не приводят к падению программы
  • Исправлена защита служебных обозначений цвета (&%d, &%f и подобные), которые раньше путались с printf-плейсхолдерами (%s, %d) и ломались при переводе
Новое
  • Кнопка отмены перевода
  • Автоопределение исходного языка
  • Проверка неизвестных плейсхолдеров перед переводом
  • Диалог при совпадении имени файла (перезаписать / сохранить как новый / отмена)
  • Проверка обновлений через GitHub
Автор: DENDOR
ВерхНиз