Lors de la distribution de boîtes à outils avec des modules Python, il est possible de personnaliser les modules de manière à prendre en charge toutes les langues gérées par ArcGIS. Les fichiers d'aide et de prise en charge pour ces langues sont stockés dans le répertoire help. Voici une illustration de la structure du répertoire help lorsqu'il est créé pour 10 langues, l'anglais étant la valeur par défaut :

Le paramètre régional du système d'exploitation permet de déterminer dans quel répertoire la recherche est effectuée au départ. Le répertoire gp de niveau supérieur est utilisé pour l'anglais ; c'est le répertoire par défaut si le fichier recherché est introuvable dans l'un des répertoires spécifiques aux langues. Le répertoire messages contient le fichier .xml de chaînes localisables utilisé au sein de la boîte à outils et des outils de script Python, tandis que le répertoire toolboxes est utilisé pour remplacer les étiquettes localisables des boîtes à outils binaires (boîtes à outils personnalisées contenant les outils de modèle et de script).
Le répertoire gp stocke les fichiers .xml pour l'aide du panneau latéral dans la boîte à outils et l'outil. Ces fichiers .xml sont générés à partir des métadonnées de la boîte à outils mises à jour dans le menu contextuel Description de l'élément grâce à la fonction createtoolboxsupportfiles ci-après. La commande fonctionne dans n'importe quelle boîte à outils.
arcpy.gp.createtoolboxsupportfiles(<path to .tbx or .pyt>)
Cette commande génère tous les fichiers de prise en charge de la boîte à outils dans la structure de dossier esri décrite ci-dessus. Le répertoire esri est créé au même emplacement que celui sur lequel la boîte à outils pointait dans le chemin d'accès en entrée de la commande. La structure du répertoire esri qui vient d'être créé doit être la suivante :

Les fichiers d'aide du panneau latéral sont placés dans le répertoire esri/help/gp, le fichier d'étiquettes localisable est placé dans le répertoire esri/help/gp/toolboxes et le wrapper ArcPy pour la boîte à outils est créé dans le répertoire esri/arcpy. En outre, le répertoire messages doit être créé dans le répertoire esri/help/gp pour permettre la localisation des messages d'erreur utilisés dans les outils de script ou les boîtes à outils Python. Le cas échéant, le répertoire toolboxes qui stocke la boîte à outils et les scripts Python de prise en charge doit être copié dans la structure de distribution existante. Une fois le répertoire messages créé et le répertoire toolboxes copié dans le répertoire esri, la structure doit être la suivante :

Une fois les propriétés localisées des boîtes à outils et des outils en place suite à la création de fichiers .xml spécifiques aux langues sous esri/help/gp et esri/help/gp/toolboxes, vous devez créer un fichier .xml supplémentaire pour stocker les messages d'erreur localisés utilisés dans les outils de script ou les boîtes à outils Python. Dans le répertoire esri/help/messages, créez un fichier .xml nommé messages.xml.
messages.xml
Exemple de code destiné à créer le fichier messages.xml :
<Messages>
<Message><ID>unique_string</ID><Description>%1 welcome to the sample tool</Description></Message>
</Messages>
Pour tenir compte de cette modification, la méthode execute de la boîte à outils SamplePythonToolbox.pyt présentée à la rubrique Extension du géotraitement par le biais des modules Python doit être mise à jour pour utiliser la méthode AddIDMessage au lieu de AddMessage. La nouvelle méthode execute doit être la suivante :
Méthode execute de la boîte à outils Python
Exemple de code destiné à modifier la méthode execute dans la boîte à outils SamplePythonToolbox.pyt :
def execute(self, parameters, messages):
"""The source code of the tool."""
messages.AddIDMessage('informative', 'unique_string', os.getenv('username') )
foo.hello()
return
La méthode AddIDMessage est un moyen efficace d'accéder aux messages externes stockés dans le fichier messages.xml contenu dans le répertoire esri/help/messages. Dans ce cas, il utilise le message marqué par l'ID unique_string. Le message peut être n'importe quelle chaîne. Les messages d'ID Python acceptent soit un nombre entier, soit une chaîne. Les nombres entiers référencent les messages Esri et les chaînes doivent être utilisées par des développeurs ou des utilisateurs tiers. Puisqu'il est plus facile de rendre les chaînes uniques, il est recommandé de définir l'ID de message avec un nom de société.
Une fois ces changements mis en œuvre, la nouvelle structure du répertoire de distribution doit être la suivante

Pour refléter ces changements, setup.py doit être modifié. Le nouveau fichier setup.py pour la localisation doit être le suivant
Nouveau fichier setup.py pour la localisation
Exemple de code pour que setup.py inclue les répertoires de localisation :
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/*.*']},
)
Les fichiers .xml peuvent maintenant être modifiés dans toutes les langues pour la prise en charge de la boîte à outils et du module puis copiés dans le répertoire de leur langue respective, comme indiqué ci-dessus. Si les fichiers de langue sont distribués pour l'espagnol ainsi que pour l'anglais, la structure du répertoire doit être la suivante

Pour que les changements apportés à la distribution localisée en espagnol soient mis en œuvre, vous devez modifier le fichier setup.py. Le nouveau fichier setup.py qui inclut la version localisée pour l'espagnol doit être le suivant :
Nouveau fichier setup.py pour la localisation en espagnol
Exemple de code pour que setup.py inclue les répertoires de localisation pour l'espagnol :
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/*.*']},
)
À la suite de ce processus, il est possible de créer et de distribuer un seul paquetage à installer prenant en charge plusieurs langues et répondant au paramètre régional du système d'exploitation par une approche simple, basée sur un fichier .xml. En étendant le géotraitement via des modules Python, vous pouvez distribuer les 10 langues prises en charge dans ArcGIS sans avoir à créer des boîtes à outils et des outils pour chaque langue.