Pular para o conteúdo principal
Versão: 1.x

Contribuindo com Traduções

O WCPOS atualmente inclui traduções para 10 idiomas, e há espaço para muitos mais. Contribuições são muito bem-vindas — não é necessário traduzir tudo, nem ser desenvolvedor. Esta página explica o que traduzir e onde.

Os quatro locais que armazenam traduções

O WCPOS distribui strings traduzíveis em quatro repositórios, cada um com seu próprio fluxo de contribuição. É possível contribuir com qualquer um deles de forma independente.

Plugin WordPress (strings PHP)

Avisos administrativos, rótulos da página de configurações, mensagens de erro e interface do WP Admin. Traduzido no translate.wordpress.org usando GlotPress — o fluxo padrão de tradução do WordPress. Não é necessário programar.

Aplicativo POS (React/i18next)

Tudo o que o operador de caixa vê no ponto de venda — botões, diálogos, mensagens de erro, interface do carrinho e de finalização de compra. Os arquivos de tradução ficam no repositório wcpos/monorepo; as contribuições são feitas via pull request. Familiaridade básica com GitHub é útil.

Telas React do WP Admin

As páginas mais recentes baseadas em React de configurações, editor de Lojas, Modelos, Extensões e Logs. As traduções ficam em wcpos/woocommerce-pos (e woocommerce-pos-pro para telas Pro) como arquivos JSON. Familiaridade básica com GitHub é útil.

Esta documentação (Docusaurus)

O site de documentação que você está lendo agora. Arquivos MDX traduzidos ficam no repositório wcpos/docs em i18n/<locale>/. Contribuições são feitas via pull request. É útil conhecer Markdown.

Strings do plugin WordPress (o lugar mais fácil para começar)

Se você nunca traduziu um plugin WordPress antes, este é o caminho com menos dificuldade:

  1. Encontre seu idioma em translate.wordpress.org/projects/wp-plugins/woocommerce-pos/ — cada idioma suportado pelo WordPress tem um subprojeto.
  2. Faça login com sua conta WordPress.org (a mesma que você usa para comentar nos fóruns de suporte). Crie uma gratuitamente se ainda não tiver.
  3. Escolha um subprojeto — normalmente você verá:
    • Stable (latest release) — strings incluídas na versão pública atual. Traduções aqui entram em vigor em todos os sites que atualizam o plugin.
    • Development (trunk) — strings da próxima versão. Traduza-as para estar pronto antes do próximo lançamento.
    • Stable Readme / Development Readme — a descrição do plugin que aparece no WordPress.org.
  4. Envie traduções uma string por vez pela interface do GlotPress. Elas começam como Sugeridas até que um Editor de Tradução do Projeto (PTE) as aprove.
  5. Torne-se um PTE solicitando no Slack do WordPress polyglots após algumas traduções aprovadas. PTEs podem aprovar traduções diretamente, sem aguardar revisão.

Quando suas traduções forem aprovadas, elas são distribuídas automaticamente para todos os usuários WCPOS no seu idioma — sem alterações de código, sem PR.

Traduções do aplicativo POS (a interface React)

A interface voltada para o operador de caixa é um aplicativo React que utiliza o i18next para traduções, reconstruído na v1.8.8. Os arquivos de tradução ficam em formato JSON no repositório wcpos/monorepo (o núcleo multiplataforma do POS).

A configuração possui dois recursos úteis:

  • Carregamento sob demanda — apenas o idioma ativo é baixado em tempo de execução (a partir da CDN do jsDelivr), de modo que adicionar um idioma não aumenta o tamanho dos downloads para os demais usuários.
  • Fallback regional — os nomes de arquivo JSON do i18next usam underscores: pt_BR faz fallback para pt, es_MX faz fallback para es, etc. As tags de idioma na documentação e na web usam hífens, como pt-BR ou es-MX. Use o formato com underscore para os arquivos JSON de tradução e o formato com hífen onde tags de idioma forem necessárias.

Para contribuir:

  1. Encontre o arquivo fonte en em wcpos/monorepo, no diretório de pacotes de tradução (o caminho exato pode variar — o mais fácil é iniciar uma nova tradução abrindo uma issue no repositório e perguntando qual arquivo copiar).
  2. Copie en.json para <your-locale>.json seguindo a convenção de localidade JSON do i18next (fr.json, de.json, pt_BR.json, etc.; use sublinhados para nomes de arquivos regionais).
  3. Traduza os valores, mantendo as chaves e quaisquer placeholders de {{interpolation}} intactos.
  4. Envie um pull request para o monorepo. O CI validará a estrutura JSON.

