Bonjour tout le monde! Ou Habr en anglais, v1.0

C'est le premier article de notre blog en 2019. Et c'est important pour nous tous: nous lançons enfin la version anglaise de Habr! En fait, il était prêt à la mi-décembre, mais - vous savez - publier une nouvelle fonctionnalité juste avant Noël, c'est comme déployer le vendredi après-midi. Nous avons donc décidé de le faire début 2019.



Iceberg


Le développement de la version anglaise ressemblait à un iceberg avec "ce serait cool de pouvoir créer des articles en anglais" en haut - l'une des nombreuses demandes de fonctionnalités sans même la portée approximative du travail.

Demande de fonctionnalité (en russe)

Pendant près d'un an, cette demande de fonctionnalité avait gagné des likes (et après tout, n'en avait gagné qu'une), mais cette idée est née bien avant la demande. L'idée semblait prometteuse car on peut compter nos concurrents anglophones sur les doigts d'une main (ainsi que les options d'implémentation). Nous avons longuement réfléchi, estimé, écouté les demandes des utilisateurs et des clients, approuvé les articles en anglais de "Sandbox", mais les pièces du puzzle ne s'accordaient toujours pas.

Il est connu que plus de 90% des icebergs sont cachés sous l'eau. Et notre iceberg avait une densité encore plus grande, nous avons donc dû retravailler presque tout le Habr. En fait, nous avons passé la moitié de 2018 pour cela. Et maintenant, au début de 2019, nous sommes heureux de publier le résultat de notre travail.

Ce que nous avons fait


Lorsque nous avons annoncé que Habr allait devenir international, nous avions déjà un plan spécifique. C'était la portée brute des travaux et les termes approximatifs. Mais après avoir commencé, nous avons compris que la reprise deviendrait vraiment massive.

Habr est assez grand - à l'intérieur comme à l'extérieur. Vous ne vous en rendez pas compte si vous devez ajouter une seule ligne de texte, mais lorsque vous traduisez tout le site Web, il devient clair qu'il s'agit vraiment d'un iceberg. Nous avons compris que «Habr en anglais» n'est pas seulement la traduction «Habr» → «Habr».

1. Structure de traduction

Nous n'avions pratiquement aucune expérience en localisation, au tout début nous ne nous attendions pas à ce que Habr soit multilingue. Nous avons donc dû changer beaucoup de choses dans l'architecture du projet afin de le rendre techniquement possible.

Au début, nous avons essayé de résoudre le problème rapidement avec le gettext classique, mais nous nous sommes vite rendu compte qu'il n'avait pas suffisamment de capacités ...

Nous avons divisé toutes les traductions en 3 blocs fonctionnels:

  • Interface (fichiers de langue)

    Pour une internationalisation complète, nous avons choisi le format ICU - vous pouvez traduire les dates, les terminaisons de mots, etc. Chaque élément de traduction a obtenu son propre identifiant et, pour plus de commodité, ils ont été regroupés par entités. Après ce traducteur a reçu un fichier de langue multiligne.
  • Modèles (aide, documents, guides, e-mails)

    Nous avons traduit de gros morceaux de texte «indépendants» individuellement, sans aucune aide extérieure. Mais les documents légaux sont un univers différent avec ses propres "trous noirs", alors nous avons demandé de l'aide à un OVNI.

    Nous avons essayé de traduire même des images et de les brosser en même temps. Par exemple:

    Ce que nous avions auparavant (en russe)

    Ce que nous avons maintenant
    (d' ici ):

  • Guides (hubs, badges, flux)

    C'était une tâche plus ou moins simple - CRUD classique avec onglet séparé sur le panneau d'administration.

À l'avenir, une telle approche nous permettra d'ajouter (si nécessaire) de nouvelles langues. S'il n'y a pas de cas trop gros, pas de cas trop petit, vous voulez vous essayer à la traduction de Habr dans une autre langue, n'hésitez pas à nous contacter.

Quelques chiffres:

Interface: environ 250 Ko de texte, plus de 3 000 lignes
Modèles: plus de 800 Ko de texte
Emails: plus de 400 Ko de texte

2. Paramètres multilingues

Nous devions décider comment tout cela devrait fonctionner. Il y avait quelques idées de créer un site Web séparé, mais nous n'avons en fait pas pris cette option au sérieux.

Nous avons donc choisi la manière de séparer le contenu comme la plus flexible: lorsque l'utilisateur peut sélectionner les deux - la langue de l'interface et la langue du flux.

Chaque utilisateur peut accéder aux paramètres et sélectionner la langue. Vous pouvez choisir uniquement le flux anglais, ou uniquement le russe, ou activer les deux.


Donc, aujourd'hui, nous annonçons deux nouvelles fonctionnalités sur Habr:

  • Language of the interface

    The language of all the elements on the website. Currently you can choose from English and Russian. We've attempted to determine locale in a «smart» way (based on Accept-Language header) but you always can override it yourself.
  • Language of the posts

    This feature allows user to see personal feed in selected languages. It also affects on the content of context blocks («Top posts», «Most popular right now», «Top discussions»). By default it's inherited from the interface language setting, but you can change it any time.

If you are not logged in, you can find language selector is in the upper right corner (planet icon), if you are logged in — you’ll find it in the user menu. In the mobile version the scenario is similar — settings menu is in the footer and in the user menu.


For your feed you can choose more than one language but when you create new post you will be able to choose only one.


3. SEO

Everything was done and checked, and it was time for testing. The result was good, but there was something the air… Something that we missed. It was SEO.

When you maintain a website in a single language you usually don’t have to think about search optimization — it just works somehow. But after you add another language you can’t ignore this thing.

Before English was added to Habr search engines had been indexing it quite well. After we made the website multilingual we got need to teach search engines to «see» our website both in English and Russian clearly. We had to make a full check and rework things — change links, create new sitemap, specify canonical-URL, etc.

Like this:


β-testing


Generally speaking we are announcing beta-testing of new functionality. We’d be grateful for any feedback, especially for ideas and bug reports. We need to carefully test new features in different conditions: different platforms, OS and browsers, from different locations, w/ and w/o VPN, etc. Historically our users are the best testers, and we hope you will help us.

Let’s play!


From today you can create publications in English and translate articles from Russian. Also feel free to invite friends who live abroad and speak English. If each of us will send invitation even to one such fellow, be sure we will succeed and our bold attempt to get out of our throughout regulated sandbox will look not so crazy. To make it easier during the day we will grant one invitation to each user with positive karma.

There are a lot of interesting things ahead — strategy development, search for new authors and translators, SMM, analytics, and much more. If you also can offer something please send email to welcome@habr.com — we are always glad to meet new people.

Stay tuned!

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


All Articles