Översättningsguide
Introduktion
Talar du ett främmande språk som ännu inte stöds i Sweet Home 3D och vill bidra till dess översättning 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 på egen hand. 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 i den filen.
Grundläggande instruktioner
Att skapa en SH3L-fil består av:
- att ladda ner en engelsk version av filerna som ska översättas,
- att packa upp den nedladdade filen,
- att lägga till ett suffix med 2 bokstäver som matchar ditt språk till
.propertiesfilerna den innehåller, - att översätta texten i
.propertiesfilerna, - att konvertera dem till ASCII-kodning,
- att översätta hjälptexten i
.htmlfilerna (inte obligatoriskt men kommer att vara mycket användbart för användarna), - att zippa
.propertiesfilerna och hjälpfilerna tillbaka till en fil med SH3L-tillägg, - att dubbelklicka på SH3L-filen för att testa din översättning i Sweet Home 3D,
- att distribuera din SH3L-fil.
Detaljerade instruktioner
Om du inte är rädd för de tidigare grundläggande instruktionerna, fortsätt med följande steg.
Att få den engelska versionen
Ladda ner arkivet på https://www.sweethome3d.com/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 ska översätta till ditt språk:
package.propertiesfilerna beskriver etiketter, menyer och menyobjekt som visas i användargränssnittet för 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 för hjälpen i Sweet Home 3D.

.properties filerna måste placeras i mapparna som visas i figur 1. annars kommer Sweet Home 3D inte att kunna använda dem korrekt. Så flytta inte filerna ut ur deras mapp, byt inte namn på någon mapp (förutom en undermappen i help) och ta inte bort någon mapp.
Att 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 den 2-tecken ISO-koden som matchar ditt språk till deras namn. Du hittar denna kod i den sista kolumnen i dokumentet https://www.loc.gov/standards/iso639-2/php/English_list.php.
Om du sedan vill översätta hjälpfilerna bör du också byta namn på en undermappen i help med den 2-bokstavskoden också.
Till exempel är ISO-koden för tjeckiska cs. Om du vill översätta Sweet Home 3D till tjeckiska bör varje filnamn ha suffixet _cs, och du bör byta namn på filerna som visas i figur 2.

Att ö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 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. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the 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=Lägg alla överst # Resurser för SweetHome3D-klassen SweetHome3D.3DError.message=<html> Sweet Home 3D kommer att avslutas nu på grund av ett allvarligt fel <br>i 3D-renderingssystemet. Vänligen uppdatera DirectX/OpenGL-drivrutinerna <br>för ditt datorgrafikkortet. 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 modifierade 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. Behå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 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 givet 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.
Specialfall:
- Texterna som börjar med en
<html>tagg innehåller text i HTML-format. Dessa texter innehåller andra HTML-taggar mellan<och>tecken, som<br>i föregående exempel som representerar en radbrytning i mitten av 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 avWallPanel.wallOrientationLabel.textnyckeln. - För att undvika långa rader i textredigeraren är vissa rader
uppdelade i två eller fler rader och sedan separerade av omvända snedstreck
\, som raden som börjar medSweetHome3D.3DError.messagei föregående exempel. I det fallet, 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 kommer teckensekvensen%si texten för följande nyckelHomeFurniturePanel.widthLabel.text:
HomeFurniturePanel.widthLabel.text=Bredd (%s):
att ersättas av den enhet som för närvarande används. De två teckensekvenserna%1$doch%2$dsom visas i texten för 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 endast översätta ordetPage. - Vissa texter innehåller också den speciella teckensekvensen
\n, som i följande exempel:HomeController.saveError=Kan inte spara hem i "%s"
Denna teckensekvens visas av Sweet Home 3D som en radbrytning för att dela upp en rad på skärmen, och du bör inte ta bort dem. - Värdet av nyckeln
HelpController.helpIndexanger katalogen där hjälpfilerna kan hittas. Om du översätter .htmlhjälpfilerna bör du ersättaenundermappen som hittats med 2-bokstavskoden för ditt språk.
Till exempel, om du översätter hjälpen till tjeckiska, bör det bli:HelpController.helpIndex=/com/eteks/sweethome3d/viewcontroller/resources/help/cs/index.html
- Texten för tangenterna som slutar med
.mnemonicanvänds av Sweet Home 3D för att gissa vilken bokstav i en etikett eller 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 med: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 sidan för import av 3D-modeller för att hjälpa dig översätta
.properties-filerna som slutar medCatalog.properties.
Konvertera properties-filer till ASCII-kodning
Om du översatte texter till ett språk med bokstäver som inte tillhör ISO-8859-1-kodning (främst centraleuropeiska och östeuropeiska språk och språk med 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 verktyget native2ascii som medföljer JDK eller kan utföras med följande formulär.
För varje .properties-fil, skapa en säkerhetskopia av filen, kopiera/klistra in texten som ska konverteras i följande textområde, klicka på knappen Konvertera och kopiera/klistra in den konverterade texten tillbaka i dess .properties-fil.
Konverteringsverktyget kommer att ersätta 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-siffrig hexadecimal kod 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. Detta är anledningen till att du bör skapa en säkerhetskopia av dina ursprungliga .properties-filer, ifall du vill ändra dem senare.
Om du vill redigera .properties-filer som konverterats till ASCII direkt, kan du också använda applikationen Properties Editor som finns tillgänglig som en körbar Jar-fil här.
Översätta hjälpfilerna
En bra översättning av Sweet Home 3D bör också inkludera översättning 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 vilken HTML-redigerare som helst för att översätta dessa filer, försök att behålla länkarna den innehåller och dess stilmall oförändrad.
När de är översatta 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 nödvändigt (eller till och med innan om du vill testa denna procedur), bör du zippa dem i en fil. Beroende på ditt system kan skapandet av en zip-fil göras med följande procedur:
- under Windows, välj mappen
comsom innehåller alla översatta filer och välj Skicka till > Komprimerad mapp från dess kontextmeny, - under Mac OS X, välj mappen
comsom innehåller alla översatta filer och välj menyalternativet Arkiv > Komprimera « com », - under Linux, välj mappen
comsom innehåller alla översatta filer, välj Skapa arkiv… från dess kontextmeny och välj sedan .zip i formatlistan.
Slutligen, ändra .zip-tillägget på 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 efter språket den innehåller och versionen av Sweet Home 3D du översatte (till exempel, French-4.1.sh3l skulle kunna 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 knappen Importera språkbiblioteksfil
som visas överst i rutan Inställningar. Detta kommer att starta Sweet Home 3D och översätta dess användargränssnitt till språket som beskrivs i SH3L-filen. Detta kommer också att kopiera SH3L-filen till en mapp beroende på ditt system:
- under Windows Vista / 7 / 8 / 10 / 11, är denna mapp C:UsersanvändareAppDataRoamingeTeksSweet Home 3Dlanguages,
- under Windows XP och tidigare versioner av Windows, är denna mapp C:Documents and SettingsanvändareApplication DataeTeksSweet Home 3Dlanguages,
- 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 portabla 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 Sweet Home 3D-användare i forumdelen som är reserverad för främmande språk eller på andra platser. Om du går med på det 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 innehåller nya funktioner att översätta, andra gör det inte. Om du inte översätter användargränssnittsetiketterna 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 datumen för Sweet Home 3D-versioner du vill jämföra i historik (till exempel 19 juli 2015 för version 5.0 och 2 februari 2015 för version 4.6)
- Klicka på
.properties– eller.html-filen du vill uppdatera i figur 1, - Markera de två kryssrutorna för revisionsnumret som matchar versionsdatumet för den uppdaterade filen, välj datumet som är 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.