0

既存の Zend 1.12 プロジェクトに言語サポートを追加する必要があります。HTMLセレクトボックスを使用して言語を変更することはできますか? 私が知っている唯一の方法は、選択ボックスの「onChange」属性を使用して、選択したオプションを分析できる特定の js 関数を挿入することです。

javascriptでzend_translate言語切り替えを開始することは可能ですか?

4

2 に答える 2

1

選択した変更で Web サイトをリロードするか、新しい html をロードする ajax 呼び出しを行う必要があります。

このようなものがうまくいくはずです(ルーティングに言語コードがあると思います):

HTML コード:

<select id="languageSwitch">
    <option value="en">English</option>
    <option value="de">Deutsch</option>
</select>

JS (jQuery を使用):

$('#languageSwitch').change(function() {
    window.location = '/' + $(this).val() + '/';
});

これにより、ドメイン名に追加された /en/ または /de/ (選択に基づく) でページがリロードされます。

http://www.yourwebsite.com/en/

http://www.yourwebsite.com/de/

ルーティングの設定についてサポートが必要な場合は、このビデオが役に立ちます。

于 2013-01-01T23:23:48.763 に答える
0

これは、アプリケーション内でロケール切り替え機能が必要なようです。Zend ロケールの手動定義を調べて、アクティブなロケールをユーザーのセッションに保存してください: http://framework.zend.com/manual/1.12/en/zend. locale.functions.html

次に、「Pre-Dispatch Plugin」を構築して、アクティブなセッション ロケールを認識および変更し、ドロップダウン メニューの選択で定義された GET パラメータを反映させます。ロケール変更パラメーターを渡す方法は多数あります。上記の回答の「ルート」アプローチ、リンク付きの単純な GET パラメーターを使用するか、ドロップダウン ロケール アプローチに設定されている場合は、JQuery を試すことができます。例: http://jetlogs.org/2007/09/03/jquery-select-boxes-and-change-events/

あなたが言ったように、最も簡単なのはon-changeスニペットです-しかし、ブラウザがonchange属性を認識することが期待されているため、標準の観点からは醜いです。

チョイエはあなたのものです。

于 2013-01-01T23:33:00.177 に答える