Este Ă© o primeiro post do nosso blog em 2019. E isso Ă© importante para todos nĂłs: estamos finalmente lançando a versĂŁo em inglĂȘs do Habr! Na verdade, ele estava pronto em meados de dezembro, mas - vocĂȘ sabe - lançar um novo recurso antes do Natal Ă© como implantar na sexta-feira Ă tarde. Decidimos fazĂȘ-lo no inĂcio de 2019.

Iceberg
O desenvolvimento da versĂŁo em inglĂȘs parecia um iceberg com
"seria legal poder criar postagens em inglĂȘs" na parte superior - uma das inĂșmeras solicitaçÔes de recursos sem escopo de trabalho sequer aproximado.
Solicitação de recurso (em russo) Por quase um ano, essa solicitação de recursos teve ganho de gostos (e, afinal, ganhou apenas uma), mas essa ideia nasceu muito antes da solicitação. A ideia parecia promissora porque vocĂȘ pode contar com nossos concorrentes em inglĂȘs nos dedos de uma mĂŁo (alĂ©m de opçÔes de implementação). Durante muito tempo, estĂĄvamos pensando muito, estimando, ouvindo solicitaçÔes de usuĂĄrios e clientes, aprovando postagens em inglĂȘs do "Sandbox", mas as peças do quebra-cabeça ainda nĂŁo se encaixavam.
Sabe-se que mais de 90% do iceberg estĂĄ escondido debaixo d'ĂĄgua. E nosso iceberg tinha densidade ainda maior, entĂŁo tivemos que retrabalhar quase todo o Habr. Na verdade, passamos metade de 2018 por isso. E agora, no inĂcio de 2019, temos o prazer de divulgar o resultado do nosso trabalho.
O que fizemos
Quando anunciamos que a Habr se tornaria internacional, jĂĄ tĂnhamos um plano especĂfico. Era um escopo bruto de trabalho e termos aproximados. Mas depois que começamos, entendemos que o retrabalho se tornaria realmente massivo.
Habr Ă© bastante grande - por dentro e por fora. VocĂȘ nĂŁo percebe isso se precisar adicionar uma Ășnica linha de texto, mas quando vocĂȘ traduz todo o site, fica claro que Ă© realmente um iceberg. Entendemos que âHabr em inglĂȘsâ nĂŁo Ă© apenas a tradução âHabrâ â âHabrâ.
1. Estrutura de traduçãoNĂŁo tĂnhamos praticamente nenhuma experiĂȘncia em localização; no inĂcio, nĂŁo esperĂĄvamos que o Habr fosse multilĂngue. EntĂŁo tivemos que mudar muitas coisas na arquitetura do projeto para tornĂĄ-lo tecnicamente possĂvel.
No começo, tentamos resolver o problema rapidamente com o gettext clåssico, mas logo percebemos que ele não tinha recursos suficientes ...
Dividimos todas as traduçÔes em 3 blocos funcionais:
- Interface (arquivos de idioma)
Para uma internacionalização completa, escolhemos o formato ICU - vocĂȘ pode traduzir datas, finais de palavras etc. Cada elemento da tradução possui seu prĂłprio ID e, por conveniĂȘncia, foram agrupados por entidades. Depois que o tradutor recebeu um arquivo de idioma multilinha. - Modelos (ajuda, documentos, guias, e-mails)
Traduzimos grandes pedaços de texto "independentes" individualmente, sem nenhuma ajuda externa. Mas os documentos legais são um universo diferente, com seus próprios "buracos negros", então pedimos ajuda a um OVNI.
Tentamos traduzir imagens pares e aprimorĂĄ-las ao mesmo tempo. Por exemplo:
O que tĂnhamos anteriormente (em russo)
O que temos agora(
daqui ):

- Guias (hubs, emblemas, fluxos)
Essa foi uma tarefa mais ou menos simples - CRUD clåssico com guia separada no painel de administração.
No futuro, essa abordagem nos permitirĂĄ adicionar (se necessĂĄrio) novos idiomas. Se
nĂŁo houver um caso muito grande, nenhum caso muito pequeno, vocĂȘ deseja traduzir Habr para outro idioma, entre em contato conosco.
Alguns nĂșmeros:
Interface: cerca de 250 KB de texto, mais de 3.000 linhas
Modelos: mais de 800 KB de texto
E-mails: mais de 400 KB de texto
2. ConfiguraçÔes multilĂnguesTivemos que decidir como tudo deveria funcionar. Havia algumas idĂ©ias para criar um site separado, mas na verdade nĂŁo levamos essa opção a sĂ©rio.
Por isso, escolhemos a maneira de separar o conteĂșdo como a mais flexĂvel: quando o usuĂĄrio pode selecionar ambos - o idioma da interface e o idioma do feed.
Todo usuĂĄrio pode acessar as configuraçÔes e selecionar o idioma. VocĂȘ pode escolher apenas feed em inglĂȘs, ou apenas russo, ou ativar os dois.
EntĂŁo, hoje anunciamos dois novos recursos no 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. SEOEverything 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!