自定义元字段不使用qTranslate

时间:2012-07-19 作者:Ronnie Jespersen

我正在运行最新的WordPress和qTranslate。我制作了一个页面,可以启用一些正常工作的自定义字段。

qTranslate在编辑页面时启用选项卡等语言。但这不会发生在我的自定义元字段中。有没有办法对这些领域进行语言控制?

如果有Javascript事件监听器告诉我用户更改了语言选项卡或其他什么,那就太好了。

我读过关于

<!--:ca-->CA<!--:--><!--:es-->ES<!--:--><!--:en-->EN<!--:-->
在meta字段中,但由于这将由最终用户使用,我相信他们不会理解这意味着什么以及如何使用它。我需要不同语言的不同元字段。有什么想法吗?

其次,我正在尝试:

<?php _e(\'Published \', \'iris\'); ?>
但是当我更改页面语言(qTranslate?lang=dk/?lang=en)时,它从不翻译这个词。不知怎么的,它总是用英语写的。我试过这个,这个很有效:

<?php echo _e("<!--:dk-->Udgivet<!--:en-->Published"); ?>
但它并没有真正使用语言库,我希望有一种方法:)

1 个回复
最合适的回答,由SO网友:brasofilo 整理而成

不太复杂的是使用插件的Quicktags并使用Gettext functions 打印网站中的内容
[:en]English[:pt]Português Quicktags docs

另一种选择是像qTranslate界面处理帖子标题一样执行:
qtrans titles

在元框中为每种语言创建一个自定义字段:
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\'
)
这可用于insert jQuery elements 这将控制现有系统的可见性。以下只是一个概念教授,必须根据需要进行调整。

The result 是否在Page Attributes 显示/隐藏按钮的元框Preview 内部Publish 代谢箱
jquery wp manipulation

Code 对于上一个快照:

/**
 * 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
}
借助StackOverflowCreate dynamically radio button in jquery

结束

相关推荐