ManuceTraduire un fichierTraduire un fichier PO (gettext) en coréen

Traduire un fichier PO (gettext) en coréen

Déposez votre fichier .po ou .pot : Manuce rend un .po coréen avec l'en-tête <code>Plural-Forms</code> à une seule forme, les <code>msgctxt</code> et commentaires intacts, et les variables printf vérifiées une à une. Seules les valeurs <code>msgstr</code> changent, et un rapport indique ce qui a été traduit ou laissé tel quel.

Déposer mon fichier Voir les tarifs

Combien ça coûte

Pour un fichier PO (gettext) d'environ 2 500 mots de valeurs, vers le coréen :

Essentiel
24 €

Comprendre, usage interne.

Professionnel
72 €

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

Premium
140 €

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.

Ce que le coréen change dans un fichier PO

Le coréen n'a qu'une catégorie de pluriel (other dans CLDR). Un modèle .pot rendu en coréen reçoit donc l'en-tête Language: ko et Plural-Forms: nplurals=1; plural=0;, et chaque entrée qui porte un msgid_plural n'a plus qu'un msgstr[0].

Concrètement, la paire source "%d file" / "%d files" devient une seule chaîne : msgstr[0] "파일 %d개". Le nom ne varie pas ; le nombre est suivi d'un classificateur : 개 pour des objets, 명 pour des personnes, 건 pour des demandes, des résultats ou des messages. Si votre interface affiche une phrase particulière pour zéro (« Aucun fichier »), cette logique doit rester dans le code : la règle de pluriel coréenne ne distingue ni 0, ni 1, ni plusieurs.

Si vous partez d'un .po coréen déjà existant dont l'en-tête a été copié d'une autre langue (nplurals=2), corrigez cet en-tête : msgfmt --check signale l'écart entre nplurals et le nombre de msgstr[n] présents.

Particules, ordre des mots et variables

La difficulté propre au coréen dans gettext tient aux particules. Leur forme dépend de la dernière syllabe du mot qui précède : 을 après une consonne finale, 를 après une voyelle ; de même pour 이/가, 은/는, 으로/로. Quand ce mot est une variable, on ignore ce qu'elle contiendra : « Delete %s? » ne peut pas s'écrire sans risque %s를 삭제하시겠습니까?.

Deux solutions sont courantes :

  • la notation double %s을(를), admise dans les interfaces ;
  • une tournure qui accroche la particule à un mot fixe : '%s' 항목을 삭제하시겠습니까?, où 을 s'accorde avec 항목 (« élément »).

Regardez dans l'extrait gratuit quelle forme a été retenue pour vos chaînes à variable.

L'ordre des mots est sujet-objet-verbe, et le verbe ferme la phrase : avec deux variables, leur ordre naturel s'inverse souvent. Dans « %s shared %s with you », le coréen place volontiers le document avant l'action. Si la source écrit %s %s, la traduction doit garder cet ordre ; des arguments positionnels (%1$s, %2$s) dans la source, quand votre langage les accepte, laissent la phrase coréenne se construire normalement. Manuce vérifie que chaque variable de la source se retrouve dans la traduction.

Registre, espacement et affichage

La politesse se marque à la fin du verbe. Les messages d'interface emploient en général la forme polie formelle en -습니다 (저장되었습니다, « Enregistré ») ; certaines applications grand public préfèrent la forme polie plus souple en -요 (저장했어요). Les boutons et menus prennent plutôt un nom : 저장 pour « Enregistrer », 취소 pour « Annuler ». Deux registres mélangés dans des messages voisins se remarquent : relisez quelques messages d'erreur côte à côte.

Le msgctxt est précieux ici : « Open » comme action (열기) et « Open » comme état (열림) ne se traduisent pas pareil. Les commentaires #. qui précisent où s'affiche la chaîne aident aussi à choisir entre nom et phrase.

Le coréen sépare les groupes de mots par des espaces (파일을 찾을 수 없습니다), et ces espaces font partie de l'orthographe. Une chaîne coréenne compte souvent moins de caractères que sa source, mais chaque syllabe hangeul occupe une pleine largeur : testez les libellés dans les zones étroites. Vérifiez que la police de l'application contient le hangeul, sinon des carrés vides s'affichent. La ponctuation suit l'usage anglais, sans espace avant ? ni !.

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

