Aller au contenu principal

Django

Notre objectif est de créer un internet plus uni sans barrières linguistiques.

Dans un monde de plus en plus connecté, la barrière de la langue ne devrait pas être un obstacle pour partager des connaissances et construire des communautés mondiales. Avec Translate Projects, vous pouvez facilement globaliser vos projets, rendant votre contenu accessible aux personnes du monde entier.

Configuration initiale Django

Mise en œuvre des traductions

Configurer i18n

  • Tu dois avoir configuré le paquet django.conf.i18n
settings.py
#Langue par défaut
LANGUAGE_CODE = 'es'

#Langues à traduire
# importer `gettext_lazy` pour éviter l'erreur de traduction
from django.utils.translation import gettext_lazy as _

LANGUAGES = [
('es', _('Spanish')),
('en', _('English')),
# ('hi', _('Hindi')),
# ('fr', _('French')),
# ('de', _('German')),
# ('zh', _('Chinese')),
# ('ko', _('Korean')),
# ('ja', _('Japanese')),
# ('ru', _('Russian')),
# ('it', _('Italian')),
]

#Activer le paquet `django.conf.i18n`
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True

TRANSLATE_PROJECTS_API_KEY = '#'
TRANSLATE_PROJECTS_EXCLUDE_DIRS = ["env/*"]
Important
  • N'oublie pas d'ignorer le dossier de ton environnement de développement, par exemple env/
  • Vous devez avoir configuré le paquet django.conf.locale.

Nous créons le dossier locale où sera stocké le résultat de nos traductions.

Terminal
mkdir locale

Ainsi, nous aurons la structure de répertoires suivante.

settings.py
├── db.sqlite3
├── django_tutorial
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── locale # route de nos traductions
└── manage.py

Nous ajoutons le chemin de nos traductions à notre liste de chemins dans notre fichier principal yourproject/settings.py.

settings.py

# importer `os`
import os

LOCALE_PATHS = [
os.path.join(BASE_DIR, 'locale'),
]
  • Nous ajoutons le middleware de localisation django.middleware.locale.
settings.py
MIDDLEWARE = [
Tes autres middlewares...,
'django.middleware.locale.LocaleMiddleware',
]
  • Vous devez avoir configuré le paquet django.conf.urls.i18n

Nous devons ajouter le chemin i18n/ à notre liste de chemins dans notre fichier principal yourproject/urls.py.

urls.py
from django.conf.urls.i18n import i18n_patterns
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('i18n/', include('django.conf.urls.i18n')),
]

Configurer le chemin de nos modèles

Nous créons le dossier templates où nos modèles seront stockés.

Terminal
mkdir templates

Ainsi, nous aurons la structure de répertoires suivante.

settings.py
.
├── db.sqlite3
├── django_tutorial
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── locale
├── manage.py
└── templates # chemin de nos modèles

Dans ce dossier, nous ajouterons nos fichiers HTML de notre projet.

settings.py
# importer `os`
import os
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], #Chemin de nos modèles
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

Automatiser les traductions

Nous devons installer le paquet translate-projects-django dans notre projet.

pip install translate-projects-django

Enregistrer le paquet dans settings.py

settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
Tes autres paquets...,
'translate_projects_django', #ajouter le paquet
]
Créer un compte

🚀 Automatisez et optimisez vos traductions.

Pour tirer le meilleur parti de Translate Projects, vous avez besoin d'une clé API. Inscrivez-vous sans engagement.

  • Nous ne demandons pas de carte de crédit pour essayer Translate Projects.

Bénéfices à obtenir votre clé API

  • Administration Intelligente: Synchronisez et gérez automatiquement les traductions de vos projets.
  • Panneau Administratif Exclusif: Personnalisez et supervisez toutes vos traductions depuis une interface centralisée.
  • Support Prioritaire: Recevez une assistance technique rapide et spécialisée quand vous en avez besoin.
  • Traductions Précises: Notre technologie comprend le contexte de votre code pour offrir des traductions exactes.
  • 30 000 Eniacs de Bienvenue: Testez toutes les fonctionnalités sans engagement avec des jetons internes qui améliorent vos traductions.

Inscrivez-vous maintenant et obtenez votre clé API pour débloquer tout le potentiel de Translate Projects !

