globalmente-i18n
Biblioteca leve de internacionalização (i18n) e tradução para JavaScript e TypeScript com suporte para namespaces, carregamento lento, cache, middleware, detecção de linguagem, ferramentas CLI e traduções com segurança de tipo.
Projetado para funcionar perfeitamente em aplicativos de front-end e back-end, incluindo Node.js, React, Vue, Next.js, Express e NestJS.
versão npm downloads semanais total de downloads tamanho do pacote licença typescript
✨ Recursos
🌍 Carregamento dinâmico de idioma
🗂 Traduções baseadas em namespace
🔑 Chaves de tradução aninhadas
🔢 Suporte à pluralização
🔄 Interpolação variável
🔁 Suporte a idiomas alternativos
🌐 Mudança de idioma
🧠 Detecção de idioma (navegador/cabeçalhos/query/localStorage)
💾 Persistência linguística
⚡ Cache de tradução para desempenho
📦 Carregamento lento do namespace
⚛ Suporte de gancho React
🧩 Suporte a middleware Express e NestJS
🧠 Preenchimento automático TypeScript para chaves de tradução
🛠 Extração de chave de tradução CLI
🌐 Gerador de tradução CLI
⚡ Leve e rápido
🖥 Funciona em Node.js, React, Vue, Next.js e outros frameworks
📦 Instalação
Instale usando npm:
npm instalar globalmente-i18n
Usando fio:
fio adicionar globaly-i18n
Usando pnpm:
pnpm adicionar globaly-i18n
🚀 Início rápido
importar {createI18n} de “globaly-i18n”;
const i18n = aguarda createI18n({
defaultLang: “en”,
namespaces: (“comum”),
carregador: (lang, ns) =>
importar(./locales/${lang}/${ns}.json).então((m) => m.default),
});
console.log(i18n.t(“common:home.title”, { nome: “Rounak” }));
Saída
Bem vindo Rounak
📁 Estrutura do arquivo de tradução
O uso de namespaces permite organizar traduções por módulo.
localidades
├ em
│ ├ comum.json
│ └ auth.json
│
└ de
├ comum.json
└ auth.json
📄 Exemplo de arquivo de tradução
locais/en/common.json
{
“lar”: {
“title”: “Bem-vindo {nome}”
},
“carrinho”: {
“Unid”: {
“one”: “Você tem {count} item”,
“other”: “Você tem {count} itens”
}
}
}
🌐 Mudando de idioma
aguarde i18n.setLanguage(“de”);
console.log(i18n.t(“common:home.title”, { nome: “Rounak” }));
Saída
Bem vindo Rounak
🔢 Pluralização
i18n.t(“common:cart.items”, { contagem: 5 });
Saída
Você tem 5 itens
🔄 Interpolação de variáveis
i18n.t(“common:home.title”, {
Nome: “Rounak”
});
Saída
Bem vindo Rounak
📦 Carregamento lento de namespace
Para aplicativos grandes, você pode carregar namespaces somente quando necessário.
aguarde i18n.loadNamespace(“painel”);
console.log(i18n.t(“painel:stats.users”));
Isso mantém o pacote inicial pequeno e melhora o desempenho.
⚡ Cache de tradução
globaly-i18n armazena automaticamente as traduções internamente.
Chamadas repetidas como:
i18n.t(“common:home.title”);
são servidos a partir do cache para melhor desempenho.
💾 Persistência de idioma
O idioma selecionado é salvo automaticamente no localStorage.
aguarde i18n.setLanguage(“de”);
Após recarregar a página, o idioma permanece ativo.
🧠 Detecção de idioma
Os idiomas podem ser detectados automaticamente em:
Configurações do navegador
Cabeçalho HTTP Accept-Language
Parâmetros de consulta (?lang=no)
armazenamento local
Exemplo
const i18n = aguarda createI18n({
defaultLang: “en”,
detectarIdioma: verdadeiro,
namespaces: (“comum”),
carregador: (lang, ns) =>
importar(./locales/${lang}/${ns}.json).então((m) => m.default)
});
⚛ Integração Reagir
Envolva seu aplicativo com o provedor.
importar {I18nProvider} de “globaly-i18n/react”;
Use traduções dentro dos componentes.
importar { useTranslation } de “globaly-i18n/react”;
função Início() {
const { t, setLanguage } = useTranslation();
retornar (
<>
setLanguage(“de”)}>
Mudar idioma
>
);
}
🧩 Middleware (Expresso/NestJS)
importar expresso de “expresso”;
importar {createI18n, i18nMiddleware} de “globaly-i18n”;
const app=express();
const i18n = aguarda createI18n({
defaultLang: “en”,
namespaces: (“comum”),
carregador: (lang, ns) =>
importar(./locales/${lang}/${ns}.json).então((m) => m.default)
});
app.use(i18nMiddleware(i18n));
app.get(“https://dev.to/”, (req, res) => {
res.send(req.t(“common:home.title”));
});
app.ouvir(3000);
🛠 Extração de chave de tradução CLI
Digitalize seu projeto e extraia as chaves de tradução.
Exemplo de código-fonte
t(“comum:home.title”);
t(“auth:login.button”);
Correr
npx globaly-i18n extrair src
🌐 Gerador de tradução CLI
Gere arquivos traduzidos automaticamente.
npx globaly-i18n traduzir –from en –to de,fr,es
Exemplo de saída
localidades
├ em
├ de
├fr
└ é
🧠 Suporte TypeScript
globaly-i18n fornece chaves de tradução com segurança de tipo.
i18n.t(“common:home.title”); // válido
i18n.t(“comum:home.titel”); // Erro de TypeScript
📚 API
criarI18n(opções)
Cria uma nova instância i18n.
Descrição do tipo de opção
defaultLang string Idioma padrão
fallbackLang string Linguagem substituta
namespaces string() Namespaces de tradução
detectLanguage boolean Habilitar detecção de idioma
função loader Função usada para carregar traduções
t(chave, opções)
i18n.t(“common:home.title”, { nome: “Rounak” });
definirIdioma(lang)
aguarde i18n.setLanguage(“de”);
getIdioma()
i18n.getLanguage();
carregarNamespace(namespace)
aguarde i18n.loadNamespace(“painel”);
📚 Exemplos
Exemplo de Node.js.
importar {createI18n} de “globaly-i18n”;
const i18n = aguarda createI18n({
defaultLang: “en”,
namespaces: (“comum”),
carregador: (lang, ns) =>
importar(./locales/${lang}/${ns}.json).então((m) => m.default)
});
console.log(i18n.t(“common:home.title”));
Exemplo de reação
importar { useTranslation } de “globaly-i18n/react”;
função Exemplo() {
const { t } = useTranslation();
retornar
;
}
Exemplo expresso
app.get(“https://dev.to/”, (req, res) => {
res.send(req.t(“common:home.title”));
});
globaly-i18n se concentra em:
⚡ arquitetura leve
🧩 design independente de estrutura
🧠 Experiência de desenvolvedor TypeScript
🚀 integração simples
🔧 uso flexível para front-end e back-end
🧪 Teste
Execute testes usando
teste npm
O projeto usa Vitest.
🔑 Palavras-chave
internacionalização • i18n • localização • tradução • javascript • typescript • nodejs • express • nestjs • react i18n • nextjs i18n • multilíngue • detecção de idioma • biblioteca de tradução • frontend i18n • backend i18n
📄 Licença
MINHA Licença
⭐ Suporte
Se você achar esta biblioteca útil:
⭐ Marque o repositório com estrela
📦 Compartilhe com outros desenvolvedores
🐛 Relate problemas ou sugira melhorias
Deseja saber mais sobre Programação e Desenvolvimento Clique Aqui!
javascript,opensource,npm,react,software,codificação,desenvolvimento,engenharia,inclusiva,comunidade
