私は現在、私のバックエンドを複数の言語で動作させることを試みています。私の翻訳プラグインとしてqTranslateを使っている。
これまで私は多言語対応のカスタムオプションページを完成させてきました。別の言語(サイドバーのqTranslate)をクリックすると、用意されたオプション変数を含む新しいオプションページが表示されます
show(option_textarea) -> 'english backend' -> show(option_textarea_en)
(saving under the same variable possible)
したがって、私が自分のテンプレートでオプションの1つを使用すると、現在アクティブな言語でそのオプションにアクセスするだけです。
give(option_logo) -> 'german page viewing' -> return option_logo_de
これはウィジェットページ側でも機能します。ただし、バックエンドで現在の言語を切り替えると、各ウィジェットのステータスは '未使用'になり、もう一度手動でウィジェットを追加する必要があります。それらは現在のアクティブ言語には存在せず、愛されていません。だから一般的に私は一度に一つの言語のウィジェットしか設定できません。私が設定した他の言語からのウィジェットはその後ドロップされます。どうしたらこの動作を無効にできますか?
私が必要としているのは私のオプションと同じように機能する固定ウィジェット編集システムです。たぶん、この問題に対する回避策はありますか?
前もって感謝します。
私はqTraslateがどのように機能するかはわかりませんが、 ウィジェットロジック にフィルタを渡すことができます。基本的には各ウィジェットを言語ごとに1つずつ複製します。私はWPMLでこのテクニックを使ってウィジェットを別々の言語で表示することがありましたが、難しい場合があります(直接DBクエリを実行する場合など)。
Wyckが指摘するように、それは最も簡単な方法です。
私のfunctions.php
には以下の関数があり、それを使用して、言語ごとに1つずつ、重複したウィジェットの束をフィルタリングします。例えば、is_lingo('en')
、is_lingo('pt')
など。
function is_lingo( $what )
{
if ( !function_exists('qtrans_getLanguage') )
return false;
$lingo = qtrans_getLanguage();
if( $what == $lingo )
return true;
return false;
}