翻譯指南
介紹
您使用的外語在Sweet Home 3D中尚未支持,並且您想為它的翻譯貢獻一份力量嗎?從 2.3 版本開始,Sweet Home 3D 支援 SH3L 文件,本指南將教您如何自行建立此類文件。 SH3L 文件是一種可自動安裝的語言文件,使用者只需雙擊 SH3L 文件即可將 Sweet Home 3D 翻譯成該文件所描述的語言。
基本說明
建立 SH3L 檔案包括以下步驟:
- 下載待翻譯檔案的英文版本,
- 解壓縮下載的文件,
- 在名稱後面加上一個與你的語言相符的兩個字母的後綴
.properties它包含的文件, - 翻譯文字
.properties文件, - 將它們轉換為ASCII編碼,
- 翻譯幫助文本
.html文件(非強制性,但對使用者非常有用), - 拉上拉鍊
.properties檔案和幫助文件都合併到一個副檔名為 SH3L 的檔案中。 - 雙擊 SH3L 文件,即可在 Sweet Home 3D 中測試您的翻譯。
- 分發您的 SH3L 檔案。
詳細說明
如果你不畏懼前面的基本說明,那就繼續下一步吧。
取得英文版
從https://www.sweethome3d.com/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檔案必須放置在圖 1 所示的資料夾中,否則 Sweet Home 3D 將無法正確使用它們。因此,請勿將文件移出其所在資料夾,也不要重命名任何資料夾(除了…)。en子目錄help)並且不要刪除任何資料夾。
根據您的語言重新命名文件
在翻譯之前.properties對於文件,您應該重命名每個文件,方法是在文件名稱後面添加一個下劃線,後面是與您的語言相符的 2 個字元的 ISO 代碼。您可以在文件的最後一列找到此程式碼:https://www.loc.gov/standards/iso639-2/php/English_list.php 。
然後,如果您想翻譯幫助文件,您也應該重新命名它們。en子目錄help也包括那兩個字母的代碼。
例如,捷克語的 ISO 代碼是cs如果你想將《甜蜜家園3D》翻譯成捷克語,每個檔名都應該加上字尾。_cs你應該按照圖 2 所示重新命名檔案。

