微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.stringsdict在iOS8中不起作用

使用.stringsdict有一些问题.代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>groups-selected</key>
    <dict>
        <key>NsstringLocalizedFormatKey</key>
        <string>%#@groups@</string>
        <key>groups</key>
        <dict>
            <key>NsstringFormatSpecTypeKey</key>
            <string>NsstringPluralRuleType</string>
            <key>NsstringFormatValueTypeKey</key>
            <string>d</string>
            <key>one</key>
            <string>%d group selected</string>
            <key>other</key>
            <string>%d groups selected</string>
        </dict>
    </dict>
    <key>friends-online</key>
    <dict>
        <key>NsstringLocalizedFormatKey</key>
        <string>%#@friends@</string>
        <key>friends</key>
        <dict>
            <key>NsstringFormatSpecTypeKey</key>
            <string>NsstringPluralRuleType</string>
            <key>NsstringFormatValueTypeKey</key>
            <string>d</string>
            <key>one</key>
            <string>%d friend online</string>
            <key>other</key>
            <string>%d friends online</string>
        </dict>
    </dict>
    <key>points-usage-message</key>
    <dict>
        <key>NsstringLocalizedFormatKey</key>
        <string>%#@points@</string>
        <key>points</key>
        <dict>
            <key>NsstringFormatSpecTypeKey</key>
            <string>NsstringPluralRuleType</string>
            <key>NsstringFormatValueTypeKey</key>
            <string>d</string>
            <key>one</key>
            <string>%d point will be deducted</string>
            <key>other</key>
            <string>%d points will be deducted</string>
        </dict>
    </dict>
</dict>
</plist>

本地化工作在iOS9中可以在模拟器和设备上找到,但是对于iOS8它既不会工作,我只会获得密钥名称输出,即:points-usage-message.我在这里做错了什么想法?

解决方法

实际上它适用于iOS 8.4.我们也使用.strinsgdict格式.所以我添加了这段代码
<key>points-usage-message</key>
<dict>
    <key>NsstringLocalizedFormatKey</key>
    <string>%#@points@</string>
    <key>points</key>
    <dict>
        <key>NsstringFormatSpecTypeKey</key>
        <string>NsstringPluralRuleType</string>
        <key>NsstringFormatValueTypeKey</key>
        <string>d</string>
        <key>one</key>
        <string>%d point will be deducted</string>
        <key>other</key>
        <string>%d points will be deducted</string>
    </dict>
</dict>

到我们的文件,它正常工作,当我用这段代码检索它:

[Nsstring localizedStringWithFormat:NSLocalizedString(@"points-usage-message",nil),42];

或迅捷:

let localizedFormat = NSLocalizedString("points-usage-message",comment: "")
let pointsInfo = String.localizedStringWithFormat(localizedFormat,42)

请尝试该代码分享结果.此外,您还可以尝试检查.strinsgdict文件目标成员资格和本地化(应设置为某个国家/地区).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