0

Il existe de nombreux niveaux pour la personnalisation des programmes.Méthodes de personnalisation modulaire des messages de paramètres régionaux?

Tout d'abord est de faire parler votre langue en créant des messages i18n où des outils comme gettext et xgettext font un excellent travail.

Un autre vient lorsque vous avez besoin de modifier la signification de certains messages pour répondre à l'objectif de votre projet. La question est : est-il possible de conserver les messages personnalisés dans un fichier séparé en plus de la traduction standard et les outils standard comprennent-ils que les messages personnalisés ont préséance? Cela aiderait à éviter que ces messages ne soient validés dans le référentiel public et ne soient écrasés par le texte standard lors de la mise à niveau.

éditer: depuis trop peu de gens se soucient de la localisation Je pense qu'il est approprié de recueillir des réponses pour toute plate-forme, mais je suis pour le moment intéressé à mettre en œuvre ce python/django.

Répondre

1

En Java, ces chaînes localisées sont gérées par ResourceBundles. ResourceBundles a un concept de variantes. Par exemple, vous pouvez avoir une ressource en anglais de base, appelée messages_en.propertie s. Ensuite, vous pouvez personnaliser pour une variante spécifique de l'anglais avec message_en_US.properties ou message_en_UK.properties.

Les États-Unis et le Royaume-Uni sont des codes de pays ISO, mais vous pouvez également configurer vos propres variantes personnalisées qui contiennent uniquement les chaînes que vous souhaitez personnaliser. Par exemple:

#messages_en.properties 
button.click=Click 
label.go=Go 

#messages_en_ZZ.properties 
button.click=Click Me 

En réglant les paramètres régionaux à en_ZZ, votre application devrait d'abord regarder dans messages_en_ZZ.properties pour voir si la chaîne sur mesure existait, puis revenir à messages_en.properties pour vos traductions de passe-partout. [Plus d'informations sur la priorité de chargement ResourceBundle] [1]

[1]: http://java.sun.com/javase/6/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader)

1

Je pense que puissantes installations i18n de Qt (voir here) pourrait rencontrer vos besoins - bien sûr, ils sont disponibles en Python, aussi, grâce à l'habituel, béni PyQt! -)

Questions connexes