Przewodnik tłumaczenia
Wprowadzenie
Znasz język obcy, który nie jest jeszcze obsługiwany w Sweet Home 3D i chciałbyś przyczynić się do jego tłumaczenia? Od wersji 2.3 Sweet Home 3D obsługuje pliki SH3L, a ten przewodnik pokaże Ci, jak samodzielnie stworzyć taki plik. Plik SH3L to automatycznie instalujący się plik językowy – użytkownicy muszą jedynie dwukrotnie kliknąć plik SH3L, aby przetłumaczyć Sweet Home 3D na język opisany w tym pliku.
Podstawowe instrukcje
Tworzenie pliku SH3L polega na:
- downloading an English version of the files to translate,
- rozpakowaniu pobranego pliku,
- dodaniu 2-literowego sufiksu odpowiadającego Twojemu językowi do plików
.properties, które zawiera, - przetłumaczeniu tekstu w plikach
.properties, - przekonwertowaniu ich na kodowanie ASCII,
- przetłumaczeniu tekstu pomocy w plikach
.html(nieobowiązkowe, ale bardzo przydatne dla użytkowników), - spakowaniu plików
.propertiesi plików pomocy z powrotem do pliku z rozszerzeniem SH3L, - dwukrotnym kliknięciu pliku SH3L, aby przetestować tłumaczenie w Sweet Home 3D,
- rozpowszechnieniu swojego pliku SH3L.
Szczegółowe instrukcje
Jeśli nie przerażają Cię powyższe podstawowe instrukcje, przejdź do następnych kroków.
Pobieranie wersji angielskiej
Download the archive at https://www.sweethome3d.com/SweetHome3DTranslation.zip (version 7.5) and unzip it with the tools of your system.
SweetHome3DTranslation.zip contains a set of files with .properties and .html extensions placed in subfolders as shown in figure 1.

Wszystkie pliki .properties i .html zawierają angielską wersję tekstów, które będziesz musiał przetłumaczyć na swój język:
- pliki
package.propertiesopisują etykiety, menu i elementy menu wyświetlane w interfejsie użytkownika Sweet Home 3D, - pliki
basic.propertiesimetal.propertiesopisują standardowe etykiety okien dialogowych, - te kończące się na
Catalog.propertiesopisują nazwy mebli i tekstur dostępnych w programie, - pliki
.htmlzawierają tekst pomocy Sweet Home 3D.

Pliki .properties muszą być umieszczone w folderach pokazanych na rysunku 1, w przeciwnym razie Sweet Home 3D nie będzie mógł ich poprawnie wykorzystać. Nie przenoś więc plików z ich folderów, nie zmieniaj nazw folderów (z wyjątkiem podkatalogu en w help) i nie usuwaj żadnych folderów.
Zmiana nazw plików w zależności od języka
Przed przetłumaczeniem plików .properties powinieneś zmienić nazwę każdego z nich, dodając do ich nazwy podkreślenie i 2-znakowy kod ISO odpowiadający Twojemu językowi. Kod ten znajdziesz w ostatniej kolumnie dokumentu https://www.loc.gov/standards/iso639-2/php/English_list.php.
Następnie, jeśli chcesz przetłumaczyć pliki pomocy, powinieneś również zmienić nazwę podkatalogu en w help na ten 2-literowy kod.
Na przykład, kod ISO dla języka czeskiego to cs. Jeśli chcesz przetłumaczyć Sweet Home 3D na czeski, każda nazwa pliku powinna mieć sufiks _cs, a pliki należy przemianować jak pokazano na rysunku 2.

