Joomla!で言語の一部を希望の表記に上書きする機能のLanguage Overridesについて説明します。
概要
- Joomla!は多言語対応のCMSです
- インストールした言語をDefault指定すれば、簡単にサイトの言語を変更することができます
- ところで、わたくしは英語の全くできない普通のおじさんであるにも関わらず、英語表記が大好きなおじさんでもあります
- ゆえに、当サイトも「Home」を「ホーム」、「Read more」を「続きを読む」としたくありません
- 一方、html要素に指定されたlang属性はウェブアクセシビリティにおいて非常に重要な属性であり、誤った指定はサイトの正当性を毀損してしまいます
- Joomla!では、defaultに指定された言語がlang属性で定義されます
- 当初は、英語表記にこだわり、デフォルトでインストールされているen-GB言語 / English (United Kingdom)のみで運用しておりましたが、ウェブアクセシビリティを考慮し、当サイトの正当な言語であるja-JP / 日本語 (Japanese)をインストールし、default言語に指定することとしました
- Joomla!には言語の一部を希望の表記に上書きするLanguage Overridesという便利な機能が搭載されており、「ホーム」表記が許し難いおじさんも、簡単に「Home」に差し替えることができます
参照
言語の追加
- Joomla!には多数の言語パッケージが用意されております
- 日本語パッケージはOfficial Japanese Translation TeamであるJoomla!じゃぱんがメンテナンスを行っています
- Googleで「Joomla!じゃぱん」と検索すると、「Joomla!ジャパンのことですか」とたしなまれます
- 何故「じゃぱん」にしたのでしょうか、センスを疑います
言語追加とデフォルト指定の手順
- System > Manage > Languagesをクリックします

- Install Languagesボタンをクリックします

- 検索テキストボックスに[jp]と入力し検索ボタンをクリックします
- 表示されたJapanese言語パッケージを確認し、Installボタンをクリックします

- Manage Languagesをクリックします

- インストールされたJapaneseの右のラジオボタンをクリックし、Defaultをクリックします

- 日本語 (Japan) / ja-JPがDefault指定されました

Language Overrides
- Language Overrides機能は、Constant(定数)に対する値を上書きする機能です
- 上書きはあくまで「設定」であり、対象の言語のConstantの値を書き換えてしまうわけではありません
- 上書き設定を削除すれば元に戻るので、安全に試す事ができます
言語上書き設定の手順 - テキスト
- System > Manage > Language Overridesをクリックします

- - Select Language & Client -のプルダウンから設定希望の言語とクライアントのセット(ここではJapanese (Japan) - Site)をクリックします

- +Newをクリックします

- 右ペインのSearch text you want to change. blk内を注目します
- Search for: Value(値)となっていることを確認します
- Search text: 変更したいテキスト(ここでは「ホーム」)を入力します

- Searchをクリックします
- 検索結果は1行目にConstant(定数)、2行目にValueの表記で列挙されます
- 希望の文字列が 見当たらない場合、多数の検索結果があればMore Resultsをクリックして更に探します

- 変換希望のConstantを確認(ここではパンくずリストのモジュールのMOD_BREADCRUMBS_HOME)し、クリックします

- 左ペインのCreate a New Override blk内を注目します
- Language Constantに先ほどクリックしたConstant(ここではMOD_BREADCRUMBS_HOME)が挿入されていることを確認します

- Text欄の既定文字列(ここでは「ホーム」)を希望の文字列(ここでは「Home」)に上書きします

- Save & Closeをクリックします
- Language Overrideのリストに設定されていることを確認します

- Webサイトの表示を更新し、Overrideが反映されていることを確認します

言語上書き設定の手順 - 日付表示
- 日付表示は複数存在します
- Search for:Constant / Search text: date_formatで検索すると16件検索されました
- COM_USERS_MFA_LBL_DATE_FORMAT_PAST
- COM_USERS_MFA_LBL_DATE_FORMAT_TODAY
- COM_USERS_MFA_LBL_DATE_FORMAT_YESTERDAY
- DATE_FORMAT_LC
- DATE_FORMAT_LC1
- DATE_FORMAT_LC2
- DATE_FORMAT_LC3
- DATE_FORMAT_LC4
- DATE_FORMAT_LC5
- DATE_FORMAT_LC6
- DATE_FORMAT_JS1
- DATE_FORMAT_CALENDAR_DATE
- DATE_FORMAT_CALENDAR_DATETIME
- DATE_FORMAT_FILTER_DATE
- DATE_FORMAT_FILTER_DATETIME
- JLIB_HTML_BEHAVIOR_TT_DATE_FORMAT
- どのConstantが変更希望のそれにあたるのかはConstant名とその既定のValueから類推し、Trial and Errorで変更しています
- サンプルでは、Blog ListやSingle ArticleのDetailにあるPublish Dateの日付表記を変更する際、既定の日付表記[Y年m月d日]に該当するConstantはDATE_FORMAT_LC3のみだったため特定することが簡単でした

- 日付表記はPHPのフォーマットに準拠しています

DateTimeInterface::format | Manual |PHP
- Y: 西暦年 ゼロ付き4桁
- m: 月 ゼロ付き2桁
- d: 日 ゼロ付き2桁
言語上書き設定の削除
- リストから削除希望の設定を削除すれば、簡単に元にもどすことができます
- System > Manage > Language Overridesをクリックします
- 削除希望のOverrideをチェックします
- Deleteをクリックします
- Webサイトの表示を更新し、元に戻ったことを確認します
検索でのトラブル
- 当方サーバーでは、検索・登録とリスト確認を繰り返していると、間違いなく存在するはずなのに、No resultになる事がありました
- リスト上部のClear Cacheボタンでも、ブラウザのキャッシュクリアでも改善せず、ログインし直すと正常に戻ります
Joomla!じゃぱん翻訳の記号に対するブレ
- 作成者, カテゴリー, 公開日をOverride登録した際に気付いたのですが、Joomla!じゃぱんは記号の扱いに明確なルールを設けていない様です
- 作成者:$s (全角コロン)
- カテゴリー: $s (半角コロン+半角スペース)
- 公開日:$s (半角コロン+空きなし)
- 本来、[半角記号+半角スペース]で統一すべきかと思いますが、いかがでしょうか
- 特に全角コロンはありえないです
- 「検索…(全角3点リーダー)」と「検索...(ピリオド3つ)」の混在もありました
