Xamarin IOS 中的本地化

Posted

技术标签:

【中文标题】Xamarin IOS 中的本地化【英文标题】:Localization in Xamarin IOS 【发布时间】:2021-09-16 09:22:00 【问题描述】:

我目前正在 Xamarin.IOS 中体验本地化。我设法完成了本地化工作,但仅基于系统语言。这是我的例子:

someLabel.Text = NSBundle.MainBundle.GetLocalizedString ("Hello");

问题是如何通过代码更改应用内的本地化?谁能举个例子?

【问题讨论】:

【参考方案1】:

如果要实现本地化,可以在Resources文件下创建.lproj文件夹,然后在Xcode中选择本地化选择语言,Visual Studio中会相应生成相应的字符串。当使用 NSBundle.MainBundle.GetLocalizedString ("Yes");请确保 Localizable.strings 文件存在于您的 .lproj 文件夹中。

【讨论】:

感谢您的回答。这是我尝试过的:我在 Visual Studio 的 Resources 文件下创建了 .lproj 文件夹,然后进入 Xcode 创建了一个 .strings 文件。然后我用多种语言对其进行了本地化,并添加了我需要的字符串。返回 Visual Studio 时,会生成文件。但是,NSBundle.MainBundle.GetLocalizedString()still 不起作用,给我输入参数作为输出。 您可以在Xcode中选择Localization选项,会自动创建相应的文件 是的,我确实在Xcode中选择了Localization选项,并生成了相应的文件。 你是否按照官方文档创建了Base.lproj文件夹并将Main.storyboard文件放入其中,并确保你的lproj文件夹有Localizable.strings并且必须用这个名字来调用 当手机系统语言发生变化时,会自动到.lproj文件中查找对应的.strings

以上是关于Xamarin IOS 中的本地化的主要内容,如果未能解决你的问题,请参考以下文章

最新 iOS 更新 (12.2) 后,本地存储中的视频未在 WebView (Xamarin.Forms) 中播放

xamarin.ios 本地通知推送

Xamarin.iOS 应用在 iOS 14.0 中询问本地网络权限

Xamarin 形成 iOS 本地通知按钮

Xamarin - 无法通过 Android(和 iOS)访问本地 api

处理本地通知点击 Xamarin Forms iOS