i18n

Logiciel capture d'écran:
i18n
Détails logiciels:
Version: 0.1
Date de transfert: 14 Apr 15
Développeur: Antonio Cuni
Licence: Gratuit
Popularité: 17

Rating: 3.0/5 (Total Votes: 1)

i18n est un paquet qui tente de simplifier le flux de travail et le développement des applications internationalisées. & Nbsp; Ce est un wrapper mince autour des outils existants, en particulier gettext et babel.
L'utilisation de base
# Demo.py
#
de i18n.translator importation Translator
supported_languages ​​= ['it_IT', 'fr_FR', 'fr_FR']
# Activent traductions italiennes
tr = Traducteur ('/ chemin / vers / root', supported_languages, 'it_IT')
impression tr ._ ('Bonjour tout le monde!')
où / chemin / vers / root / est le répertoire racine de votre projet. Lorsque instancié, la classe Translator crée automatiquement un répertoire appelé / path / to / root / langues où les traductions sont stockées.
Extraction messages
Avant de faire la traduction proprement dite, vous devez extraire les messages de vos fichiers source, en invoquant la commande d'extrait sur le module i18n, qui est un wrapper autour extrait de pybabel et mise à jour de pybabel:
& Nbsp; python -m i18n --root = / path / to / root = --languages ​​it_IT, fr_FR, de_DE extrait
extrait cherche tous les messages enveloppés appels à l'intérieur _ (), gettext () ou ngettext () et produit un fichier appelé langues / template.pot. Ce est un file` po standard gettext qui contient tous les messages trouvés dans l'application.
En outre, extraire () crée également un fichier de catalogue de messages pour chacune des langues prises en charge en tant que langues / $ CODE / LC_MESSAGES / messages.po, où $ CODE est l'une des langues énumérées à l'supported_languages ​​(it_IT, fr_FR et de_DE dans l'exemple ci-dessus ).
Les fichiers du catalogue sont maintenant prêts à être convertis en utilisant l'un des nombreux outils existants, par exemple Qt Linguist ou Poedit. Pour le bon fonctionnement de l'application, l'ensemble des langues / hiérarchie doit être préservé. Nous suggérons de suivre les différents fichiers dans messages.po Version Control System avec les autres fichiers appartenant à l'application.
Mise à jour des messages
Pendant le développement de l'application, vous aurez sûrement ajouter de nouveaux messages à traduire. La commande d'extrait traiter automatiquement ce cas: se il trouve les fichiers existants de catalogue, leur contenu (y compris les traductions existantes) est fusionné avec les nouveaux messages extraits.
catalogues Compilation
Il est nécessaire de compiler les fichiers de catalogue avant de les utiliser avec gettext. Par défaut, notre objet Translator compile automatiquement tous les catalogues trouvés dans les langues / producteurs, les fichiers correspondants .mo. La compilation se fait que lorsque le fichier de catalogue a été modifié. Cela signifie que dans la plupart des cas, vous ne avez pas à vous soucier de la compilation des catalogues.
Si vous préférez avoir plus de contrôle sur cette étape, vous pouvez passer autocompile = False au constructeur de traducteur et de les compiler manuellement à partir de la ligne de commande:
& Nbsp; python -m i18n --root = / path / to / root = --languages ​​it_IT, fr_FR, de_DE compiler
Stockage traductions dans une base de données
Pour certaines applications, il est utile de permettre à l'utilisateur de définir de nouvelles traductions et / ou outrepasser ceux par défaut. i18n soutient ce cas d'utilisation avec la classe DBTranslator, qui est une sous-classe de traducteur. Lors de la traduction, DBTranslator regarde d'abord dans la base de données: si le message ne est pas trouvé, qu'il délègue au comportement standard gettext.
DBTranslator est basée sur sqlalchemy. Son constructeur prend un paramètre supplémentaire du moteur:
de i18n.dbtranslator importation DBTranslator
de create_engine d'importation sqlalchemy
moteur = create_engine ('sqlite: ///db.sqlite')
ROOT = '/ chemin / vers / root'
LANGUES = ['it_IT', 'fr_FR']
DEST_LANGUAGE = 'it_IT'
tr = DBTranslator (ROOT, LANGUES, DEST_LANGUAGE, moteur = moteur)
impression tr ._ ("Bonjour tout le monde»)
DBTranslator crée automatiquement les translation_entries de table dans le DB. Ensuite, ce est à l'application pour fournir une interface utilisateur pour manipuler la table. Pour les tests, vous pouvez utiliser la méthode add_translation () pour insérer une nouvelle traduction dans le DB:
tr.add_translation ("it_IT", "Bonjour tout le monde", "ciao mondo»)
impression tr ._ ("Hello World") # affiche "ciao mondo"
Comment utiliser un traducteur mondiale
De par sa conception, i18n essaie d'éviter complètement tout état global. Cela signifie que vous pouvez instancier autant Traducteur et DBTranslator que vous voulez, chacun désignant un répertoire et / ou autre base de données. Ceci est particulièrement utile pour les tests.
Cependant, dans la pratique, la plupart des projets veulent utiliser un traducteur mondial qui connaît les messages de tous les composants du projet. L'application de démonstration montre une façon de le faire dans le module de translate.py:
py d'importation
de i18n.translator importation Translator
# Définir la racine du projet dans le répertoire contenant ce fichier
ROOT = py.path.local (__ __ fichier). Dirpath ()
LANGUES = ['it_IT', 'fr_FR', 'fr_FR']
tr = Traducteur (ROOT, LANGUES, 'it_IT')
_ = Tr._
ngettext = tr.ngettext
if __name__ == '__main__':
& Nbsp; tr.cmdline (sys.argv)
De cette façon, le reste de l'application ne peut tout simplement importer et d'utiliser _ () et ngettext () de translate.py. Ou, à votre préférence, l'importation directement à l'objet et l'utilisation tr tr ._ () et tr.ngettext () pour traduire les messages.
Les deux dernières lignes du code permet une manière commode d'appeler extraire et compiler à partir de la ligne de commande sans avoir à spécifier manuellement le répertoire racine et les langues prises en charge. Il suffit de lancer:
& Nbsp; extrait python translate.py # ... ou compiler

Exigences :

  • Python

Logiciel similaire

Gucharmap
Gucharmap

22 Jun 18

gtranslator
gtranslator

14 Apr 15

Translate Toolkit
Translate Toolkit

17 Feb 15

Transolution
Transolution

3 Jun 15

D'autres logiciels de développeur Antonio Cuni

pdbpp
pdbpp

11 May 15

Commentaires à i18n

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!