地理处理模块国际化

创建地理处理模块时,可对模块进行自定义以使其支持 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(土耳其语)、zh-CN(简体中文)以及 zh-TW(繁体中文)。

ArcGIS Pro 的语言设置用于确定最初将搜索的目录。 顶层的 gp 目录适用于英语;如果未在其中一个特定语言的目录中找到要搜索的文件,则将默认搜索此目录。 特定于语言的目录内的每个 gp 目录将存储工具中屏幕提示的特定于语言的元数据 .xml 文件。 gp/messages 子目录中包含 Python 工具箱和 Python 脚本工具中使用的可本地化字符串的 .xml 文件,而 gp/toolboxes 子目录用于覆盖二进制工具箱(包含模型和脚本工具的自定义工具箱)的可本地化标注。 可以使用 arcpy.gp.createtoolboxsupportfiles(<path to toolbox>) 函数生成这些文件。

gp
 ├  SamplePythonToolbox_toolbox.xml
 ├  SampleTool_SamplePythonToolbox.xml
 ├──messages 
 └──toolboxes
     └  SamplePythonToolbox.xml

创建特定于语言的子目录的最简单方法是首先为英语 gp 目录创建文件夹结构。 通过 Python 模块扩展地理处理后,通过在 esri/help/gp 下创建 .xml 文件对工具箱和工具的属性进行本地化后,需要一个附加 .xml 文件用于存储脚本工具或 Python 工具箱中使用的本地化消息。 在 esri/help/messages 目录中,创建 messages.xml 文件。

messages.xml

以下是用于创建 messages.xml 的示例代码:

<Messages>
<Message><ID>unique_id</ID><Description>%1, welcome to the sample tool</Description></Message>
</Messages>

要反映此更改,需要对 SamplePythonToolbox.pyt 文件中的 execute 方法进行编辑,以便使用 AddIDMessage 方法而非 AddMessage 方法。 新 execute 方法应如下所示:

Python 工具箱 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 方法提供了对 esri/help/messages 目录的 messages.xml 文件中所存储的外部消息的有效访问方法。 在本例中,它将使用具有 unique_id ID 标记的消息。 该消息可以为任意字符串。 消息 ID 可以是整数或字符串;整数引用 Esri 消息,而字符串应由第三方开发人员或用户使用。 由于确保字符串的唯一性更为容易,所以建议使用公司名称作为消息 ID 的前缀。

完成上述更改后,新的分发目录结构应为如下所示:

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 中支持的所有语言进行分发,而无需为每种语言创建工具箱和工具。 完成对工具箱的国际化后,地理处理模块已准备就绪,可供分发

相关主题