Tłumaczenie plików właściwości
Pliki .properties to zwykłe pliki tekstowe i możesz je edytować dowolnym edytorem tekstu, takim jak Wordpad, TextEdit lub emacs. Na przykład, plik com/eteks/sweethome3d/package.properties w Sweet Home 3D 3.0 zawiera następujący tekst:
# 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 # Zasoby dla klasy HomeFramePane HomeFramePane.untitled=Bez tytułu # Zasoby dla klasy MacOSXConfiguration MacOSXConfiguration.WINDOW_MENU.Name=Okno MacOSXConfiguration.MINIMIZE.Name=Minimalizuj MacOSXConfiguration.ZOOM.Name=Powiększ MacOSXConfiguration.BRING_ALL_TO_FRONT.Name=Przenieś wszystko na wierzch # Zasoby dla klasy SweetHome3D SweetHome3D.3DError.message=<html> Sweet Home 3D zostanie teraz zamknięty z powodu krytycznego błędu <br>w systemie renderowania 3D. Proszę zaktualizować sterowniki DirectX/OpenGL <br>karty graficznej komputera. SweetHome3D.3DError.title=Błąd 3D SweetHome3D.confirmSaveAfter3DError.message=<html> Sweet Home 3D musi zostać teraz zamknięty z powodu krytycznego błędu w <br>systemie renderowania 3D. Czy chcesz zapisać wszystkie zmodyfikowane projekty? SweetHome3D.confirmSaveAfter3DError.title=Błąd 3D SweetHome3D.confirmSaveAfter3DError.save=Zapisz SweetHome3D.confirmSaveAfter3DError.doNotSave=Nie zapisuj
Plik .properties zawiera trzy rodzaje linii:
- linie rozpoczynające się od znaku # to komentarze (pokazane na zielono w powyższym przykładzie). Niektóre komentarze zawierają informacje prawne, niektóre zawierają informacje dla programistów lub tłumaczy. Pozostaw te linie bez zmian.
- puste linie służą do oddzielenia różnych części pliku
.properties. - pozostałe linie zaczynają się od tekstu używanego przez Sweet Home 3D jako klucz do znalezienia tekstu wyświetlanego na ekranie (pokazanego na niebiesko w powyższym przykładzie). Po tym kluczu każda z tych linii zawiera znak równości (
=) i tekst w danym języku. Twoja praca zaczyna się od znaków równości. Nie zmieniaj tekstu klucza i zastąp tekst angielski po znaku równości jego tłumaczeniem.
Przypadki szczególne:
- Teksty zaczynające się od
<html>znacznika zawierają tekst w formacie HTML. Teksty te zawierają inne znaczniki HTML między<i>znakami, jak<br>w poprzednim przykładzie , który reprezentuje znak nowej linii w środku długich tekstów. Nie usuwaj tych znaczników HTML, pomagają one Sweet Home 3D poprawnie prezentować niektóre teksty. Tłumaczenie tekstu między znacznikami HTML nie jest bardzo trudne, z wyjątkiem może najgorszego tekstu HTML, który jest wartością kluczaWallPanel.wallOrientationLabel.text. - Aby uniknąć długich linii w edytorze tekstu, niektóre linie
są podzielone na dwie lub więcej linii i oddzielone ukośnikami
\, jak linia zaczynająca się odSweetHome3D.3DError.messagew poprzednim przykładzie. W takim przypadku nie usuwaj znaku\znajdującego się na końcu linii, ponieważ wskazuje on, że następna linia jest kontynuacją bieżącej linii. - Niektóre teksty zawierają specjalne sekwencje znaków zaczynające się
znakiem
%, jak%s,%d,%1$s,%2$s… Te sekwencje znaków zostaną zastąpione nazwą pliku, jednostką lub liczbą w razie potrzeby, więc nie usuwaj ich.
Na przykład, sekwencja znaków%sw tekście następującego kluczaHomeFurniturePanel.widthLabel.text:
HomeFurniturePanel.widthLabel.text=Szerokość (%s):
zostanie zastąpiona aktualnie używaną jednostką. Dwie sekwencje znaków%1$di%2$dktóre pojawiają się w tekście następującego kluczaPrintPreviewPanel.pageLabel.text:
PrintPreviewPanel.pageLabel.text=Strona %1$d/%2$d
pojawią się na ekranie jako numer strony i liczba stron, a ty powinieneś przetłumaczyć tylko słowoPage. - Niektóre teksty zawierają również specjalną sekwencję znaków
\njak w następującym przykładzie:HomeController.saveError=Nie można zapisać projektu w "%s"
Ta sekwencja znaków jest wyświetlana przez Sweet Home 3D jako znak nowej linii do podziału linii na ekranie i nie powinieneś ich usuwać. - Wartość klucza
HelpController.helpIndexwskazuje katalog, w którym można znaleźć pliki pomocy. Jeśli tłumaczysz pliki pomocy .html, powinieneś zastąpić podkatalogen2-literowym kodem swojego języka.
Na przykład, jeśli tłumaczysz pomoc na czeski, powinno to wyglądać tak:HelpController.helpIndex=/com/eteks/sweethome3d/viewcontroller/resources/help/cs/index.html
- Tekst kluczy kończących się na
.mnemonicjest używany przez Sweet Home 3D do odgadnięcia, która litera w etykiecie lub elemencie menu powinna być podkreślona dla dostępu z klawiatury. Ta litera mnemoniczna zależy od wyświetlanego słowa i powinieneś znaleźć unikalną literę dla każdego okna dialogowego lub menu.
Na przykład, następujące teksty i mnemoniki wyświetlane w oknie dialogowym modyfikacji mebli:HomeFurniturePanel.nameLabel.text=Nazwa: HomeFurniturePanel.nameLabel.mnemonic=N HomeFurniturePanel.nameVisibleCheckBox.text=Wyświetl nazwę w planie HomeFurniturePanel.nameVisibleCheckBox.mnemonic=W HomeFurniturePanel.widthLabel.text=Szerokość (%s): HomeFurniturePanel.widthLabel.mnemonic=S
mogą być przetłumaczone na francuski jako: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
- Use Sweet Home 3D or 3d models import page to help you translate the
.propertiesfiles ending byCatalog.properties.
Konwertowanie plików właściwości na kodowanie ASCII
Jeśli przetłumaczyłeś teksty na język zawierający litery nienależące do kodowania ISO-8859-1 (głównie języki Europy Środkowej i Wschodniej oraz języki z alfabetem nielacińskim), będziesz musiał przekonwertować wszystkie swoje pliki .properties na kodowanie ASCII obsługiwane przez Sweet Home 3D. Konwersję tę można wykonać za pomocą narzędzia native2ascii dostarczonego z JDK lub za pomocą poniższego formularza.
Dla każdego pliku .properties utwórz kopię zapasową tego pliku, skopiuj/wklej tekst do konwersji w poniższe pole tekstowe, kliknij przycisk Konwertuj i skopiuj/wklej przekonwertowany tekst z powrotem do pliku .properties.
Narzędzie konwersji zastąpi każdy znak spoza ASCII (litery łacińskie z akcentami i litery niełacińskie) sekwencją rozpoczynającą się od \u, po której następuje 4-cyfrowy kod szesnastkowy odpowiadający temu znakowi w Unicode. Niestety, ta konwersja sprawi, że tekst będzie prawie nieczytelny dla człowieka, ale jeśli jej nie wykonasz, Sweet Home 3D nie będzie w stanie poprawnie wyświetlić znaków twojego tłumaczenia. Z tego powodu powinieneś utworzyć kopię zapasową oryginalnych plików .properties, na wypadek gdybyś chciał je później zmienić.
Jeśli chcesz bezpośrednio edytować pliki .properties przekonwertowane na ASCII, możesz również użyć aplikacji Properties Editor dostępnej jako plik wykonywalny Jar tutaj.
Tłumaczenie plików pomocy
Dobre tłumaczenie Sweet Home 3D powinno również zawierać tłumaczenie plików pomocy. Przetłumaczenie wszystkich plików .html to długie zadanie, ale naprawdę pomoże użytkownikom w nauce oprogramowania i uniknie niektórych próśb o pomoc na forum Sweet Home 3D. Użyj dowolnego edytora HTML do tłumaczenia tych plików, starając się zachować zawarte w nich linki i arkusz stylów bez zmian.
Po przetłumaczeniu powinieneś również utworzyć zrzuty ekranu okien dialogowych w swoim języku, aby zastąpić obrazy znajdujące się w com/eteks/sweethome3d/viewcontroller/resources/help/en/images. Aby móc utworzyć takie zrzuty ekranu, stwórz i przetestuj pierwszy plik SH3L, wykonując następujące kroki (gdy istnieje już plik SH3L zawierający przetłumaczone pliki .properties, możesz również poprosić dewelopera Sweet Home 3D o wygenerowanie zrzutów ekranu).
Tworzenie pliku SH3L
Gdy wszystkie pliki .properties i .html są przetłumaczone i w razie potrzeby przekonwertowane na ASCII (lub nawet wcześniej, jeśli chcesz przetestować tę procedurę), powinieneś spakować je do pliku zip. W zależności od twojego systemu, tworzenie pliku zip można wykonać według następującej procedury:
- w systemie Windows wybierz folder
comzawierający wszystkie przetłumaczone pliki i wybierz Wyślij do > Folder skompresowany z menu kontekstowego, - w systemie Mac OS X wybierz folder
comzawierający wszystkie przetłumaczone pliki i wybierz pozycję menu Plik > Kompresuj „com”, - w systemie Linux wybierz folder
comzawierający wszystkie przetłumaczone pliki, wybierz Utwórz archiwum… z menu kontekstowego, a następnie wybierz .zip z listy formatów.
Na koniec zmień rozszerzenie pliku zip z .zip na .sh3l. Plik SH3L może mieć dowolną nazwę, ale aby uniknąć konfliktów z istniejącymi plikami SH3L, powinieneś nazwać go od języka, który zawiera, i wersji Sweet Home 3D, którą przetłumaczyłeś (na przykład, French-4.1.sh3l mogłaby być dobrą nazwą dla francuskiego tłumaczenia Sweet Home 3D 4.1).
Testowanie pliku SH3L
Aby przetestować tłumaczenie, kliknij dwukrotnie plik SH3L lub wybierz go za pomocą przycisku Importuj plik biblioteki językowej
wyświetlanego u góry panelu Preferencje. Spowoduje to uruchomienie Sweet Home 3D i przetłumaczenie interfejsu użytkownika na język opisany w pliku SH3L. Spowoduje to również skopiowanie pliku SH3L do folderu zależnego od twojego systemu:
- w systemie Windows Vista / 7 / 8 / 10 / 11 ten folder to C:\Users\użytkownik\AppData\Roaming\eTeks\Sweet Home 3D\languages,
- w systemie Windows XP i wcześniejszych wersjach Windows ten folder to C:\Documents and Settings\użytkownik\Application Data\eTeks\Sweet Home 3D\languages,
- w systemie macOS to podfolder Library/Application Support/eTeks/Sweet Home 3D/languages w twoim folderze użytkownika,
- w systemie Linux i innych systemach Unix to podfolder .eteks/sweethome3d/languages w twoim folderze użytkownika,
- w przenośnej wersji Sweet Home 3D to podfolder data/languages w folderze, w którym przechowywana jest aplikacja Sweet Home 3D,
Pamiętaj też, że podczas tworzenia pliku SH3L prawdopodobnie będziesz musiał ponownie uruchomić Sweet Home 3D, aby zobaczyć zmiany w swoim pliku SH3L.
Dystrybucja plików SH3L
Once your SH3L file is ready, you can propose it to anyone, announce it to Sweet Home 3D users in the forum part reserved to foreign languages or in other places. If you agree, it can be made available on this web site in the page about translations supported by Sweet Home 3D.
Aktualizacja plików SH3L
Niektóre wydania Sweet Home 3D wprowadzają nowe funkcje do przetłumaczenia, niektóre nie. Jeśli nie przetłumaczysz etykiet interfejsu użytkownika odpowiadających tym nowym funkcjom, Sweet Home 3D będzie działać, ale wszystkie nowe etykiety pojawią się po angielsku. Aby znaleźć nowe klucze i zaktualizowane klucze w plikach .properties, możesz skorzystać z funkcji oferowanej przez SourceForge.net, która pozwala porównać dwie wersje pliku projektu:
- Search the dates of Sweet Home 3D versions you want to compare in history (for example, July 19, 2015 for version 5.0 and February 2, 2015 for version 4.6)
- Kliknij plik
.propertieslub.html, który chcesz zaktualizować, na rysunku 1, - Zaznacz dwa pola wyboru numeru rewizji odpowiadającego dacie wersji dla zaktualizowanego pliku, wybierając datę, która jest tuż przed datą wersji Sweet Home 3D,
- Kliknij przycisk Porównaj.
Ostatnie kliknięcie pokaże ci różnice między dwiema wersjami tego pliku .properties (na przykład ten link pokaże ci różnice między wersją 4.6 a wersją 5.0 pliku com/eteks/sweethome3d/viewcontroller/package.properties).
Po znalezieniu różnic zaktualizuj swoje tłumaczenie, dodając w razie potrzeby nowe nazwy kluczy, i wydaj nową wersję swojego tłumaczenia.