翻訳ガイド
はじめに
Sweet Home 3Dでまだサポートされていない外国語を話し、その言語への翻訳に貢献したいとお考えですか?バージョン2.3から、Sweet Home 3DはSH3Lファイルをサポートしており、このガイドではそのようなファイルを自分で作成する方法を学習できます。SH3Lファイルは自動インストール可能な言語ファイルで、ユーザーはSH3LファイルをダブルクリックするだけでSweet Home 3Dをそのファイルに記述された言語に翻訳できます。
基本的な手順
SH3Lファイルの作成は以下の手順で構成されます:
- 翻訳する英語版ファイルをダウンロードし、
- ダウンロードしたファイルを解凍し、
- 含まれている
.propertiesファイルにお使いの言語に対応する2文字のサフィックスを追加し、 .propertiesファイル内のテキストを翻訳し、- ASCII エンコーディングに変換し、
.htmlファイル内のヘルプテキストを翻訳し(必須ではありませんが、ユーザーにとって非常に有用です)、.propertiesファイルとヘルプファイルをSH3L拡張子のファイルに圧縮し、- SH3LファイルをダブルクリックしてSweet Home 3Dで翻訳をテストし、
- SH3Lファイルを配布します。
詳細な手順
前述の基本的な手順に不安がない場合は、次のステップに進んでください。
英語版の取得
https://www.sweethome3d.com/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ファイルは図1に示すフォルダに配置する必要があります。そうでなければSweet Home 3Dは正しく使用できません。したがって、ファイルをフォルダから移動したり、フォルダの名前を変更したり(helpのenサブディレクトリを除く)、フォルダを削除したりしないでください。
言語に応じたファイル名の変更
.propertiesファイルを翻訳する前に、各ファイル名にアンダースコアとお使いの言語に対応する2文字のISOコードを追加して名前を変更する必要があります。このコードは、文書https://www.loc.gov/standards/iso639-2/php/English_list.phpの最後の列で確認できます。
次に、ヘルプファイルを翻訳する場合は、helpのenサブディレクトリもその2文字コードで名前を変更する必要があります。
例えば、チェコ語のISOコードはcsです。Sweet Home 3Dをチェコ語に翻訳する場合、各ファイル名に_csのサフィックスを付け、図2に示すようにファイル名を変更する必要があります。

プロパティファイルの翻訳
.propertiesファイルはプレーンテキストファイルで、Wordpad、TextEdit、emacsなどの任意のテキストエディタで編集できます。例えば、Sweet Home 3D 3.0のcom/eteks/sweethome3d/package.propertiesファイルには以下のテキストが含まれています:
# 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. 詳細については、GNU General Public License # をご覧ください。 # # このプログラムと共にGNU General Public Licenseのコピーを受け取っているはずです。 # 受け取っていない場合は、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レンダリングシステムで。コンピュータのグラフィックカードの <br>DirectX/OpenGLドライバを更新してください。 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タグ間のテキストの翻訳はそれほど困難ではありませんが、 最も困難なHTMLテキストはWallPanel.wallOrientationLabel.textキーの値かもしれません。 - テキストエディタでの長い行を避けるため、一部の行
は2行以上に分割され、バックスラッシュ
\で区切られています。前の例のSweetHome3D.3DError.messageで始まる行のように。その場合、行の最後にある\記号は削除しないでください。次の行 が現在の行に続くことを示しているからです。 - 一部のテキストには
%記号で始まる特殊文字シーケンスが含まれています。
例えば%s、%d、%1$s、%2$s…などです。これらの文字シーケンス は、必要に応じてファイル名、単位、または数値に置き換えられるため、 削除しないでください。
例えば、次のキーのテキスト内の文字シーケンス%sHomeFurniturePanel.widthLabel.text:
HomeFurniturePanel.widthLabel.text=幅(%s):
は、現在使用中の単位に置き換えられます。次のキーのテキストに現れる2つの文字シーケンス%1$dおよび%2$dPrintPreviewPanel.pageLabel.text:
PrintPreviewPanel.pageLabel.text=ページ %1$d/%2$d
は、画面にページ番号とページ数として表示され、 単語Pageのみを翻訳する必要があります。 - 一部のテキストには特殊文字シーケンス
\nも含まれています。次の例のように:HomeController.saveError=ホームを保存できません "%s"
この文字シーケンスは、Sweet Home 3Dによって画面で行を分割する改行として表示されるため、削除しないでください。 - キー
HelpController.helpIndexの値は、ヘルプファイルが見つかるディレクトリを示します。.htmlヘルプファイルを翻訳する場合は、見つかったenサブディレクトリをお使いの言語の2文字コードに置き換える必要があります。
例えば、ヘルプをチェコ語に翻訳する場合は、次のようになります: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モデルインポートページを使用して、
Catalog.propertiesで終わる.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ファイルを直接編集したい場合は、こちらでJar実行可能ファイルとして利用可能なProperties Editorアプリケーションも使用できます。
ヘルプファイルの翻訳
Sweet Home 3Dの優れた翻訳には、ヘルプファイルの翻訳も含める必要があります。すべての.htmlファイルの翻訳は長い作業ですが、ユーザーがソフトウェアを学習し、Sweet Home 3Dフォーラムでのサポート要求を避けるのに本当に役立ちます。これらのファイルを翻訳するには任意のHTMLエディタを使用し、含まれるリンクとスタイルシートを変更しないようにしてください。
翻訳が完了したら、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:UsersuserAppDataRoamingeTeksSweet Home 3Dlanguagesです、
- Windows XPおよび以前のバージョンのWindowsでは、このフォルダはC:Documents and SettingsuserApplication DataeTeksSweet Home 3Dlanguagesです、
- 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日)
- 図1で、更新したい
.propertiesまたは.htmlファイルをクリックします。 - 更新するファイルのバージョン日付に一致するリビジョン番号の2つのチェックボックスを選択します。Sweet Home 3Dのバージョン日付の直前の日付を選んでください。
- 比較ボタンをクリックします。
最後のクリックで、その.propertiesファイルの2つのバージョン間の違いが表示されます(例えば、このリンクでは、com/eteks/sweethome3d/viewcontroller/package.propertiesファイルのバージョン4.6とバージョン5.0の違いが表示されます)。
差分を見つけたら、必要に応じて新しいキー名を追加して翻訳を更新し、翻訳の新しいバージョンをリリースしてください。