Printf、翻译函数和date_i18n添加额外的字符

时间:2019-05-17 作者:MediaFormat

因此,我试图使这些字符串可以翻译,并采用正确的PHP/WP格式。这项工作:

\'Du \' . date_i18n( \'j M\', strtotime( $date_debut->format(\'j M Y\') ) ) . \' au \' . date_i18n( get_option( \'date_format\' ), strtotime( $date_fin->format(\'j M Y\') ) );
等效使用printf 应该是这样的:

printf(
            __( \'Du %1$s au %2$s\', \'my-plugin\' ),
            date_i18n( \'j M\', strtotime( $date_debut->format(\'j M Y\') ) ),
            date_i18n( get_option( \'date_format\' ), strtotime( $date_fin->format(\'j M Y\') ) )
    );
但出于某种原因,今年的结果是201914201920.

为什么日期上有额外的字符?

<小时>

EDIT

如果不使用printf() 作用

__(\'Du \' . date_i18n( \'j M\', strtotime( $date_de_debut ) ) . \' au \' . date_i18n( get_option( \'date_format\' ), strtotime( $date_de_fin ) ) );

1 个回复
SO网友:MediaFormat

因为translate函数__() 我怀疑工作很好printf() 是罪魁祸首。

结果是sprintf() 是我需要的!printf() 参数work differently

相关推荐

Translation for plugin

我修改了a。po文件,基本上是我以txt文件的形式打开并进行了更改,但是我上传了它,并且更改不起作用。我想知道我是否需要一个特殊的软件来做和生成一个新的。mo每次我做出改变,或者我错过了什么?提前感谢