Primeiros Passos com Localização & Tradução
Obrigado por ajudar a traduzir o X Minecraft Launcher (XMCL)! Este guia cobre tudo o que você precisa saber sobre como configurar seu ambiente de desenvolvimento, navegar pelos arquivos de localização, configurar seu editor de código (VS Code, Zed Editor, Neovim, JetBrains), testar suas traduções localmente e enviar um Pull Request.
1. Pré-requisitos
Antes de começar, certifique-se de ter as seguintes ferramentas instaladas:
- Git — Essencial para clonar o repositório e gerenciar branches.
- Node.js (v18+ ou v20+) — Necessário para compilar e executar o XMCL localmente.
- pnpm — O XMCL usa gerenciamento de pacotes com workspace
pnpm. Ative-o usando o Corepack:shcorepack enable - Editor de código de sua preferência:
- VS Code (com extensão
i18n-ally) - Zed Editor (editor em Rust de alto desempenho)
- Neovim / Vim (com LSP
yamlls) - JetBrains IDEs (WebStorm / IntelliJ IDEA)
- VS Code (com extensão
2. Configuração do Repositório (Fork & Clone)
- Fork do Repositório: Visite o Repositório GitHub do XMCL e clique em Fork.
- Clone com Submódulos: Você deve usar a flag
--recurse-submodulespara buscar os submódulos necessários:shSe esqueceu de adicionargit clone --recurse-submodules https://github.com/seu-usuario/x-minecraft-launcher.git cd x-minecraft-launcher--recurse-submodules, inicialize-os manualmente:shgit submodule update --init --recursive - Instale as Dependências:sh
pnpm install
3. Arquitetura de Localização no XMCL
O XMCL armazena traduções em arquivos YAML em dois módulos principais:
sh
x-minecraft-launcher
├─ 📂 xmcl-keystone-ui/locales/ # Strings da UI (botões, abas, diálogos)
│ ├─ 📜 en.yaml # Inglês (referência canônica)
│ ├─ 📜 uk.yaml # Ucraniano
│ └─ 📜 <código-locale>.yaml
└─ 📂 xmcl-electron-app/main/locales/ # Strings do processo principal (bandeja, notificações, erros)
├─ 📜 en.yaml
├─ 📜 uk.yaml
└─ 📜 <código-locale>.yaml4. Guia de Configuração de Editores de Código
Escolha seu editor preferido abaixo para a melhor experiência de tradução:
markdown
### Configuração do Visual Studio Code
O VS Code fornece ferramentas de UI dedicadas para gerenciamento de chaves de tradução i18n.
1. Instale a extensão **i18n Ally** (`lokalise.i18n-ally`).
2. Abra a pasta do projeto no VS Code.
3. Na barra lateral, clique no ícone do **i18n Ally**:
- **Aba de Progresso**: Veja as chaves faltantes e a porcentagem de conclusão para todos os idiomas.
- **Traduções Inline**: Edite traduções diretamente ao lado dos comentários de código nos arquivos `.vue` e `.ts`.
4. Abra `en.yaml` e o arquivo do seu idioma alvo (ex: `pt.yaml`) lado a lado (`Ctrl+\` ou `Cmd+\`).sh
### Configuração do Zed Editor
O Zed é um editor rápido e acelerado por GPU construído em Rust. Integra-se nativamente com o YAML Language Server (`yaml-lsp`).
1. **Instale Extensões**: Abra as Extensões do Zed (`Cmd+Shift+X` / `Ctrl+Shift+X`) e instale `YAML` e `Vue`.
2. **Fluxo de Tradução com Painéis Divididos**:
- Abra `xmcl-keystone-ui/locales/en.yaml`.
- Abra um painel dividido (`Cmd+Shift+E` / `Ctrl+Shift+E` ou clique com botão direito na aba do editor -> Dividir à Direita).
- Abra o arquivo do seu idioma alvo (ex: `pt.yaml`).
3. **Autocompletar LSP**: O Zed fornece completação de chaves instantânea e validação de sintaxe via `yamlls`.vim
" Configuração do Neovim (NVIM)
" Configuração do Neovim usando nvim-lspconfig e yamlls
" 1. Configure yamlls no seu init.lua / lspconfig:
" require('lspconfig').yamlls.setup({
" settings = {
" yaml = {
" validate = true,
" completion = true
" }
" }
" })
" 2. Divisão de Buffer Lado a Lado:
" Abra o arquivo de referência em inglês e divida verticalmente com seu locale alvo:
:e xmcl-keystone-ui/locales/en.yaml
:vsplit xmcl-keystone-ui/locales/pt.yaml
" 3. Rolagem Sincronizada:
" Bloqueie a posição de rolagem entre os buffers de tradução em inglês e alvo:
:set scrollbind
" 4. Plugins Recomendados:
" - neovim/nvim-lspconfig & hrsh7th/nvim-cmp (completação YAML)
" - i18n-ally.nvim ou vim-i18n (resolução de chaves inline)markdown
### JetBrains IDEs (WebStorm / IntelliJ IDEA)
1. Instale o plugin **i18n Ally** do JetBrains Marketplace.
2. Abra `en.yaml` e o arquivo `.yaml` do seu locale.
3. Clique com botão direito na aba do editor -> **Dividir à Direita** para edição lado a lado.
4. Use `Ctrl+F` / `Cmd+F` para buscar chaves correspondentes ao arquivo de referência em inglês.5. Adicionando um Novo Idioma
Se seu idioma ainda não está registrado no XMCL:
- Registre o Código de Idioma em
locales.json: Abraassets/locales.jsone adicione sua entrada de locale:json{ "zh-CN": "简体中文", "en": "English", "pt": "Português (Brasil)", "fr": "Français" } - Crie Novos Arquivos YAML: Crie um novo arquivo
.yamlusando seu código de locale em ambas as pastas de locale:xmcl-keystone-ui/locales/pt.yamlxmcl-electron-app/main/locales/pt.yaml
- Preencha as Traduções: Copie as chaves de
en.yamle traduza os valores para o seu idioma alvo.
6. Testando Sua Tradução Localmente
- Certifique-se de que todas as dependências estão instaladas (
pnpm install). - Execute o ambiente de desenvolvimento:sh(Ou no VS Code, pressione
pnpm devF5ou vá em Executar e Depurar -> selecioneElectron: Main (launch)). - Assim que o XMCL abrir, vá em Configurações ⚙️ -> Geral -> Idioma e mude para o idioma traduzido para verificar a formatação da UI e a quebra de texto!
7. Enviando Suas Alterações (Pull Request)
- Crie uma nova branch git:sh
git checkout -b i18n/adicionar-traducao-portugues - Faça commit das suas alterações:sh
git add . git commit -m "i18n: adicionar tradução em Português do Brasil" - Envie para o seu fork no GitHub:sh
git push origin i18n/adicionar-traducao-portugues - Abra um Pull Request (PR) no repositório x-minecraft-launcher!