翻譯屬性文件
這.properties文件是純文字文件,您可以使用任何文字編輯器(例如Wordpad 、 TextEdit或Emacs)來編輯它們。例如,com/eteks/sweethome3d/package.properties Sweet Home 3D 3.0 中的檔案包含以下文字:
# package.properties 2007年10月10日 # 版權所有 (c) 2024 太空蘑菇<[email protected]> 。 版權所有。 # # 本程式為自由軟體;您可以根據以下規定重新分發和/或修改它: # 自由軟體聯盟發布的 GNU 通用公共授權的條款 # 基礎版;授權版本 2,或(由您選擇)任何後續版本 # 版本。 # # 本程式分發的目的是希望它能有用,但並非 # 不提供任何擔保;甚至不提供適銷性或適用性的默示擔保 # 用於特定目的。 更多資訊請參閱 GNU 通用公共授權。 # 細節。 # 您應該已經收到一份 GNU 通用公共授權的副本,以及 # 此程式;如果不是,請寫信至自由軟體基金會,地址:59 Temple 美國麻薩諸塞州波士頓,郵編 02111-1307,地址:# Place, Suite 330 # HomeFramePane 類別的資源 HomeFramePane.untitled = 無標題 # MacOSXConfiguration 類別的資源 MacOSXConfiguration.WINDOW_MENU.Name = 視窗 MacOSXConfiguration.MINIMIZE.Name =最小化 MacOSXConfiguration.ZOOM.Name = Zoom MacOSXConfiguration.BRING_ALL_TO_FRONT.Name = 將所有內容置於最前面 # SweetHome3D課程資源 SweetHome3D.3D錯誤訊息= <html>由於發生致命錯誤,《甜蜜家園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 用來尋找螢幕上顯示文字的鍵值(在前一個範例中以藍色顯示)。在這個鍵值之後,每一行都包含一個等號(
=)以及一段指定語言的文字。你的任務從等號開始。不要更改等號後面的文本,只需將等號後面的英文文本替換為其對應的翻譯即可。
特殊情況:
- 以 a 開頭的文本
<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根據您語言的兩位字母代碼找到的子目錄。
例如,如果您將“幫助”翻譯成捷克語,它應該變成:HelpController.helpIndex=/com/eteks/sweethome3d/viewcontroller/resources/help/CS/index.html
- 以…結尾的金鑰文本
.mnemonicSweet Home 3D 使用此功能來猜測標籤或選單項目中哪個字母需要加下劃線以便鍵盤輸入。這個助記字母取決於顯示的單字,每個對話框或選單的助記字母都是唯一的。
例如,家具修改對話方塊中顯示的以下文字和助記符:家居家具面板.姓名標籤.文本=姓名: 家居家具面板.名稱標籤.助記符=N HomeFurniturePanel.nameVisibleCheckBox.text=在計劃中顯示名稱 HomeFurniturePanel.nameVisibleCheckBox.mnemonic=S HomeFurniturePanel.widthLabel.text=寬度(%s): HomeFurniturePanel.widthLabel.mnemonic=W
可以用以下方式翻譯成法文:家居家具面板.姓名標籤.文本=Nom: 家居家具面板.名稱標籤.助記符=N HomeFurniturePanel.nameVisibleCheckBox.text=在計劃中顯示名稱 HomeFurniturePanel.nameVisibleCheckBox.mnemonic=S HomeFurniturePanel.widthLabel.text=Largeur (%s) : HomeFurniturePanel.widthLabel.mnemonic=L
- 使用 Sweet Home 3D 或3D 模型匯入頁面來協助您進行翻譯
.properties文件以…結尾Catalog.properties。
將屬性檔轉換為 ASCII 編碼
如果您將文字翻譯成使用非ISO-8859-1 編碼字母的語言(主要是中歐和東歐語言以及使用非拉丁字母的語言),則必須轉換所有文字。.properties將檔案轉換為 Sweet Home 3D 支援的 ASCII 編碼。此轉換可以透過以下方式完成:native2ascii可以使用JDK提供的工具,也可以使用以下形式執行。
對於每個.properties要轉換的文件,請先備份該文件,然後將要轉換的文字複製並貼上到下面的文字區域中,點擊「轉換」按鈕,最後將轉換後的文字複製並貼上回原處。.properties文件。
轉換工具會將每個非 ASCII 字元(帶有重音符號的拉丁字母和非拉丁字母)替換為以 開頭的序列。\u後面跟著一個 4 位元十六進位代碼,該代碼與 Unicode 中的該字元相符。遺憾的是,這種轉換會使你的文字對人類來說幾乎無法閱讀,但如果你不進行轉換,《甜蜜家園 3D》將無法正確顯示翻譯後的字符。這就是為什麼你應該備份原始文字的原因。.properties文件,以防您以後想要更改它們。
如果您想直接編輯.properties如果檔案已轉換為 ASCII 格式,您也可以使用此處提供的 Jar 執行檔形式的屬性編輯器應用程式。
翻譯幫助文件
一份好的《甜蜜家園3D》翻譯也應該包括其幫助文件的翻譯。翻譯所有幫助文件。處理這些文件是一項耗時的工作,但它確實能幫助用戶學習軟體,並避免在 Sweet Home 3D 論壇上出現一些支援請求。請使用任何 HTML 編輯器來翻譯這些文件,盡量保持其中包含的連結和樣式表不變。
翻譯完成後,您還應該截取您語言中對話框的螢幕截圖,以替換原有的圖片。com/eteks/sweethome3d/viewcontroller/resources/help/en/images為了能夠創建此類螢幕截圖,請按照以下步驟建立並測試第一個 SH3L 檔案(一旦 SH3L 檔案包含翻譯後的內容)。.properties如果檔案存在,您也可以請 Sweet Home 3D 的開發者產生螢幕截圖)。
創建 SH3L 文件
一旦所有.properties和.html文件將被翻譯並根據需要轉換為 ASCII 格式(或者如果您想測試此過程,甚至可以在此之前進行轉換),您應該將它們壓縮到一個檔案中。根據您的系統,可以使用以下步驟建立 zip 檔案:
- 在Windows系統中,選擇
com選擇包含所有已翻譯檔案的資料夾,然後選擇「傳送到」。>從上下文選單中選擇“壓縮資料夾” , - 在 Mac OS X 系統中,選擇
com選擇包含所有已翻譯檔案的資料夾,然後選擇“檔案”>壓縮“com”選單項, - 在Linux系統下,選擇
com在包含所有已翻譯檔案的資料夾中,從上下文選單中選擇「建立存檔…」 ,然後在格式清單中選擇.zip 。
最後,改變.zipzip 檔案的副檔名.sh3lSH3L 檔案可以有任意名稱,但為了避免與現有 SH3L 檔案衝突,您應該根據其包含的語言和您翻譯的 Sweet Home 3D 版本來命名它(例如,French-4.1.sh3l或許可以作為《甜蜜家園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 便攜式版中,它是 Sweet Home 3D 應用程式所在資料夾的子資料夾 data/languages 中。
另請注意,在開發 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 版本的日期(例如,版本 5.0 的發布日期為 2015 年 7 月 19 日,版本 4.6 的發布日期為 2015 年 2 月 2 日)。
- 點選
.properties或者.html你想更新圖 1的文件, - 選取與更新檔案的版本日期相符的修訂號的兩個複選框,選擇比 Sweet Home 3D 版本日期稍早的日期。
- 點選“比較”按鈕。
最後一次點擊將顯示這兩個版本之間的差異。.properties文件(例如,此連結將顯示文件版本 4.6 和版本 5.0 之間的差異)com/eteks/sweethome3d/viewcontroller/package.properties )。
找到差異後,更新您的翻譯,如有必要,新增新的鍵名,並發布新版本的翻譯。