Re: Re: Re: Re: LANGとかの定数使ってください。

2011年12月11日 at 16:49

/libraries/localization.php
の1行目からで言語の設定がされています。

Re: Re: Re: Re: Re: LANGとかの定数使ってください。

2011年12月11日 at 17:15
なにがしたいのかを書きます。

拡張フォームで、日本語か英語かでコードを変えたいところがあるので、拡張フォームをインストールされたとき、英語版のConcrete5にインストールされたのか、日本語のConcrete5にインストールされたのかを判定したいのです。

ただ、ダッシュボードで切り替える機能は付けるのですが。
 

Re: Re: Re: Re: Re: Re: LANGとかの定数使ってください。

2011年12月12日 at 19:08
日本語と英語のだけの判定であれば

if(ACTIVE_LOCALE == 'en_US'')
{
英語のときの処理
}
elseif(ACTIVE_LOCALE == 'ja_JP.UTF8')
{
日本語のときの処理
}
else
{
その他の言語の処理
}

こんな感じでしょうか?
 

Re: Re: Re: Re: Re: Re: Re: LANGとかの定数使ってください。

2011年12月12日 at 19:58
ありがとうございました。
明日から、このコードを追加してみます。

5.4.4.2 からログイン時に、言語が選択できますが、その際もそれでいいでしょうか。
 

Re: Re: Re: Re: Re: Re: Re: Re: LANGとかの定数使ってください。

2011年12月12日 at 20:30
僕がよくわかってないのですが、
パッケージの言語設定は
/models/package.php の setupPackageLocalization()関数でされているのだと思います。

ログイン時の言語選択に関しては
config/localization.phpに書いてあります。

$u = new User();
Config::getOrDefine('SITE_LOCALE', 'ja_JP.UTF8');

echo $u->getUserDefaultLanguage() . '<br/>';
echo LOCALE . '<br/>';
echo SITE_LOCALE . '<br/>';


上記のコードをphpブロックに書いて言語を変更したときにどのように動作するか確認してみてください。
ちなみに new User(); は usersテーブルを参照する。
Config::getOrDefine(a,b) は configテーブルに同様のものがあればそれを、ない場合は第2引数を定義する意味です。試したことないのですが多分あっていると思います。多分・・・・・・
 

Re: Re: Re: Re: Re: Re: Re: Re: Re: LANGとかの定数使ってください。

2011年12月12日 at 21:25
ありがとうございました。

一部確認できました。明日、いろいろ頑張ってみます。

ところで、日本語版の5.4.2.2.jaで、言語選択を有効にして、englishを選択してログインすると、メニューは英語になりますが、dashboardのメニューなどは日本語のままです。

もしかして、マルチ言語対応の場合、languagesの下に、英語用のmessage.moが必要になるのではないかと思ったりしました。

でもメニューが英語になるのであればそういうことでもないのかなと。

実は、もともと拡張フォームの英語版を開発しようとしていたのですが、たとえばファイルをアップロードするためのフォームタグを置くと、英語ログインでも、ボタンが「参照」と日本語となるのです。
でも、英語版だと、当然ながら英語のボタン名になります。
これは、拡張フォーム内では定義されていないので、ブラウザが解釈しているように思います。

つまり日本語版で英語でログインしても、純粋な英語版ではなくて、日本語版の英語表示みたいな気がします。

すみません。わたしもよくわからなくなりました。

要は、現時点では英語版の開発には、純粋な英語版で動作確認すべきかなと思い、その環境の準備が面倒だなと思っているだけなのですが。