ライブサーバーに複数の言語(英語、Duch、ドイツ語)のOpencart1.5.4xをインストールしてテーマを設定しました。Opencartアプリケーションは、これらの言語で正しく動作します。
言語リンクをクリックしてサイト全体を閲覧すると、サイトのコンテンツはこの言語に翻訳されていますが、プログラムでどの言語がアクティブであるかを確認するにはどうすればよいですか?
現在アクティブな言語をユーザーに表示する必要があります。
ライブサーバーに複数の言語(英語、Duch、ドイツ語)のOpencart1.5.4xをインストールしてテーマを設定しました。Opencartアプリケーションは、これらの言語で正しく動作します。
言語リンクをクリックしてサイト全体を閲覧すると、サイトのコンテンツはこの言語に翻訳されていますが、プログラムでどの言語がアクティブであるかを確認するにはどうすればよいですか?
現在アクティブな言語をユーザーに表示する必要があります。
$this->config->get('config_language_id');
現在アクティブな言語のIDを取得するには、コントローラーまたはモデル内で呼び出す必要があると思います。
つまり、独自の言語スイッチャーを実装している場合は、コントローラーで言語をテンプレートに設定します。
$this->data['active_language_id'] = $this->config->get('config_language_id');
次に、テンプレート内で次のようにします。
<?php foreach($languages as $language) { ?>
<a href="..." class="lang-select <?php if $language['language_id'] == $active_language_id) echo ' active'; ?>"><?php echo $language['code']; ?></a>
<?php } ?>
これがあなたが解決する必要のあることであり、それが役立つことを願っています。
opencartの単純な言語選択コード
<?php $lang = $this->config->get('config_language');
if($lang == 'ru'){
$locale = 'ru_RU';
} elseif($lang == 'en'){
$locale = 'en_US';
} ?>
と
<?php if ($locale) { echo $locale; } ?>
あなたの前で使用$language_code
してください、それはcatalog / controller / module /language.phpによって設定されます:
$this->data['language_code'] = $this->session->data['language'];
同様の質問があります。製品ページで現在選択されている言語を取得したいので、製品ページで言語ごとに異なる「ソーシャルシェアコード」を表示できます。
1)後に/catalog/controller/product/product.phpに移動します
$data['heading_title'] = $product_info['name'];
追加
$data['clanguage'] = $this->session->data['language'];
/catalog/view/theme/default/template/product/product.tplに移動します
表示したい場所に次のコードを追加します。
<?php echo $clanguage; ?>
ここで、「英語」を選択すると「en-gb」、「简体中文」を選択すると「zh-cn」と表示されます。
次に、「if」と「this value」を使用して、言語ごとに異なる「ソーシャルシェアコード」を表示できます。
opencart 2.3.02で動作し、opencart2 +、3+で動作すると思います。