При создании модулей геообработки эти модули можно настраивать для поддержки всех языков, доступных в ArcGIS Pro. Файлы справки и поддержки для этих поддерживаемых языков хранятся в папке esri/help. Ниже показан поднабор в структуре папок help с первыми пятью языками (в алфавитном порядке после английского языка, который является языком по умолчанию), которые поддерживаются в ArcGIS Pro:
help
├──gp (English - Default)
│ ├──messages
│ └──toolboxes
├──ar (Arabic)
│ └──gp
│ ├──messages
│ └──toolboxes
├──cs (Czech)
│ └──gp
│ ├──messages
│ └──toolboxes
├──de (German)
│ └──gp
│ ├──messages
│ └──toolboxes
└──es (Spanish)
└──gp
├──messages
└──toolboxes
Полное имя языка в скобках не является частью имени папки и должно быть опущено. Дополнительные языки: fi (финский), fr (французский), he (иврит), it (итальянский), ja (японский), ko (корейский), pl (польский), pt-BR (португальский - Бразилия), ru (русский), sv (шведский), tr (турецкий), uk (украинский), zh-CN (китайский упрощенный) и zh-TW (китайский традиционный).
Чтобы задать, с какой папки будет начинаться выполнение поиска, используется языковая настройка ArcGIS Pro. Папка верхнего уровня gp используется для английского языка и является папкой по умолчанию, если файл, в котором выполняется поиск, не найден в одной из языковых папок. Каждая папка gp из языковых папок содержит файлы метаданных .xml, относящиеся к определенному языку, которые используются в справке ScreenTip на боковой панели этого инструмента. В подпапках gp/messages находятся файлы .xml локализуемых строк, используемых в наборе инструментов Python и инструментах-скриптах Python, а подпапка gp/toolboxes используется для замещения локализуемых надписей бинарных наборов инструментов (пользовательских наборов инструментов, содержащих модели и инструменты-скрипты). Эти файлы создаются с помощью функции arcpy.gp.createtoolboxsupportfiles(<path to toolbox>).
gp
├ SamplePythonToolbox_toolbox.xml
├ SampleTool_SamplePythonToolbox.xml
├──messages
└──toolboxes
└ SamplePythonToolbox.xml
Самый простой способ создания языковых подпапок - сначала создать структуру папок для каталога английского gp языка. При наличии локализованных свойств инструментов и наборов инструментов путем создания .xml-файлов в esri/help/gp с последующим расширением геообработки с помощью модулей Python требуется один дополнительный .xml-файл для хранения локализованных сообщений, используемых в инструментах-скриптах или наборах инструментов Python. В папке esri/help/messages создайте файл messages.xml.
Пример кода для создания messages.xml.
<Messages>
<Message><ID>unique_id</ID><Description>%1, welcome to the sample tool</Description></Message>
</Messages>
Чтобы отразить это изменение, выполните редактирование метода execute из файла SamplePythonToolbox.pyt, чтобы использовался метод AddIDMessage вместо AddMessage. Новый метод execute должен быть следующий:
Пример кода метода SamplePythonToolbox.pyt execute для использования метода AddIDMessage:
def execute(self, parameters, messages):
"""The source code of the tool."""
result = foo.bar.hello()
messages.AddIDMessage("INFORMATIVE", "unique_id", result)
parameters[0].value = result
Метод AddIDMessage позволяет получить рациональный способ доступа к внешним сообщениям, хранящимся в файле messages.xml в папке esri/help/messages. В данном случае он использует сообщение, помеченное ID unique_id. Сообщение может быть любой строкой. Идентификатор сообщения может быть целым числом или строкой; целые числа ссылаются на сообщения Esri, а строки должны использоваться сторонними разработчиками или пользователями. Поскольку будет проще, если сделать строки уникальными, одним из вариантов является добавление перед идентификатором сообщения названия компании.
С учетом данных изменений новая структура директорий распределения должна быть:
Src
└──foo
├ __init__.py
├ bar.py
└──esri
├──arcpy
│ └ SamplePythonToolbox.py
├──help
│ └──gp
│ ├ SamplePythonToolbox_toolbox.xml
│ ├ SampleTool_SamplePythonToolbox.xml
│ ├──messages
│ │ └ messages.xml
│ └──toolboxes
│ └ SamplePythonToolbox.xml
└──toolboxes
├ SamplePythonToolbox.pyt
├ SamplePythonToolbox.pyt.xml
└ SamplePythonToolbox.SampleTool.pyt.xml
Теперь папку gp можно скопировать в соответствующий языковой каталог, а файлы .xml могут быть переведены на любой из поддерживаемых языков. Так, например, если языковые файлы распространяются для испанского языка вместе с английским, структура каталогов должна быть следующей:
Src
└──foo
├ __init__.py
├ bar.py
└──esri
├──arcpy
│ └ SamplePythonToolbox.py
├──help
│ ├──es
│ │ └──gp
│ │ ├ SamplePythonToolbox_toolbox.xml
│ │ ├ SampleTool_SamplePythonToolbox.xml
│ │ ├──messages
│ │ │ └ messages.xml
│ │ └──toolboxes
│ │ └ SamplePythonToolbox.xml
│ └──gp
│ ├ SamplePythonToolbox_toolbox.xml
│ ├ SampleTool_SamplePythonToolbox.xml
│ ├──messages
│ │ └ messages.xml
│ └──toolboxes
│ └ SamplePythonToolbox.xml
└──toolboxes
├ SamplePythonToolbox.pyt
├ SamplePythonToolbox.pyt.xml
└ SamplePythonToolbox.SampleTool.pyt.xml
В результате этого процесса может быть создан и распространен один установочный пакет на основе XML, который будет поддерживать несколько языков и соответствовать региональным настройкам операционной системы. Расширяя геообработку с помощью модулей Python, все поддерживаемые в ArcGIS Pro языки можно распространять, не создавая для каждого языка отдельные инструменты или их наборы. После завершения интернационализации набора инструментов модуль геообработки будет готов к выпуску.