web-dev-qa-db-ja.com

カスタムメタフィールドがqTranslateで機能しない

私は最新のWordPressとqTranslateを実行しています。うまく機能しているいくつかのカスタムフィールドを有効にするページを作成しました。

qTranslateはページを編集するときにタブのような言語を可能にします。しかし、これは私のカスタムメタフィールドでは起こりません。これらの分野で言語を制御する方法はありますか?

ユーザーが言語タブなどを変更したことを知らせるJavascriptイベントリスナーがあれば素晴らしいでしょう。

私は置くことについて読む

<!--:ca-->CA<!--:--><!--:es-->ES<!--:--><!--:en-->EN<!--:-->

メタフィールドの中にありますが、これはエンドユーザーによって使われることになるので、彼らがそれが何を意味するのか、そしてそれをどのように使うのか理解していないと確信しています。言語ごとに異なるメタフィールドが必要です。何か案は?

次に、これを試しています。

<?php _e('Published ', 'iris'); ?>

しかし、私がページの言語を変更すると(qTranslate?lang = dk /?lang = en)、Wordを翻訳することはありません。それはどういうわけかいつも英語でとどまります。私はこれを試してみましたそしてこれは働きます:

<?php echo _e("<!--:dk-->Udgivet<!--:en-->Published"); ?>

しかし、それは実際には言語ライブラリを使用していないので、私は方法があることを願っていました:)

2

サイトのコンテンツを印刷するには、プラグインの Quicktags を使用し、 Gettext関数 を使用するのがそれほど複雑ではありません。
[:en]English[:pt]Português クイックタグドキュメント


もう1つの選択肢は、qTranslateインタフェースが投稿タイトルを処理するのと同じようにすることです。
qtrans titles


メタボックスに言語ごとにカスタムフィールドを1つ作成します。
custom meta box with custom fields


qTransのドキュメントは統合されていないので、コードの分析は便利です。
http://plugins.svn.wordpress.org/qtranslate/trunk/qtranslate_utils.php
関数qtrans_getSortedLanguagesは、サイトの言語を含む配列を返します。

array(
  [0] => 'es'
  [1] => 'en'
  [2] => 'nl'
  [3] => 'fr'
  [4] => 'de'
)

これは既存のものの可視性を制御するjQuery要素を挿入するために使用することができます。以下は単なる概念の概念であり、必要に応じて調整する必要があります。

結果は、Previewメタボックス内のボタンPublishを表示/非表示にするPage Attributesメタボックス内のチェックボックスです。
jquery wp manipulation

前のスナップショットのをコード化します。

/**
 * Inject jQuery Button to Control Some Element(s) Visibility
 */
add_action( 'admin_footer-post.php', 'wpse_59056_inject_visibility_checkbox' );

function wpse_59056_inject_visibility_checkbox() 
{
    global $current_screen;

    // If not a Page, do nothing
    if ( 
        'page' != $current_screen->id 
        ) 
        return; 

    ?>
    <script type="text/javascript">
    jQuery(document).ready( function($) 
    {
            // Define the Checkbox
            var radioBtn = $('<input type="checkbox" name="rbtnCount" id="rbtnCount" /><label for="rbtnCount"> My Box Visibility</label>');

            // Append to the Page Attributes meta box
            radioBtn.appendTo('#pageparentdiv .inside');

            // Mark it as checked
            $('#rbtnCount').attr('checked', true);

            // Watch its behavior
            $('#rbtnCount').change( function () 
            {       
                // Show/Hide the "Preview" button inside the Publish meta box   
                if( $(this).is(':checked') )
                {
                    $('#preview-action').show();
                }
                else
                {
                    $('#preview-action').hide();
                }
            });
        });
    </script>
    <?php
}

* StackOverflowの助けを借りて jqueryに動的にラジオボタンを作成する

2
brasofilo