【问题标题】:Xamarin.IOS: localization does not workXamarin.IOS:本地化不起作用
【发布时间】:2018-06-20 17:10:20
【问题描述】:

我有一个 Xamarin.IOS 应用程序并尝试本地化一些图像。 作为指导,我接受了这篇文章:https://developer.xamarin.com/guides/ios/advanced_topics/localization_and_internationalization/

我尝试显示图像“ImageInstructionStep1”

这是我的资源文件夹的屏幕截图:

所有图像都有构建操作“BundleResource”。 我用这一行在代码中分配图像:

        imageInstructionStep.Image = UIImage.FromBundle("ImageInstructionStep1");

我在我的 Info.Plist 中注册了本地化:

    <key>CFBundleDevelopmentRegion</key>
    <string>en</string>
    <key>CFBundleLocalizations</key>
    <array>
        <string>de</string>
        <string>fr</string>
        <string>it</string>
    </array>

但它总是显示英文版本。

我检查了应用程序启动时的语言环境:

        NSLocale.CurrentLocale.LocaleIdentifier;
        NSLocale.AutoUpdatingCurrentLocale.LocaleIdentifier;

并且两者都给出“de_US”。我的期望是这会加载德语本地化。

我还尝试将应用程序清理并重建到模拟器,包括之前将其从模拟器中删除但没有成功。

也许有趣的旁注:我所有在 resx 文件中本地化的文本都按预期以德语显示。

我错过了什么?

【问题讨论】:

  • 你应该把你的后备图片放到 Base 文件夹中。
  • 啊,太好了。谢谢。以为我可以将后备留在根目录中。现在我只需要弄清楚为什么我的 InfoPlist.strings 没有应用。 :)

标签: ios xamarin xamarin.ios


【解决方案1】:

正如我在 cmets 中指出的,您应该将备用资源放入 Base.lproj 文件夹中。

至于InfoPlist.strings 的问题,请记住它们仅适用于Info.plist 中的字符串,因此当您请求权限等时。da.lproj 可能如下所示:

"NSLocationWhenInUseUsageDescription" = "Vil du tillade App'en til at bruge din lokation?";
"NSCalendarsUsageDescription" = "Ost";

等等。

至于其他字符串,如确定、取消等按钮,您需要为每个文件夹添加一个Localizable.strings文件,内容如下:

"Back" = "Tilbage";
"Done" = "Færdig";
"Cancel" = "Anuller";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 2012-12-30
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多