Xamarin.IOS:本地化不起作用

时间:2018-01-11 11:22:58

标签: ios xamarin xamarin.ios

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

我尝试显示图像" ImageInstructionStep1"

以下是我的Ressources文件夹的屏幕截图:

enter image description here

所有图片都有构建动作" 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;

并且两者都给出结果&#34; de_US&#34;。我的期望是这会加剧德国本土化。

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

作为旁注可能是非常有用的:我在resx文件中本地化的所有文本都按照预期以德语显示。

我想念什么?

1 个答案:

答案 0 :(得分:2)

正如我在评论中指出的那样,您应该将后备资源放入Base.lproj文件夹。

至于您对InfoPlist.strings的问题,请记住它们仅适用于Info.plist中的字符串,因此就是您要求权限等时。{{{{{ {1}}:

da.lproj

等等。

对于其他字符串,例如“确定”,“取消”和其他按钮,您需要为每个文件夹添加"NSLocationWhenInUseUsageDescription" = "Vil du tillade App'en til at bruge din lokation?"; "NSCalendarsUsageDescription" = "Ost"; 文件,其内容如下:

Localizable.strings