gpt4 book ai didi

ios - 使用没有数字的复数字符串

转载 作者:可可西里 更新时间:2023-11-01 03:57:01 24 4
gpt4 key购买 nike

.stringsdict 我有点困惑 documentation (滚动到“本地化属性列表文件”)。

给定一些文件,我想相应地显示保存文件 或保存保存文件。我认为以下内容会起作用,但没有。

在代码中:

NSString *string = [NSString localizedStringWithFormat:NSLocalizedString(@"%Save Files", @""), (long)files.count];

Localizable.stringsdict 中:

<key>Save Files</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>Save %#@files@</string>
<key>files</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>File</string>
<key>other</key>
<string>Files</string>
</dict>
</dict>

无论计数如何,始终显示保存文件

我做错了什么?

最佳答案

问题是您的代码缺少保存的文件数。为了使用 stringsdict 文件本地化复数行,该行必须有一个数字变量。所以在它说@“%Save Files”的地方,它应该说@“Save %ld File(s)”。 %ld 是 Xcode 了解在运行时使用哪个复数规则所需的数字。

然后,在您的 Localizable.stringsdict 文件中,您的 plist 必须如下所示:

<key>Save %ld File(s)</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@files@</string>
<key>files</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>one</key>
<string>Save %ld File</string>
<key>other</key>
<string>Save %ld Files</string>
</dict>
</dict>

使用像这样的 Localizable.stringsdict 生成器/教程可以真正帮助解决此类问题:

iOS Stringsdict Plurals Generator

同样重要的是,您留下完整的行以供译员修改短语。而不是“Save %#@files@”给他们整行来处理“%#@files”。为什么?因为某些语言中的“保存”一词可能需要根据文件的数量进行共轭,或者可能需要出现在数字的另一边(即要保存 3 个文件)。永远不要假设英语语法会起作用,让翻译人员翻译完整的行。

关于ios - 使用没有数字的复数字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21787888/

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