Интернационализация модулей Python
При распространении наборов инструментов геообработки с модулями Python модули можно настраивать для поддержки всех языков, доступных в ArcGIS. Файлы справки и поддержки для этих языков хранятся в папке help. Далее показана структура каталогов help для всех 10 языков с английским в качестве языка, используемого по умолчанию:

Для определения начальной директории поиска используется локальная настройка. Директория верхнего уровня gp используется для английского языка и является директорией по умолчанию, если файл, который ищется, не найден в одной из специфичных для определенного языка директорий. Директория messages содержит файл .xml локализуемых строк, используемых в инструментах наборов и скриптов Python, а директория toolboxes используется для замещения локализуемых надписей бинарных наборов инструментов (пользовательских наборов инструментов, содержащих модели и инструменты-скрипты).
В директории gp хранятся файлы .xml для боковой панели справки панели и инструмента. Эти файлы .xml создаются на основе метаданных набора инструментов, редактируемых в меню Описание элементы (Item Description), с помощью функции createtoolboxsupportfiles. Команда работает для любого набора инструментов.

Перед запуском команды убедитесь, что для набора указан псевдоним. Для создания файлов справки боковой панели необходим псевдоним.
arcpy.gp.createtoolboxsupportfiles(<путь к .tbx или .pyt>)
Команда создаст все файлы поддержки набора инструментов, найденные в структуре каталогов esri, как описано выше. Директория esri создается в том же местоположении, что и набор инструментов, указанный во входном пути для команды. Вновь созданная структура директорий esri должна быть

Файлы справки боковой панели размещаются в директории esri/help/gp, файл локализуемых надписей – в директории esri/help/gp/toolboxes, а обертка ArcPy для набора инструментов – в папке esri/arcpy. Кроме того, папка messages должна быть создана в каталоге esri/help/gp с целью локализации сообщений об ошибках, используемых в инструментах-скриптах и наборах инструментов Python, а, если этого еще не произошло, – папка toolboxes с набором инструментов, а скрипты Python копируются в существующую структуру. Учитывая созданную папку messages и скопированную в папку esri директорию toolboxes, структура должна быть

С локализованными свойствами наборов и инструментов вместо создания языковых файлов .xml в esri/help/gp и esri/help/gp/toolboxes создается один дополнительный файл .xml, хранящий локализованные сообщения об ошибках, которые используются в инструментах-скриптах и наборах инструментов Python. В директории esri/help/messages создайте новый файл .xml file – messages.xml.
Пример кода для создания messages.xml:
<Messages>
<Message><ID>unique_string</ID><Description>%1 welcome to the sample tool</Description></Message>
</Messages>
Чтобы увидеть это изменение, метод execute из SamplePythonToolbox.pyt раздела Расширенная геообработка с помощью модулей Python необходимо отредактировать на использование метода AddIDMessage вместо AddMessage. Новый метод execute должен быть
Пример кода для редактирования метода execute в SamplePythonToolbox.pyt:
def execute(self, parameters, messages):
"""The source code of the tool."""
messages.AddIDMessage('informative', 'unique_string', os.getenv('username') )
foo.hello()
return
Метод AddIDMessage обеспечивает вам эффективный способ доступа к внешним сообщениям, хранящимся в файле messages.xml в директории esri/help/messages. В этом случае он берет сообщение, помеченное уникальным идентификатором. Сообщение может быть любой строкой. Сообщения Python ID используют целое число или строку. Целые числа соответствуют сообщениям Esri, а строки используются сторонними разработчиками и пользователями. Поскольку уникальные строки создавать проще, советуем указывать для ID сообщения имя компании.
С учетом данных изменений новая структура директорий должна быть

Чтобы показать эти изменения, необходимо отредактировать 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 со включенными директориями испанской локализации:
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, все 10 поддерживаемых ArcGIS языков могут быть распространены, причем без необходимости создания наборов и инструментов для каждого языка.