gpt4 book ai didi

cocoa - 如何在用作 NSLocalizedString 的键的 printf 格式的 NSString 中保留标志/宽度?

转载 作者:行者123 更新时间:2023-12-03 17:26:10 24 4
gpt4 key购买 nike

我使用genstrings生成.strings我的项目中的源代码文件中的文件。尽管该项目在技术上是一个 Cappuccino应用程序,这个问题应该同样适用于任何使用 .strings 的项目文件。

我有一个想要本地化的格式字符串:@"%d:%02d %@" 。它用于显示时间值。如果这是一个 OSX/iOS 应用程序,我会使用内置的日期时间格式,但由于它是 Cappuccino ,我必须自己推出。当我运行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 ,因为这些值适用于 Cappuccino 。请注意 02%02d在结果格式字符串中被丢弃。如果我使用 -noPositionalParameters 再次运行它选项,它只是将字符串保留为:genstrings -o Resources/en.lproj -noPositionalParameters -s CPLocalizedString *.j */*.j .

/* ShortLocalTimeFormat */"%d:%02d %@" = "%d:%02d %@";

这是 genstrings 中的错误吗? ,或者在保留位置参数的同时,是否无法在格式字符串中使用标志/宽度?

最佳答案

如果这是一个 Objective-C 项目,我会将格式字符串缩短为 "%1$@ %2$@" 并使用 NSDateFormatter 生成时间字符串。如果该类不可用,我会自己生成中间时间字符串,并使用该字符串作为本地化格式字符串的参数,而不是直接将小时/分钟传递给本地化格式字符串。

关于cocoa - 如何在用作 NSLocalizedString 的键的 printf 格式的 NSString 中保留标志/宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com