Hola mundo O Habr en inglés, v1.0

Esta es la primera publicación en nuestro blog en 2019. Y esto es importante para todos nosotros: ¡finalmente estamos lanzando la versión en inglés de Habr! En realidad, estaba listo a mediados de diciembre, pero, ya sabes, lanzar una nueva función justo antes de Navidad es como implementar el viernes por la tarde. Así que decidimos hacerlo a principios de 2019.



Iceberg


El desarrollo de la versión en inglés parecía un iceberg con "sería genial poder crear publicaciones en inglés" en la parte superior, una de las numerosas solicitudes de funciones sin un alcance de trabajo aproximado.

Solicitud de funciones (en ruso)

Durante casi un año, esta solicitud de función había ganado Me gusta (y, después de todo, ganó solo una), pero esta idea nació mucho antes de la solicitud. La idea parecía prometedora porque puede contar a nuestros competidores en inglés con los dedos de una mano (así como las opciones de implementación). Estuvimos pensando mucho durante mucho tiempo, estimando, escuchando las solicitudes de los usuarios y clientes, aprobando publicaciones en inglés de "Sandbox", pero las piezas del rompecabezas todavía no encajaban entre sí.

Se sabe que más del 90% del iceberg está oculto bajo el agua. Y nuestro iceberg tenía una densidad aún mayor, por lo que tuvimos que volver a trabajar casi todo el Habr. De hecho, pasamos la mitad de 2018 para ello. Y ahora, a principios de 2019, nos complace publicar el resultado de nuestro trabajo.

Lo que hicimos


Cuando anunciamos que Habr se internacionalizará, ya teníamos un plan específico. Era el alcance bruto del trabajo y los términos aproximados. Pero después de que comenzamos, entendimos que el retrabajo se volverá realmente masivo.

Habr es bastante grande, tanto por dentro como por fuera. No se da cuenta si necesita agregar una sola línea de texto, pero cuando traduce todo el sitio web queda claro que realmente es un iceberg. Entendimos que “Habr en inglés” no es solo traducción “Habr” → “Habr”.

1. Estructura de traducción

Prácticamente no teníamos experiencia en localización, al principio no esperábamos que Habr fuera multilingüe. Así que tuvimos que cambiar muchas cosas en la arquitectura del proyecto para hacerlo técnicamente posible.

Al principio tratamos de resolver el problema rápidamente con gettext clásico, pero pronto nos dimos cuenta de que no tenía suficientes capacidades ...

Dividimos todas las traducciones en 3 bloques funcionales:

  • Interfaz (archivos de idioma)

    Para una internacionalización completa, elegimos el formato ICU : puede traducir fechas, terminaciones de palabras, etc. Cada elemento de la traducción tiene su propia identificación y, por conveniencia, fueron agrupados por entidades. Después ese traductor recibió un archivo de idioma multilínea.
  • Plantillas (ayuda, documentos, guías, correos electrónicos)

    Tradujimos grandes fragmentos de texto "independientes" individualmente, sin ninguna ayuda externa. Pero los documentos legales son un universo diferente con sus propios "agujeros negros", por lo que le pedimos ayuda a un ovni.

    Intentamos traducir incluso las imágenes y repasarlas al mismo tiempo. Por ejemplo:

    Lo que teníamos anteriormente (en ruso)

    Lo que tenemos ahora
    (desde aquí ):

  • Guías (hubs, insignias, flujos)

    Esta fue una tarea más o menos simple: CRUD clásico con pestaña separada en el panel de administración.

En el futuro, este enfoque nos permitirá agregar (si es necesario) nuevos idiomas. Si no hay un caso demasiado grande, ni un caso demasiado pequeño , quiere probar la traducción de Habr a otro idioma, no dude en contactarnos.

Algunos numeros:

Interfaz: aproximadamente 250 KB de texto, más de 3.000 líneas
Plantillas: más de 800 KB de texto
Correos electrónicos: más de 400 KB de texto

2. Configuraciones multilingües

Teníamos que decidir cómo debería funcionar todo. Hubo algunas ideas de hacer un sitio web separado, pero en realidad no tomamos esta opción en serio.

Así que elegimos la forma de separar el contenido como la más flexible: cuando el usuario puede seleccionar ambos: el idioma de la interfaz y el idioma de la fuente.

Cada usuario puede ir a la configuración y seleccionar el idioma. Puedes elegir solo feed en inglés, o solo ruso, o activar ambos.


Entonces, hoy anunciamos dos nuevas características en 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/es435764/


All Articles