Replies: 1 comment
-
Acompanhando. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Oi pessoal, alguém aqui tem experiência com apps Webpack em múltiplas línguas? Eu sei que há vários plugins/loaders disponíveis por aí mas nenhum pareceu atender às nossas necessidades, gerando somente um JSON gigante com todas as mensagens do app. Isso funciona pra apps pequenos, mas os nossos têm centenas de páginas com milhares de mensagens, então seria ideal que tivéssemos, no final, um arquivo de traduções pra cada async chunk (ou página), e que eles fossem carregados automaticamente pelo Webpack, por exemplo:
O primeiro passo é extrair as mensagens pra enviar pros tradutores, e essa parte está resolvida.
Também temos que carregar language packs dependendo da língua, pra poder formatar números, datas, plurais, etc. Isso também está resolvido, no servidor e no browser.
Agora o problema é carregar somente as mensagens usadas pela página acessada, e na língua certa. Eu pensei no seguinte:
messages.json
, tudo junto. Depois podemos converter isso num .po da vida e enviar pra traduçãomessages_pt-BR.json
em algum diretório do projetoHomePage_pt-BR.js
e umAboutPage_pt-BR.js
, que inclui as mensagens usadas somente por estas páginasUma forma de tornar isso mais eficiente seria ter somente um chunk traduzido por página, que inclui o source code + as mensagens traduzidas, tudo junto, daí não teria que carregar dois arquivos por página, mas aí haveria tretas com source maps que usamos muito pra debugar em produção.
Puts, e ainda tem a parte do servidor em NodeJS pois fazemos server-side rendering. Talvez faça sentido gerar um arquivo com todas as mensagens traduzidas somente pro servidor.
Desculpe-me por usar termos muito específicos, a real é que eu estou meio perdido.
Beta Was this translation helpful? Give feedback.
All reactions