Receba notificações sobre os próximos lançamentos de Intlayer
    Criação:2024-08-11Última atualização:2025-06-29

    Integração com React: Documentação do Hook useDictionary

    Esta seção fornece orientações detalhadas sobre o uso do hook useDictionary em aplicações React, permitindo o manuseio eficiente de conteúdo localizado sem um editor visual.

    Importando useDictionary no React

    O hook useDictionary pode ser integrado em aplicações React importando-o conforme o contexto:

    • Componente Cliente:

      typescript
      import { useDictionary } from "next-intlayer"; // Usado em componentes React no lado do cliente
    • Componente Servidor:

      typescript
      import { useDictionary } from "next-intlayer/server"; // Usado em componentes React no lado do servidor

    Parâmetros

    O hook aceita dois parâmetros:

    1. dictionary: Um objeto de dicionário declarado contendo conteúdo localizado para chaves específicas.
    2. locale (opcional): O locale desejado. Por padrão, usa o locale do contexto atual se não for especificado.

    Dicionário

    Todos os objetos de dicionário devem ser declarados em arquivos de conteúdo estruturado para garantir a segurança de tipos e evitar erros em tempo de execução. Você pode encontrar as instruções de configuração aqui. Aqui está um exemplo de declaração de conteúdo:

    component.content.ts
    import { t, type Dictionary } from "intlayer";const exampleContent = {  key: "component-example",  content: {    title: t({      en: "Client Component Example",      fr: "Exemple de composant client",      es: "Ejemplo de componente cliente",    }),    content: t({      en: "This is the content of a client component example",      fr: "Ceci est le contenu d'un exemple de composant client",      es: "Este es el contenido de un ejemplo de componente cliente",    }),  },} satisfies Dictionary;export default exampleContent;

    Exemplo de Uso em Componente Cliente React

    Abaixo está um exemplo de como usar o hook useDictionary em um componente React:

    ClientComponentExample.tsx
    "use client";import type { FC } from "react";import { useDictionary } from "next-intlayer";import clientComponentExampleContent from "./component.content";const ClientComponentExample: FC = () => {  const { title, content } = useDictionary(clientComponentExampleContent);  return (    <div>      <h1>{title}</h1>      <p>{content}</p>    </div>  );};

    Exemplo de Uso em Componente React Server

    Se você estiver usando o hook useDictionary fora do IntlayerServerProvider, o locale deve ser explicitamente fornecido como parâmetro ao renderizar o componente:

    ServerComponentExample.tsx
    import type { FC } from "react";import { useDictionary } from "next-intlayer/server";import clientComponentExampleContent from "./component.content";const ServerComponentExample: FC = () => {  const { content } = useDictionary(clientComponentExampleContent);  return (    <div>      <h1>{content.title}</h1>      <p>{content.content}</p>    </div>  );};

    Notas sobre Atributos

    Ao contrário das integrações que utilizam editores visuais, atributos como buttonTitle.value não se aplicam aqui. Em vez disso, acesse diretamente as strings localizadas conforme declaradas no seu conteúdo.

    jsx
    <button title={content.title}>{content.content}</button>

    Dicas Adicionais

    • Segurança de Tipo: Sempre use Dictionary para definir seus dicionários para garantir segurança de tipo.
    • Atualizações de Localização: Ao atualizar o conteúdo, certifique-se de que todos os locais estejam consistentes para evitar traduções faltantes.

    Esta documentação foca na integração do hook useDictionary, oferecendo uma abordagem simplificada para gerenciar conteúdo localizado sem depender das funcionalidades do editor visual.

    Histórico da Documentação

    • 5.5.10 - 2025-06-29: Histórico inicial
    Receba notificações sobre os próximos lançamentos de Intlayer