Posted by kenkun on February 13, 2016 at 3:00pm
お世話になります。質問内容は以下の通りです。実装案を考えてみたのですが、もっと良い方法があればご教授ください。よろしくお願いします。
[環境]
Drupal8をルートディレクトリにインストールしています。
サイトのデフォルト言語は日本語を設定しています。英語や中国語等の多言語対応をしています。
ユーザーが使用するコンテンツタイプの言語設定は未設定にしています。
[やりたいこと]
ユーザーインタフェースのみ多言語した会員制サイトを構築しようとしています。
Viewsで各ユーザが投稿したコンテンツを表示し、該当言語のパスへリンクするようにしたいです。
例えば、Viewsでコンテンツのタイトルを取得するとタイトルのリンクはnode/1のようになります。
sample.con/enから上記のタイトルのリンクを押下すると、
sample.com/node/1に遷移しユーザインタフェースはデフォルト言語の日本語で表示されてしまいます。
sample.con/enから上記のタイトルのリンクを押下すると、
sample.com/en/node/1に遷移するようにしたいです。
[実装案]
Viewsでフィールドのコンテンツ: パスを表示するようにする。
そしてし、結果の書き換えで以下を設定する。
各言語毎にViewを作成し配置する。
・Override the output of this field with custom text
テキスト
read more
・Output this field as a custom link
リンクパス
/en{{ path }}

Comments
誤記訂正
× sample.con/en
○ sample.com/en
こんにちは。各言語毎にViewを作成する必要はないと思いま
こんにちは。各言語毎にViewを作成する必要はないと思います。確認してみたところ、コンテンツ:パスのフィールドを表示させると、自動的に/en/,/ja/ 等追加されているようです。
つきましては、例えばのタイトルリストをリンク付きで表示させたい場合には、以下の通りです。
1、Viewsでフィールドのコンテンツ:パスを表示させる。この時、”表示から除外”にチェックを入れて下さい。
2、コンテンツ:タイトルを表示させる。ここで、”結果の書き換え”から、Output this field as a custom linkにチェックを入れ、リンクパスに{{ path }}と入力してください。
3、保存して確認すると、記事のタイトルに各言語のページへのリンクが貼られているはずです。
ありがとうございます。1~3の手順を試してみましたが想定し
ありがとうございます。1~3の手順を試してみましたが想定した結果は得られませんでした。
コンテンツ:パスの”表示から除外”のチェックを外して内容を確認してみると、たしかに、自動的に/en/,/ja/が追加されていました。ただ、同じことをしているはずのコンテンツ:タイトル側のリンクは自動的に/en/,/ja/が追加されないようです。
とっかかりは掴めた気がしますので後は自分で試行錯誤してみます。別のフィールドでも置換トークンが使えることは知らなかったため大変勉強になりました。ご回答いただきありがとうございました。
暫定対処として以下のようにしました。初歩的なことかもしれま
暫定対処として以下のようにしました。初歩的なことかもしれませんが、誰かの参考になれば幸いです。
1、Viewsでフィールドのコンテンツ:パスを表示させる。
Override the output of this field with custom textにチェックをする。
テキストに任意の文字を入力する。
Output this field as a custom linkにチェックをする。
リンクパスに"{{ path }}"を入力する。
2、その他に追加しているフィールドのリンクを外す。
以下のフィールドを表示するようにしているのですが、タイトルと画像のリンクを外しました。
コンテンツ: タイトル
コンテンツ: 変更済
コンテンツ: 画像
コンテンツ: パス
タイトルフィールド編集画面、フォーマッターの下にある、「
タイトルフィールド編集画面、フォーマッターの下にある、「 %entity_label へのリンク」(英: Link to the Content)のチェックは外してありますでしょうか。(すみません、上に書いておくべきでした。)
ここにチェックが入っていると、Output this field as a custom linkでの書き換えが機能しないようです。画像へのリンクにつきましても、同様に「画像へのリンク」を「なし」に設定し、Output this field as a custom linkで{{ path }}を設定してみてください。
また、置き換えトークンは参照するフィールドが、すでに呼び出されてなくてはならないので、例えば、タイトルと画像の書き換えにパスを使いたい場合には、
コンテンツ: パス [非表示]
コンテンツ: タイトル
コンテンツ: Image
のように、フィールドの「並べ替え」でパスを最初に持ってくる必要がありますので、ご留意ください。
Shumpei様 丁寧にご説明いただき誠にありがとうござい
Shumpei様
丁寧にご説明いただき誠にありがとうございます。「 %entity_label へのリンク」を外し、「画像へのリンク」を「なし」に設定することで自動的に/en/,/ja/等が追加されるようになりました!