Introduktion
Talar du ett främmande språk som ännu inte stöds i Sweet Home 3D och vill bidra till översättningen till det språket? Från och med version 2.3 stöder Sweet Home 3D SH3L-filer och den här guiden lär dig hur du skapar en sådan fil själv. En SH3L-fil är en automatiskt installerbar språkfil och användare behöver bara dubbelklicka på en SH3L-fil för att översätta Sweet Home 3D till det språk som beskrivs av filen.
Grundläggande instruktioner
Att skapa en SH3L-fil består av:
- ladda ner en engelsk version av filerna som ska översättas,
- packa upp den nedladdade filen,
- lägga till ett 2-bokstavssuffix som matchar ditt språk till
.propertiesfilerna den innehåller, - översätta texten i
.propertiesfilerna, - konvertera dem till ASCII-kodning,
- översätta hjälptexten i
.htmlfilerna (inte obligatoriskt men kommer att vara riktigt användbart för användare), - zippa
.propertiesfilerna och hjälpfilerna tillbaka till en fil med SH3L-tillägget, - dubbelklicka på SH3L-filen för att testa din översättning i Sweet Home 3D,
- distribuera din SH3L-fil.
Detaljerade instruktioner
Om du inte är rädd för de tidigare grundläggande instruktionerna, fortsätt med nästa steg.
Hämta den engelska versionen
Ladda ner arkivet på /SweetHome3DTranslation.zip (version 7.5) och packa upp det med verktygen i ditt system.
SweetHome3DTranslation.zip innehåller en uppsättning filer med .properties och .html tillägg placerade i undermappar som visas i figur 1.

Alla .properties och .html filer innehåller den engelska versionen av texterna du måste översätta till ditt språk:
package.propertiesfilerna beskriver etiketter, menyer och menyalternativ som visas i användargränssnittet i Sweet Home 3D,basic.propertiesochmetal.propertiesfilerna beskriver standarddialogetiketter,- de som slutar med
Catalog.propertiesbeskriver namnen på möblerna och texturerna som finns tillgängliga i programvaran, .htmlfilerna innehåller texten i hjälpen för Sweet Home 3D.
Byta namn på filer beroende på ditt språk
Innan du översätter .properties filerna bör du byta namn på var och en av dem genom att lägga till ett understreck följt av de 2 tecknen ISO-kod som matchar ditt språk. Du hittar den här koden i den sista kolumnen i dokumentet
Om du vill översätta hjälpfilerna bör du också byta namn på
Till exempel är ISO-koden för tjeckiska _cs, och du bör byta namn på filerna som visas i figur 2.

