Въведение
Говорите чужд език, който все още не се поддържа в Sweet Home 3D, и искате да допринесете за превода му на този език? От версия 2.3, Sweet Home 3D поддържа SH3L файлове и това ръководство ще ви научи как да създадете такъв файл сами. SH3L файлът е автоматично инсталируем езиков файл и потребителите просто трябва да щракнат двукратно върху SH3L файл, за да преведат Sweet Home 3D на езика, описан от този файл.
Основни инструкции
Създаването на SH3L файл се състои от:
- изтегляне на английска версия на файловете за превод,
- разархивиране на изтегления файл,
- добавяне на суфикс от 2 букви, съответстващ на вашия език към
.propertiesфайловете, които съдържа, - превеждане на текста в
.propertiesфайловете, - конвертирането им в ASCII кодиране,
- превеждане на помощния текст в
.htmlфайловете (не е задължително, но ще бъде наистина полезно за потребителите), - архивиране на
.propertiesфайловете и помощните файлове обратно във файл с разширение SH3L, - щракване двукратно върху SH3L файла, за да тествате превода си в Sweet Home 3D,
- разпространение на вашия SH3L файл.
Подробни инструкции
Ако не се страхувате от предишните основни инструкции, продължете със следващите стъпки.
Получаване на английската версия
Изтеглете архива от /SweetHome3DTranslation.zip (версия 7.5) и го разархивирайте с инструментите на вашата система.
SweetHome3DTranslation.zip съдържа набор от файлове с разширения .properties и .html, поставени в подпапки, както е показано на фигура 1.

Всички .properties и .html файлове съдържат английската версия на текстовете, които ще трябва да преведете на вашия език:
package.propertiesфайловете описват етикети, менюта и елементи от менюто, показани в потребителския интерфейс на Sweet Home 3D,basic.propertiesиmetal.propertiesфайловете описват стандартни етикети на диалогови прозорци,- тези, завършващи на
Catalog.properties, описват имената на мебелите и текстурите, налични в софтуера, .htmlфайловете съдържат текста на помощта на Sweet Home 3D.
Преименуване на файлове в зависимост от вашия език
Преди да преведете .properties файловете, трябва да преименувате всеки от тях, като добавите към името им долна черта, последвана от 2-символния ISO код, съответстващ на вашия език. Ще намерите този код в последната колона на документа
След това, ако искате да преведете помощните файлове, трябва да преименувате и
Например, ISO кодът за чешки е _cs и трябва да преименувате файловете, както е показано на фигура 2.

Превеждане на properties файлове
.properties файловете са обикновени текстови файлове и можете да ги редактирате с всеки текстов редактор като Wordpad, TextEdit или emacs. Например, com/eteks/sweethome3d/package.properties файлът в Sweet Home 3D 3.0 съдържа следния текст:
# package.properties 10 oct. 2007 # # Copyright (c) 2024 Space Mushrooms <[email protected]>. All Rights Reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. Вижте GNU General Public License за повече # подробности. # # Трябва да сте получили копие на GNU General Public License заедно с # тази програма; ако не, пишете до Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # Resources for HomeFramePane class HomeFramePane.untitled=Без заглавие # Resources for MacOSXConfiguration class MacOSXConfiguration.WINDOW_MENU.Name=Прозорец MacOSXConfiguration.MINIMIZE.Name=Минимизиране MacOSXConfiguration.ZOOM.Name=Увеличаване MacOSXConfiguration.BRING_ALL_TO_FRONT.Name=Извеждане на всички на преден план # Resources for SweetHome3D class SweetHome3D.3DError.message=<html> Sweet Home 3D ще се затвори сега поради фатална грешка <br>в 3D системата за рендиране. Моля, актуализирайте драйверите на DirectX/OpenGL <br>на вашата компютърна графична карта. SweetHome3D.3DError.title=3D Грешка SweetHome3D.confirmSaveAfter3DError.message=<html> Sweet Home 3D трябва да се затвори сега поради фатална грешка в <br>3D системата за рендиране. Искате ли да запазите всички променени домове? SweetHome3D.confirmSaveAfter3DError.title=3D Грешка SweetHome3D.confirmSaveAfter3DError.save=Запазване SweetHome3D.confirmSaveAfter3DError.doNotSave=Без запазване
Един .properties файл съдържа три вида редове:
- редовете, които започват със знака #, са коментари (показани в зелено в предишния пример). Някои коментари съдържат правна информация, някои дават информация на разработчици или преводачи. Запазете тези редове непроменени.
- празните редове се използват само за разделяне на различните части на
.propertiesфайл. - другите редове започват с текст, използван от Sweet Home 3D като ключ за намиране на текст, показан на екрана (показан в синьо в предишния пример). След този ключ, всеки от тези редове съдържа знак за равенство (
=) и текст на даден език. Вашата работа започва от знаците за равенство. Не променяйте текста на ключа и заменете английския текст след знака за равенство с неговия превод.
Специални случаи:
- Текстовете, започващи с
<html>таг, съдържат текст в HTML формат. Тези текстове съдържат някои други HTML тагове между<и>знаци, като<br>в предишния пример, който представлява връщане на каретата в средата на дълги текстове. Не премахвайте тези HTML тагове, те помагат на Sweet Home 3D да представи правилно някои текстове. Превеждането на текст между HTML тагове не е много трудно, с изключение може би на най-лошия HTML текст, който е стойността наWallPanel.wallOrientationLabel.textключ. - За да избегнете дълги редове в текстовия редактор, някои редове
са разделени на два или повече реда и след това разделени с обратни наклонени черти
\, като реда, започващ сSweetHome3D.3DError.messageв предишния пример. В този случай не премахвайте знака\знак, разположен в края на реда, защото той показва, че следващият ред следва текущия ред. - Някои текстове съдържат специална последователност от знаци, започваща
със знак
%, като%s,%d,%1$s,%2$s… Тези последователности от знаци ще бъдат заменени с име на файл, единица или число, когато е необходимо, така че не ги премахвайте.
Например, последователността от знаци%sв текста на следния ключHomeFurniturePanel.widthLabel.text:
HomeFurniturePanel.widthLabel.text=Ширина (%s):
ще бъде заменен с единицата, която се използва в момента. Двете последователности от знаци%1$dи%2$dкоито се появяват в текста на следния ключPrintPreviewPanel.pageLabel.text:
PrintPreviewPanel.pageLabel.text=Страница %1$d/%2$d
ще се появят на екрана като номер на страница и брой страници и вие трябва да преведете само думатаPage. - Някои текстове съдържат и специалната последователност от знаци
\n, като в следния пример:HomeController.saveError=Не може да се запази дом в\n"%s"
Тази последователност от знаци се показва от Sweet Home 3D като връщане на каретата, за да раздели ред на екрана, и не трябва да ги премахвате. - Стойността на ключа
HelpController.helpIndexпоказва директорията, където могат да бъдат намерени помощните файлове. Ако преведете .htmlпомощни файлове, трябва да заменитеenподдиректорията с 2-символния код на вашия език.
Например, ако преведете помощта на чешки, тя трябва да стане:HelpController.helpIndex=/com/eteks/sweethome3d/viewcontroller/resources/help/cs/index.html
- Текстът на ключовете, които завършват на
.mnemonic, се използва от Sweet Home 3D, за да познае коя буква в етикет или елемент от менюто трябва да бъде подчертана за достъп с клавиатура. Тази мнемонична буква зависи от показаната дума и трябва да намерите уникална за всеки диалогов прозорец или меню.
Например, следните текстове и мнемоники, показани в диалоговия прозорец за модификация на мебели:HomeFurniturePanel.nameLabel.text=Име: HomeFurniturePanel.nameLabel.mnemonic=N HomeFurniturePanel.nameVisibleCheckBox.text=Показване на името в плана HomeFurniturePanel.nameVisibleCheckBox.mnemonic=S HomeFurniturePanel.widthLabel.text=Ширина (%s): HomeFurniturePanel.widthLabel.mnemonic=W
може да бъде преведено на френски от:HomeFurniturePanel.nameLabel.text=Nom : HomeFurniturePanel.nameLabel.mnemonic=N HomeFurniturePanel.nameVisibleCheckBox.text=Afficher le nom dans le plan HomeFurniturePanel.nameVisibleCheckBox.mnemonic=S HomeFurniturePanel.widthLabel.text=Largeur (%s) : HomeFurniturePanel.widthLabel.mnemonic=L
- Използвайте Sweet Home 3D или страницата за импортиране на 3D модели, за да ви помогне да преведете
.propertiesфайловете, завършващи наCatalog.properties.
Конвертиране на properties файлове в ASCII кодиране
Ако сте превели текстове на език с букви, които не принадлежат към ISO-8859-1 кодиране (главно езици от Централна и Източна Европа и езици с нелатинска азбука), ще трябва да конвертирате всичките си .properties файлове в ASCII кодиране, поддържано от Sweet Home 3D. Това конвертиране може да бъде извършено с инструмента native2ascii, предоставен с JDK, или може да бъде извършено със следната форма.
За всеки .properties файл, създайте резервно копие на този файл, копирайте/поставете текста за конвертиране в следната текстова област, щракнете върху бутона Конвертиране и копирайте/поставете конвертирания текст обратно в неговия .properties файл.
Инструментът за конвертиране ще замени всеки не-ASCII знак (латински букви с ударения и нелатински букви) с последователност, започваща с \u и последвана от 4-цифрен шестнадесетичен код, съответстващ на този знак в Unicode. За съжаление, това конвертиране ще направи текста ви доста нечетлив за човек, но ако не го извършите, Sweet Home 3D няма да може да покаже правилно знаците на вашия превод. Това е причината, поради която трябва да създадете резервно копие на оригиналните си .properties файлове, в случай че искате да ги промените по-късно.
Ако искате директно да редактирате .properties файлове, конвертирани в ASCII, можете също да използвате приложението Properties Editor, достъпно като Jar изпълним файл тук.
Превеждане на помощните файлове
Един добър превод на Sweet Home 3D трябва да включва и превода на неговите помощни файлове. Превеждането на всички
След като бъдат преведени, трябва също да създадете екранни снимки на диалоговите прозорци на вашия език, за да замените изображенията, намерени в .properties файлове, можете също да поискате от разработчика на Sweet Home 3D да генерира екранните снимки).
Създаване на SH3L файл
След като всички .properties и .html файлове са преведени и конвертирани в ASCII, ако е необходимо (или дори преди това, ако искате да тествате тази процедура), трябва да ги архивирате в zip файл. В зависимост от вашата система, създаването на zip файл може да бъде извършено със следната процедура:
- под Windows, изберете папката
com, съдържаща всички преведени файлове, и изберете Изпрати до > Компресирана папка от контекстното меню, - под Mac OS X, изберете папката
com, съдържаща всички преведени файлове, и изберете елемента от менюто Файл > Компресиране « com », - под Linux, изберете папката
com, съдържаща всички преведени файлове, изберете Създаване на архив… от контекстното меню, след което изберете .zip в списъка с формати.
Накрая, променете разширението .zip на zip файла на .sh3l. SH3L файлът може да има всяко име, но за да избегнете конфликти със съществуващи SH3L файлове, трябва да го наименувате от езика, който съдържа, и версията на Sweet Home 3D, която сте превели (например, French-4.1.sh3l може да бъде добро име за френския превод на Sweet Home 3D 4.1).
Тестване на SH3L файл
За да тествате превода, щракнете двукратно върху SH3L файл или го изберете с бутона Импортиране на файл с езикова библиотека
, показан в горната част на панела Предпочитания. Това ще стартира Sweet Home 3D и ще преведе потребителския му интерфейс на езика, описан в SH3L файла. Това също ще копира SH3L файла в папка в зависимост от вашата система:
- под Windows Vista / 7 / 8 / 10 / 11, тази папка е C:\Users\потребител\AppData\Roaming\eTeks\Sweet Home 3D\languages,
- под Windows XP и предишни версии на Windows, тази папка е C:\Documents and Settings\потребител\Application Data\eTeks\Sweet Home 3D\languages,
- под macOS, това е подпапката Library/Application Support/eTeks/Sweet Home 3D/languages на вашата потребителска папка,
- под Linux и други Unix, това е подпапката .eteks/sweethome3d/languages на вашата потребителска папка,
- с преносимата версия на Sweet Home 3D, това е подпапката data/languages на папката, където е съхранено приложението Sweet Home 3D,
Имайте предвид също, че по време на разработката на вашия SH3L файл, вероятно ще трябва да рестартирате Sweet Home 3D, за да видите промените във вашия SH3L файл.
Разпространение на SH3L файлове
След като вашият SH3L файл е готов, можете да го предложите на всеки, да го обявите на потребителите на Sweet Home 3D във форумната част, запазена за чужди езици или на други места. Ако сте съгласни, той може да бъде направен достъпен на този уебсайт на страницата за преводи, поддържани от Sweet Home 3D.
Актуализиране на SH3L файлове
Някои версии на Sweet Home 3D носят нови функции за превод, други не. Ако не преведете етикетите на потребителския интерфейс, съответстващи на тези нови функции, Sweet Home 3D ще работи, но всички нови етикети ще се появят на английски език. За да намерите новите ключове и актуализираните ключове в .properties файлове, можете да използвате функция, предлагана от SourceForge.net, която ви позволява да сравнявате две версии на файл на проект:
- Потърсете датите на версиите на Sweet Home 3D, които искате да сравните в историята (например, 19 юли 2015 г. за версия 5.0 и 2 февруари 2015 г. за версия 4.6)
- Кликнете върху
.propertiesили.htmlфайла, който искате да актуализирате в фигура 1, - Изберете двете квадратчета за отметка на номера на ревизията, съответстващ на датата на версията за актуализирания файл, като изберете датата, която е точно преди датата на версията на Sweet Home 3D,
- Кликнете върху бутона Compare.
Последното щракване ще ви покаже разликите между двете версии на този .properties файл (например, тази връзка ще ви покаже разликите между версия 4.6 и версия 5.0 на файла com/eteks/sweethome3d/viewcontroller/package.properties).
След като откриете разликите, актуализирайте своя превод, добавяйки нови имена на ключове, ако е необходимо, и пуснете нова версия на вашия превод.
