Beim Verteilen von Geoverarbeitungs-Toolboxes mit Python-Modulen können die Module angepasst werden, um alle von ArcGIS unterstützten Sprachen zu unterstützen. Die Hilfe- und Unterstützungsdateien für diese unterstützten Sprachen werden im Hilfe-Verzeichnis gespeichert. Nachfolgend finden Sie die Hilfe-Verzeichnisstruktur, wenn sie für alle 10 Sprachen mit Englisch als Standardsprache erstellt wird:

Die Gebietsschemaeinstellung des Betriebssystems wird verwendet, um festzulegen, welches Verzeichnis zuerst durchsucht werden soll. Das oberste gp-Verzeichnis wird für die englische Sprache verwendet und ist das Standardverzeichnis, wenn die durchsuchte Datei in keinem der sprachspezifischen Verzeichnisse gefunden wird. Das messages-Verzeichnis enthält die .xml-Datei der lokalisierbaren Zeichenfolgen, die in der Python-Toolbox und den Python-Skriptwerkzeugen verwendet werden, während im toolboxes-Verzeichnis die lokalisierbaren Beschriftungen für binäre Toolboxes (benutzerdefinierte Toolboxes mit Modell- und Skriptwerkzeugen) überschrieben werden.
Im gp-Verzeichnis werden die .xml-Dateien für die Hilfe im Seitenbereich der Toolbox und des Werkzeugs gespeichert. Diese .xmlXML-Dateien werden aus den Metadaten der Toolbox generiert, die im Kontextmenü der Elementbeschreibung mithilfe der nachfolgenden Funktion createtoolboxsupportfiles bearbeitet werden. Der Befehl kann für jede Toolbox verwendet werden.
arcpy.gp.createtoolboxsupportfiles(<path to .tbx or .pyt>)
Dieser Befehl generiert alle Unterstützungsdateien der Toolbox, die sich innerhalb der oben beschriebenen esri-Ordnerstruktur befinden. Das esri-Verzeichnis wird im selben Verzeichnis wie die Toolbox erstellt, auf die im Eingabepfad für den Befehl verwiesen wird. Die neu generierte esri-Verzeichnisstruktur sollte folgendermaßen aussehen:

Die Hilfedateien des Seitenbereichs werden in das esri/help/gp-Verzeichnis eingefügt, die Datei mit den lokalisierten Beschriftungen wird in das esri/help/gp/toolboxes-Verzeichnis eingefügt und der ArcPy Wrapper für die Toolbox wird im esri/arcpy-Verzeichnis erstellt. Außerdem muss das messages-Verzeichnis im esri/help/gp-Verzeichnis erstellt werden, damit die in den Skriptwerkzeugen oder Python-Toolboxes verwendeten Fehlermeldungen lokalisiert werden können. Falls dies noch nicht erfolgt ist, muss das toolboxes-Verzeichnis, in dem die Toolbox und unterstützende Python-Skripte gespeichert sind, in die vorhandene Verteilungsstruktur kopiert werden. Wenn das messages-Verzeichnis erstellt und das toolboxes-Verzeichnis in das esri-Verzeichnis kopiert wurde, sollte die Struktur folgendermaßen aussehen:

Wenn die lokalisierten Eigenschaften der Toolboxes und Werkzeuge durch die Erstellung der sprachspezifischen .xml-Datei unter esri/help/gp und esri/help/gp/toolboxes vorhanden sind, wird eine zusätzliche .xml-Datei benötigt, um die lokalisierten Fehlermeldungen zu speichern, die in den Skriptwerkzeugen bzw. Python-Toolboxes verwendet werden. Erstellen Sie im esri/help/messages-Verzeichnis eine neue .xml-Datei mit dem Namen "messages.xml".
messages.xml
Nachfolgend finden Sie Beispielcode zum Erstellen der Datei "messages.xml".
<Messages>
<Message><ID>unique_string</ID><Description>%1 welcome to the sample tool</Description></Message>
</Messages>
Um diese Änderung zu übernehmen, muss die execute-Methode aus der SamplePythonToolbox.pyt aus Erweitern der Geoverarbeitung durch Python-Module so bearbeitet werden, dass sie die Methode AddIDMessage anstelle von AddMessage verwendet. Die neue execute-Methode sollte folgendermaßen aussehen:
Python-Toolbox-Methode execute
Folgendes ist Beispielcode zum Bearbeiten der execute-Methode in der SamplePythonToolbox.pyt:
def execute(self, parameters, messages):
"""The source code of the tool."""
messages.AddIDMessage('informative', 'unique_string', os.getenv('username') )
foo.hello()
return
Die AddIDMessage-Methode ist eine effiziente Möglichkeit, auf die externen Meldungen zuzugreifen, die in der messages.xml-Datei im Verzeichnis esri/help/messages gespeichert sind. In diesem Fall wird die Meldung verwendet, die mit der unique_string-ID gekennzeichnet ist. Die Meldung kann eine beliebige Zeichenfolge sein. Die Python-ID-Meldungen verwenden eine Ganzzahl oder eine Zeichenfolge; die Ganzzahlen referenzieren Esri Meldungen und die Zeichenfolgen sollten von Entwicklern oder Benutzern von Drittanbietern verwendet werden. Da es einfacher ist, Zeichenfolgen eine eindeutige ID zuzuweisen, kann die Meldungs-ID beispielsweise mit dem Namen eines Unternehmens festgelegt werden.
Wenn diese Änderungen vorgenommen wurden, sollte die Struktur des Verteilungsverzeichnisses folgendermaßen aussehen:

Um diese Änderungen zu übernehmen, muss die Datei "setup.py" bearbeitet werden. Die neue setup.py-Datei zur Lokalisierung sollte folgendermaßen aussehen:
Neue setup.py-Datei zur Lokalisierung
Das Folgende ist Beispielcode für setup.py mit einzubeziehenden Lokalisierungsverzeichnissen.
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/*.*']},
)
Die .xml-Dateien können nun zur Toolbox- und Modulunterstützung in jeder Sprache bearbeitet und in das entsprechende Sprachverzeichnis wie oben beschrieben kopiert werden. Wenn die Sprachdateien für Spanisch und Englisch verteilt werden, sollte die Verzeichnisstruktur folgendermaßen aussehen:

Um die Änderungen der Verteilung der spanischen Lokalisierung zu implementieren, muss die setup.py-Datei bearbeitet werden. Die neue setup.py-Datei für die Einbeziehung der spanischen Lokalisierung sollte folgendermaßen aussehen:
Neue setup.py-Datei für die spanische Lokalisierung
Das Folgende ist Beispielcode für setup.py mit einzubeziehenden spanischen Lokalisierungsverzeichnissen.
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/*.*']},
)
Nach diesem Prozess ist es möglich, ein einzelnes installierbares Paket zu erstellen und zu verteilen, das mehrere Sprachen unterstützt und auf die Gebietsschemaeinstellung des Betriebssystems mit einem einfachen .xml-basierten Ansatz reagiert. Indem die Geoverarbeitung durch Python-Module erweitert wird, können alle 10 Sprachen, die in ArcGIS unterstützt werden, verteilt werden, ohne Toolboxes und Werkzeuge für jede Sprache erstellen zu müssen.