Para pequenas edições em uma tradução existente, você pode editar o arquivo JSON diretamente no GitHub clicando no ícone de lápis — o GitHub abrirá um PR para você.

Telas React do WP Admin

As configurações de administração do WordPress, o editor de Lojas, a página de Modelos, o catálogo de Extensões e os Registros utilizam o mesmo padrão de tradução do aplicativo POS, mas estão em dois repositórios separados:

  • Telas de administração gratuitaswcpos/woocommerce-pos repositório, em packages/settings/src/translations/locales/<locale>/wp-admin-settings.json (e caminhos semelhantes para outros pacotes de administração; use pastas de localidade com sublinhado como pt_BR para localizações JSON regionais).
  • Telas de administração Prowcpos/woocommerce-pos-pro repositório, com o mesmo padrão (ex., packages/store-edit/src/translations/locales/<locale>/wp-admin-store-edit.json, com pastas de localidade com sublinhado como pt_BR).

O fluxo de contribuição é o mesmo do aplicativo POS: copie en.json para <your-locale>.json, traduza e abra um PR.

Documentação (estas páginas)

O site de documentação utiliza a configuração padrão de i18n do Docusaurus. Os arquivos MDX traduzidos ficam no repositório wcpos/docs em i18n/<locale>/docusaurus-plugin-content-docs/current/. Cada página em inglês em versioned_docs/version-1.x/ possui uma correspondência em cada localidade de tradução ativa.

O site já possui ferramentas de tradução automatizadas — há um script pnpm translate que utiliza as APIs da OpenAI / Anthropic para gerar rascunhos de traduções a partir do inglês, que um revisor humano então refina. Portanto, o fluxo típico de contribuição é:

  1. Escolha uma página que precise de tradução ou melhoria. O seletor de idioma no rodapé do site mostra quais idiomas estão ativos.
  2. Edite o arquivo MDX correspondente em i18n/<locale>/... diretamente no GitHub pelo link Editar esta página no final de cada página.
  3. Envie um pull request. Os revisores verificarão a precisão da tradução e farão o merge.

Para contribuições maiores (traduzir uma seção inteira ou iniciar um novo locale), abra uma issue primeiro para coordenar com a equipe.

Códigos de locale usados pelo WCPOS

O WCPOS atualmente inclui estes 10 locales. A tabela da documentação usa tags de idioma com hífen para locales regionais; use a forma equivalente com underscore para arquivos JSON do i18next, como pt_BR para pt-BR e zh_CN para zh-CN.

CódigoIdioma
arÁrabe (da direita para a esquerda)
deAlemão
esEspanhol
frFrancês
hi-INHindi (Índia)
itItaliano
jaJaponês
koCoreano
pt-BRPortuguês (Brasil)
zh-CNChinês (Simplificado)

Se o seu idioma não está na lista, abra uma issue no repositório com o qual deseja começar e configuraremos o locale.

Dicas para tradutores

  • Mantenha os placeholders intactos. As strings frequentemente contêm {{variable}}, %s, %d, ou <strong> tags — traduza o texto ao redor, mas deixe os placeholders exatamente como estão. O WCPOS substitui valores reais neles em tempo de execução.
  • Mantenha o tom existente. A documentação e a interface do WCPOS são deliberadamente práticas e diretas. Se o inglês diz "Add Coupon", a tradução deve usar a forma verbal que o seu idioma utiliza em botões semelhantes — não um substantivo.
  • Teste no contexto, se possível. Defina o idioma do seu site WordPress para o seu locale, instale o plugin e verifique se as strings ficam corretas na interface real. O contexto importa — uma string que cabe em uma tela pode quebrar de forma estranha em outra.
  • Não traduza código, URLs ou IDs técnicos. Códigos de cupom, IDs de gateway, códigos de locale, caminhos de arquivos e shortcodes devem permanecer em inglês. Em caso de dúvida, deixe sem traduzir — isso é mais seguro do que corromper algo de que o sistema depende.
  • Idiomas da direita para a esquerda (RTL) — árabe, hebraico, persa, urdu — também precisam que os modelos de recibo sejam marcados como RTL. O WCPOS inclui modelos de recibo RTL integrados; consulte Personalize seu recibo para ver a galeria.

Onde pedir ajuda

  • Slack dos polyglots do WordPress.org — para perguntas relacionadas ao Glotpress
  • Discord do WCPOS — para discussões sobre tradução específicas do WCPOS (convite)
  • Issues no GitHub — registre no repositório correspondente (woocommerce-pos, woocommerce-pos-pro, monorepo ou docs) para perguntas específicas do repositório