Skip to content

Commit 0e0e028

Browse files
committed
feat(i18n): add Brazilian Portuguese localization and documentation
1 parent d13cafa commit 0e0e028

10 files changed

Lines changed: 321 additions & 14 deletions

File tree

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
[
2+
{
3+
"text": "IA",
4+
"link": "/ai/",
5+
"activeMatch": "/ai/"
6+
},
7+
{
8+
"text": "Guia",
9+
"link": "/guide/start/",
10+
"activeMatch": "/guide/"
11+
},
12+
{
13+
"text": "Integrações",
14+
"link": "/integrations/",
15+
"activeMatch": "/integrations/",
16+
"items": [
17+
{
18+
"text": "Visão geral",
19+
"link": "/integrations/"
20+
},
21+
{
22+
"text": "Rsbuild",
23+
"link": "/integrations/build-tool/rsbuild"
24+
},
25+
{
26+
"text": "Rslib",
27+
"link": "/integrations/build-tool/rslib"
28+
},
29+
{
30+
"text": "Vite",
31+
"link": "/integrations/build-tool/vite"
32+
},
33+
{
34+
"text": "Rspack",
35+
"link": "/integrations/bundler/rspack"
36+
},
37+
{
38+
"text": "Webpack",
39+
"link": "/integrations/bundler/webpack"
40+
},
41+
{
42+
"text": "Metro",
43+
"link": "/integrations/bundler/metro"
44+
},
45+
{
46+
"text": "Rspress",
47+
"link": "/integrations/documentation/rspress"
48+
},
49+
{
50+
"text": "Modern.js",
51+
"link": "/integrations/framework/modernjs"
52+
},
53+
{
54+
"text": "Next.js",
55+
"link": "/integrations/framework/nextjs"
56+
},
57+
{
58+
"text": "Angular",
59+
"link": "/integrations/framework/angular"
60+
},
61+
{
62+
"text": "Monorepos",
63+
"link": "/integrations/framework/monorepos"
64+
},
65+
{
66+
"text": "Prática",
67+
"link": "/integrations/practice"
68+
}
69+
]
70+
},
71+
{
72+
"text": "Configuração",
73+
"link": "/configure/",
74+
"activeMatch": "/configure/"
75+
},
76+
{
77+
"text": "Plugins",
78+
"link": "/plugin/dev/index",
79+
"activeMatch": "/plugin/"
80+
},
81+
{
82+
"text": "Showcase",
83+
"link": "/showcase/index",
84+
"activeMatch": "/showcase/"
85+
},
86+
{
87+
"text": "Blog",
88+
"link": "/blog/index",
89+
"activeMatch": "/blog/"
90+
},
91+
{
92+
"text": "Ecossistema",
93+
"activeMatch": "/ecosystem/",
94+
"items": [
95+
{
96+
"text": "Module Federation Examples",
97+
"link": "https://github.com/module-federation/module-federation-examples"
98+
},
99+
{
100+
"text": "Practical Module Federation",
101+
"link": "https://module-federation.myshopify.com/products/practical-module-federation"
102+
},
103+
{
104+
"text": "Zephyr Cloud",
105+
"link": "https://zephyr-cloud.io/"
106+
},
107+
{
108+
"text": "Nx",
109+
"link": "https://nx.dev/"
110+
}
111+
]
112+
}
113+
]
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[
2+
{
3+
"type": "file",
4+
"name": "index",
5+
"label": "Visão geral"
6+
}
7+
]
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Visão geral da configuração
2+
3+
Esta página lista todas as opções de configuração do `Module Federation`. Para instalação de pacotes e configuração de plugins em diferentes tipos de projeto, consulte Integrações.
4+
5+
```ts
6+
type ModuleFederationOptions = {
7+
// Nome para module federation
8+
name: string;
9+
// Escopo(s) de compartilhamento para a aplicação atual (padrão: 'default')
10+
shareScope?: string | string[];
11+
// Nome do arquivo remoteEntry
12+
filename?: string;
13+
// Configuração de módulos remotos e informações de entrada em module federation
14+
remotes?: Array<RemoteInfo>;
15+
// Informações de módulos expostos por module federation
16+
exposes?: PluginExposesOptions;
17+
// Configuração de dependências compartilhadas
18+
shared?: ShareInfos;
19+
// publicPath dinâmico
20+
getPublicPath?: string;
21+
// Plugins de runtime
22+
runtimePlugins?: Array<string | [string, Record<string, unknown>]>;
23+
// Implementação de runtime a ser usada
24+
implementation?: string;
25+
// Configuração de manifest
26+
manifest?: boolean | PluginManifestOptions;
27+
// Controla liveReload da página e hot reload de tipos
28+
dev?: boolean | PluginDevOptions;
29+
// Controla tipos
30+
dts?: boolean | PluginDtsOptions;
31+
// Usa um ponto de entrada de runtime virtual em vez de gravar um arquivo temporário em disco
32+
virtualRuntimeEntry?: boolean;
33+
injectTreeShakingUsedExports?: boolean;
34+
treeShakingDir?: string;
35+
treeShakingSharedPlugins?: Array<string>;
36+
treeShakingSharedExcludePlugins?: Array<string>;
37+
};
38+
```
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[
2+
{
3+
"type": "dir-section-header",
4+
"name": "start",
5+
"label": "Primeiros passos"
6+
}
7+
]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
["index"]
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Introdução
2+
3+
### 💡 O que é Module Federation?
4+
5+
Module Federation é um padrão arquitetural para descentralizar aplicações JavaScript, semelhante aos microsserviços no lado do servidor. Ele permite compartilhar código e recursos entre várias aplicações JavaScript, ou micro-frontends. Isso pode ajudar você a:
6+
7+
- Reduzir duplicação de código
8+
- Melhorar a manutenção do código
9+
- Diminuir o tamanho geral das suas aplicações
10+
- Melhorar o desempenho das suas aplicações
11+
12+
### ✨ O que é Module Federation 2.0?
13+
14+
`Module Federation 2.0` difere do `Module Federation` integrado ao `Webpack5` por oferecer não apenas os recursos centrais de exportação de módulos, carregamento e compartilhamento de dependências, mas também dicas dinâmicas de tipos, `Manifest`, `Federation Runtime` e `Runtime Plugin System`. Esses recursos tornam o `Module Federation` mais adequado para uso como arquitetura de micro-frontends em aplicações `Web` de grande escala.
15+
16+
### 🔥 Recursos
17+
18+
Module Federation possui os seguintes recursos:
19+
20+
- ⚡ Compartilhamento de código e reutilização de dependências
21+
- 📝 Manifest
22+
- 🎨 Module Federation Runtime
23+
- 🧩 Sistema de Runtime Plugins
24+
- 🚀 Dicas dinâmicas de tipos
25+
- 🛠️ Chrome Devtool
26+
- 🦀 Suporte a Rspack e Webpack
27+
28+
### 🎯 Casos de uso
29+
30+
Module Federation é adequado para os seguintes cenários:
31+
32+
- **Aplicações grandes**: Em aplicações grandes, você pode dividir a aplicação em vários micro-frontends e usar Module Federation para compartilhar código e recursos entre eles.
33+
- **Arquitetura de micro-frontends**: Module Federation é uma ferramenta ideal para construir arquiteturas de micro-frontends.
34+
- **Desenvolvimento por múltiplas equipes**: Module Federation pode ajudar várias equipes a colaborar no desenvolvimento de aplicações grandes.
35+
36+
### 🕠 História do Module Federation
37+
38+
Module Federation é um recurso introduzido no Webpack 5, mas sua história remonta a 2017. Naquela época, a equipe do Webpack começou a explorar uma forma de compartilhar código entre várias aplicações.
39+
40+
- Em 2018, o Webpack 4.20 foi lançado, introduzindo hooks de módulo, que estabeleceram a base para o desenvolvimento do Module Federation.
41+
42+
- Em 2019, o Webpack 5 foi lançado, introduzindo oficialmente o recurso Module Federation.
43+
44+
Module Federation se tornou uma ferramenta poderosa para construir aplicações web modernas.
45+
46+
### 🕰️ O futuro do Module Federation
47+
48+
Module Federation busca se tornar um método arquitetural para construir grandes aplicações web, semelhante aos microsserviços no backend. Module Federation fornecerá mais capacidades para atender às necessidades fundamentais de descentralização de grandes aplicações web, incluindo atualmente estas partes:
49+
50+
- Fornecer ferramentas completas de Devtool
51+
- Oferecer mais capacidades de alto nível para frameworks, como Router, Sandbox e SSR
52+
- Fornecer boas práticas para grandes aplicações web baseadas em Module Federation
53+
54+
## Siga-nos
55+
56+
- [GitHub - Dê uma estrela no GitHub](https://github.com/module-federation/core)
57+
- [Discord](https://discord.com/channels/1055442562959290389/1055442563718467637)
58+
- [Grupo Lark (comunidade chinesa)](https://applink.larkoffice.com/client/chat/chatter/add_by_link?link_token=a41s8f79-741f-41ba-8349-395d9a0e9662)
59+
60+
## ✨ Próximos passos
61+
62+
Talvez você queira:
63+
64+
import NextSteps from '@components/NextSteps';
65+
import Step from '@components/Step';
66+
67+
<NextSteps>
68+
<Step
69+
href="/configure/index"
70+
title="Consultar configuração"
71+
description="Entenda como configurar Module Federation"
72+
/>
73+
</NextSteps>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
pageType: home
3+
4+
hero:
5+
name: Module Federation
6+
text: Arquitetura de Micro-Frontend
7+
tagline: Facilite o compartilhamento de código entre aplicações JavaScript e torne a colaboração entre equipes mais eficiente
8+
actions:
9+
- theme: brand
10+
text: Primeiros passos
11+
link: /pt-BR/guide/start/
12+
image:
13+
src: /svg.svg
14+
alt: Logo do Module Federation
15+
features:
16+
- title: Compartilhamento de código
17+
details: Module Federation permite que desenvolvedores compartilhem código entre vários projetos de forma descentralizada, facilitando o gerenciamento de aplicações complexas.
18+
icon:
19+
- title: Modularização
20+
details: As aplicações podem ser divididas em módulos menores e independentes, que podem ser desenvolvidos, testados e implantados separadamente.
21+
icon: 📦
22+
- title: Flexibilidade
23+
details: Module Federation oferece aos desenvolvedores a liberdade de escolher e implementar a arquitetura que melhor atende às suas necessidades.
24+
icon: 🎯
25+
- title: Rspack
26+
details: Suporta builds com Rspack e Webpack, acelerando os builds da sua aplicação.
27+
icon: 🦀
28+
- title: Experiência de desenvolvimento
29+
details: Module Federation oferece suporte a dicas dinâmicas de tipos e ao Chrome Devtool para melhorar a experiência de desenvolvimento.
30+
icon: 🚀
31+
- title: Sistema de plugins
32+
details: Hooks permitem que você defina rapidamente seus próprios plugins para controlar o comportamento do carregamento de módulos.
33+
icon: 🎨
34+
---

apps/website-new/rspress.config.ts

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,26 @@ export default defineConfig({
1414
'Module Federation is a concept that allows developers to share code and resources across multiple JavaScript applications',
1515
icon: '/svg.svg',
1616
lang: 'en',
17+
locales: [
18+
{
19+
lang: 'zh',
20+
title: 'Module federation',
21+
description: '将你的 Web 应用微前端架构化',
22+
label: '简体中文',
23+
},
24+
{
25+
lang: 'en',
26+
title: 'Module federation',
27+
description: "Architecture your web application's micro-front end",
28+
label: 'English',
29+
},
30+
{
31+
lang: 'pt-BR',
32+
title: 'Module federation',
33+
description: 'Arquiteture o micro-frontend da sua aplicação web',
34+
label: 'Português (Brasil)',
35+
},
36+
],
1737
logo: {
1838
light: '/module-federation.svg',
1939
dark: '/module-federation-logo-white.svg',
@@ -24,20 +44,6 @@ export default defineConfig({
2444
},
2545
},
2646
themeConfig: {
27-
locales: [
28-
{
29-
lang: 'zh',
30-
title: 'Module federation',
31-
description: '将你的 Web 应用微前端架构化',
32-
label: '简体中文',
33-
},
34-
{
35-
lang: 'en',
36-
title: 'Module federation',
37-
description: "Architecture your web application's micro-front end",
38-
label: 'English',
39-
},
40-
],
4147
editLink: {
4248
docRepoBaseUrl:
4349
'https://github.com/module-federation/core/tree/main/apps/website-new/docs',

apps/website-new/theme/i18n/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import { withBase, useLang } from '@rspress/core/runtime';
22
import { EN_US } from './enUS';
3+
import { PT_BR } from './ptBR';
34
import { ZH_CN } from './zhCN';
45

56
const translations = {
67
en: EN_US,
8+
'pt-BR': PT_BR,
79
zh: ZH_CN,
810
} as const;
911

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { EN_US } from './enUS';
2+
3+
export const PT_BR: Record<keyof typeof EN_US, string> = {
4+
Configuration: 'Configuração',
5+
coldStart: 'Inicialização fria',
6+
coldBuild: 'Build frio',
7+
hmrRoot: 'HMR(raiz alterada)',
8+
hmrLeaf: 'HMR(folha alterada)',
9+
moduleCount: 'Contagem de módulos',
10+
guide: 'Guia',
11+
quickStart: 'Primeiros passos',
12+
features: 'Recursos',
13+
compatibility: 'Compatibilidade',
14+
migration: 'Migração',
15+
cli: 'CLI',
16+
friendLink: 'Ecossistema',
17+
community: 'Comunidade',
18+
benchmarkTitle: 'Performance de build',
19+
benchmarkDesc:
20+
'Combinando TypeScript e Rust com uma arquitetura paralelizada para oferecer uma excelente experiência de desenvolvimento.',
21+
benchmarkDetail: 'Ver detalhes do benchmark',
22+
announcementVideo:
23+
'https://module-federation-assest.netlify.app/document/announcement/blog/announcement/announcement-video.mp4',
24+
announcementVideoPoster:
25+
'https://module-federation-assest.netlify.app/document/announcement/blog/announcement/announcement-video-poster.png',
26+
};

0 commit comments

Comments
 (0)