Tradução
Definindo Traduções
A função t no intlayer permite declarar conteúdo em vários idiomas. Esta função garante segurança de tipo, gerando um erro se alguma tradução estiver ausente, o que é particularmente útil em ambientes TypeScript.
Usando TypeScript
Aqui está um exemplo de como declarar conteúdo com traduções.
import { t, type Dictionary } from "intlayer";interface Content { welcomeMessage: string;}export default { key: "multi_lang", content: { welcomeMessage: t({ en: "Welcome to our application", fr: "Bienvenue dans notre application", es: "Bienvenido a nuestra aplicación", pt: "Bem-vindo ao nosso aplicativo", }), },} satisfies Dictionary<Content>;
Configuração para Locales
Para garantir o manuseio adequado das traduções, você pode configurar os locais aceitos no intlayer.config.ts. Esta configuração permite definir os idiomas que sua aplicação 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 o react-intlayer, você pode usar traduções em componentes React. Aqui está um exemplo:
import type { FC } from "react";import { useIntlayer } from "react-intlayer";const MyComponent: FC = () => { 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 local atual definido em sua aplicação.
Objetos de Conteúdo Personalizados
O intlayer suporta objetos de conteúdo personalizados para tradução, permitindo definir estruturas mais complexas enquanto garante a segurança de tipo. Aqui está um exemplo com um objeto personalizado:
import { t, type Dictionary } 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", }, es: { title: "Título de la Página", content: "Contenido de la Página", }, pt: { title: "Título da Página", content: "Conteúdo da Página", }, }), },} satisfies Dictionary;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