コンテンツにスキップ

テキストと翻訳

MRBS は、アプリケーションの語彙、サイト固有の文言、ヘルプ ページ、およびこの MkDocs マニュアルを分離します。アップグレードを管理しやすい状態に保つために、正しいレイヤーを選択してください。

タスク 正しい位置
1 つのインストールのラベル名を変更する $vocab_override で config.inc.php
MRBS UI 言語を追加または改善する web/lang/lang.<language>
アプリケーション内ヘルプ ページの翻訳またはカスタマイズ web/site_faq/site_faq_<language>.html
このマニュアルを翻訳する docs/ の下に言語サフィックスが付いたファイル

1 つのサイトの文言を上書きする

「Room」の名前を変更したり、サイトのタイトルを変更するためだけに、出荷された言語ファイルを編集しないでください。 web/lang/lang.en でトークンを見つけて、それをオーバーライドします。

$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';

インデックスの順序は常に言語、トークンの順です: $vocab_override[LANG][TOKEN]。

有用なサイト定義トークンには次のものがあります。

$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';

カスタムフィールドトークンについては、カスタムフィールド で説明されています。予約タイプの説明では type.X を使用します。X は設定されたタイプ コードです。

オーバーライドはサイト設定内に存在するため、アップグレード後も存続します。リリースによって元のトークンまたはそのコンテキストが変更された場合は、その意味を再確認してください。

置換マーカーを保持する

言語文字列には、%s、%d などの printf マーカー、または %1$d などの位置形式を含めることができます。すべてのマーカーとそのタイプを保存します。翻訳では、位置形式でのみ引数を並べ替えることができます。

また、意図的な HTML フラグメント、句読点のセマンティクス、周囲のスペースも保持します。該当する場合は、カウントが 0、1、および多数の文字列をテストします。

インターフェイスの言語を選択する

デフォルトでは、MRBS はブラウザから言語を選択します。

$disable_automatic_language_changing = false;

1 つの言語を強制するには:

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

トークンは、使用可能な web/lang/lang.* ファイルと一致する必要があります。日付と時刻のロケール選択は個別にオーバーライドできます。

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

$override_locale はサーバーのオペレーティング システムでもサポートされている必要があります。 $cli_language は、ブラウザ外で実行されるコマンドを制御します。診断のために、$language_debug = true は言語とロケールの情報をエラー ログに書き込みます。トラブルシューティング後に再度無効にしてください。

アプリケーション言語を追加または維持する

英語のファイルは参照およびフォールバックです。検出されたトークンが xx である言語を作成するには:

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

次に:

  1. PHP 開始行とすべての $vocab キーを保管してください。
  2. トークン名ではなく文字列値を翻訳します。
  3. ファイルを UTF-8 として保存します。
  4. &nbsp; 以外の HTML エンティティは使用しないでください。 UTF-8 文字を直接書き込みます。
  5. 置換マーカーと意図的なマークアップを保持します。
  6. PHP 構文を検証します。
php -l web/lang/lang.xx

MRBS は最初に英語のリファレンスをロードし、次に選択した言語をロードするため、欠落しているトークンは英語にフォールバックします。

完全性をチェックする

checklang.php は言語ファイルを lang.en と比較します。開発インスタンスの場合は、MRBS Web ディレクトリに配置または保持して、次のように開きます。

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

言語を選択しないと、インストールされているすべての言語ファイルが提供されます。オプションの更新関数はファイルに書き込むため、書き込みアクセスが必要です。運用環境ではそれを避け、生成された変更を確認してください。チェックが完了したら、この開発ユーティリティをパブリック展開から制限または削除します。

構文チェックと checklang.php は異なる問題を検出します。両方を使用してください。

アプリケーション内のヘルプページを翻訳する

ヘルプ テキストは $vocab からのものではありません。個別に保存されます。

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

アンダースコアのないサフィックスを選択します。

$faqfilelang = 'de';

'_de' などの古い値は互換性のために受け入れられますが、非推奨です。この設定はブラウザの言語に依存しないため、選択した FAQ が対象読者と一致するかどうかをテストしてください。出荷された FAQ ファイルに対するローカル編集は記録され、アップグレード中に再適用またはマージされる必要があります。

このマニュアルを翻訳する

ドキュメント Web サイトでは、サフィックス ファイルが使用されています。

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

英語はドキュメントのフォールバックです。これらのファイルは、MRBS アプリケーション UI やそのヘルプ ページには影響しません。

アップグレードしても安全なワークフロー

  1. $vocab_override にサイト限定の文言を入れます。
  2. ローカルで管理されている言語ファイルと FAQ ファイルのリストを保持します。
  3. 新しい lang.en を以前のバージョンと比較して、追加または変更されたトークンを確認します。
  4. 変更されたすべての言語ファイルに対して php -l を実行します。
  5. 制限された開発インスタンスで checklang.php を実行します。
  6. FAQ の変更を個別に確認してください。
  7. 導入前にすべてのアクティブな言語をテストします。

検証チェックリスト

  • ブラウザの検出と強制デフォルトにより、期待される言語が選択されます。
  • トークンが欠落している場合は、理解可能な英語に戻ります。
  • ナビゲーション、フォーム、エラー、承認、および管理ページが正しく表示されます。
  • %s、%d、および位置マーカーは正しい値を受け取ります。
  • 日付、時刻、平日、およびタイムゾーンには、意図されたロケールが使用されます。
  • 電子メールの件名と本文、レポート、エクスポート、およびコマンド ライン ジョブでは、意図された言語が使用されます。
  • カスタム フィールド、予約タイプ、プレースホルダー、および検証メッセージが翻訳されます。
  • ヘルプ ページでは、予期される site_faq ファイルが使用されます。
  • ログには、永続的な言語のデバッグや機密フォームの値は含まれません。