はじめに
Sweet Home 3D でまだサポートされていない外国語を話していて、その言語への翻訳に貢献したいですか?バージョン 2.3 以降、Sweet Home 3D は SH3L ファイルをサポートしています。このガイドでは、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 には、図 1 に示すように、サブフォルダーに配置された .properties および .html 拡張子を持つ一連のファイルが含まれています。

すべての.properties および .html ファイルには、言語に翻訳する必要があるテキストの英語版が含まれています。
package.propertiesファイルは、Sweet Home 3D のユーザーインターフェースに表示されるラベル、メニュー、およびメニュー項目を記述します。basic.propertiesおよびmetal.propertiesファイルは、標準のダイアログラベルを記述します。Catalog.propertiesで終わるものは、ソフトウェアで利用可能な家具とテクスチャの名前を記述します。.htmlファイルには、Sweet Home 3D のヘルプのテキストが含まれています。
言語に応じてファイルの名前を変更する
.propertiesファイルを翻訳する前に、各ファイルの名前の末尾に、言語に一致する 2 文字の ISO コードをアンダースコアに続けて追加して、名前を変更する必要があります。このコードは、ドキュメント
次に、ヘルプファイルを翻訳する場合は、
たとえば、チェコ語の ISO コードは _cs を付加し、図 2 に示すようにファイルの名前を変更する必要があります。

