ManuceTraduire un fichierTraduire une application Ruby on Rails en chinois simplifié

Traduire une application Ruby on Rails en chinois simplifié

Manuce traduit les valeurs de vos fichiers config/locales/*.yml vers le chinois simplifié et vous rend le même fichier, clé racine changée, prêt à reposer dans le projet. Les interpolations comme %{count} ou %{name} sont contrôlées, les clés ne sont pas touchées. Restent de votre côté ce qui ne vit pas dans le YAML\u00a0: polices, formats de date, ponctuation ajoutée dans les vues.

Déposer mon fichier Voir les tarifs

Combien ça coûte

Pour les fichiers de langue d'une application Ruby on Rails totalisant environ 3 000 mots, vers le chinois :

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.

Ce qui change quand une application Rails passe au chinois

Le chinois simplifié bouscule trois habitudes d'une interface Rails pensée pour une langue européenne\u00a0: le pluriel, l'ordre des mots et la ponctuation.

Le pluriel n'existe pas. Selon le CLDR, le chinois n'a qu'une catégorie, other. Une entrée comme one: \"%{count} commentaire\" / other: \"%{count} commentaires\" devient une seule forme, other: \"%{count} 条评论\", avec un classificateur (条, 个, 件, 位…) choisi selon le nom. Attention au comportement d'I18n\u00a0: avec le moteur par défaut, count: 1 cherche la clé one, et son absence lève I18n::InvalidPluralizationData si aucune règle de pluriel chinoise n'est chargée (la gemme rails-i18n en fournit une). Vérifiez ce point avant la mise en ligne.

Les variables changent de place. « Bon retour, %{name} » devient %{name},欢迎回来. Tant que la phrase entière est dans une seule valeur, la traduction peut la réordonner. Si votre code assemble des morceaux, par exemple t('.hello') + user.name, le chinois sera bancal\u00a0: regroupez la phrase dans une valeur avec interpolation.

Pas d'espaces, ponctuation pleine chasse. Le chinois écrit ,。:?! et ne sépare pas les mots. Le format des erreurs errors.format: \"%{attribute} %{message}\" s'écrit habituellement \"%{attribute}%{message}\", ce qui donne 邮箱不能为空 et non « 邮箱 不能为空 ».

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

Vous recevez le même fichier YAML, dans le même format. La clé racine de langue (fr:) devient celle de la cible\u00a0; indentation, ordre des clés, guillemets, commentaires, fins de ligne, encodage et BOM sont conservés. Seules les valeurs changent.

  • Chaque valeur traduite est comparée à la source\u00a0: une interpolation %{count} ou une balise dans une clé _html doit se retrouver à l'identique. En cas d'écart persistant, la valeur source est gardée et le rapport le signale.
  • Ne sont pas traduits\u00a0: les clés, les valeurs vides, les URL, les adresses email, les nombres, les couleurs, les formats de date, les 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.

Ce que Manuce ne fait pas\u00a0: il ne touche ni aux vues ni aux contrôleurs, ne récupère pas les textes écrits en dur dans vos gabarits ERB, ne modifie pas config.i18n.available_locales et laisse vos formats comme \"%d/%m/%Y\" en l'état. Le chinois traditionnel (Taïwan, Hong Kong) est une langue distincte, à commander à part. Enfin, Manuce ne produit pas de traduction assermentée\u00a0: si vos conditions générales doivent être certifiées, adressez-vous à un traducteur expert.

Le chinois est une langue à supplément (coefficient ×1,6 sur le prix au mot), appliqué aux seuls mots des valeurs, clés et balises exclues.

Préparer les fichiers avant le dépôt

  • Rassemblez tous les fichiers de la langue source\u00a0: config/locales/fr.yml, mais aussi les fichiers par modèle ou par vue, et ceux des gemmes que vous avez copiés dans le projet, comme devise.fr.yml. Un fichier oublié, ce sont des écrans à moitié en français.
  • Sortez les phrases du code. Cherchez les textes en dur dans les vues et les concaténations de traductions\u00a0; transformez-les en une valeur avec %{variable}.
  • Déplacez la ponctuation dans les valeurs. Une vue qui écrit <%= t('.email') %>: produira 邮箱: avec un deux-points latin. Mettez le signe dans la valeur pour qu'il devienne :.
  • Alignez le code de langue. Vérifiez que la clé racine rendue correspond au code déclaré par votre application. Si le projet utilise zh-CN (convention de rails-i18n), harmonisez la clé et le nom du fichier.
  • Nettoyez les clés mortes\u00a0: elles comptent dans le nombre de mots sans servir à rien.

Vérifier l'interface en chinois après intégration

Polices. Une police web latine n'a pas les caractères chinois\u00a0; le navigateur prend alors une police de secours au hasard. Déclarez une pile explicite, par exemple font-family: \"PingFang SC\", \"Microsoft YaHei\", \"Noto Sans SC\", sans-serif;.

Longueur. Le texte est deux à trois fois plus court en caractères, mais chaque caractère est plus large\u00a0: la place occupée varie peu, les boutons tiennent en général. En revanche, truncate(text, length: 40) compte des caractères\u00a0: 40 idéogrammes portent bien plus de sens que 40 lettres. Ajustez ces limites.

Dates et nombres. Les formats ne sont pas traduits. Définissez vous-même date.formats.default, par exemple \"%Y年%-m月%-d日\", et l'unité monétaire de number.currency.format si vous affichez des prix en yuans.

Tests. Passez I18n.locale = :zh (ou votre code), affichez un compteur à 0, 1 et 2 pour vérifier le pluriel, déclenchez quelques erreurs de validation et relisez les courriels générés par ActionMailer. Un outil comme i18n-tasks repère les clés manquantes entre la source et le chinois.

En pratique

  1. Rassemblez tous les fichiers config/locales/*.yml de la langue source, y compris ceux des gemmes copiés dans le projet.
  2. Déposez-les sur Manuce, choisissez le chinois simplifié et lisez l'extrait gratuit.
  3. Récupérez les fichiers traduits et le rapport, puis alignez la clé racine sur votre code de langue (zh ou zh-CN).
  4. Réglez polices, formats de date et règle de pluriel, puis testez les compteurs et les messages d'erreur.

Questions fréquentes

Faut-il garder la clé one dans le fichier chinois\u00a0?

Le chinois n'a qu'une forme, other. Si une règle de pluriel chinoise est chargée (par exemple via rails-i18n), other suffit. Sinon, le moteur I18n par défaut cherche one quand count vaut 1 et lève une erreur s'il ne la trouve pas\u00a0: testez ce cas avant la mise en ligne.

Ma clé racine doit-elle être zh ou zh-CN\u00a0?

Celle que déclare votre application dans config.i18n.available_locales. Manuce remplace la clé racine source par celle de la langue cible\u00a0; si votre projet suit la convention zh-CN, harmonisez la clé et le nom du fichier avant de committer.

Les messages de validation ActiveRecord et de Devise sont-ils traduits\u00a0?

Oui s'ils figurent dans les fichiers YAML que vous déposez. Les textes fournis par une gemme et absents de votre projet ne sont pas concernés\u00a0: copiez leur fichier de langue dans config/locales avant le dépôt.

Puis-je obtenir aussi le chinois traditionnel\u00a0?

Oui, mais c'est une langue distincte chez Manuce, à ajouter à la commande. Commander plusieurs langues ensemble donne une remise sur toute la commande, dès deux langues.

Comment juger la qualité avant de payer\u00a0?

Au dépôt, vous obtenez un devis immédiat sur le nombre exact de mots et un extrait gratuit\u00a0: un paragraphe du fichier traduit au niveau choisi. Faites-le relire par un locuteur si vous en avez un sous la main.

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