Python モジュールを使用してジオプロセシング ツールボックスを配布する場合、ArcGIS がサポートするすべての言語に対応するようにモジュールをカスタマイズできます。サポートされている各言語用のヘルプ ファイルとサポート ファイルは、ヘルプ ディレクトリに格納されています。英語をデフォルトとし、10 種類の言語すべてに対して作成した場合のヘルプ ディレクトリの構造を、以下に示します。

最初に検索されるディレクトリは、オペレーティング システムのロケール設定を使用して決定されます。英語の場合は、最上位のジオプロセシング ディレクトリが使用されます。このディレクトリは、特定の言語のディレクトリ内に検索対象のファイルが見つからない場合に、デフォルトで使用されます。メッセージ ディレクトリには、Python ツールボックスおよび Python スクリプト ツール内で使用されるローカライズ可能な文字列の *.xml ファイルが格納されます。ツールボックス ディレクトリは、バイナリ ツールボックス (モデルとスクリプト ツールを含むカスタム ツールボックス) のローカライズ可能なラベルをオーバーライドするために使用されます。
ジオプロセシング ディレクトリには、ツールボックスおよびツール内のサイドパネルのヘルプの *.xml ファイルが格納されます。これらの *.xml ファイルは、下の createtoolboxsupportfiles 関数を使用して、[アイテム説明] ショートカット メニューで編集されるツールボックスのメタデータから生成されます。このコマンドは、どのツールボックスに対しても有効です。
arcpy.gp.createtoolboxsupportfiles(<path to .tbx or .pyt>)
このコマンドを実行すると、ツールボックスのすべてのサポート ファイルが、上で説明した esri フォルダー構造内に生成されます。コマンドに入力したパスが指すツールボックスと同じ場所に、esri ディレクトリが作成されます。新しく生成された esri ディレクトリの構造は、以下のようになります。

サイドパネルのヘルプ ファイルは、esri/help/gp ディレクトリに配置されます。ローカライズ可能なラベルのファイルは、esri/help/gp/toolboxes ディレクトリに配置されます。ツールボックス用の ArcPy ラッパーは、esri/arcpy ディレクトリ内に作成されます。また、スクリプト ツールまたは Python ツールボックスで使用されるエラー メッセージをローカライズ可能にするために、メッセージ ディレクトリを esri/help/gp ディレクトリ内に作成する必要があります (まだ作成されていない場合)。ツールボックスとサポート用の Python スクリプトが格納されたメッセージ ディレクトリを、既存の配布用ディレクトリ構造にコピーする必要があります。メッセージ ディレクトリを作成し、ツールボックス ディレクトリを esri ディレクトリにコピーすると、ディレクトリ構造は以下のようになります。

esri/help/gp および esri/help/gp/toolboxes の下に言語固有の *.xml ファイルを作成して、ツールボックスとツールのローカライズ済みプロパティを所定の場所に配置するとともに、スクリプト ツールまたは Python ツールボックスで使用されるローカライズ済みエラー メッセージを格納するために、*.xml ファイルを 1 つ追加する必要があります。messages.xml という名前の新しい *.xml ファイルを、esri/help/messages ディレクトリ内に作成します。
messages.xml
messages.xml を作成するためのサンプル コードを次に示します。
<Messages>
<Message><ID>unique_string</ID><Description>%1 welcome to the sample tool</Description></Message>
</Messages>
この変更を反映するには、「Python モジュールによるジオプロセシングの拡張」の SamplePythonToolbox.pyt の execute メソッドを編集して、AddMessage メソッドの代わりに AddIDMessage メソッドを使用する必要があります。新しい execute メソッドは、次のようになります。
Python ツールボックスの execute メソッド
SamplePythonToolbox.pyt 内の execute メソッドを編集するためのサンプル コードを次に示します。
def execute(self, parameters, messages):
"""The source code of the tool."""
messages.AddIDMessage('informative', 'unique_string', os.getenv('username') )
foo.hello()
return
AddIDMessage メソッドは、esri/help/messages ディレクトリ内の messages.xml ファイルに格納された外部メッセージにアクセスするための効果的な方法を提供します。この例では、unique_string ID のマークが付けられたメッセージが使用されます。メッセージには、任意の文字列を使用できます。Python ID のメッセージでは、整数または文字列を使用できます。整数は Esri メッセージを参照し、文字列は、サードパーティの開発者またはユーザーが使用します。文字列を一意にする方が簡単であるため、会社名を使用してメッセージ ID を設定することをお勧めします。
これらの変更を適切に行うと、新しい配布用ディレクトリ構造は以下のようになります。

これらの変更を反映するには、setup.py を編集する必要があります。次に、ローカライズ用の新しい setup.py を示します。
ローカライズ用の新しい setup.py
ローカライズ用のディレクトリを含む setup.py のサンプル コードを次に示します。
from distutils.core import setup
setup(name='foo',
version='1.0',
packages=['foo'],
package_dir={'foo': 'foo'},
package_data={'foo': ['esri/toolboxes/*.*', 'esri/arcpy/*.*', 'esri/help/gp/*.*',
'esri/help/gp/messages/*.*', 'esri/help/gp/toolboxes/*.*']},
)
ここで、*.xml ファイルを、ツールボックスとモジュールがサポートする言語になるように編集し、上で示した各言語のディレクトリにコピーできます。英語の他にスペイン語用の言語ファイルを配布する場合、ディレクトリ構造は以下のようになります。

スペイン語版ローカライズを配布するように変更するには、setup.py を編集する必要があります。次に、スペイン語化ローカライズを含む新しい setup.py を示します。
スペイン語版ローカライズ用の新しい setup.py
スペイン語版ローカライズ用のディレクトリを含む setup.py のサンプル コードを次に示します。
from distutils.core import setup
setup(name='foo',
version='1.0',
packages=['foo'],
package_dir={'foo': 'foo'},
package_data={'foo': ['esri/toolboxes/*.*', 'esri/arcpy/*.*',
'esri/help/gp/*.*', 'esri/help/gp/messages/*.*',
'esri/help/gp/toolboxes/*.*', 'esri/help/es/gp/*.*',
'esri/help/es/gp/messages/*.*', 'esri/help/es/gp/toolboxes/*.*']},
)
このプロセスを行った後に、単独でインストール可能なパッケージの構築と配布が可能になります。このパッケージは、簡単な *.xml ベースの方法で複数の言語をサポートし、オペレーティング システムのロケール設定に対応します。Python モジュールによってジオプロセシングを拡張することで、言語ごとにツールボックスとツールを作成しなくても、ArcGIS がサポートする 10 種類の言語すべてを配布できます。