Pular para conteúdo

Texto e traduções

MRBS separa o vocabulário do aplicativo, o texto específico do site, as páginas de Ajuda e este manual do MkDocs. Escolha a camada correta para que as atualizações permaneçam gerenciáveis.

Tarefa Localização correta
Renomear um rótulo para uma instalação $vocab_override em config.inc.php
Adicionar ou melhorar um idioma da interface do MRBS web/lang/lang.<language>
Traduzir ou personalizar a página de ajuda do aplicativo web/site_faq/site_faq_<language>.html
Traduzir este manual Um arquivo com sufixo de idioma abaixo docs/

Substituir o texto de um site

Não edite um arquivo de idioma enviado apenas para renomear “Room” ou alterar o título do site. Encontre o token em web/lang/lang.en e substitua-o:

$vocab_override['en']['mrbs'] = 'Resource Booking';
$vocab_override['de']['mrbs'] = 'Ressourcenbuchung';
$vocab_override['fr']['mrbs'] = 'Réservation de ressources';
$vocab_override['es']['mrbs'] = 'Reserva de recursos';

A ordem do índice é sempre o idioma e depois o token: $vocab_override[LANG][TOKEN].

Tokens úteis definidos pelo site incluem:

$vocab_override['en']['room.coffee_machine'] = 'Coffee machine';
$vocab_override['en']['entry.catering'] = 'Catering';
$vocab_override['en']['entry.description.placeholder'] =
    'Add information for the room team';
$vocab_override['en']['users.zip_code.oninvalid'] =
    'Enter a valid ZIP code';
$vocab_override['en']['type.C'] = 'Customer booking';

Os tokens de campo personalizado são descritos em Campos personalizados. As descrições do tipo de reserva usam type.X, onde X é o código do tipo configurado.

As substituições sobrevivem a uma atualização porque residem na configuração do site. Verifique novamente seu significado se um lançamento alterar o token original ou seu contexto.

Preservar marcadores de substituição

As strings de idioma podem conter marcadores printf, como %s, %d, ou formas posicionais, como %1$d. Preserve cada marcador e seu tipo. Uma tradução pode reordenar argumentos apenas com a forma posicional.

Preserve também fragmentos HTML deliberados, semântica de pontuação e espaços circundantes. Teste strings com contagens de zero, um e muitos, quando aplicável.

Selecione o idioma da interface

Por padrão, MRBS escolhe um idioma no navegador:

$disable_automatic_language_changing = false;

Para forçar um idioma:

$disable_automatic_language_changing = true;
$default_language_tokens = 'de';

O token deve corresponder a um arquivo web/lang/lang.* disponível. A seleção de localidade para datas e horas pode ser substituída separadamente:

$override_locale = 'de-DE';
$cli_language = 'de';

$override_locale também deve ser compatível com o sistema operacional do servidor. $cli_language controla comandos executados fora do navegador. Para diagnóstico, $language_debug = true grava informações de idioma e localidade no log de erros; desative-o novamente após a solução de problemas.

Adicionar ou manter um idioma de aplicativo

O arquivo em inglês é a referência e o substituto. Para criar um idioma cujo token detectado seja xx:

cp web/lang/lang.en web/lang/lang.xx

Então:

  1. Mantenha a linha de abertura PHP e todas as chaves $vocab.
  2. Traduza valores de string, não nomes de token.
  3. Salve o arquivo como UTF-8.
  4. Não use entidades HTML, exceto &nbsp;; escreva caracteres UTF-8 diretamente.
  5. Preservar marcadores de substituição e marcação intencional.
  6. Valide a sintaxe PHP.
php -l web/lang/lang.xx

MRBS primeiro carrega a referência em inglês e depois o idioma selecionado, de modo que os tokens ausentes voltam para o inglês.

Verifique a integridade

checklang.php compara arquivos de idioma com lang.en. Para uma instância de desenvolvimento, coloque-a ou mantenha-a no diretório web MRBS e abra:

https://example.invalid/mrbs/checklang.php?lang[]=xx

Sem seleção de idioma, ele oferece todos os arquivos de idiomas instalados. A função opcional de atualização grava arquivos e, portanto, requer acesso de gravação; evite isso na produção e revise as alterações geradas. Restrinja ou remova este utilitário de desenvolvimento de uma implantação pública quando a verificação for concluída.

A verificação de sintaxe e checklang.php detectam problemas diferentes: use ambos.

Traduzir a página de ajuda do aplicativo

O texto de ajuda não vem de $vocab. Ele é armazenado separadamente:

web/site_faq/site_faq.html
web/site_faq/site_faq_de.html
web/site_faq/site_faq_fr.html
web/site_faq/site_faq_es.html

Selecione o sufixo sem sublinhado:

$faqfilelang = 'de';

Valores mais antigos, como '_de', são aceitos para compatibilidade, mas estão obsoletos. A configuração é independente do idioma do navegador, portanto teste se o FAQ selecionado corresponde ao público-alvo. As edições locais nos arquivos de perguntas frequentes enviados devem ser registradas e reaplicadas ou mescladas durante uma atualização.

Traduzir este manual

O site de documentação usa arquivos de sufixo:

docs/admin-guide/custom-fields.md
docs/admin-guide/custom-fields.de.md
docs/admin-guide/custom-fields.fr.md
docs/admin-guide/custom-fields.es.md

Inglês é o substituto da documentação. Esses arquivos não afetam a interface do usuário do aplicativo MRBS ou sua página de Ajuda.

Fluxo de trabalho seguro para atualização

  1. Coloque o texto exclusivo do site em $vocab_override.
  2. Mantenha uma lista de idiomas e arquivos de perguntas frequentes mantidos localmente.
  3. Compare um novo lang.en com a versão anterior para tokens adicionados ou alterados.
  4. Execute php -l em cada arquivo de idioma alterado.
  5. Execute checklang.php em uma instância de desenvolvimento restrita.
  6. Revise as alterações do FAQ separadamente.
  7. Teste todos os idiomas ativos antes da implantação.

Lista de verificação de verificação

  • A detecção do navegador e o padrão forçado selecionam o idioma esperado.
  • Os tokens ausentes voltam para um inglês compreensível.
  • Páginas de navegação, formulários, erros, aprovações e administração são renderizadas corretamente.
  • %s, %d e os marcadores posicionais recebem os valores corretos.
  • Datas, horários, dias da semana e fusos horários usam a localidade pretendida.
  • Assuntos e corpos de email, relatórios, exportações e trabalhos de linha de comando usam o idioma pretendido.
  • Campos personalizados, tipos de reserva, espaços reservados e mensagens de validação são traduzidos.
  • A página de Ajuda usa o arquivo site_faq esperado.
  • Os logs não contêm depuração de linguagem persistente ou valores de formulário confidenciais.