Localisation d'applications: comment nous nous sommes fait des amis traduction et développement


Bonjour, Habr! Je suis l'un des principaux développeurs de localisation de Badoo. Nous travaillons avec plusieurs grands projets: Badoo, Bumble, Lumen et Chappy. Maintenant, dans le système de localisation, nous avons 150 000 phrases et textes traduits en 52 langues. De plus, chacune de nos applications a son propre public, ses marchés, son propre style de communication avec les utilisateurs, des versions pour le web et pour les plateformes mobiles.


Dans cet article, je vais vous expliquer comment nous avons construit le processus de localisation, comment nous abordons le contrôle qualité, comment nous publierons les traductions en fonction de la plate-forme et, surtout, comment nous nous sommes assurés que les développeurs parlent bien de notre système de traduction. C'est un point très important: plus de 300 développeurs travaillent sur des projets, dont le travail devrait être confortable. Les développeurs ne sont pas des traducteurs et ne devraient pas penser aux traductions.


L'article a été écrit sur la base de mon rapport lors de la conférence Highload ++ en novembre.


Contenu:


Le mandat de toute la tête!
Caractéristiques du processus de traduction
Nous demandons aux utilisateurs d'aider
Organisation de développement
Contrôle qualité de la localisation
Versions, versions
L'essentiel. Résumé
Matériel supplémentaire


Pour commencer, voyons à quoi ressemble généralement le processus de localisation dans notre entreprise.



Dans ce diagramme, je n'ai pas reflété toutes les nuances - elles ne sont pas nécessaires pour une compréhension générale. L'essentiel, c'est que nous commençons par les termes de référence (TOR). Vient ensuite le développement des clients et des serveurs, et en parallèle, le processus de traduction.


Les savoirs traditionnels et la phase de sortie finale ne sont pas en vain mis en évidence dans une seule couleur. C'est un indice que la version doit être conforme aux TdR. Pas d'autre moyen. Si le savoir traditionnel n'est pas suffisamment complet, les développeurs ne sauront pas clairement qui est responsable de quoi, lequel d'entre eux devrait intégrer le texte: le «téléphone mobile» devrait le «coudre» dans l'application mobile ou les développeurs du serveur devraient l'envoyer depuis le serveur en réponse à la demande.


Traitons tout cela. Mais d'abord, je veux introduire et expliquer un terme.


Un jeton est un texte indivisible qui doit être traduit. Il peut s'agir d'une légende de bouton, d'un titre ou d'un paragraphe entier.

Nous sommes maintenant prêts à passer au matériau principal!


Mandat


La première étape de notre processus est la préparation des spécifications techniques correctes. L'élément principal lié à la localisation est la table des jetons. Il s'agit en fait d'une liste de textes à utiliser dans l'application ou sur le site.



Le tableau des jetons indique si le texte est fourni par le serveur ou intégré à l'application. La clé doit être indiquée: si le texte a déjà été utilisé, la clé sera présente dans ce tableau; si le texte n'a été utilisé nulle part, le numéro de série du texte sera indiqué et le développeur pourra définir une clé pratique.


La réutilisation de texte est un moment très insidieux. D'une part, le processus de localisation est accéléré, et d'autre part, vous pouvez vous retrouver dans une situation amusante.


Je vais vous expliquer avec un exemple. Une fois, nous avions une question «Fumez-vous?» Avec les options de réponse «Oui» et «Non». Ici, nous voyons trois jetons: deux pour les réponses et un pour la question. La question a été traduite en russe par «Fumez-vous?», Les réponses sont «Je fume» et «Je ne fume pas». Nous avons ensuite décidé de mener une autre enquête et de réutiliser les options de réponse. En anglais, tout semblait correct: «Envie de visiter une fête?» - «Oui» / «Non». En russe, en raison de la réutilisation des jetons, le «dialogue» suivant s'est avéré: «Allez-vous à la fête?» - «Je fume» / «Je ne fume pas».


Maintenant, lorsque nous compilons les TdR et décidons de la réutilisation du texte, nous prenons en compte dans quels contextes il était précédemment utilisé. Nous indiquons également si le jeton est donné par le serveur ou intégré au client et livré aux clients via l'App Store ou Google Play.


Ces techniques permettent de gagner du temps car elles excluent toute discussion à des stades ultérieurs.


Traductions


