我用来从项目中的源代码文件genstrings
生成.strings
文件。尽管该项目在技术上是一个Cappuccino应用程序,但这个问题应该同样适用于任何使用.strings
文件的项目。
我有一个我想本地化的格式字符串:@"%d:%02d %@"
. 它用于显示时间值。如果这是一个 OSX/iOS 应用程序,我会使用内置的日期时间格式,但因为它是卡布奇诺,我必须自己滚动。当我运行genstrings
它时,它会为该键生成这个值:"%1$d:%2$d %3$@"
.
这是在Localizable.strings
文件中显示的:
/* ShortLocalTimeFormat */ "%d:%02d %@" = "%1$d:%2$d %3$@";
通过运行以下命令:genstrings -o Resources/en.lproj -s CPLocalizedString *.j */*.j
同样,请忽略我使用的是CPLocalizedString
代替NSLocalizedStrings
和*.j
代替*.m
,因为这些值适用于卡布奇诺。请注意,in 在结果格式字符串中被丢弃02
。%02d
如果我使用该选项再次运行它-noPositionalParameters
,它只会将字符串保持原样:genstrings -o Resources/en.lproj -noPositionalParameters -s CPLocalizedString *.j */*.j
.
/* ShortLocalTimeFormat */ "%d:%02d %@" = "%d:%02d %@";
这是一个错误genstrings
,还是在保留位置参数的同时不能在格式字符串中使用标志/宽度?