OStack程序员社区-中国程序员成长平台

标题: ios - Xamarin.IOS:本地化不起作用 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 03:54
标题: ios - Xamarin.IOS:本地化不起作用

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

我尝试显示图像“ImageInstructionStep1”

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

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;

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

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

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

我错过了什么?



Best Answer-推荐答案


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

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

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

等等。

至于其他字符串,如OK、Cancel等按钮,你需要为每个文件夹添加一个Localizable.strings文件,内容如下:

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

关于ios - Xamarin.IOS:本地化不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48205924/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4