Cuando se distribuyen las cajas de herramientas de geoprocesamiento con los módulos Python, los módulos se pueden personalizar para ofrecer compatibilidad con todos los idiomas admitidos por ArcGIS. Los archivos de ayuda y de soporte para estos idiomas compatibles se almacenan en el directorio help. A continuación se muestra la estructura del directorio help si se crea para los diez idiomas con el inglés como idioma predeterminado:

La configuración local del sistema operativo se utiliza para determinar en qué directorio se hará la primera búsqueda. El directorio gp de nivel superior se utiliza para el idioma inglés y es el predeterminado cuando el archivo que se busca no se encuentra en uno de los directorios de los otros idiomas. El directorio messages contiene el archivo .xml de cadenas de caracteres localizables que se utiliza en la caja de herramientas de Python y en las herramientas de secuencia de comandos de Python, mientras que el directorio toolboxes se utiliza para sustituir las etiquetas localizables de las cajas de herramientas binarias (cajas de herramientas personalizadas que contienen herramientas de secuencias de comandos y modelos).
El directorio gp almacena los archivos .xml de la Ayuda de panel lateral de la caja de herramientas y la herramienta. Estos archivos .xml se generan a partir de los metadatos de la caja de herramientas editados en el menú contextual Descripción del elemento usando la función createtoolboxsupportfiles. El comando funciona en cualquier caja de herramientas.
arcpy.gp.createtoolboxsupportfiles(<path to .tbx or .pyt>)
Este comando generará todos los archivos de soporte de la caja de herramientas que se encuentren en la estructura de la carpeta esri descrita anteriormente. El directorio esri se crea en la misma ubicación que la caja de herramientas a la que se apunta en la ruta de entrada del comando. La estructura del directorio esri que se acaba de generar debe ser

Los archivos de ayuda del panel lateral se colocan en el directorio esri/help/gp, el archivo de etiquetas localizables se coloca en el directorio esri/help/gp/toolboxes y el contenedor ArcPy para la caja de herramientas se crea en el directorio esri/arcpy. Además, se debe crear el directorio messages en el directorio esri/help/gp para que los mensajes de error utilizados en las herramientas de secuencia de comandos o en las cajas de herramientas de Python sean localizables y, si aún no se ha hecho, el directorio toolboxes que almacena la caja de herramientas y las secuencias de comandos complementarias de Python se debe copiar en la estructura de distribución existente. Una vez que se haya creado el directorio messages y se haya copiado el directorio toolboxes en el directorio esri, la estructura debe ser

Con las propiedades localizadas de las cajas de herramientas y las herramientas disponibles mediante la creación de archivos .xml específicos para cada idioma en esri/help/gp y esri/help/gp/toolboxes, se necesita un archivo .xml adicional para almacenar los mensajes de error localizados que se utilizan en las herramientas de secuencia de comandos o en las cajas de herramientas de Python. En el directorio esri/help/messages, cree un archivo .xml llamado messages.xml.
messages.xml
A continuación se ofrece el código de muestra para crear messages.xml.
<Messages>
<Message><ID>unique_string</ID><Description>%1 welcome to the sample tool</Description></Message>
</Messages>
Para reflejar este cambio, el método execute de SamplePythonToolbox.pyt de Ampliar el geoprocesamiento mediante módulos de Python se debe editar para usar el método AddIDMessage en lugar de AddMessage. El nuevo método execute debe ser
Método execute de la caja de herramientas de Python
A continuación se ofrece el código de muestra para editar el método execute en SamplePythonToolbox.pyt.
def execute(self, parameters, messages):
"""The source code of the tool."""
messages.AddIDMessage('informative', 'unique_string', os.getenv('username') )
foo.hello()
return
El método AddIDMessage proporciona una manera eficaz de acceder a los mensajes externos almacenados en el archivo messages.xml del directorio esri/help/messages. En este caso, utiliza el mensaje marcado con el Id. unique_string. El mensaje puede ser cualquier cadena. Los mensajes de Id. de Python pueden contener un entero o una cadena de caracteres; los enteros hacen referencia a los mensajes de Esri y las cadenas de caracteres las utilizarán los usuarios o los desarrolladores externos. Puesto que es más fácil hacer cadenas exclusivas, se sugiere definir un Id. de mensaje con un nombre de empresa.
Con la disponibilidad de estos cambios, la nueva estructura de directorio de distribución debe ser

Para reflejar estos cambios, debe editarse el archivo setup.py. El nuevo setup.py para localización debe ser
Nuevo setup.py para localización
A continuación se ofrece código de muestra para que setup.py incluya los directorios de localización.
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/*.*']},
)
Los archivos .xml ya se pueden editar en cualquier idioma para el soporte de la caja de herramientas y los módulos, y también se pueden copiar en el directorio del idioma correspondiente como se ha descrito anteriormente. Si los archivos de idiomas se distribuyen para español e inglés, la estructura de directorio debe ser

Para que se apliquen los cambios de distribución de localización en español, debe editarse el archivo setup.py. El nuevo setup.py que incluye la localización en español debe ser
Nuevo setup.py para la localización en español
A continuación se ofrece código de muestra para que setup.py incluya los directorios de localización en español
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/*.*']},
)
Siguiendo este proceso, es posible crear y distribuir un solo paquete instalable que admitirá varios idiomas y responderá a la configuración local del sistema operativo con un método sencillo basado en .xml. Al ampliar el geoprocesamiento mediante los módulos Python, los 10 idiomas que admite ArcGIS pueden distribuirse sin necesidad de crear cajas de herramientas y herramientas para cada idioma.