次のようなqTranslate Xで基本的な言語スイッチャーを作成しようとしています:
FR | EN
それを達成する関数があります:qtranxf_generateLanguageSelectCode('text');
しかし、それは「テキスト」、「画像」、または「両方」しか受け入れることができないため、私のニーズには合いません:「テキスト」は言語の完全な名前です。
言語コードを表示するにはどうすればよいですか? それを行うためのフィルターを作成するアイデアはありますか?
次のようなqTranslate Xで基本的な言語スイッチャーを作成しようとしています:
FR | EN
それを達成する関数があります:qtranxf_generateLanguageSelectCode('text');
しかし、それは「テキスト」、「画像」、または「両方」しか受け入れることができないため、私のニーズには合いません:「テキスト」は言語の完全な名前です。
言語コードを表示するにはどうすればよいですか? それを行うためのフィルターを作成するアイデアはありますか?
プラグインを調べると、generateLanguageSelectCode に文書化されているよりも多くの型があることがわかりました。したがって、言語コードを使用するには、次のように「short」タイプを使用するだけです。
qtranxf_generateLanguageSelectCode('short');
これは、最後の回答以降に追加された機能である可能性があります。
ここでは、すべてのスイッチャー タイプの概要を示します: 'text'、'image'、'both'、'short'、'css_only'、'custom'、および 'dropdown'。さまざまなタイプがどのように機能するかは調べていませんが、プラグイン フォルダーの qtranslate_widget.php で見つけることができます。
友人がそれを手伝ってくれました。それは Ash Patel の回答に基づいていますが、よりクリーンな方法で (IMHO):
function my_qtranxf_generateLanguageSelectCode($style='', $id='') {
ob_start();
qtranxf_generateLanguageSelectCode($style, $id);
$o = ob_get_contents();
ob_end_clean();
return str_replace(array('English', 'Français'),array('EN', 'FR'), $o);
}
必要に応じて言語名を変更してみませんか? 言語編集で可能であり、何にも影響しません。
次のクエリを使用して実行しましたが、うまく機能しています。
<?php if (qtranxf_getLanguage() == 'ar') { ?>
<script>
jQuery(document).ready(function () {
var current_URL = jQuery(location).attr('href');
url = current_URL.replace('/ar/', '/en/')
jQuery('.languages-selection ul li a').attr('href', url)
});
</script>
<?php } elseif (qtranxf_getLanguage() == 'en') { ?>
<script>
jQuery(document).ready(function() {
var current_URL = jQuery(location).attr('href');
url = current_URL.replace('/en/', '/ar/')
jQuery('.languages-selection ul li a').attr('href', url)
});
</script>
<?php } ?>