Este é o primeiro post em nosso blog em 2019, mas é muito importante para todos nós. Finalmente estamos lançando a versão em inglês do Habr! Tínhamos quase tudo pronto até meados de dezembro, mas lançar antes do Ano Novo é como lançá-lo na sexta à noite. Portanto, decidimos adiar a grande navegação para o início de 2019.

Iceberg
O desenvolvimento da versão em inglês do Habr foi como um iceberg, cuja dica era o usuário "
seria bom poder publicar postagens em inglês " -
uma das muitas solicitações de recursos sem sequer uma estimativa aproximada da escala de todo o trabalho.
Por quase um ano, essa solicitação de recurso coletou gostos; como resultado, não coletou mais nem menos - uma, mas a ideia de fazer isso surgiu conosco muito antes disso. A ideia parecia promissora, porque os concorrentes que falam inglês podem ser contados com os dedos de uma mão. Durante muito tempo, pensamos, ouvimos os pedidos de usuários e clientes, pulamos artigos na Sandbox em inglês, mas ainda assim o quebra-cabeça final não formava um todo.
Como você sabe, cerca de 90% do iceberg está escondido debaixo de água, e nosso iceberg tinha uma densidade ainda maior e, como resultado, quase todo o Habr teve que ser refeito. Na verdade, passamos metade de 2018 nisso. E agora, no início de 2019, temos o prazer de apresentar os resultados do trabalho.
O que foi feito
Quando
anunciamos a saída de Habr fora da Rússia, já tínhamos um plano. Uma avaliação aproximada do trabalho e o momento do mesmo. Mas já em processo de trabalho, percebemos que as alterações serão mais extensas.
Habr é bastante grande - por dentro e por fora. Quando você adiciona uma nova linha de texto em algumas seções de configurações, não percebe essas escalas, mas ao traduzir o site inteiro, entende que esse é realmente um iceberg. Ficou claro que não basta traduzir Habr → Habr para fazer o Habr de língua inglesa.
1. Estrutura de traduçãoPraticamente não tivemos nenhuma experiência em localização, ao desenvolver o Habr, não colocamos o multilinguismo nele. Portanto, muito foi necessário mudar na arquitetura do projeto para que o suporte ao novo idioma fosse, em princípio, possível e funcionasse corretamente.
A princípio, tentamos resolver o problema rapidamente, através do gettext clássico, mas logo ficou claro que suas capacidades não eram suficientes ...
Todo o trabalho de tradução foi dividido em três blocos funcionais:
- Interface (arquivos de idioma)
Para a total internacionalização da interface, foi escolhido o formato da UTI - com isso foi possível traduzir datas, finais etc. Cada elemento de tradução recebeu um ID exclusivo; por conveniência, eles foram agrupados por entidade. Em seguida, o arquivo de idiomas multilinhas foi enviado ao tradutor. - Modelos (seção de referência, documentos, manuais, cartas)
Os grandes textos "independentes" foram traduzidos separadamente, por si próprios. Mas a tradução de documentos legais (e tínhamos muitos deles) é um universo separado com seus próprios buracos negros, então eu tive que recorrer aos OVNIs.
Tentamos traduzir até as fotos, atualizando-as simultaneamente. Por exemplo:
- Diretórios (hubs, emblemas, fluxos)
Aqui, em geral, tudo é simples - o CRUD clássico com uma seção separada no painel de administração.
No futuro, uma abordagem semelhante permitirá (se necessário) adicionar outros idiomas ao site. Se
você é corajoso, hábil, hábil, quer tentar traduzir Habré para um novo idioma, por favor escreva-nos.
Alguns números:
Interface: cerca de 250 KB de texto, mais de 3.000 linhas
Modelos: mais de 800 KB de texto
Cartas: mais de 400 KB de texto
2. Configurações multilínguesCabia a ele decidir como tudo isso funcionaria. Não consideramos seriamente a opção de criar um site separado, mas no processo de trabalhar essa ideia ocasionalmente nos visitava.
Portanto, seguimos o caminho do compartilhamento de conteúdo e resta descobrir como fazer isso. Como resultado, optamos pela opção mais flexível: para que cada usuário possa escolher o idioma da interface do site e o idioma do conteúdo.
Para fazer isso, cada usuário nas configurações pode especificar qual e em qual idioma será. Você pode deixar no feed apenas o conteúdo em russo, apenas em inglês, mas pode imediatamente em ambos.

Então, a partir de hoje Habré apareceram duas configurações:
- Idioma da interface
O idioma de todos os elementos do site. Até agora, o russo ou o inglês são suportados. Tentamos fazer uma detecção automática “inteligente” do idioma (com base no cabeçalho de idioma aceito), mas você sempre pode substituir essa configuração. - Idioma da publicação
Essa configuração permite que o usuário veja publicações nos idiomas selecionados em seu feed. O conteúdo dos blocos contextuais depende disso ("Mais lidos", "Leia agora", "O que eles discutem"). Por padrão, é herdado do idioma da interface, mas também pode ser alterado a qualquer momento.
Antes da autorização, a escolha dos idiomas fica no canto superior direito (ícone do planeta), após a autorização - move para o menu do usuário. Na versão móvel, o comportamento é semelhante - as configurações estão no rodapé e no menu do usuário.
No feed, você pode selecionar um idioma específico ou vários. Mas, ao criar uma publicação, você pode escolher apenas um idioma.
3. SEOEles fizeram tudo, traduziram e começaram a testar. Gostei, mas senti algum tipo de ausência-presença. E eles lembraram que esqueceram o deus do SEO.
Quando seu site está em um idioma, geralmente você não consegue pensar na otimização de mecanismos de pesquisa - tudo funciona de alguma forma por si só. Mas quando o conteúdo em idiomas diferentes aparece no site, esse momento não pode mais ser ignorado.
Antes disso, Habr estava apenas em russo e geralmente indexado muito bem. Com o advento do multilinguismo, tornou-se necessário ensinar os mecanismos de pesquisa a "ver" corretamente as versões em russo e inglês. Para fazer isso, tive que realizar uma auditoria abrangente e refazer algumas das coisas no site - alterar os links, alterar o mapa do site, registrar o URL canônico correto e assim por diante.
Algo assim:

teste β
De modo geral, agora estamos anunciando um teste beta da nova funcionalidade, por isso seremos gratos por qualquer feedback e, especialmente, por idéias e relatórios de erros. É necessário testar com cuidado e em diferentes condições a inovação: em diferentes plataformas, em diferentes SOs e navegadores, de diferentes países, com / sem VPN, etc. Historicamente, nossos usuários são os melhores testadores e esperamos sua ajuda.
Vamos brincar!
A partir de hoje, você pode começar a publicar suas publicações em inglês e fazer traduções de artigos em russo. E também convide amigos que moram em outros países e falam inglês. Se todo mundo convidar pelo menos um desses amigos, certamente curaremos, e nossa ousada tentativa de sair dos limites de nossa caixa de areia regulamentada não parecerá tão insana. Para facilitar isso, para cada usuário com carma positivo, receberemos um convite hoje.
Adiante, há muitas coisas interessantes - elaborar uma estratégia, procurar novos autores e tradutores, SMM, análises e muito mais; portanto, se você puder oferecer algo, escreva para
welcome@habr.com - estaremos sempre felizes em conhecer novas pessoas.
Em contato!