Для тех, кто не знает, Sweet Home 3D – это бесплатный трёхмерный редактор дизайна интерьера, кроссплатформенный и русифицированный.
Может есть варианты и лучше, но для домашних задач этой программы хватает, что называется, «с головой».
С её помощью можно:
- создать план квартиры или этажа загородного дома,
- “примерить” перестановку мебели без порчи пола и нервов,
- перекрасить стены, пол и потолок,
- рассчитать расход материалов для ремонта и многое другое.
Написан SweetHome3D на Java, библиотек объёмной фурнитуры в сети предостаточно, вот только перевод в них не просто хромает, а временами абсолютно не соответствует моделям.
Чего не простишь бесплатному ПО, хотя как Вам “Чугунная ванна” вместо “Кованая кровать”?
И это далеко не самый вычурный вариант… 🙂
Такие “вольности” в базе локализаций лечатся довольно просто, о чём я Вам сегодня и расскажу.
Библиотека фурнитуры представляет собой zip-архив с расширением *.sh3f, то есть, открыть её можно любым имеющимся у Вас архиватором.
При импорте библиотеки фурнитур она копируется в локальный каталог
<system disk>:\Documents and Settings\<username>\Application Data\eTeks\Sweet Home 3D\furniture\
Внутри архива находится папка с моделями и несколько файлов с расширением *.properties, которые и содержат перевод элементов базы данных на требуемый язык.
Ищем PluginFurnitureCatalog_ru.properties и извлекаем его в любую папку на диске.
Вроде просто… но интересное только начинается.
Открываем файл текстовым редактором и видим следующий код:
name#1=\u0421\u0435\u0442\u0447\u0430\u0442\u0430\u044f \u0434\u0432\u0435\u0440\u044c
category#1=\u0414\u0432\u0435\u0440\u0438 \u0438 \u043e\u043a\u043d\u0430
Это – JSON-представление кириллицы в кодировке UTF, а нам “хотелось бы в общих чертах понять, о чём посол толкует”.
Нутро подсказывает, что name#1 – это отображаемое имя элемента 1 в базе данных, а category#1 – рубрика, к которой элемент 1 относится.
Скопируем код после знака “равно”, открываем on-line конвертор и вставляем в поле “Введи код — получи значение”.
Жмём “Преобразовать” и видим вполне русский вариант.
Поле “Введи значение — получи код” служит для обратного преобразования.
Теперь по существу:
- Импортируйте библиотеку в редактор.
Меню – Фурнитура – Импорт библиотеки фурнитуры… - Найдите ущербный перевод в библиотеке и скопируйте его в буфер обмена. Можете эту ересь просто набрать руками в конвертере.
- Переведите значение в код, используя on-line конвертер и скопируйте результат в буфер обмена.
- В каталоге furniture откройте файл библиотеки архиватором и извлеките файл перевода во временную папку. Файл откройте в текстовом редакторе.
- Найдите в файле строку соответствующую содержимому буфера обмена.
- В конвертере в поле “Введи значение — получи код” наберите правильный вариант перевода и, получив код, замените им найденный в файле перевода.
- Сохраните текстовый файл перевода.
- Если хотите, измените данные о переводчике на свои в строке
# Translated to Russian by <здесь Ваше имя латиницей>
- Полученным файлом в библиотеке *.sh3f замените исходный и после перезагрузки редактора Вы увидите плоды своего творчества.
Удачного перевода.
Что-то мне подсказывает, что подобный метод можно использовать не только для Sweet Home 3D, но и для правки перевода в любой java программе. Или я ошибаюсь?
