我正在尝试本地化软件。源文本在单个字符串中有多个不同的占位符,但它们看起来都相同。例如,原始文本为:“%s of project %s”。在这种情况下,很明显两个字符串占位符指的是不同的东西。但问题是,当把这个短语翻译成我的语言时,两个 %s 的顺序必须颠倒过来。
由于两个 %s 与 %1s %2s 这样的数字没有区别,我假设顺序很重要,颠倒 %s 将导致完全相反的翻译。我说得对吗?
你是对的,如果你不告诉它,你的运行时就无法神奇地知道你的意思。
您没有说明使用什么编程语言以及格式字符串的语法是什么。假设它是 C 或类 C 并与 printf 系列函数一起使用,则可以指定顺序:例如对于这个字符串:
"String `%s' has %d characters"
...德语翻译将这样表示位置:
"%2$d Zeichen lang ist die Zeichenkette `%1$s'"
参见 https://www.gnu.org/software/gettext/manual/html_node/c_002dformat-Flag.html