📦 my-nextjs-app
├── 📂 public
│ └── (Arquivos estáticos acessĂveis publicamente, como imagens e Ăcones)
├── 📂 src
│ ├── 📂 app
│ │ ├── 📂 [lang] (Internacionalização - tudo dentro será traduzido)
│ │ │ ├── đź“‚ about (Página sobre, acessĂvel como /pt/about ou /en/about)
│ │ │ ├── layout.tsx (Layout global, aplicável a todas as páginas traduzidas)
│ │ │ ├── page.tsx (Página inicial internacionalizada, ex: /pt ou /en)
│ │ ├── 📂 dashboard
│ │ │ ├── page.tsx (Página do dashboard)
│ │ └── 📂 (outras rotas...)
│ ├── 📂 components
│ │ ├── 📂 common
│ │ │ └── (Componentes globais e reutilizáveis, como Button, Modal, Input)
│ │ ├── 📂 layout
│ │ │ └── (Componentes de layout, como Navbar, Footer, Sidebar)
│ ├── 📂 hooks
│ │ └── (Custom hooks criados para facilitar a lógica e reutilização de código)
│ ├── 📂 i18n
│ │ ├── i18n.config.ts (Configuração de internacionalização)
│ │ ├── dictionaries/ (Dicionários de idiomas)
│ ├── 📂 styles
│ │ └── (Arquivos de estilização global, como `global.css`)
│ ├── 📂 types
│ │ └── (Definições de tipos TypeScript)
│ ├── 📂 lib
│ │ └── (Bibliotecas customizadas especĂficas da aplicação)
│ └── 📂 middleware.ts (Middleware para internacionalização)
└── next.config.js (Configuração do Next.js)
└── package.json (Dependências e scripts do projeto)
└── tsconfig.json (Configuração do TypeScript)
└── .env (Variáveis de ambiente)
A pasta [lang] Ă© responsável pela internacionalização do site. Todas as páginas dentro dessa pasta serĂŁo acessĂveis com um prefixo de idioma, como /pt ou /en. Por exemplo:
/ âžť Redireciona para o idioma padrĂŁo (ex: /pt)./en âžť VersĂŁo em inglĂŞs do site./pt âžť VersĂŁo em portuguĂŞs do site./en/about âžť Página "Sobre" em inglĂŞs./pt/about âžť Página "Sobre" em portuguĂŞs.Armazena arquivos estáticos acessĂveis publicamente, como imagens, vĂdeos e favicons. Essa pasta Ă© usada para qualquer recurso que precise ser acessĂvel diretamente no navegador. Escolha: Colocar todos os arquivos estáticos aqui facilita o acesso e permite uma gestĂŁo clara dos recursos pĂşblicos da aplicação.
A pasta principal para as rotas e páginas da aplicação. No Next.js 13, esta pasta introduz uma maneira mais moderna e eficiente de organizar as rotas, utilizando layouts aninhados e segmentação de rotas.
app representa uma rota, e o arquivo page.tsx define a entrada da rota.Organiza componentes reutilizáveis e modulares.