用于翻译的 sprintf 字符串中单词的位置

Position of words in sprintf strings for translation

在某些语言中,单词的位置不同。

这是一个例子:

sprintf( __( '%s left a %s on %s\'s %s.', 'o2' ), $commentAuthor, $commentLink, $postAuthor, $postLink );

这个字符串returns例如:

John(1) 在 Jane(3) 上发表了 评论(2)的 post(4).

但是在法语中,有些词不在同一个位置:

John(1) commentaire(2) sur la publication( 4) de (3).

我在 poedit 中翻译了字符串:

%s a laissé un %s sur la %s de %s.

但是字错了:

John(1) 自由自在 commentaire(2) sur la Jane( 3) de publication(4).

这不是正确的翻译。

如何使用 poedit 或任何其他翻译编辑器更改顺序?

好吧,我终于找到了解决方案:

sprintf( __( '%1$s left a %2$s on %3$s\'s %4$s.', 'o2' ), $commentAuthor, $commentLink, $postAuthor, $postLink );

编辑中:

%1$s a laissé un %2$s sur la %4$s de %3$s.