この連載が書籍になりました! Drupal 8初の日本語解説書『Drupal 8 スタートブック』好評発売中です。

【Drupal 8入門】コンテンツの翻訳と多言語設定(前編)

2016年9月15日(木)
ANNAI株式会社

前回はサイト内の各要素をブロックとして配置し、コンタクトフォームを作成してサイトの外観を完成させました。今回と次回の2回にわたり、完成したサイトの多言語化を行います。

Drupalがグローバル展開している企業や国際機関に広く採用されている1つの理由として、強力な多言語機能を持つ点が挙げられます。例えば、製造業・メーカーであれば、各国の顧客に対して、製品情報をそれぞれの国の言語で配信する必要があります。各国ごとに独自のサイトを作り、管理するとなると非常に大きな手間となります。このような状況で、もし製品情報に変更が出た場合には、それらのサイトに個別に変更を加える必要があります。Drupalでサイトを作り、多言語サイトとして運用していれば、これらの手間は大きく軽減されます。

Drupalの統一されたインターフェイス上で翻訳を追加して、公開することで、コンテンツの一元化管理が可能になります。Drupal 8では、94の言語に対応し、サイト内のあらゆる要素に対して翻訳を追加できます。また、言語毎にサイトを立ち上げて擬似的に多言語対応をするCMSもありますが、Drupalはページ・URL単位での多言語対応が可能です。

では、実際に手を動かしながらDrupal 8の多言語機能について学んでいきましょう。

サンプルサイト http://demo.drupal8-getting-started.annai.co.jp

素材集 http://demo.drupal8-getting-started.annai.co.jp/download

今回実装する多言語機能

今回、実装する多言語機能を確認します。サンプルサイトの右側のカラムをご覧ください。「言語を選択」ブロックが配置されていて、言語が選択できるようになっています。このブロックにある「English」リンクをクリックしてください。

image alt text


ブラウザのURL欄を見ると、URLに「English」を意味する言語プレフィックス「en」が付加され、表示言語が「English」に切り替わりました。

言語が英語の状態で他のページを閲覧すると、英語表記のままサイトを閲覧できます。「言語を選択」ブロックの「Japanese」をクリックすると日本語表示に切り替わります。

image alt text

image alt text

多言語サイト構築に必要な設定

「Configuration Translation」と「Content Translation」モジュールの有効化

多言語機能を利用するには、標準では無効化されている「Configuration Translation」と「Content Translation」モジュールを有効化する必要があります。これらのモジュールはDrupal本体に標準でインストールされていますが、初期状態では有効化されていません。まずは、これらを有効化します。

1.管理者メニューの「機能拡張」をクリックします。

image alt text


2.「拡張」画面の「多言語」セクションの「Configuration Translation」と「Content Translation」チェックボックスにチェックを入れて「インストール」ボタンをクリックすると、モジュールのインストールが始まります。image alt text

image alt text


3.インストールが完了すると自動的に「拡張」画面に移動し、「2 個のモジュールが有効化されました: Configuration Translation, Content Translation 。」とメッセージが表示されています。これでインストールは完了です。

image alt text


言語の追加

1.管理者メニューの「環境設定」をクリックします。「環境設定」画面の「地域と言語」セクションの「言語」リンクをクリックします。

image alt text


2.「言語」画面です。ここではサイト内で使用する言語を追加できます。現在はDrupalのインストール時に設定した「Japanese」のみが存在し、デフォルト言語として設定されています。ここに「English」を追加してみましょう。

「拡張」画面にある「言語を追加」ボタンをクリックします。

image alt text


3.「言語を追加」画面が表示されますので、「言語名」ドロップダウンメニューから「English」を選択します。「言語を追加」ボタンをクリックすると、言語の追加が始まります。image alt text

image alt text

※今回は「English」を追加しましたが、好みに合わせてお好きな言語を選んでもかまいません。

Drupal 8では標準で94の言語に対応しています。

image alt text


4.言語の追加が完了すると、「言語」画面が表示されます。メッセージに「言語 English を作成し、利用できるようになりました。」と表示され、言語の一覧に「English」が追加されます。これで言語の追加が完了しました。

image alt text


言語の判定と選択の設定

次に閲覧者の言語をどのように判定したり、選択したりするかを設定します。引き続き、「言語」画面から設定を行います。

今回実装する仕様では現在のデフォルトの設定のままですので、特に設定を変更する必要はありません。

しかし、「判定と選択」は多言語サイトを構築する上でとても重要な部分ですので、現在の設定を確認していきます。

1.「言語」画面の「判定と選択」タブをクリックします。

image alt text


2.「判定と選択」画面です。ここでは、どのように閲覧者の言語を検出するかを設定します。

現状では「URL」にチェックが入っています。「URL」の右の「設定」ボタンをクリックします。

image alt text


3.「URL言語判定設定」画面です。ここでは、URLによる言語判別のための設定を行います。

URLによる言語判定とは、アクセスするURLに応じて表示言語を変更する設定です。

現在は「Japanese(ja)パスプリフィックス(デフォルト言語)」のURL横の入力欄が空白に、「English(en)パスプレフィクス」横の入力欄に「en」と入力されています。

image alt text

これは、以下の表ようにサイトURLの後にパスプレフィックス「en」が付くURLにアクセスすると英語で表示、パスプレフィックスが付かないと日本語で表示する設定となっています。

URL パスプレフィックス 表示言語
http://demo.drupal8-getting-started.annai.co.jp/ なし 日本語(デフォルト言語)
http://demo.drupal8-getting-started.annai.co.jp/en en 英語

仮に「会社概要」ページ「/about」の英語ページにアクセスした場合は、以下のようなURLになります。

http://demo.drupal8-getting-started.annai.co.jp/en/about

このように言語ごとにパスプレフィックスを設定して表示言語を振り分けることができます。

設定はこのままで、「環境設定」画面に戻ります。

※今回のサンプルではデフォルト言語である日本語にはURLに言語プレフィックスを付けていませんが、/ja を付けることも可能です。

ANNAIは、2009年からDrupal専門のWebシステム開発会社として、世界規模で展開するグローバル企業や大学・自治体を中心に数多くのWebソリューションを提供。
CoreやModuleのコントリビューターなど、Drupalエキスパートが多数在籍。国内ユーザーコミュニティへも積極的にコミットし、定期的なセミナーの等の開催を通じて、オープンソース技術の普及や海外コミュニティとの緊密な連携を図っている。
Webシステムの企画・開発〜デザイン、クラウド運用までをワンストップで提供する他、Drupalのコーディングを評価する"Audit業務"や最適なモジュールの調査・選定等、幅広いコンサルティングを行っている。Drupalアソシエーション公式パートナー。
https://annai.co.jp

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています