Если после смены языка в слайсере часть меню, кнопок или всплывающих подсказок в AnycubicSlicer всё равно показывается на английском — это не баг. AnycubicSlicer сделан на базе PrusaSlicer/OrcaSlicer и использует стандартную систему локализации gettext (файлы .po/.mo). Перевод обновляется вместе с релизами, но обычно чуть отстаёт от новых элементов интерфейса — новую строку в код добавили, а перевести на все языки ещё не успели. Такая строка просто выводится на языке оригинала (английском), пока для неё нет перевода.
Ниже — рабочий способ, которым можно закрыть конкретные “дыры” в переводе самому, не дожидаясь официального обновления.
Где лежит перевод
Файл перевода для вашего языка находится в папке установки слайсера:
resources/i18n/../AnycubicSlicer.mo
.mo — это скомпилированный бинарный файл, его нельзя открыть и отредактировать в блокноте. Редактируемая версия — .po, обычный текстовый файл со строками вида:
msgid "Original string"
msgstr "Переведённая строка"
Если msgstr пустая — в интерфейсе вместо перевода показывается msgid, то есть английский текст. Это и есть искомая “дыра”.
Рабочий способ: правим через Poedit
- Установи бесплатную программу Poedit — это стандартный редактор
.po/.moфайлов, тот же самый, что используют официальные переводчики PrusaSlicer/OrcaSlicer. - Сделай копию
AnycubicSlicer.moизresources/i18n/..— на случай, если что-то пойдёт не так, чтобы вернуть оригинал одним движением. - Открой копию
.moфайла прямо в Poedit — программа умеет открывать скомпилированные.moфайлы напрямую, декомпилировать вручную не нужно. - В Poedit есть фильтр “Untranslated” (непереведённые) — включи его, и увидишь ровно те строки, которые в интерфейсе вылезают на английском. Дальше выбираешь такую строку и в поле снизу вписываешь перевод.
- Если строка уже переведена, но криво или не по контексту слайсера — правишь её так же, просто найдя нужный
msgidчерез поиск в Poedit. - После правок нажимаем Save (или Ctrl+S) — Poedit сам пересоберёт файл обратно в
.mo. - Замени оригинальный
AnycubicSlicer.moвresources/i18n/..на исправленный, перезапусти слайсер — перевод подтянется.
Это единственный способ, который реально сработал: он не требует пересборки слайсера из исходников и не трогает ничего, кроме языкового файла — работаешь через обычную программу с интерфейсом, а не через консоль.
Важный нюанс
Если строки нет в .po/.mo файле вообще (то есть она даже не помечена как непереведённая — её просто нет в списке), значит она ещё не попала в шаблон перевода на стороне разработчика. Такую строку через Poedit не добавить — она появится только с новой версией .pot-файла от Anycubic. В подавляющем большинстве случаев то, что видно на английском в уже вроде бы переведенном интерфейсе — это как раз пустой msgstr, а не полностью отсутствующая строка, так что способ выше закрывает почти все такие случаи.
Если лень руками — используйте Claude AI без подписки
Он умеет работать с .po/.mo файлами напрямую: можно прислать текущий файл перевода, он найдет все пустые/непереведённые строки, переведет их с учётом терминологии 3D-печати и вернет готовый файл — останется только положить его в resources/i18n/.. и перезапустить слайсер.