Re: [5.6]自動実行ジョブ処理で各ページの言語設定に沿った処理

2017年1月14日 at 16:11

そもそもで申し訳ないのですが、
5.6.3.4 で属性の値を多言語対応する無料アドオンが出ています。
http://www.concrete5.org/marketplace/addons/localizer
ですので、これを入れて、ページ属性の登録は英語のままで行うという手もあります。


自動実行ジョブであれば、言語セクションを読み込まないようになっているようですね。
サイトのデフォルト言語のみで実行されているように思えます。
(ご提示されているような方法で行った経験がないので・・・)

その場合は、自動実行ジョブに、該当ページの言語セクションを取得し、サイト言語を一時的に変更するという処理が必要ですね。


私であれば、前者のアドオンを使うかなと思います。

タグ:

Re: [5.6]自動実行ジョブ処理で各ページの言語設定に沿った処理

2017年1月14日 at 16:34
Katz さん返信ありがとうございます。

説明が具体的でなかったですね。。。。。

localizerは組み込み済みです^^

具体的には、
1.外部サーバーよりjson取得
2.内部のページに設定された選択型属性のリスト値を取得(a
3.a)の並び順にjson情報を整形
4.a)の表示文字列とjson情報を合成しページのTEXT型属性へserialize

と言う処理を行っています。

その際、4の処理を行うときに"$hoge->getSelectAttributeOptionValue()"の値を
ページの言語で取得する方法があればご教授いただけないでしょうか?

現状Katzさんの仰るとおり、サイトのメイン言語設定(日本語)で取得されてしまいます。
日・英のみであれば、
$ms = MultilingualSection::getBySectionOfSite($page);
if (is_object($ms)) {
$locale = $ms->getLocale();
}
の処理で$locale=ja_JPかen_ENで判断し、
"getSelectAttributeOptionValue()"か"getSelectAttributeValue()"を
使い分ける方法もあるのですが、、

まぁ、設計そのものを失敗している気もしますが。。。

もしページの言語毎に取得する方法があればと思い質問させていただきました。

よろしくお願いいたします。