ManuceTraduire un fichierTraduire une application Django en japonais

Traduire une application Django en japonais

Pour traduire une application Django en japonais, il suffit de traduire le fichier <code>locale/ja/LC_MESSAGES/django.po</code> produit par <code>makemessages</code>, puis de le recompiler. Manuce rend ce même fichier, variables <code>%(name)s</code> et <code>{name}</code> vérifiées, avec un rapport des chaînes laissées telles quelles. Le japonais impose toutefois ses règles : ordre des mots, pluriel unique, ponctuation pleine chasse et registre poli.

Déposer mon fichier Voir les tarifs

Combien ça coûte

Pour les fichiers de langue d'une application Django totalisant environ 3 000 mots, vers le japonais :

Essentiel
28 €

Comprendre, usage interne.

Professionnel
87 €

Prêt à transmettre, par le spécialiste technique.

Premium
168 €

Relecture croisée. Pour ce qui engage.

Prix pour une langue, mise en page d'origine comprise. TVA non applicable, article 293 B du CGI. Le devis exact, calculé sur le nombre de mots de votre fichier, s'affiche avant paiement.

Du django.po au catalogue japonais

Dans un projet Django, tout part de django-admin makemessages -l ja, qui produit locale/ja/LC_MESSAGES/django.po. Ce fichier rassemble les chaînes marquées dans vos gabarits ({% translate %}, {% blocktranslate %}), dans votre code Python (gettext, et gettext_lazy pour les verbose_name de modèles et les libellés de formulaires) ainsi que vos messages de validation. C'est ce fichier qu'il faut traduire : une fois rempli, compilemessages le transforme en django.mo, que Django charge à l'exécution.

Pour que la langue soit servie, le code ja doit figurer dans LANGUAGES, par exemple ('ja', '日本語'), et LocaleMiddleware doit être actif si la langue est déterminée par le navigateur ou par un préfixe d'URL /ja/.

Point utile pour le volume : l'interface d'administration et les applications de django.contrib sont déjà fournies en japonais par Django. Seules vos propres chaînes sont à traduire. Les chaînes JavaScript, elles, sont extraites à part dans djangojs.po avec makemessages -d djangojs : ne les oubliez pas.

Ce que le japonais change dans vos chaînes

L'ordre des mots. Le japonais place le verbe en fin de phrase : « Supprimer %(name)s ? » devient 「%(name)s」を削除しますか?. La variable change de place, ce qui ne pose aucun problème avec des variables nommées. Avec plusieurs %s anonymes dans une même chaîne, en revanche, l'ordre ne peut pas être inversé ; Django le signale d'ailleurs à l'extraction. Remplacez-les par %(name)s ou {name} avant d'extraire.

Le pluriel. Le japonais n'a qu'une forme (catégorie CLDR other). L'en-tête doit indiquer Plural-Forms: nplurals=1; plural=0; et chaque entrée msgid_plural n'a qu'un msgstr[0]. Le nombre s'exprime avec un classificateur : « %(count)s résultats » devient %(count)s 件の結果, « %(count)s membres » %(count)s 人のメンバー.

La ponctuation. Pas d'espace entre les mots, virgule 、 et point 。 pleine chasse, point d'interrogation ? collé, guillemets 「」. Vérifiez que le suffixe ajouté automatiquement aux libellés de formulaire (label_suffix) ne fait pas doublon avec un deux-points : déjà présent dans la chaîne traduite.

Le registre. Une interface professionnelle s'adresse à l'utilisateur en forme polie です/ます (保存しました pour « Enregistré »), tandis que les boutons restent nominaux et courts : 保存, 送信, キャンセル. Les termes empruntés s'écrivent en katakana : ログイン, パスワード.

Ce que Manuce rend, et ce qu'il ne fait pas

Vous déposez le django.po et vous récupérez le même fichier : commentaires de référence #:, ordre des entrées, guillemets, fins de ligne, encodage et BOM sont conservés ; seules les valeurs changent. Le fichier est prêt à remettre dans locale/ja/LC_MESSAGES/ et à recompiler avec compilemessages.

Les variables %(name)s et {name} sont vérifiées : chaque valeur japonaise est comparée à la source, variables et balises comprises. Si une traduction perd ou déforme une variable et que l'écart persiste, la valeur source est gardée et le rapport le dit, plutôt que de livrer une chaîne qui ferait échouer la compilation ou casserait l'affichage.

