我有一个 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 文件中本地化的文本都按预期以德语显示。
我错过了什么?
Best Answer-推荐答案 strong>
正如我在评论中指出的那样,您应该将备用资源放入 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/
|