如何在 Visual Studio 中本地化 Info.plist 内容

Hei*_*lge 3 localization info.plist ios xamarin

我有一个 Xamarin iOS 应用程序,目前支持 4 种不同的语言。但是,我现在希望能够翻译我的 info.plist 文件及其键(如 NSCameraUsageDescription)的内容,以便其值也可以翻译。

到目前为止,我已经做了很多研究,通过搜索文档,建议创建一个 InfoPlist.strings 文件,该文件将包含我的密钥NSCameraUsageDescription = "the content here"。

每种语言都有一个 InfoPlist.strings 文件,该文件将包含在该语言之后的fr.lprojes.lproj等文件夹中。

我认为在 Xcode 中利用此选项可以创建 .strings 文件并直接对其进行本地化的解释相对较好。但是,在 Visual Studio 上,我在介绍和调整我的文件时遇到了一些困难。Xcode 上的 .strings 文件相当于 VS 上的 .resx 文件?

例如,当我切换到法语时,我的 InfoPlist.strings 和我的主 Info.plist 文件之间的关系如何才能告诉我的应用程序点击文件夹 fr.lproj / InfoPlist.strings 。

我是否应该为每种语言创建一个名为 fr.lproj 的文件夹,在其中放置一个文件 InfoPlist.strings 或 InfoPlist.resx 和我的密钥?

Jac*_*Hua 5

但是,在 Visual Studio 上,我在介绍和调整我的文件时遇到了一些困难。Xcode 上的 .strings 文件相当于 VS 上的 .resx 文件?

不,要.strings在visual studio中创建文件,您应该选择 add -> new item -> Text File,然后更改文件名 With xxx.strings

例如,当我切换到法语时,我的 InfoPlist.strings 和我的主 Info.plist 文件之间的关系如何才能告诉我的应用程序点击文件夹 fr.lproj / InfoPlist.strings 。

如果你InfoPlist.strings为每种语言创建了,它会自动读取对应语言文件中的配置,然后显示正确的语言。如果在 上找不到该键InfoPlist.strings,它将使用主 Info.plist 中的默认值。

我是否应该为每种语言创建一个名为 fr.lproj 的文件夹,在其中放置一个文件 InfoPlist.strings 或 InfoPlist.resx 和我的密钥?

是的,如果您有四种语言要支持,您应该创建 3 个 xx.lporj 文件夹(另一个是 Base.lporj),每个文件夹包含一个InfoPlist.stringsLocalizable.strings.

在您的InfoPlist.strings文件中,设置 key NSCameraUsageDescription= "the content here" 和 ect....

阅读文档可能会有所帮助。

这是我刚刚在我的项目中创建的内容:

例子