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 应用在 iOS 14.0 中询问本地网络权限