読者です 読者をやめる 読者になる 読者になる

IMUZA.com

Joomla!によるウェブ制作, PHP, Javascript, CSS

はてなブログ

はてなブログ テーマ制作
・とことこ with Menubar
・Simple Responsive with Menubar
・Mobile-First Responsive
・Hyperspace

Joomla!

Joomla! によるウェブ制作
・テンプレート自作
・モジュール自作
・Joomla!でサイト構築

Web Tips

ウェブサイトづくりに役立つかも
・Javascript
・CSS

Windows, Linux

Windows10
Plamo Linux

Joomla!(18)言語ファイル - モジュールの日本語化

Joomla!

2016年です。

久しぶりに Googleトレンドで CMS の人気度を見てみましたら、相変わらず Wordpress 一強ですね。

Google トレンド

それに全体的に CMS 自体の人気が下降気味です。

さて、年を越してしまいましたが、「Joomla!でサイト構築」の続き、言語ファイルです。

言語ファイルを読み込む仕組み

考えてみれば日本語化と言っても、管理画面やエラーなどのメッセージだけの話ですから、モジュールなどエクステンションは日本語ファイルがなくてもさほど困ることはないですね。とは言っても考え方は分かっていたほうがいいですので、Bootstrap Carouselモジュールを例に挑戦してみましょう。

まずシステムが言語ファイルを読み込む仕組みですが、テンプレートやモジュールなどすべてのエクステンションで同じ方法が採られています。言語ファイル名は、
接頭辞(en-GB, ja-JP, ...)+ドット+エクステンション略語(tpl, mod, com)+アンダーバー+エクステンション名+ .ini となり、システムがその言語ファイルを探す順番は、

  1. エクステンション > ランゲージ管理で指定したシステムの標準言語フォルダ(e.g. \language\ja-JP)
  2. システムの基本言語フォルダ(\language\en-GB)
  3. エクステンション内の標準言語フォルダ(e.g. \modules\mod_bootstrap_carousel\language\ja-JP)
  4. エクステンション内の基本言語フォルダ(\modules\mod_bootstrap_carousel\language\en-GB)
  5. なければ定数のまま出力

ということのようです。

言語ファイルのインストール

エクステンションの言語ファイルは、xxx.xml ファイルで指定してシステムフォルダにインストールします。

  1. xxx.xml ファイル内に languages タグでインストールする言語ファイルを指定する
  2. エクステンションをインストールすると、言語ファイルは \language フォルダ内にコピーされる

これだけです。

モジュールを自作する(1)で紹介しましたモジュールジェネレータでモジュールを作成しますと、en-GB フォルダとともになぜか ru-RU フォルダが作成されてしまいます。ただ、そのままインストールしてもランゲージ管理でロシア語をインストールしていませんのでシステムフォルダにはインストールされませんし、システムが探しに行くこともしません。

そのフォルダとファイルを利用して日本語ファイルを作ります。

  1. \modules\mod_bootstrap_carousel\ru-RU を ja-JP に変更
  2. フォルダ内の2つのファイルの接頭辞 ru-RU を ja-JP に変更
  3. ja-JP.mod_bootstrap_carousel.ini を次のように変更
MOD_BOOTSTRAP_CAROUSEL="Bootstrapカルーセル"
MOD_BOOTSTRAP_CAROUSEL_DESCRIPTION="Bootstrapカルーセルを使用したスライダーです"
MOD_IMAGE="スライド画像"
MOD_IMAGE_DESCRIPTION="イメージファイルを選択してください"
MOD_SUBJECT="タイトル"
MOD_SUBJECT_DESCRIPTION="スライドイメージの上にテキストを表示します"
MOD_DESCRIPTION="サブタイトル"
MOD_DESCRIPTION_DESCRIPTION="タイトルテキストの下にテキストを表示します"
MOD_INDICATOR="インジケータ"
MOD_INDICATOR_DESCRIPTION="スライドの枚数を示すドットです"
MOD_AUTO_START="自動スタート"
MOD_AUTO_START_DESCRIPTION="読み込まれると自動的にスタートします"
MOD_INTERVAL="スライド間隔"
MOD_INTERVAL_DESCRIPTION="1秒=1000で指定してください"

もちろん日本語は自由に変更してください。

ja-JP.mod_bootstrap_carousel.sys.ini はインストール時に使用される言語ファイルのようです。必要があればそちらも変更してください。

これでモジュール管理を見てみますと次のように日本語化されていると思います。

f:id:ausnichts:20160108140922p:plain

文字にカーソルを置きますとツールチップも表示されます。

mod_bootstrap_carousel.xml の変更

モジュールジェネレータが作成したままの状態であれば、mod_bootstrap_carousel.xml の一番下に languages タグがありますので、次のように変更します。

 <languages folder="language">
        <language tag="en-GB">en-GB/en-GB.mod_bootstrap_carousel.sys.ini</language>
        <language tag="en-GB">en-GB/en-GB.mod_bootstrap_carousel.ini</language>
        <language tag="ja-JP">ja-JP/ja-JP.mod_bootstrap_carousel.sys.ini</language>
        <language tag="ja-JP">ja-JP/ja-JP.mod_bootstrap_carousel.ini</language>
    </languages>

なお、言語定数は、MOD_BSCAROUSEL_IMAGE などモジュール名を入れておいたほうがメンテナンス上よいかと思います。もちろんその場合は言語ファイル内もすべて変更します。

モジュールを zip ファイルに固める

一度モジュールをアンインストールしてうまくできているか確認してみましょう。

  1. \modules\mod_bootstrap_carousel フォルダを zip ファイルに固める
  2. エクステンション管理 > 管理から Bootstrap Carousel モジュールを削除する
  3. あらためてエクステンション管理 > インストール > パッケージファルのアップロードから mod_bootstrap_carousel.zip ファイルをインストールする

これで日本語化された Bootstrapカルーセルモジュールが完成しました。