Drupal 8・9・10での多言語化
多言語の設定
コアモジュールの有効化とLanguageの追加
Interface Translation Content Translation Configuration Translation Content Language
Content Languageでコンテンツタイプ、タクソノミー、ブロック、メニュー、ユーザー、Paragraphsなどの翻訳有効化
Config Translation でサイト内の各アイテムを翻訳有効化
※確認事項
□ 作成・編集ページに言語セレクターを表示
□ 翻訳を有効化
オリジナルの翻訳を選択して、上記の表示されている個所で、「翻訳を有効化」はチェックすると、Content Languageに反映されます。
オリジナルを日本語および英語に設定する場合、サイトのデフォルトが日本語にした場合、日本語をオリジナルにするとわかりやすいと思います。
「判定と選択」の設定
Drupal 8.7.4 では、管理画面 -> 環境設定 -> 地域と言語 -> Language の判定と選択で、「アカウント管理ページ」を有効にすると、翻訳する言語でも管理者の使用する言語が優先になるようです。たとえば、日本語メインにしたユーザーの場合、英語にコンテンツを翻訳しようとしても、管理画面では英語の表示にならない現象が起きます。
コンテンツタイプの「言語の設定」も「デフォルトの言語」は「投稿者の指定言語」が良いかもしれません。海外の人が英語で投稿(コメント)などする際に投稿者が使う英語などをデフォルトにできるかも。
Viewsでの多言語化
タクソノミーで定義したボキャブラリーのタームで参照している場合、そのタームを多言語化し、ページやブロックで表示させる場合に、表示されている言語で表示が切り替わる(フィルター)するような設定は、Filter Criteria で Taxonomy term: Translation language を追加して "interface text language selected for page" を選択します。
多言語化作業で便利なモジュール
Select translation (Select translation implements a Views filter to select which translation of a node should be displayed in a list of nodes.)
Simple entity translations (It adds two additional forms for content translation.)
Translate Side by Side (Shows menus, nodes, blocks and taxonomy with source and target language side by side) ! install errow at Drupal 8.7.3 / Translate Side by Side 8.x-1.5
Content Translation Redirect ( if you need to redirect users from pages of non-existent translations of the content entity to a page with the original language)
Menu block current language (resolve this by providing a replacement for core's Menu block that filters out the untranslated menu links)
Menu Multilingual (multilingual features for menu blocks, to filter out menu items that do not have translated labels or link to untranslated content)
Menu block (configurable blocks of menu links with advanced features)
Context (allows to manage contextual conditions and reactions for different portions of site)
Language Switcher Extended (additional processors for the language switcher block links)
Language Icons (icons for language links, both for the Language switcher block and (optionally) for node links)
Language Switcher Dropdown (site visitors to switch languages using a drop-down select list instead of using hyperlinks)
Translation Views (fields and filter to build list in Views with information about translations)
英語がデフォルトのテンプレートなどの場合
海外のデザインテンプレートなどでは、データベース込みの環境をインストールした場合、英語がデフォルトになります。その場合、英語をデフォルト状態で、日本語やフランス語などを追加し、翻訳の設定を行います。ある程度の翻訳が終わった段階で、英語から日本語にデフォルトを変更して、URL判別などを調整します。
多言語機能は複雑なので、わかりやすくするためにも、デフォルトの言語を優先にして、多言語データができた段階で、どの言語をデフォルトにするか、選択する方法が好ましいと思います。
実際の運用
インストール後に、まだ多言語設定していない、フィールドやコンテンツなどを多言語を「追加」する場合は、まず、英語がデフォルトで開発されたテンプレートの場合は、英語モードでログインして、該当するところの多言語設定を確認します。英語があり、追加で日本語があります。もし日本語がなければ、そのコンテンツやフィールドを多言語対応に設定変更します。
- 英語のコンテンツは英語モードの環境で編集します。
- 日本語のコンテンツは、日本語モードの環境でフィールドやコンテンツなどの翻訳で「追加」してから編集します。
もし、英語モードの環境で日本語のコンテンツを「追加」して作成すると、上記の「英語+日本語」にさらに「英語の日本語」が出来てしまいます。コンテンツが3種類になります。