Översätta egenskapsfiler
.properties filerna är vanliga textfiler och du kan redigera dem med valfri textredigerare som Wordpad, TextEdit eller emacs. Till exempel innehåller com/eteks/sweethome3d/package.properties filen i Sweet Home 3D 3.0 följande text:
# package.properties 10 okt. 2007 # # Copyright (c) 2024 Space Mushrooms <[email protected]>. Alla rättigheter förbehållna. # # Detta program är fri programvara; du kan distribuera det och/eller modifiera det under # villkoren i GNU General Public License som publiceras av Free Software # Foundation; antingen version 2 av licensen, eller (efter eget val) någon senare # version. # # Detta program distribueras i hopp om att det kommer att vara användbart, men UTAN # NÅGON GARANTI; inte ens den underförstådda garantin för SÄLJBARHET eller LÄMPLIGHET # FÖR ETT SÄRSKILT SYFTE. Se GNU General Public License för mer # detaljer. # # Du borde ha fått en kopia av GNU General Public License tillsammans med # detta program; om inte, skriv till Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # Resurser för HomeFramePane-klassen HomeFramePane.untitled=Namnlös # Resurser för MacOSXConfiguration-klassen MacOSXConfiguration.WINDOW_MENU.Name=Fönster MacOSXConfiguration.MINIMIZE.Name=Minimera MacOSXConfiguration.ZOOM.Name=Zooma MacOSXConfiguration.BRING_ALL_TO_FRONT.Name=Flytta alla till förgrunden # Resurser för SweetHome3D-klassen SweetHome3D.3DError.message=<html> Sweet Home 3D avslutas nu på grund av ett allvarligt fel <br>i 3D-renderingssystemet. Uppdatera DirectX/OpenGL-drivrutinerna <br>för ditt dators grafikkort. SweetHome3D.3DError.title=3D-fel SweetHome3D.confirmSaveAfter3DError.message=<html> Sweet Home 3D måste avslutas nu på grund av ett allvarligt fel i <br>3D-renderingssystemet. Vill du spara alla ändrade hem? SweetHome3D.confirmSaveAfter3DError.title=3D-fel SweetHome3D.confirmSaveAfter3DError.save=Spara SweetHome3D.confirmSaveAfter3DError.doNotSave=Spara inte
En .properties fil innehåller tre typer av rader:
- raderna som börjar med ett #-tecken är kommentarer (visas i grönt i föregående exempel). Vissa kommentarer innehåller juridisk information, vissa ger information till utvecklare eller översättare. Håll dessa rader oförändrade.
- tomma rader används bara för att separera de olika delarna av en
.propertiesfil. - de andra raderna börjar med någon text som används av Sweet Home 3D som en nyckel för att hitta en text som visas på skärmen (visas i blått i föregående exempel). Efter denna nyckel innehåller var och en av dessa rader ett likhetstecken (
=) och en text på ett visst språk. Ditt jobb börjar från likhetstecknen. Ändra inte texten i nyckeln och ersätt den engelska texten efter likhetstecknet med dess översättning.
Speciella fall:
- Texterna som börjar med en
<html>tag innehåller en del text i HTML-format. Dessa texter innehåller några andra HTML-taggar mellan<och>tecken, som<br>i föregående exempel som representerar en vagnretur mitt i långa texter. Ta inte bort dessa HTML-taggar, de hjälper Sweet Home 3D att presentera vissa texter korrekt. Att översätta text mellan HTML-taggar är inte särskilt svårt, förutom kanske för den värsta HTML-texten som är värdet påWallPanel.wallOrientationLabel.textnyckel. - För att undvika långa rader i textredigeraren, är vissa rader
uppdelade i två eller flera rader och sedan separerade med omvända snedstreck
\, som raden som börjar medSweetHome3D.3DError.messagei föregående exempel. I så fall, ta inte bort\tecknet som finns i slutet av en rad eftersom det indikerar att nästa rad följer den aktuella raden. - Vissa texter innehåller speciella teckensekvenser som börjar
med ett
%-tecken, som%s,%d,%1$s,%2$s… Dessa teckensekvenser kommer att ersättas av ett filnamn, en enhet eller ett nummer när det behövs, så ta inte bort dem.
Till exempel teckensekvensen%si texten i följande nyckelHomeFurniturePanel.widthLabel.text:
HomeFurniturePanel.widthLabel.text=Bredd (%s):
kommer att ersättas av den enhet som används för tillfället. De två teckensekvenserna%1$doch%2$dsom visas i texten i följande nyckelPrintPreviewPanel.pageLabel.text:
PrintPreviewPanel.pageLabel.text=Sida %1$d/%2$d
kommer att visas på skärmen som ett sidnummer och sidantalet, och du bör bara översätta ordetPage. - Vissa texter innehåller också den speciella teckensekvensen
\n, som i följande exempel:HomeController.saveError=Kan inte spara hem i\n"%s"
Denna teckensekvens visas av Sweet Home 3D som en vagnretur för att dela upp en rad på skärmen, och du bör inte ta bort dem. - Värdet på nyckeln
HelpController.helpIndexanger katalogen där hjälpfilerna finns. Om du översätter .htmlhjälpfilerna, bör du ersättaenunderkatalogen som hittas med 2-bokstäverskoden för ditt språk.
Om du till exempel översätter hjälp till tjeckiska, bör det bli:HelpController.helpIndex=/com/eteks/sweethome3d/viewcontroller/resources/help/cs/index.html
- Texten i nycklarna som slutar med
.mnemonicanvänds av Sweet Home 3D för att gissa vilken bokstav i en etikett eller ett menyalternativ som ska understrykas för tangentbordsåtkomst. Denna mnemoniska bokstav beror på det visade ordet och du bör hitta en unik per dialogruta eller meny.
Till exempel följande texter och mnemonics som visas i dialogrutan för möbelmodifiering:HomeFurniturePanel.nameLabel.text=Namn: HomeFurniturePanel.nameLabel.mnemonic=N HomeFurniturePanel.nameVisibleCheckBox.text=Visa namn i plan HomeFurniturePanel.nameVisibleCheckBox.mnemonic=S HomeFurniturePanel.widthLabel.text=Bredd (%s): HomeFurniturePanel.widthLabel.mnemonic=W
kan översättas till franska av: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
- Använd Sweet Home 3D eller 3d models import page för att hjälpa dig att översätta
.propertiesfilerna som slutar medCatalog.properties.
Konvertera egenskapsfiler till ASCII-kodning
Om du översatte texter till ett språk med bokstäver som inte tillhör ISO-8859-1-kodning (främst central- och östeuropeiska språk och språk med ett icke-latinskt alfabet), måste du konvertera alla dina .properties filer till en ASCII-kodning som stöds av Sweet Home 3D. Denna konvertering kan göras med native2ascii verktyget som medföljer JDK eller kan utföras med följande formulär.
För varje .properties fil, skapa en säkerhetskopia av den filen, kopiera/klistra in texten som ska konverteras i följande textområde, klicka på Konvertera knappen och kopiera/klistra in den konverterade texten tillbaka i dess .properties fil.
Konverteringsverktyget ersätter varje icke-ASCII-tecken (accentuerade latinska bokstäver och icke-latinska bokstäver) med en sekvens som börjar med \u och följs av en 4 hexadecimal sifferkod som matchar det tecknet i Unicode. Tyvärr kommer denna konvertering att göra din text ganska oläslig för en människa, men om du inte utför den kommer Sweet Home 3D inte att kunna visa tecknen i din översättning korrekt. Det är därför du bör skapa en säkerhetskopia av dina ursprungliga .properties filer, om du vill ändra dem senare.
Om du vill redigera .properties filer som konverterats till ASCII direkt, kan du också använda Properties Editor applikationen som finns tillgänglig som en Jar körbar fil här.
Översätta hjälpfilerna
En bra översättning av Sweet Home 3D bör också inkludera översättningen av dess hjälpfiler. Att översätta alla .html filer är en lång uppgift, men det kommer verkligen att hjälpa användarna att lära sig programvaran och undvika vissa supportförfrågningar i Sweet Home 3D-forumet. Använd valfri HTML-redigerare för att översätta dessa filer och försök att hålla länkarna den innehåller och dess stilmall oförändrade.
När du har översatt bör du också skapa skärmdumpar av dialogrutorna på ditt språk för att ersätta bilderna som finns i com/eteks/sweethome3d/viewcontroller/resources/help/en/images. För att kunna skapa sådana skärmdumpar, skapa och testa en första SH3L-fil med följande steg (när en SH3L-fil som innehåller översatta .properties filer finns, kan du också begära att utvecklaren av Sweet Home 3D genererar skärmdumparna).
Skapa SH3L-filen
När alla .properties och .html filer är översatta och konverterade till ASCII om det behövs (eller till och med innan om du vill testa den här proceduren), bör du zippa dem i en fil. Beroende på ditt system kan du skapa en zip-fil med följande procedur:
- under Windows, välj
commappen som innehåller alla översatta filer och välj Skicka till > Komprimerad mapp från dess kontextuella meny, - under Mac OS X, välj
commappen som innehåller alla översatta filer och välj Arkiv > Komprimera « com » menyalternativ, - under Linux, välj
commappen som innehåller alla översatta filer, välj Skapa arkiv… från dess kontextuella meny och välj sedan .zip i formatlistan.
Slutligen, ändra .zip tillägget för zip-filen till .sh3l. En SH3L-fil kan ha vilket namn som helst, men för att undvika konflikter med befintliga SH3L-filer bör du namnge den från språket den innehåller och versionen av Sweet Home 3D du översatte (till exempel kan French-4.1.sh3l vara ett bra namn för den franska översättningen av Sweet Home 3D 4.1).
Testa en SH3L-fil
För att testa översättningen, dubbelklicka på en SH3L-fil eller välj den med Importera språkbiblioteksfil knappen
som visas högst upp i Inställningar fönstret. Detta startar Sweet Home 3D och översätter dess användargränssnitt till språket som beskrivs i SH3L-filen. Detta kommer också att kopiera SH3L-filen i en mapp beroende på ditt system:
- under Windows Vista / 7 / 8 / 10 / 11, är den här mappen C:\Users\användare\AppData\Roaming\eTeks\Sweet Home 3D\languages,
- under Windows XP och tidigare versioner av Windows, är den här mappen C:\Documents and Settings\användare\Application Data\eTeks\Sweet Home 3D\languages,
- under macOS är det undermappen Library/Application Support/eTeks/Sweet Home 3D/languages i din användarmapp,
- under Linux och andra Unix är det undermappen .eteks/sweethome3d/languages i din användarmapp,
- med den bärbara versionen av Sweet Home 3D är det undermappen data/languages i mappen där Sweet Home 3D-applikationen är lagrad,
Observera också att under utvecklingen av din SH3L-fil kommer du förmodligen att behöva starta om Sweet Home 3D för att se ändringarna i din SH3L-fil.
Distribuera SH3L-filer
När din SH3L-fil är klar kan du föreslå den till vem som helst, meddela den till Sweet Home 3D-användare i forumdelen som är reserverad för främmande språk eller på andra platser. Om du samtycker kan den göras tillgänglig på denna webbplats på sidan om översättningar som stöds av Sweet Home 3D.
Uppdatera SH3L-filer
Vissa versioner av Sweet Home 3D ger nya funktioner att översätta, andra inte. Om du inte översätter användargränssnittets etiketter som matchar dessa nya funktioner, kommer Sweet Home 3D att fungera, men alla nya etiketter kommer att visas på engelska. För att hitta de nya nycklarna och de uppdaterade nycklarna i .properties filer, kan du använda en funktion som erbjuds av SourceForge.net som låter dig jämföra två versioner av en projektfil:
- Sök efter datumen för Sweet Home 3D-versioner du vill jämföra i historiken (till exempel 19 juli 2015 för version 5.0 och 2 februari 2015 för version 4.6)
- Klicka på
.propertieseller.htmlfilen du vill uppdatera i figur 1, - Markera de två kryssrutorna för revisionsnumret som matchar versionsdatumet för den uppdaterade filen och välj det datum som ligger precis före ett versionsdatum för Sweet Home 3D,
- Klicka på knappen Jämför.
Det sista klicket visar dig skillnaderna mellan de två versionerna av den .properties filen (till exempel kommer denna länk att visa dig skillnaderna mellan version 4.6 och version 5.0 av filen com/eteks/sweethome3d/viewcontroller/package.properties).
När du har hittat skillnaderna, uppdatera din översättning, lägg till nya nyckelnamn om det behövs och släpp en ny version av din översättning.
