【发布时间】:2016-01-30 10:12:18
【问题描述】:
对于网站 (Wordpress),我想使用知名插件 Meta Box 显示日期,并且该网站应使用英语和德语提供,并使用插件 qTranslate。
德语和英语日期格式不同:德语:dd.mm.y (31.12.16),英语:mm/dd/y (12/31/16)。因此,要根据访问者/为访问者选择的语言显示正确的格式,这两个插件需要协同工作。
这就是我在没有任何语言选项的情况下显示日期的方式:
<?php echo rwmb_meta( 'exhibition_meta_beginning' ); ?>
这就是我在网站上在帖子和页面内容之外显示翻译文本的方式(如网站导航):
<?php _e("[:en]Current[:de]Aktuell[:]"); ?>
我现在的问题是,我如何才能加入这两个功能。如果有帮助,我可以将 Exhibition_meta_beginning 拆分为 Exhibition_meta_beginning_DE 和 Exhibition_meta_beginning_EN,这意味着在创建新实例/帖子时我必须输入每个日期两次,一次是德语格式,一次是英语格式。
我还没有发现任何有用的东西——是的,有人提到过,并且有某种方法可以将自定义字段(这是 Meta Box 的核心基础)与 qTranslate 一起使用,但似乎没有任何效果,我的PHP 知识是最低限度的。
元数据的输入字段是日期(和时间)在一个单独的 PHP 文件中定义,如下所示(标准 Meta Box 过程):
array(
'name' => 'Beginn der Ausstellung',
'id' => $prefix . 'beginn',
'type' => 'date',
'format' => 'dd.mm.y'
),
在那里将双语性实现到格式值中(当 [:en]... 出现在那里时,它认为它是日期的格式而不是语言标签),也没有类似的东西在哪里显示数据(对于业余尝试感到抱歉):
<?php __("[:en] echo rwmb_meta( 'exhibition_meta_beginn_EN' )[:de]echo rwmb_meta( 'exhibition_meta_beginn_DE' )[:]"); ?>
谢谢!
【问题讨论】:
-
最后的解决方案是使用
date_i18n(查看Wordpress Codex)。使用strtotime(例如yy-mm-dd)可以读取的通用日期格式定义日期字段,并将其用作date_i18n中的参数。使用date_i18n两次,一次用于英文格式,一次用于另一种格式,将它们与适当的语言标签作为字符串连接,.在两者之间进行连接。然后使用_e回显整个字符串,即在两种解释(两种语言)中使用一个输入字段的内容两次,最终语言环境将选择显示哪一种。精致的解决方案。
标签: php wordpress date meta-boxes qtranslate