Integração com Next.js: Documentação do Hook useIntlayer
O hook useIntlayer é adaptado para aplicações Next.js para buscar e gerenciar conteúdo localizado de forma eficiente. Esta documentação se concentrará em como utilizar o hook em projetos Next.js, garantindo práticas adequadas de localização.
Importando useIntlayer no Next.js
Dependendo se você está trabalhando com componentes do lado do cliente ou do servidor em uma aplicação Next.js, você pode importar o hook useIntlayer da seguinte forma:
Componente Cliente:
typescriptimport { useIntlayer } from "next-intlayer"; // Usado em componentes do lado do cliente
Componente Servidor:
tsximport { useIntlayer } from "next-intlayer/server"; // Usado em componentes do lado do servidor
Parâmetros
- key: Um identificador de string para a chave do dicionário de onde você deseja recuperar o conteúdo.
- locale (opcional): Um locale específico para usar. Se omitido, o hook usa o locale definido no contexto do cliente ou servidor.
Arquivos de Dicionário
É crucial que todas as chaves de conteúdo sejam definidas dentro de arquivos de declaração de conteúdo para evitar erros em tempo de execução e garantir a segurança de tipos. Essa abordagem também facilita a integração com TypeScript para validação em tempo de compilação.
Instruções para configurar arquivos de declaração de conteúdo estão disponíveis aqui.
Exemplo de Uso no Next.js
Veja como você pode implementar o hook useIntlayer em uma página Next.js para carregar dinamicamente conteúdo localizado com base no locale atual da aplicação:
import { ClientComponentExample } from "@components/ClientComponentExample";import { ServerComponentExample } from "@components/ServerComponentExample";import { type NextPageIntlayer, IntlayerClientProvider } from "next-intlayer";import { useIntlayer, IntlayerServerProvider } from "next-intlayer/server";const HomePage: NextPageIntlayer = async ({ params }) => { const { locale } = await params; const content = useIntlayer("homepage", locale); return ( <> <p>{content.introduction}</p> <IntlayerClientProvider locale={locale}> <ClientComponentExample /> </IntlayerClientProvider> <IntlayerServerProvider locale={locale}> <ServerComponentExample /> </IntlayerServerProvider> </> );};
"use-client";import type { FC } from "react";import { useIntlayer } from "next-intlayer";const ClientComponentExample: FC = () => { const content = useIntlayer("component-content"); return ( <div> <h1>{content.title}</h1> <p>{content.description}</p> </div> );};
import type { FC } from "react";import { useIntlayer } from "next-intlayer/server";const ServerComponentExample: FC = () => { const content = useIntlayer("component-content"); return ( <div> <h1>{content.title}</h1> <p>{content.description}</p> </div> );};
Tratamento de Localização de Atributos
Para localizar atributos como alt, title, href, aria-label, etc., certifique-se de referenciar o conteúdo corretamente:
<img src={content.image.src.value} alt={content.image.alt.value} />
Mais Informações
- Editor Visual Intlayer: Saiba como usar o editor visual para facilitar o gerenciamento de conteúdo aqui.
Esta documentação descreve o uso do hook useIntlayer especificamente em ambientes Next.js, fornecendo uma solução robusta para gerenciar a localização em suas aplicações Next.js.
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