Ne sont pas traduits : clés, identifiants, URL, adresses email, nombres, couleurs, formats de date, valeurs vides et tout ce qui est marqué non traduisible. Le rapport liste les chaînes traduites et celles laissées telles quelles, avec la raison.

Ce que Manuce ne fait pas : il ne touche ni à votre settings.py, ni à vos gabarits, ni à vos feuilles de style, et ne lance pas makemessages ou compilemessages à votre place. Il ne produit pas non plus de traduction assermentée : si vos conditions générales en japonais doivent être certifiées, il faut passer par un traducteur expert.

Le prix porte sur les mots des valeurs, clés et balises exclues ; le japonais est une langue à supplément (coefficient ×1.6). Un extrait gratuit permet de juger du registre avant de payer.

Préparer le fichier, puis vérifier

Avant l'envoi :

  • Remplacez les %s multiples par des variables nommées, puis relancez makemessages -l ja.
  • Donnez un contexte aux mots courts ambigus avec pgettext : « Commande » (achat, 注文) et « Commande » (instruction, コマンド) n'ont pas la même traduction.
  • Ajoutez des commentaires commençant par Translators: au-dessus des appels, par exemple # Translators: bouton de validation du panier ; Django les reporte dans le .po.
  • Vérifiez l'en-tête : charset=UTF-8 et Plural-Forms: nplurals=1; plural=0;.

Après la livraison :

  • Retirez les drapeaux #, fuzzy hérités d'une extraction précédente, une fois l'entrée relue : compilemessages ignore les entrées floues.
  • Vérifiez que <html lang> reprend la langue courante ({% get_current_language %}) : sans lang='ja', certains navigateurs affichent les kanji avec des glyphes chinois.
  • Prévoyez une police japonaise en repli dans votre CSS, par exemple 'Hiragino Sans', 'Noto Sans JP', sans-serif.
  • Sans espaces, une longue chaîne peut se couper n'importe où : contrôlez boutons, menus et colonnes étroites.
  • Laissez Django formater dates et nombres selon les conventions japonaises (2025年3月14日) plutôt que de les écrire en dur dans les chaînes.

En pratique

  1. Lancez makemessages -l ja pour générer locale/ja/LC_MESSAGES/django.po.
  2. Déposez le fichier sur Manuce, choisissez le niveau et lisez l'extrait gratuit.
  3. Récupérez le django.po traduit et le rapport des chaînes laissées telles quelles.
  4. Replacez le fichier, lancez compilemessages et testez l'interface en japonais.

Questions fréquentes

Comment fonctionne ngettext en japonais ?

Le japonais n'a qu'une forme de pluriel : l'en-tête du .po doit indiquer nplurals=1; plural=0; et chaque entrée plurielle n'a qu'un msgstr[0]. La quantité s'exprime par un classificateur, comme 件 ou 人, placé après le nombre. Vérifiez l'en-tête avant de compiler.

Faut-il traduire l'administration Django ?

Non. L'administration et les applications de django.contrib sont déjà fournies en japonais par Django. Seules les chaînes de votre projet, présentes dans votre django.po, sont à traduire, ce qui réduit le nombre de mots facturés.

Mes variables changent de place dans la phrase japonaise : est-ce un problème ?

Non, tant qu'elles sont nommées, comme %(name)s ou {name}. Manuce compare chaque valeur traduite à la source ; si une variable manque ou est déformée et que l'écart persiste, la valeur source est gardée et le rapport l'indique. Les %s anonymes multiples sont à remplacer avant l'extraction.

Quel registre de politesse viser pour une interface ?

En contexte professionnel, les phrases s'adressent à l'utilisateur en forme polie です/ます, tandis que les boutons restent nominaux (保存, 送信). L'extrait gratuit permet de vérifier le ton avant de payer ; le niveau Professionnel est confié au spécialiste du domaine.

Pourquoi le japonais coûte-t-il plus cher qu'une autre langue ?

Le japonais est une langue à supplément : un coefficient ×1.6 s'applique au prix au mot. Le devis est calculé immédiatement au dépôt, sur les mots des valeurs du fichier, clés et balises exclues.

Le spécialiste qui s’en charge

Ce sujet est confié à Dédale, le spécialiste technique. Voir comment il travaille.

Testez sur votre fichier, gratuitement

Un extrait de votre fichier traduit au niveau choisi, avant tout paiement. Vous jugez, puis vous décidez.

Déposer mon fichier