Ir para o conteúdo

Texto e traduções

O MRBS separa o vocabulário da aplicação, os textos específicos do site, as páginas de Ajuda e este manual MkDocs. Escolha a camada adequada para facilitar futuras atualizações.

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

Substituir o texto de um site

Não edite um ficheiro de idioma fornecido apenas para renomear “Sala” 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].

Os 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 estão descritos em Campos personalizados. As descrições do tipo de reserva utilizam type.X, em que X é o código do tipo configurado.

As substituições sobrevivem a uma atualização porque residem na configuração do site. Verifique novamente o seu significado se um lançamento alterar o token original ou o 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 o seu tipo. Uma tradução pode reordenar argumentos apenas com a forma posicional.

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

Selecione o idioma do tempo de execução

Por predefinição, MRBS escolhe um idioma no browser:

$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 ficheiro web/lang/lang.* disponível. A seleção da 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 operativo do servidor. $cli_language controla os comandos executados fora do browser. Para diagnóstico, $language_debug = true grava informação de idioma e localidade no registo de erros; desative-o novamente após a resolução de problemas.

Adicionar ou manter um idioma de aplicação

O ficheiro em inglês é a referência e o substituto. Para criar um idioma cujo token detetado 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, e não nomes de token.
  3. Guarde o ficheiro como UTF-8.
  4. Não utilize entidades HTML, exceto &nbsp;; escrever caracteres UTF-8 diretamente.
  5. Preservar os 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 a que os tokens em falta voltem para o inglês.

Verifique a integridade

checklang.php compara ficheiros 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, oferece todos os ficheiros de idioma instalados. A função opcional de atualização grava ficheiros e, portanto, requer acesso de escrita; evite isso na produção e reveja as alterações geradas. Restrinja ou remova este utilitário de desenvolvimento de uma implementação pública quando a verificação estiver concluída.

A verificação de sintaxe e checklang.php detetam problemas diferentes: utilize ambos.

Traduzir a página de ajuda da aplicação

O texto de ajuda não vem de $vocab. É 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 aceites para compatibilidade, mas estão obsoletos. A configuração é independente do idioma do browser, por isso teste se o FAQ selecionado corresponde ao público-alvo. As edições locais nos ficheiros de perguntas frequentes enviados devem ser registadas e reaplicadas ou fundidas durante uma atualização.

Traduzir este manual

O site de documentação utiliza ficheiros 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

O inglês é o substituto da documentação. Estes ficheiros não afetam a interface do utilizador da aplicação MRBS ou a 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 ficheiros 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 ficheiro de idioma alterado.
  5. Execute checklang.php numa instância de desenvolvimento restrita.
  6. Reveja as alterações do FAQ separadamente.
  7. Teste todos os idiomas ativos antes da implementação.

Lista de verificação de verificação

  • A deteção do navegador e o padrão forçado selecionam o idioma esperado.
  • Os tokens em falta voltam a um inglês compreensível.
  • As 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.
  • As datas, horas, dias da semana e fusos horários utilizam a localidade pretendida.
  • Os assuntos e corpos de correio eletrónico, relatórios, exportações e trabalhos de linha de comando utilizam o idioma pretendido.
  • Os campos personalizados, os tipos de reserva, os espaços reservados e as mensagens de validação são traduzidos.
  • A página de Ajuda utiliza o ficheiro site_faq esperado.
  • Os registos não contêm depuração de linguagem persistente ou valores de formulário confidenciais.