Tradução
Definindo Traduções
A função t no intlayer permite declarar conteúdo em múltiplas línguas. Esta função garante segurança de tipo, levantando um erro se alguma tradução estiver faltando, o que é particularmente útil em ambientes TypeScript.
Usando TypeScript
Aqui está um exemplo de como declarar conteúdo com traduções em um arquivo TypeScript:
import { t, type DeclarationContent } from "intlayer";
interface Content {
welcomeMessage: string;
}
export default {
key: "multi_lang",
content: {
welcomeMessage: t({
en: "Welcome to our application",
fr: "Bienvenue dans notre application",
pt: "Bem-vindo ao nosso aplicativo",
es: "Bienvenido a nuestra aplicación",
}),
},
} satisfies DeclarationContent<Content>;
Usando Módulos ECMAScript
Se você estiver usando módulos ECMAScript, a declaração fica assim:
import { t } from "intlayer";
export default {
key: "multi_lang",
content: {
welcomeMessage: t({
en: "Welcome to our application",
fr: "Bienvenue dans notre application",
pt: "Bem-vindo ao nosso aplicativo",
es: "Bienvenido a nuestra aplicación",
}),
},
};
Usando Módulos CommonJS
Em uma configuração CommonJS, você pode declarar traduções assim:
const { t } = require("intlayer");
module.exports = {
key: "multi_lang",
content: {
welcomeMessage: t({
en: "Welcome to our application",
fr: "Bienvenue dans notre application",
pt: "Bem-vindo ao nosso aplicativo",
es: "Bienvenido a nuestra aplicación",
}),
},
};
Usando JSON
Para declarações baseadas em JSON, você pode definir traduções da seguinte forma:
{
"key": "multi_lang",
"content": {
"welcomeMessage": {
"nodeType": "translation",
"translation": {
"en": "Welcome to our application",
"fr": "Bienvenue dans notre application",
"pt": "Bem-vindo ao nosso aplicativo",
"es": "Bienvenido a nuestra aplicación"
}
}
}
}
Configuração para Locales
Para garantir um manuseio adequado das traduções, você pode configurar os locales aceitos no intlayer.config.ts. Esta configuração permite que você defina as línguas que seu aplicativo suporta:
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
locales: [
Locales.ENGLISH,
Locales.FRENCH,
Locales.SPANISH,
Locales.PORTUGUESE,
],
},
};
export default config;
Usando Traduções em Componentes React
Com react-intlayer, você pode usar traduções em componentes React. Aqui está um exemplo:
import { useIntlayer } from "react-intlayer";
const MyComponent = () => {
const content = useIntlayer("multi_lang");
return (
<div>
<p>{content.welcomeMessage}</p>
</div>
);
};
export default MyComponent;
Este componente busca a tradução correspondente com base no locale atual definido em seu aplicativo.
Objetos de Conteúdo Personalizados
intlayer suporta objetos de conteúdo personalizados para tradução, permitindo que você defina estruturas mais complexas enquanto garante segurança de tipo. Aqui está um exemplo com um objeto personalizado:
import { t, type DeclarationContent } from "intlayer";
interface ICustomContent {
title: string;
content: string;
}
const customContent = {
key: "custom_content",
content: {
profileText: t<ICustomContent>({
en: {
title: "Page Title",
content: "Page Content",
},
fr: {
title: "Titre de la Page",
content: "Contenu de la Page",
},
pt: {
title: "Título da Página",
content: "Conteúdo da Página",
},
es: {
title: "Título de la Página",
content: "Contenido de la Página",
},
}),
},
} satisfies DeclarationContent;
export default customContent;
Se você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.
Link do GitHub para a documentação