Tradução
Definindo Traduções
A função t no intlayer permite que você declare conteúdo em múltiplas línguas. Esta função garante segurança de tipos, levantando um erro se qualquer 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 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", es: "Bienvenido a nuestra aplicación", pt: "Bem-vindo à nossa aplicação", // adicionado para português }), },} satisfies DeclarationContent<Content>;
Configuração para Locales
Para garantir o manuseio adequado das traduções, você pode configurar os locais aceitos em intlayer.config.ts. Esta configuração permite que você defina os idiomas que seu aplicativo suporta:
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, Locales.PORTUGUESE, ], // adicionado para português },};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 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 na localidade atual definida em seu aplicativo.
Objetos de Conteúdo Personalizados
O intlayer suporta objetos de conteúdo personalizados para tradução, permitindo que você defina estruturas mais complexas enquanto garante segurança de tipos. 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", }, es: { title: "Título de la Página", content: "Contenido de la Página", }, pt: { title: "Título da Página", // adicionado para português content: "Conteúdo da Página", // adicionado para português }, }), },} 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