テキストと翻訳¶
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 はブラウザから言語を選択します。
1 つの言語を強制するには:
トークンは、使用可能な web/lang/lang.* ファイルと一致する必要があります。日付と時刻のロケール選択は個別にオーバーライドできます。
$override_locale はサーバーのオペレーティング システムでもサポートされている必要があります。 $cli_language は、ブラウザ外で実行されるコマンドを制御します。診断のために、$language_debug = true は言語とロケールの情報をエラー ログに書き込みます。トラブルシューティング後に再度無効にしてください。
アプリケーション言語を追加または維持する¶
英語のファイルは参照およびフォールバックです。検出されたトークンが xx である言語を作成するには:
次に:
- PHP 開始行とすべての
$vocabキーを保管してください。 - トークン名ではなく文字列値を翻訳します。
- ファイルを UTF-8 として保存します。
以外の HTML エンティティは使用しないでください。 UTF-8 文字を直接書き込みます。- 置換マーカーと意図的なマークアップを保持します。
- PHP 構文を検証します。
MRBS は最初に英語のリファレンスをロードし、次に選択した言語をロードするため、欠落しているトークンは英語にフォールバックします。
完全性をチェックする¶
checklang.php は言語ファイルを lang.en と比較します。開発インスタンスの場合は、MRBS Web ディレクトリに配置または保持して、次のように開きます。
言語を選択しないと、インストールされているすべての言語ファイルが提供されます。オプションの更新関数はファイルに書き込むため、書き込みアクセスが必要です。運用環境ではそれを避け、生成された変更を確認してください。チェックが完了したら、この開発ユーティリティをパブリック展開から制限または削除します。
構文チェックと 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
アンダースコアのないサフィックスを選択します。
'_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 やそのヘルプ ページには影響しません。
アップグレードしても安全なワークフロー¶
$vocab_overrideにサイト限定の文言を入れます。- ローカルで管理されている言語ファイルと FAQ ファイルのリストを保持します。
- 新しい
lang.enを以前のバージョンと比較して、追加または変更されたトークンを確認します。 - 変更されたすべての言語ファイルに対して
php -lを実行します。 - 制限された開発インスタンスで
checklang.phpを実行します。 - FAQ の変更を個別に確認してください。
- 導入前にすべてのアクティブな言語をテストします。
検証チェックリスト¶
- ブラウザの検出と強制デフォルトにより、期待される言語が選択されます。
- トークンが欠落している場合は、理解可能な英語に戻ります。
- ナビゲーション、フォーム、エラー、承認、および管理ページが正しく表示されます。
%s、%d、および位置マーカーは正しい値を受け取ります。- 日付、時刻、平日、およびタイムゾーンには、意図されたロケールが使用されます。
- 電子メールの件名と本文、レポート、エクスポート、およびコマンド ライン ジョブでは、意図された言語が使用されます。
- カスタム フィールド、予約タイプ、プレースホルダー、および検証メッセージが翻訳されます。
- ヘルプ ページでは、予期される
site_faqファイルが使用されます。 - ログには、永続的な言語のデバッグや機密フォームの値は含まれません。