プロパティファイルの翻訳
.propertiesファイルはプレーンテキストファイルであり、ワードパッド、テキストエディット、または emacs などのテキストエディターで編集できます。たとえば、Sweet Home 3D 3.0 の com/eteks/sweethome3d/package.properties ファイルには、次のテキストが含まれています。
# package.properties 2007 年 10 月 8 日 # # 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 の詳細を参照してください # 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 # HomeFramePane クラスのリソース HomeFramePane.untitled=無題 # MacOSXConfiguration クラスのリソース MacOSXConfiguration.WINDOW_MENU.Name=ウィンドウ MacOSXConfiguration.MINIMIZE.Name=最小化 MacOSXConfiguration.ZOOM.Name=ズーム MacOSXConfiguration.BRING_ALL_TO_FRONT.Name=すべてを前面に表示 # SweetHome3D クラスのリソース 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ファイルには、次の 3 種類の行が含まれています。
- # 文字で始まる行はコメントです(前の例では緑色で表示)。一部のコメントには法的情報が含まれ、一部は開発者または翻訳者に情報を提供します。これらの行は変更しないでください。
- 空の行は、
.propertiesファイルのさまざまな部分を区切るために使用されます。 - その他の行は、Sweet Home 3D が画面に表示されるテキストを見つけるためのキーとして使用するテキストで始まります(前の例では青色で表示)。このキーに続いて、これらの各行には等号(
=)と特定の言語のテキストが含まれています。あなたの仕事は等号から始まります。キーのテキストを変更せずに、等号の後の英語のテキストを翻訳に置き換えてください。
特別なケース:
- 「で始まるテキスト
<html>タグには、HTML 形式のテキストが含まれています。これらのテキストには、他の HTML タグが含まれています<と>記号の間、たとえば<br>前の の例では、長いテキストの中央でのキャリッジリターンを表しています。 これらの HTML タグを削除しないでください。Sweet Home 3D が一部のテキストを正しく表示するのに役立ちます。 HTML タグ間のテキストの翻訳はそれほど難しくありません。 おそらくWallPanel.wallOrientationLabel.textキーの値である最悪の HTML テキストを除いて。 - テキストエディターで長い行を避けるために、一部の行
は 2 つ以上の行に分割され、バックスラッシュで区切られています
\、 で始まる行のようにSweetHome3D.3DError.message前の例で。その場合、\行の末尾にある記号は、次の行が現在の行に続くことを示しているため、削除しないでください 。 - 一部のテキストには、
で始まる特殊文字シーケンスが含まれています
% 記号、%s、%d、%1$s、%2$s… これらの文字シーケンス は、必要に応じてファイル名、単位、または数値に置き換えられるため、削除しないでください。
たとえば、文字シーケンス%s次のキーのテキストHomeFurniturePanel.widthLabel.text:
HomeFurniturePanel.widthLabel.text=幅 (%s):
は、現在使用中の単位に置き換えられます。2 つの文字シーケンス%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ヘルプファイルを翻訳する場合は、言語の 2 文字コードでenサブディレクトリを置き換える必要があります。
たとえば、ヘルプをチェコ語に翻訳する場合は、次のようになります。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ファイルの翻訳を支援します。
プロパティファイルを ASCII エンコーディングに変換する
ISO-8859-1 エンコーディング に属さない文字(主に中央および東ヨーロッパの言語、および非ラテンアルファベットを使用する言語)を含む言語にテキストを翻訳した場合は、すべての .properties ファイルを Sweet Home 3D でサポートされている ASCII エンコーディングに変換する必要があります。この変換は、JDK に付属の native2ascii ツールで行うか、次の形式で実行できます。
各 .properties ファイルについて、そのファイルのバックアップを作成し、変換するテキストを次のテキストエリアにコピー/ペーストし、変換 ボタンをクリックして、変換されたテキストを .properties ファイルにコピー/ペーストします。
変換ツールは、各非 ASCII 文字(アクセント付きラテン文字および非ラテン文字)を \u で始まり、Unicode でその文字に一致する 4 桁の 16 進数コードが続くシーケンスに置き換えます。残念ながら、この変換により、テキストは人間にとって非常に読みにくくなりますが、実行しないと、Sweet Home 3D は翻訳の文字を正しく表示できません。これが、後で変更する場合に備えて、元の .properties ファイルのバックアップを作成する必要がある理由です。
ASCII に変換された .properties ファイルを直接編集する場合は、Properties Editor アプリケーションを Jar 実行可能ファイルとして使用することもできます こちら。
ヘルプファイルの翻訳
Sweet Home 3D の優れた翻訳には、ヘルプファイルの翻訳も含まれている必要があります。すべての
翻訳したら、com/eteks/sweethome3d/viewcontroller/resources/help/en/images にある画像を置き換えるために、言語でダイアログボックスのスクリーンキャプチャも作成する必要があります。このようなスクリーンキャプチャを作成できるようにするには、次の手順で最初の SH3L ファイルを作成してテストします(翻訳された .properties ファイルを含む SH3L ファイルが存在する場合は、Sweet Home 3D の 開発者 にスクリーンキャプチャの生成をリクエストすることもできます)。
SH3L ファイルの作成
すべての .properties および .html ファイルが翻訳され、必要に応じて ASCII に変換されたら(または、この手順をテストする場合はそれ以前でも)、それらをファイルに圧縮する必要があります。システムによっては、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のポータブル版では、Sweet Home 3Dアプリケーションが保存されているフォルダのサブフォルダdata/languagesにあります。
また、SH3Lファイルの開発中には、SH3Lファイルの変更を確認するために、Sweet Home 3Dを再起動する必要がある場合がありますのでご注意ください。
SH3Lファイルの配布
SH3Lファイルの準備ができたら、誰にでも提案したり、外国語専用のフォーラムや他の場所でSweet Home 3Dユーザーに告知したりできます。ご希望であれば、Sweet Home 3Dでサポートされている翻訳に関するこのウェブサイトのページで公開することも可能です。
SH3Lファイルの更新
Sweet Home 3Dのリリースによっては、翻訳する新機能が追加されるものと、そうでないものがあります。これらの新機能に対応するユーザーインターフェースのラベルを翻訳しない場合でも、Sweet Home 3Dは動作しますが、新しいラベルはすべて英語で表示されます。.propertiesファイル内の新しいキーと更新されたキーを見つけるには、SourceForge.netが提供する、プロジェクトファイルの2つのバージョンを比較できる機能を使用できます。
- 履歴で比較したいSweet Home 3Dのバージョンの日付を検索します(例:バージョン5.0の場合は2015年7月19日、バージョン4.6の場合は2015年2月2日)。
.propertiesまたは.htmlファイルを 図1 で更新したいファイルをクリックし、- 更新するファイルに対応するバージョン日付のリビジョン番号の2つのチェックボックスをオンにし、Sweet Home 3Dのバージョン日付の直前の日付を選択します。
- 比較ボタンをクリックします。
最後のクリックで、その.propertiesファイルの2つのバージョン間の違いが表示されます(たとえば、このリンクをクリックすると、com/eteks/sweethome3d/viewcontroller/package.propertiesファイルのバージョン4.6とバージョン5.0の違いが表示されます)。
違いを見つけたら、翻訳を更新し、必要に応じて新しいキー名を追加して、翻訳の新しいバージョンをリリースします。