Vous récupérez le même fichier, prêt à remettre dans le projet :

  • indentation, ordre des entrées, guillemets, commentaires #., #: et #,, fins de ligne, encodage et BOM inchangés ;
  • msgctxt et msgid_plural conservés, un seul msgstr[0] par entrée plurielle ;
  • un .pot transformé en .po coréen avec Language et Plural-Forms posés ;
  • chaque valeur comparée à la source (variables %s, %d, %1$s, balises) ; en cas d'écart persistant, la valeur source est gardée et le rapport le signale ;
  • non traduits : msgid, valeurs vides, URL, adresses email, nombres, couleurs, formats de date, identifiants, et tout ce qui est marqué non traduisible.

Le rapport liste les chaînes traduites et celles laissées telles quelles, avec la raison. Manuce ne compile pas le .mo, ne voit pas votre interface et ne choisit pas une particule à l'exécution : le résultat d'un %s을(를) dans l'écran réel reste à contrôler de votre côté. Le drapeau #, fuzzy est conservé comme les autres commentaires, il n'est pas retiré.

Préparer le fichier et vérifier au retour

Avant l'envoi :

  • l'encodage étant conservé, le fichier doit pouvoir contenir le hangeul : un .pot en ASCII ou ISO-8859-1 se convertit d'abord en UTF-8 (msgconv --to-code=UTF-8), avec charset=UTF-8 dans l'en-tête ;
  • traitez les entrées marquées fuzzy : msgfmt les ignore par défaut, même traduites ;
  • remplacez si possible %s %s par des arguments positionnels dans la source.

Au retour :

  • compilez avec msgfmt --check -o ko.mo ko.po ;
  • lancez l'application en ko_KR.UTF-8 et regardez les chaînes à variable, les compteurs (%d개) et les boutons courts ;
  • lisez le rapport : une chaîne restée dans la langue source signale souvent une variable ou une balise à revoir dans la source.

En pratique

  1. Convertissez si besoin le .po ou le .pot en UTF-8, puis déposez-le : le devis porte sur les mots des valeurs.
  2. Choisissez le niveau et lisez l'extrait gratuit : registre, particules après les variables, classificateurs.
  3. Payez et récupérez le .po coréen et son rapport dans votre espace client.
  4. Compilez avec msgfmt --check et testez l'interface en coréen.

Questions fréquentes

Pourquoi mes entrées plurielles n'ont-elles plus qu'un msgstr[0] ?

Le coréen n'a qu'une forme de pluriel : l'en-tête devient <code>nplurals=1; plural=0;</code>. Les deux chaînes source « %d file » et « %d files » se traduisent par une seule chaîne, par exemple <code>파일 %d개</code>. C'est le comportement attendu par gettext pour le coréen.

Comment sont traitées les particules après une variable ?

Comme la valeur de <code>%s</code> est inconnue, la traduction emploie une notation double comme <code>을(를)</code> ou une tournure qui rattache la particule à un mot fixe. Vérifiez sur l'extrait gratuit que la solution retenue convient à votre interface, puis contrôlez l'affichage réel après compilation.

Quel niveau de politesse est utilisé ?

Le contexte guide le choix : <code>msgctxt</code> et commentaires <code>#.</code> sont lus. Les messages prennent en général une forme polie, les boutons un nom court comme <code>저장</code>. Si vous visez un registre précis, contrôlez-le sur l'extrait gratuit avant de commander.

Mon fichier est en ISO-8859-1 : est-ce un problème ?

Oui, car Manuce conserve l'encodage du fichier et cet encodage ne contient pas le hangeul. Convertissez-le en UTF-8 avant l'envoi, par exemple avec <code>msgconv</code>, et indiquez <code>charset=UTF-8</code> dans l'en-tête.

Pourquoi le coréen coûte-t-il plus cher qu'une langue européenne ?

Le coréen fait partie des langues à supplément, avec un coefficient ×1.6 sur le prix au mot. Le décompte porte uniquement sur les mots des valeurs à traduire ; les <code>msgid</code> et les balises ne sont pas comptés.

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