training-center / code-review

Um projeto onde você pode enviar seu código fonte para outras pessoas te ajudarem a melhorar
MIT License
84 stars 4 forks source link

i18nh - (i18n Hook) #18

Closed rodrigooler closed 5 years ago

rodrigooler commented 5 years ago

Criei essa lib essa madrugada para resolver alguns problemas de internacionalização tanto back-end e front-end. Abri o código dela pra contribuir com a comunidade. O conceito dela é basicamente semelhante ao hook do react que foi falado na React-Conf.

Github: https://github.com/rodrigooler/i18nh

Suporte:

Estou aberto a sugestões, ideias, code review e PR. E qualquer dúvida estou a disposição.

edgarberlinck commented 5 years ago

Para você não ficar sem resposta eu pedi uma ajuda a comunidade pelo Twitter https://twitter.com/edgarberlinck/status/1057703656634621952

Caso eu tenha um tempinho eu faço um code review mais tarde.

rodrigooler commented 5 years ago

@edgarberlinck tranquilo, estou sem muito tempo aqui também. Abri algumas issues também caso tenha interesse de contribuir, agradeço a ajuda.

edgarberlinck commented 5 years ago

@rodrigooler Maneiro seu projeto. Abri umas PRs. Eu vou tentar fazer um Code Review amanhã.

edgarberlinck commented 5 years ago

Sobre o code review, a única consideração que posso fazer é que o método t não consegue trabalhar com o navigator.language. No nosso caso ele retorna pt-BR e seria interessante se ele conseguisse, por exemplo, transformar o pt-BR para ptBR, assim eu consigo me integrar melhor com o browser do usuário.

rodrigooler commented 5 years ago

@edgarberlinck então no caso você define isto no defaultLanguage: 'ptBR' por exemplo, e também pode usar o t('x', navigator.language). Só tem que criar os languages da seguinte forma.

const languages = {
     ptBR: { ... },
     enUS: { ... },
}
edgarberlinck commented 5 years ago

Isso eu entendi.

Mas o método navigator.language vai retornar "pt-BR". Eu notei quando isso ocorria ele não traduzia por causa do -, mas pode ter sido impressão minha. Quando eu usei da forma abaixo funcionou suave:

t("text", navigator.language.replace(/-/g,''))

Mas fora isso não tenho mais o que dizer, está bom pra mim.

Inclusive se você também estiver satisfeito pode fechar a issue.

edgarberlinck commented 5 years ago

Ah, eu tentei falar com vc no Slack mas não sei se vc chegou a ler. Estava dando uma olhada na Issue do translate do Amazon e notei que eu não tenho conta free mais no amazon, então vou ver se integro com o Azure (Este eu tenho conta corporativa pra testar).

Não é bem o que você quer mas é uma opção tbm.

edgarberlinck commented 5 years ago

@rodrigooler As considerações feitas até o momento estão ok? Gostaria de mais alguma revisão ou já está satisfeito? Se sim, favor fechar esta issue.

rodrigooler commented 5 years ago

@edgarberlinck sim podemos fechar, estou sem tempo pra dar sequencia na versão do azure e do amazon, mas assim que der eu mando aqui dnv a nova versão. Obrigado pela contribuição @edgarberlinck