La prochaine étape est la traduction. Et l'essentiel ici n'est pas de perdre la pensée d'origine. Et cela arrive souvent, car toutes les langues sont différentes, avec leurs propres nuances et tournures. Parfois, la traduction la plus précise ne tient tout simplement pas à l'écran et les traducteurs doivent trouver un compromis.


Je vais vous expliquer comment commencer la traduction, comment apporter le contexte aux traducteurs, conserver un style commun et vérifier le résultat.


Ordonnance de traduction


Il y a de l'ordre où il y a des règles (et toutes les suivent). Par conséquent, nous avons un règlement sur l'ordre de traduction.


Pour commencer, nous choisissons une langue comprise par la plupart des traducteurs. C'est sur celui-ci que nous préparerons les textes sources, afin qu'ils puissent plus tard être facilement traduits dans d'autres langues. Toutes les langues dans lesquelles nous traduisons (et nous en avons 52) sont divisées en principaux (parent) et dialectes. La langue dans laquelle les textes sont préparés est l'anglais (nous l'appelons maître). De plus, de l'anglais, nous traduisons dans d'autres langues: espagnol, français, russe et autres. Parfois, la traduction doit être clarifiée pour l'un des dialectes - puis nous traduisons en espagnol mexicain ou en anglais australien. Mais si nous n'en avons pas besoin, nous utiliserons la traduction dans la langue parente: espagnol de base ou anglais de base.


Un exemple. Disons que nous devons rendre la salutation plus formelle. Au départ, il y avait «Hey» en anglais, «Hola» en espagnol, «Salut» en français, «Hello» en russe, «G'day mate» en australien et «Que onda» en mexicain («Like a wave» ? "; Les Mexicains sont cool!). Si nous voulons changer le texte, le rendre plus officiel, alors nous devrons changer le texte original en anglais. À ce stade, les traductions dans d'autres langues deviennent incorrectes: elles doivent être vérifiées et clarifiées. Nous attirons l'attention des traducteurs sur ce point.


Impact sur le contexte


Un point important est le contexte dans lequel la traduction existe.


Je vais expliquer avec des exemples.


Immédiatement, je note que certains exemples sont des captures d'écran de ressources connues, mais leur nom n'a pas d'importance pour nous, nous examinons simplement les types d'erreurs les plus courants dans la localisation.

Ceci est un signe avec une station-service: "Avant de commencer le mouvement, assurez-vous qu'il n'y a pas de pistolet dans le réservoir." Le mot "gun" a été traduit littéralement en anglais: "gun". Mais un pistolet pour un Américain est une arme. Dans ce contexte, la demande «Sortez l'arme du char» semble plutôt étrange.


Dans l'exemple suivant, les créateurs de l'application ont décidé de faire une version universelle du texte pour les hommes et les femmes - apparemment, cela présente certains avantages. Le sentiment est que les textes et les images sont simplement rassemblés sur un seul écran: l'enjeu n'est pas clair.



L'exemple suivant montre comment la pensée originale du texte a été perdue à la suite de la traduction. Regardez la version russe à droite: on nous propose de commencer la communication avec nous-mêmes. Bien qu'il ait été entendu qu'ils nous donnent la possibilité de lier notre compte Instagram.



Ces erreurs se produisent lorsque la traduction se produit hors contexte. Par conséquent, pour chaque jeton de notre système de localisation, ce qui suit est indiqué:


  • description textuelle;
  • une image qui montre quels éléments se trouvent à côté du texte à l'écran;
  • une note indiquant si le texte sera présenté aux hommes ou aux femmes - afin que les traducteurs puissent déterminer si deux traductions différentes sont nécessaires ou une seule;
  • les types de variables (c'est un point très important, et je vous en dirai plus lorsque nous analyserons le processus de développement);
  • longueur maximale du texte: elle est très importante pour les notifications push, car la largeur de l'écran d'un appareil mobile n'est pas illimitée.
    De plus, nous allons certainement diviser le gros texte en parties. C'est pratique si vous devez ensuite rechercher ou apporter des modifications.

Analysons ce moment plus en détail. Lorsque nous avons rompu le texte, nous avons perdu le lien entre les phrases et les phrases individuelles. Par conséquent, nous devons montrer aux traducteurs ce qui s'est passé avant et après ce texte. Cela est pertinent, par exemple, dans le cas des documents juridiques - afin qu'ils soient correctement traduits.


Nous mettons également en évidence les termes locaux, les mots d'argot dans les jetons. Par exemple, dans le cas de la phrase «Déverrouillez votre liste de likes pour voir tous ceux qui sont intéressés à la fois», le traducteur doit savoir que les likes dans ce cas sont un répertoire d'application spécial qui contient les contacts des utilisateurs qui aiment le profil. Un autre exemple similaire est le terme «Histoires». Il y a dix ans, personne au mot «histoire» n'imaginait Instagram. Maintenant, il est principalement associé à lui.


Nous nous sommes donc assurés que l'option de traduction dépend fortement du contexte, à savoir des facteurs suivants:


  • Sexe de l'utilisateur
  • la variable numérique qui apparaît dans le texte: «Vous n'avez qu'un seul ami» et «Vous avez déjà dix amis»;
  • Plateformes: Web, Android, iOS;
  • le projet pour lequel la traduction est effectuée.

Arrêtons-nous sur le dernier point - la dépendance de la traduction par rapport au projet. Ceci est important car chaque projet a son propre style.

Ce sont les en-têtes des lettres qui sont envoyées à l'utilisateur si son compte a été bloqué.


Pour Badoo: "Votre compte est verrouillé."
Pour Lumen: "Votre compte est verrouillé."
Pour Bumble: "Vous avez été bloqué."
Et pour Chappy - "Aw!"


Afin de maintenir un style unifié au sein de chaque projet, vous devez donner aux traducteurs un accès à l'historique des traductions. Nous avons un outil appelé mémoire de traduction (TM). Le traducteur a toujours accès aux informations sur les correspondances et au pourcentage de similitude: il peut soit utiliser l'ancienne traduction, soit en saisir une nouvelle. Nous montrons aux traducteurs non seulement des correspondances à 100%, mais aussi des options moins similaires, et nous soulignerons certainement les différences.

Outre le fait que la «Mémoire de traduction» vous permet de conserver le style dans le cadre du projet, elle contribue également à accélérer le processus, car le traducteur n'a pas besoin d'entrer deux fois la même chose.


Cas et numéros


Nous avons un outil appelé Case Matrix. C'est comme une table de multiplication, uniquement pour les cas et les chiffres.


Les traducteurs, si nécessaire, remplissent cette matrice pour différents mots dans chaque langue. Le remplir en une seule étape est irréaliste, donc cela se fait progressivement: il a fallu un mot - fait.


Par conséquent, la matrice permet d'éviter ces erreurs:



L'avantage de l'outil est que la forme souhaitée est sélectionnée immédiatement avant le rendu, avant d'être montrée à l'utilisateur. Voici comment ça se passe:



Par exemple, nous avons une traduction en russe. «Crédits» au centre est un identifiant, un lien vers une matrice de cas. Le «montant des crédits» à gauche est le nombre qui proviendra du développeur. Et @ 3 est le cas indiqué par le traducteur (dans ce cas, l'accusatif).


«Vous avez besoin de 10 crédits»: l'expression «10 crédits» sera automatiquement remplacée.


Vérification de la traduction


Si nous multiplions 150 000 phrases et textes en 52 langues, nous obtenons un chiffre de l'ordre de 7,5 millions. Bien sûr, vérifier manuellement tout cela est irréaliste. Par conséquent, nous avons effectué une vérification automatique des traductions au moment de l'enregistrement.


Nous vérifions automatiquement les fonctionnalités telles que les emoji ou les variables manquants. Si le traducteur a accidentellement supprimé une variable, la phrase perd sa structure et sa signification. Comparez: «Vous avez besoin de 10 crédits» et «Vous avez besoin de crédits» - la deuxième phrase est gâtée, la pensée est perdue.


Nous vérifions également le HTML manquant, sinon la mise en page ira.


Et nous avertissons toujours le traducteur que sa traduction est plus longue que l'original. À ce stade, il doit vérifier s'il convient, si le texte tiendra à l'écran.


Nous mettons en évidence les points principaux:


  • les traducteurs ont besoin de comprendre le contexte;
  • le système de traduction devrait être si flexible qu'une traduction appropriée puisse être faite pour chaque langue afin que le traducteur ne choisisse pas des formulations universelles; un soutien pour les déclinaisons et les cas est nécessaire;
  • Assurez-vous de vérifier automatiquement les traductions.

Aide utilisateur


En plus du travail de traducteurs professionnels, nous utilisons l'aide des utilisateurs. Il existe deux méthodes ici: les tests A / B et la traduction conjointe.


Test A / B


Donc, vous avez besoin d'une traduction, par exemple, en russe. Le traducteur a traduit une phrase de deux manières différentes et vous ne savez pas quelle option choisir. Dans ce cas, vous pouvez effectuer un test A / B: montrer aux utilisateurs différentes options et en choisir une en fonction de leur réaction.


Nous avions le choix entre deux options: «Prêt pour de nouvelles connaissances? Rejoignez-nous! "Et" Encore quelques étapes ... et vous ferez partie de Badoo. " À la suite des tests, nous avons découvert que davantage d'utilisateurs ont terminé l'enregistrement lorsqu'ils ont vu la deuxième option de notification push. Nous l'avons quitté.


Vous trouverez ci-dessous un aperçu complet des facteurs dont dépend l'option de traduction. Le cinquième élément est juste un test A / B: si l'utilisateur fait partie d'un groupe, alors il verra la version correspondante du texte.



Traduction conjointe


Une fois que nous avons envoyé aux utilisateurs du Mexique une notification leur demandant de traduire certains textes dans leur langue pour une somme modique sous forme de prêts - la monnaie interne de l'application. Et ils ont accepté: en seulement deux jours, 5 000 jetons ont été traduits pour nous. C'est une aide énorme, et les Mexicains sont des gars formidables!


Qu'est-ce qui est intéressant et pourquoi cette approche est-elle importante? Si vous ne disposez pas d'un traducteur de dialecte local, autorisez les utilisateurs à effectuer ce travail. En fait, ils sont vraiment prêts à participer au développement d'un projet qu'ils aiment.


Nous avons une plateforme de traduction collaborative . Vous pouvez vous connecter en utilisant votre compte Badoo. Et votez pour la meilleure traduction.



Ceci est une capture d'écran de la fenêtre de traduction allemande. L'utilisateur peut ajouter sa propre version. Lorsqu'une des options obtient un nombre seuil de votes, nous la montrons à notre traducteur à temps plein, et elle peut être utilisée comme principale (à condition qu'elle corresponde au style, aux règles du projet, n'offense personne, etc.).


N'ayez pas peur de demander de l'aide aux utilisateurs. Ils vous inviteront et vous aideront.


Développement


Nous passons au plus intéressant - au processus de développement. J'ai d'abord spécifiquement parlé du processus de traduction, décrit les problèmes courants, puis montré comment les développeurs résolvent ces problèmes.


Il y a deux difficultés principales: comment organiser le développement parallèle et comment suivre les erreurs lors de l'utilisation de jetons afin que les traductions correctes apparaissent au bon moment.


Développement parallèle


Je vais commencer par l'histoire. Auparavant, notre schéma de développement était différent. Le code source a été stocké dans un fichier dans le référentiel. Deux développeurs pouvaient changer quelque chose en parallèle, et il était alors nécessaire de combiner ces changements. Le problème est petit mais peu pratique.

L'ancien système dans lequel les changements devaient être combinés


Maintenant, nous changeons et ajoutons des jetons de manière centralisée dans le système de localisation. Les développeurs doivent uniquement télécharger un ensemble de jetons avant de commencer à travailler sur la tâche et de les utiliser. La clé est indiquée, vous avez écrit le code, vous l'utilisez - tout ce que vous ne pensez à rien d'autre.


Erreurs lors de l'utilisation de jetons


Il existe de nombreuses variables dans les traductions.

Si vous êtes pressé, vous pouvez facilement confondre «credit_amount» et «credit». Pour éviter cela, nous avons introduit le contrôle - un conteneur de texte, une sorte d'abstraction sur la traduction, qui sait quel type de variables sont utilisées dans cette traduction. Il effectue la substitution et vérifie que les types de valeur passés pour la substitution sont comme prévu. Si toutes les substitutions sont effectuées, il renvoie une ligne qui peut déjà être montrée à l'utilisateur. Sinon, le même conteneur est retourné. Si nous essayons de montrer à l'utilisateur une traduction avant d'avoir terminé toutes les substitutions, nous verrons un avertissement dans les journaux et nous saurons où aller et comment corriger la situation.


Faits saillants du développement:


  • les développeurs ne doivent gérer que leur travail - ils ne doivent pas penser à la localisation, à la modification des textes, etc.
  • vous devez vérifier ce que les développeurs ont fait, et cette vérification est également préférable d'automatiser - cela préservera les cellules nerveuses de tous les participants au processus.

Contrôle qualité


Nous avons donc déjà un produit développé que nous avons traduit. Reste à vérifier dans quelle mesure nous l'avons fait.


Commençons par les exemples. Combien de montants dans cette capture d'écran?



J'en ai souligné deux. Ci-dessus - le traducteur ne savait apparemment pas qu'une distance serait indiquée devant sa phrase. Bas - la largeur de l'écran sur lequel la traduction est affichée n'est pas prise en compte.


Le deuxième exemple concerne également les traductions trop longues qui ne correspondent pas à la largeur de l'écran - tout est simplement recadré ici, l'inscription ne tient pas sur le bouton.



Dans l'exemple suivant, en plus de nous montrer du texte dans différentes langues, il nous est également proposé de connaître la douleur.



Pour éviter que de telles erreurs ne se produisent sur la prod, un contrôle de la qualité est simplement nécessaire.


Options de contrôle


Voyons quelles options de contrôle existent.


La première qui me vient à l'esprit est de vérifier la traduction sur une version test du site ou de l'application. C'est-à-dire, commencez simplement et voyez si ce qui s'est passé est cohérent avec la conception, l'idée, les spécifications techniques, etc. En utilisant cette méthode, nous avons détecté cette erreur dans la notification push:



Captures d'écran d'application


La prochaine méthode de contrôle de la qualité est basée sur les captures d'écran de l'application.


Nous avons développé un outil spécial qui, dans un environnement de test, prend des captures d'écran de tous les écrans des applications mobiles dans toutes les langues. Vous pouvez voir à quoi ils ressemblent dans le navigateur. Il existe également un mode spécial, vers lequel on peut voir les identifiants du texte qui nous est présenté. Cela aide beaucoup lors du débogage: vous pouvez rapidement découvrir de quel jeton il s'agit et pourquoi il est arrivé là où il est arrivé (peut-être avons-nous hérité du code dans lequel ce jeton est substitué).


Si vous avez une version Web et que vous avez juste besoin d'obtenir des images de quelque part, vous pouvez intégrer des marqueurs de jeton dans le texte source, écrire un plug-in pour Google Chrome - et à partir des machines des testeurs, de leurs navigateurs, ce plug-in enverra des captures d'écran de pages à votre système de localisation sur lequel il a découvert des jetons.


<ul> <li>...</li> <li> <!--lexeme_12345-->  <!--lexeme_12345_end--> </li> <li>...</li> </ul> 

Nous avons utilisé cette méthode pendant un certain temps. Il a permis de collecter un grand nombre de photos en seulement deux semaines. Mais nous l'avons refusé, car avec lui, vous ne pouvez obtenir que des images de la version déjà publiée, et nous avons appris à obtenir des images et un design au stade de la formation des savoirs traditionnels.


Contrôle pendant la traduction


Comme je l'ai dit plus haut, il nous a semblé insuffisant de prendre des photos alors qu'il existe déjà une application toute faite. Nous avons décidé de faire des captures d'écran lorsque l'application n'est pas encore prête, quand il n'y a toujours rien et qu'il faut en quelque sorte contrôler la qualité, pour comprendre si tout se passe comme il se doit.


Nous avons donc obtenu un outil de contrôle lors de la traduction.

J'expliquerai le principe de son travail. Nos concepteurs utilisent Sketch, une application dans laquelle ils créent des interfaces, y compris des interfaces d'applications mobiles. Nous avons appris à remplacer des textes dans des fichiers Sketch et à générer des captures d'écran de l'écran dont nous avons besoin en utilisant l'interface du logiciel Sketch. Maintenant, dans le processus de traduction, nous pouvons immédiatement lui montrer des captures d'écran d'écrans dans sa langue. Et pour ce faire avant même que les développeurs ne commencent à créer la première version de la nouvelle fonctionnalité.


Plus tard, nous avons conçu cette solution en open-source ( article , code ).


Audit de traduction


S'il n'est pas possible de vérifier la traduction dans une langue particulière, par exemple en japonais, vous pouvez commander un audit sélectif, c'est-à-dire qu'une entreprise tierce peut montrer la traduction de chaque centième jeton avec une image et demander si tout est correct.


Points forts du contrôle qualité:


une évaluation visuelle de la qualité de la traduction est nécessaire;
pendant le processus de test, il est important de comprendre quels appareils votre public utilise et de tester l'application sur tous ces appareils.


Date de sortie


Nous avons donc testé des fonctionnalités écrites intéressantes. Reste à le livrer aux utilisateurs.


Jetons de version


Dans notre application Badoo, il y avait un service Super Power. À un moment donné, nous devions changer son nom en «Badoo Premium», et à la fois dans toutes les versions, il était atomique pour que l'utilisateur ne voit pas «Super Strength» sur un écran et «Badoo Premium» sur l'autre.


Pour ce faire, nous avons attaché une version de jeton à chaque branche de tâche dans Jira. Lorsque nous incluons des modifications d'une branche dans une nouvelle version d'un projet, la nouvelle version des jetons est immédiatement récupérée. Si vous devez annuler quelque chose, nous supprimons la branche de tâche de la nouvelle version et avec elle, nous supprimons la version des jetons avec des traductions dans toutes les langues.


Lorsqu'un jeton a été testé ou lorsque les utilisateurs le voient déjà, vous devez être très prudent: il vaut mieux ne rien y changer, mais créer une nouvelle version, l'attacher au ticket et avec la nouvelle version déployer la nouvelle version du jeton avec de nouvelles traductions.


Gestion des versions de traduction


Cependant, vous pouvez faire des erreurs lors de la traduction. Dans l'exemple ci-dessous, il y en a deux.


Faux: "C'est un remathie."
Vrai: "C'est une revanche."


En anglais, vous ne pouvez pas utiliser l'apostrophe directe. La lettre «c» est également manquante.


Les jetons de versioning et les traductions de versioning sont deux choses différentes. La traduction peut être corrigée à tout moment: lorsque la tâche est en développement, lorsqu'elle est en phase de test ou même lorsque la fonctionnalité a déjà été apportée à l'utilisateur (rien de grave ne se passera si les utilisateurs voient la traduction corrigée dans la nouvelle version de l'application).


Serveur! = Smartphone


La livraison des mises à jour sur différentes plateformes se produit de différentes manières. Si vous développez une application mobile, vous avez à coup sûr les parties serveur et client.


Ce que vous montrez à l'utilisateur provient en partie du serveur ou se trouve sur son smartphone (par exemple, traduction intégrée).

Le chemin qui passe le transfert du serveur à l'utilisateur passe par notre serveur de production, où vous pouvez facilement fournir des versions mises à jour de fichiers avec des traductions.


Mais le chemin de la traduction intégrée est long: il passe par l'App Store ou Google Play. L'utilisateur télécharge la mise à jour et seulement après avoir vu le correctif. Ce processus nous a semblé trop lent et nous avons mis au point notre propre mécanisme de mise à jour «Hot Update». Il vous permet de générer une nouvelle version des traductions en un clic et de faire comprendre à tous les clients du monde qu'il y a quelque chose de nouveau à télécharger et à utiliser.

Lorsque l'application est lancée sur un appareil mobile, elle envoie une notification de lancement au serveur et signale la version actuelle des traductions. Si le système de localisation a une mise à jour prête, il émettra une notification en réponse. Le client télécharge la mise à jour, l'applique.


L'utilisateur verra de nouvelles traductions lorsqu'il passera à l'écran suivant. Deux de nos articles sont consacrés à la mise en œuvre de cette solution: un et deux .


Communiqué: Faits saillants


Dans le processus de publication, vous devez prendre en compte le chemin d'accès de l'application de vous à vos clients. Probablement, différentes parties de votre application sont mises à jour différemment.


Conclusions finales


Revenons au schéma que j'ai cité au début de l'article.

À quoi devez-vous faire attention si vous développez un système de traduction:


  • rédiger un mandat détaillé;
  • prendre en compte le contexte et donner accès aux traducteurs;
  • conserver un historique des traductions afin de maintenir un style unifié au sein du projet;
  • automatiser le contrôle (sinon, tout traducteur aléatoire situé dans plusieurs fuseaux horaires de vous pourra tout faire à sa manière);
  • libérer les développeurs de la résolution de tâches non essentielles. Ils créent de nouvelles versions de votre produit, cela réjouit vos utilisateurs et donne satisfaction au projet que vous créez.

Matériel que je voudrais partager avec vous


Mettre à jour les chaînes à la volée dans les applications mobiles: partie 1


Mettre à jour les chaînes à la volée dans les applications mobiles: partie 2


Comment apprendre à une application Web à parler 100 langues: fonctionnalités de localisation


Nous traduisons des interfaces en cinquante langues. Esquisse


Modificateur d'esquisse Github

Source: https://habr.com/ru/post/fr485138/


All Articles