Dom*_*Cat 9 iphone cocoa localization objective-c ipad
我正在使用genstrings Classes/*.m生成Localizable.strings文件来本地化我的iPad/iPhone应用程序.大多数字符串工作正常,我得到预期的输出,但有些字符串genstrings正在添加1$或1$在我的格式说明符中间,如下所示:
/* No comment provided by engineer. */
"%@%i" = "%1$@%2$i";
/* No comment provided by engineer. */
"%@: %i" = "%1$@: %2$i";
/* No comment provided by engineer. */
"%@" = "%@";
Run Code Online (Sandbox Code Playgroud)
我没有与其他应用程序有这个问题,因为你可以看到它不一致.但它似乎并不是随机的,因为当我genstrings再次运行相同的类文件时,1$它们总是在同一个位置.
我可以留下它们,字符串使用正确的格式,但我已经手动删除它们,因为我不知道它$会做什么.不得不经历并手动更新字符串很烦人(加上我最终可能会错过一个).
我在想它可能是文本编码问题?或者我可以安全地将它们留在我的琴弦中然后忽略它们吗?
Jus*_*ers 15
这些数字指的是替换值的参数位置.例如,%2$i意味着"用第二个参数替换它,它应该是一个整数." 当本地化使用不同单词排列的语言时,这很有用,因为可以按照与英语不同的顺序替换.
换句话说,它们可以安全地进入或移除,并且它们将为其他语言的自然翻译而派上用场.
N$告诉printf-style函数和方法格式字符串字段的严格顺序.这样,当本地化到订单不同的语言时,您不必修改代码 - 只需格式化字符串:
printf("%s %s\n", "foo", "bar");
printf("%1$s %2$s\n", "foo", "bar");
printf("%2$s %1$s\n", "foo", "bar");
Run Code Online (Sandbox Code Playgroud)
输出:
foo bar
foo bar
bar foo
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2527 次 |
| 最近记录: |