L’internationalisation de votre site Web est une bonne idée, mais cela peut être un processus difficile. Heureusement, il existe des outils pour vous aider. Ce blog examinera comment nous pouvons utiliser gettext pour internationaliser votre site Web. Nous aborderons des sujets tels que : pourquoi vous souhaitez peut-être internationaliser et comment vous pouvez utiliser gettext pour simplifier le processus.
Qu’est-ce que l’internationalisation et pourquoi devriez-vous l’utiliser :
L’internationalisation est un mécanisme de développement logiciel qui permet à une application de prendre en charge d’autres langues, jeux de caractères ou les deux. Pour ce faire, une application doit pouvoir contenir des paramètres régionaux contenant des traductions pour tous les messages, permettant au logiciel d’afficher les ressources dans la langue appropriée. L’internationalisation est généralement la première étape vers la création d’une application logicielle globale.
Conditions préalables:
gettext:
Gettext est un ensemble d’outils qui fournit un cadre pour traduire les messages du code source du logiciel dans différentes langues. Il fournit un ensemble de conventions et de règles sur la façon d’organiser les fichiers de traduction, ainsi que des programmes pour extraire ou mettre à jour les traductions à partir de diverses sources, certaines interactives comme GNU gettext, certaines orientées batch comme gettext.
Le package GNU gettext contient des fonctions permettant de produire des messages dans différentes langues, généralement utilisées par les programmeurs qui souhaitent que leur logiciel puisse parler plusieurs langues.
Comment installer gettext sous Linux :
Pour installer gettext, utilisez la commande suivante dans votre terminal
sudo apt-get install gettext
Comment installer gettext sous windows :
Pour installer gettext dans windows allez sur le lien suivant puis téléchargez et installez l’application
https://mlocati.github.io/articles/gettext-iconv-windows.html
Django:
Dans ce tutoriel, nous allons utiliser le framework Django, par exemple, c’est un framework open-source basé sur python qui est utilisé par les développeurs web pour créer des applications web complexes. Django est connu pour son processus de développement facile à utiliser et rapide. Pour installer Django, utilisez la commande suivante dans votre invite de commande
pip3 install Django
Implémentation de gettext dans Django :
Étape 1 : Créer un nouveau projet Django
Pour l’intégration de gettext dans Django, créons d’abord une simple application Django vous créez d’abord un répertoire nommé ce que vous voulez J’ai créé un dossier nommé gettext puis ouvrez un terminal dans le même dossier et créez une nouvelle application Django pour cela utilisez la commande suivante dans votre invite de commande.
1.Pour démarrer un nouveau projet
Django-admin startproject translation_example
2.Allez dans le dossier du projet
cd translation_example
3.Démarrage de la nouvelle application dans le projet
django-admin startapp example
Étape 2 : configurer un projet Django
Pour configurer le projet Django, ouvrez le projet dans l’éditeur de code et suivez les étapes
1 : Ajout de l’application dans le projet
Ouvrez setting.py et ajoutez l’exemple d’application dans le projet
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'example',
]
2 : Créer des vues
Ici, nous avons configuré un views.py, nous avons importé le module gettext en tant que _ pour la facilité d’utilisation, puis nous avons marqué le bonjour comme le texte à traduire, maintenant ce que Djnaog va faire est de parcourir tout le projet et de rechercher tout le texte qui est marqué comme étant à traduire et traduisez cela.
from django.shortcuts import render
from django.utils.translation import gettext as _
def index(request):
context = {
'hello' : _('Hello')
}
return render(request, 'index.html', context)
3 : création et configuration des branches
Tout d’abord, nous avons créé un nouveau répertoire nommé avec le modèle, puis créé le fichier index.html dans le répertoire, deuxièmement, vous pouvez copier-coller le code suivant dans votre fichier index.html puis ajouter du texte que nous allons traduire dans une autre langue.
<!-- adding the load tag -->
{% load i18n %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>gettext example</title>
</head>
<body>
<h1>{{ hello }}</h1>
<!-- here we marked the h2 is the trans tag so that gettext will know that this has to be translated -->
<h2>{% trans "welcome to geeky humans, here you will find many interesting article about python" %}</h2>
</body>
</html>
4 : Configuration de l’url.py
Ajoutez le code suivant dans votre fichier ulr.py
from django.contrib import admin
from django.urls import path
#importing the views
from example import views
urlpatterns = [
path('admin/', admin.site.urls),
#creating the path for the views
path('', views.index)
]
5 : Migrer notre projet
Pour la migration, exécutez la commande suivante à l’invite de commande
python manage.py makemigrations
python manage.py migrate
Après vérification de la migration, le projet fonctionne correctement ou non en utilisant cette commande dans votre invite de commande
python manage.py runserver
Sortir:
Après avoir exécuté le serveur, si vous voyez une sortie comme celle-ci, vous êtes sur la bonne voie et vous pouvez ouvrir votre projet en accédant à http://127.0.0.1:8000/ ce lien dans votre navigateur. Vous y trouverez le texte que vous avez ajouté dans le fichier index.html et maintenant que notre application est en cours d’exécution, passons à la partie traduction.
Étape 3 : Traduction du projet Django avec gettext
1.générer un fichier de traduction
La première chose que nous devons faire est de créer un répertoire dans l’exemple d’application que nous appelons local, puis d’exécuter la commande suivante
django-admin makemessages -l hi
Ici l pour la langue et hi pour la langue hindi vous pouvez utiliser n’importe quelle autre langue que vous voulez, après avoir exécuté la commande un répertoire sera créé sous avec le nom de la langue, et dans le répertoire, vous trouverez le fichier djanog.po
2. configuration du fichier django.po
Si vous faites défiler vers le bas dans le fichier djano.po, vous trouverez quelque chose comme ça
Comme vous pouvez le voir ici, nous avons notre chaîne et nos vues que nous avons ajoutées plus tôt dans le modèle et en dessous, vous pouvez voir le msgstr là-dedans, nous ajouterons les textes traduits
#: .\example\templates\index.html:13
msgid ""
"welcome to geeky humans, here you will find many interesting articles about "
"python"
msgstr "geeky humans में आपका स्वागत है, यहाँ आपको python के बारे में कई दिलचस्प लेख मिलेंगे"
#: .\example\views.py:7
msgid "Hello"
msgstr "नमस्ते"
Alors maintenant, nous avons ajouté le texte traduit, nous devons compiler le fichier pour cela, utilisez la commande suivante
django-admin compilemessages
Après avoir exécuté la commande, vous constaterez qu’un autre fichier a été généré avec le nom de djanog.mo dans le même répertoire que dhango.po, c’est donc un bon signe.
Maintenant vérifions l’application si elle fonctionne ou non pour cela nous devons changer la langue de l’application dans le fichier de paramètres, il vous suffit de changer le code de langue en-us en salut et c’est fait (vous devez utiliser le code de langue que vous avez utilisé précédemment)
Exécutez le serveur et vous verrez la version hindi du texte apparaîtra dans le navigateur.
Conclusion:
Nous espérons que vous avez apprécié notre article de blog sur la façon d’utiliser gettext pour internationaliser votre site Web. Comme il s’agit d’un problème si courant, nous espérons que cet article vous fournira des informations sur la façon de le traiter. Ici, nous avons changé la langue manuellement pour voir les changements et cela fonctionnera également automatiquement si quelqu’un ouvre l’application dans un navigateur défini sur la langue par défaut hindi. Si vous avez des questions ou des préoccupations, n’hésitez pas à nous contacter en utilisant les informations fournies ci-dessous. Nous apprécions votre temps et votre patience dans la lecture de notre blog, et espérons que vous passerez une excellente journée !