Créer un compte maintenant→

Ajouter une clé API

C'est très simple, il te suffit d'ajouter ta clé API dans la configuration de ton projet.

settings.py
TRANSLATE_PROJECTS_API_KEY = '#' #<- Ta clé API

Exécuter les traductions

Nous ouvrons notre console de commandes et exécutons la commande translate pour que nos traductions s'exécutent.

Terminal
python manage.py translate

Si tout est correct, vous devriez voir quelque chose comme ça :

Exécuter des traductions

Si tu as besoin de traduire dans une seule langue spécifique, tu peux le faire avec l'option --locale de la manière suivante :

Terminal
python manage.py translate --locale es

Les traductions seront stockées dans le dossier locale.

Terminal
.
├── db.sqlite3
├── django_tutorial
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── locale
│ ├── en
│ │ └── LC_MESSAGES
│ │ ├── django.po
│ │ └── django.po
│ └── es
│ └── LC_MESSAGES
│ ├── django.mo
│ └── django.po
├── manage.py
└── templates
Support

Nous sommes ici pour t'aider.

Si tu as des questions, besoin d'aide ou souhaites contribuer, n'hésite pas à me contacter. Je suis à ta disposition pour t'aider dans ce dont tu as besoin.

Soutenir le projet

Si ce projet t'a été utile, je t'invite à m'offrir un café. Ton soutien m'aide à continuer à m'améliorer et à créer du contenu de valeur. Merci d'être ici ! ☕

Buy me a coffee

Comment ajouter des traductions ?

Ajouter des traductions dans nos modèles est très simple et rapide.

  • Nous allons créer un modèle de base.
Terminal
touch templates/base.html

Expliquer partie par partie la structure de notre modèle et ensuite je laisserai le fichier complet.

templates/base.html
#{{ importamos `i18n` para poder usar las traducciones}}
{% load i18n %}

<!DOCTYPE html>

#{{ obtenemos el idioma actual y los idiomas disponibles}}
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}

#{{ definimos el idioma actual}}
<html lang="{{ LANGUAGE_CODE }}">
<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>{% block title %}Translate Projects{% endblock %}</title>
</head>
<body>
  • Nous avons ajouté le formulaire pour changer la langue.
templates/base.html
<body>

{% comment %} Formulaire de base pour changer de langue {% endcomment %}
<form method="post" action="{% url 'set_language' %}">
{% csrf_token %}

{% for code, name in LANGUAGES %}
<input
type="radio"
name="language"
value="{{ code }}"
{% if code == LANGUAGE_CODE %}checked{% endif %}
>
{{ name }}

{% endfor %}
<input type="submit" value="Submit">
</form>
  • Nous ajoutons les textes que nous avons besoin de traduire avec la fonction trans.
templates/base.html
    {% comment %} Traducciones {% endcomment %}
<h1>{% trans "Mi primera traducción" %}</h1>

<h2>{% trans "Este es un texto traducido, siguenos en YouTube!" %}</h2>
</body>
</html>

Exemple complet

  • Nous allons ajouter ce qui suit à notre modèle.
templates/base.html
{% load i18n %}
<!DOCTYPE html>
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}

<html lang="{{ LANGUAGE_CODE }}">
<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>{% block title %}Translate Projects{% endblock %}</title>
</head>
<body>

{% comment %} Formulaire de base pour changer de langue {% endcomment %}
<form method="post" action="{% url 'set_language' %}">
{% csrf_token %}

{% for code, name in LANGUAGES %}
<input
type="radio"
name="language"
value="{{ code }}"
{% if code == LANGUAGE_CODE %}checked{% endif %}
>
{{ name }}

{% endfor %}
<input type="submit" value="Submit">
</form>

{% comment %} Traducciones {% endcomment %}
<h1>{% trans "Mi primera traducción" %}</h1>

<h2>{% trans "Este es un texto traducido, siguenos en YouTube!" %}</h2>

</body>
</html>

Nous exécutons la création de traductions.

Nous exécutons la création de traductions afin que nos traductions soient réalisées.

Terminal
python manage.py translate

Si tout est correct, vous devriez voir quelque chose comme ça à nouveau.

Exécuter des traductions

Résultat de nos traductions

Ce serait notre résultat de notre site web.

Résultat des traductions