Android和iOS跨平台字符串资源(MonoTouch &MonoDroid)

本文关键字:MonoTouch MonoDroid 字符串资源 iOS 跨平台 Android | 更新日期: 2023-09-27 18:02:19

我正忙于使用Xamarin mono库的跨平台移动应用程序,我遇到了以下情况…

我有一堆字符串资源在我的monodroid项目(strings.xml)正在使用我的布局和我的c#代码。

我想要做的是将这些字符串资源移动到共享项目中的文件中,以便iOS, Android和Windows phone都能够使用它们。实现这一目标的最佳方式是什么?

*当前我正在使用资源。包含非ui字符串的resx文件。然后我在android(monodroid)项目中有strings.xml文件,以满足UI资源字符串。

请牢记以下内容:

  • 所有平台必须使用相同的文件
  • 我需要android布局也使用相同的资源。(目前是strings.xml文件)
  • 最好是一个文件。

的意见吗?

Android和iOS跨平台字符串资源(MonoTouch &MonoDroid)

这里(至少)有几个"标准"库/工具可供参考:

  • Rdio的白话工具看起来可以帮助使用GetText层解决这个问题- https://github.com/rdio/vernacular
  • MvvmCross使用JSON文件来共享文本(参见MvvmCross ViewModels中的文本本地化)

它们都是开源的——你应该能够从它们中创建自己的设计时或运行时工具。

另一个选择是使用生成器在构建时生成适当的资源。为简单起见,我决定创建一个资源迁移器,在每次构建时运行它。

基本上,我把我的PCL的*.resx文件中的所有内容,并在构建应用程序之前生成Android或iOS资源。这是在构建期间在web应用程序中组合/缩小CSS/JS的类似方法…