テンプレートで表示するサイト名の翻訳について

2018年4月26日 at 17:04

サイト名の多言語対応に関する質問です。

titleタグ内のサイト名は以下を参考に対応することができました。
http://concrete5-japan.org/community/forums/chat/post-16256/

header.php でも以下の要領でサイト名を表示しておりますが、こちらには翻訳が適用されていない状況です。


<?php
$site_name = Core::make('site')->getSite()->getSiteName();
echo h(t($site_name));
?>


試しに $site_name ではなく英語のサイト名を直接記述して「文字列を再読み込み」すると、「オリジナルの文字列」に英語のサイト名がもう1つ追加されました。
前者には「文脈 SiteName」、後者には「参照 application/themes/サイト名/elements/header.php:4」と表示されています。
後者の翻訳を保存するとテンプレートにも適用されるようです。

テンプレートで表示するサイト名はすべて管理画面の「名前 & 属性」で設定した内容を出力している(テンプレートにサイト名を直接記述していない)場合、多言語対応にはどのような方法が考えられますでしょうか。


# concrete5 バージョン
8.3.2

# PHP バージョン
7.1.4

# サーバー
エックスサーバー

# クライアント
macOS 10.12 + Firefox 59

タグ:

Re: テンプレートで表示するサイト名の翻訳について

2018年4月26日 at 19:12
t() 関数ではなく、tc() 関数を使わないと文脈付きの翻訳は取得できません。

具体的なコード例はレシピ集をご覧ください
http://concrete5-japan.org/help/5-7/recipes/get-site-name/
 

Re: テンプレートで表示するサイト名の翻訳について

2018年4月26日 at 20:29
ヘルプに掲載のある内容を質問してしまいました…大変失礼いたしました。
おかげさまでこちらの「コンテキスト」の意味をようやく理解することができました。
http://concrete5-japan.org/help/5-7/developer/concepts/localization/
ご回答いただきありがとうございました。