Xamarin 表单:资源字符串
Posted
技术标签:
【中文标题】Xamarin 表单:资源字符串【英文标题】:Xamarin Forms: Resource strings 【发布时间】:2015-12-27 20:26:57 【问题描述】:我已经使用 Xamarin 开发移动应用程序六个月了,而 Xamarin Forms 是我这样做的唯一方法。两天前,我看到一篇文章建议我通过 xml 使用资源字符串而不是硬编码它们。我为 android 研究了它,一般的想法引导我使用追索字符串。
我的问题是:
我在可移植库中创建了一个名为 BaseLang 的抽象类,如下所示:
public abstract class BaseLang
public abstract string Text get;
对于我创造的每一种语言,
public class EngLang : BaseLang
public override string Text get return "Welcome";
我在第一次构建应用程序时将我的 EngLang 类声明为静态变量,并使用我的字符串。我的实际问题是,这样可以吗,还是我应该使用资源字符串并使用依赖注入来调用它们?
【问题讨论】:
Android 和 ios 有不同的“本地”方式来处理字符串本地化。但是使用 Xamarin Forms,您可以使用 RESX 文件(这是一种完全不同的机制)。有关详细信息,请参阅developer.xamarin.com/guides/xamarin-forms/localization。我个人曾在 iOS、Android 和 Windows RT 中使用过 RESX 字符串(这需要一些额外的工作)。我相信它也适用于所有其他 Xamarin Forms 平台。 用它代替类有什么好处? 我相信与使用一组自定义类相比,RESX 通常更快、更容易(对开发人员而言)。对于初学者,系统将主要根据用户的设备处理选择适当的文件(带有语言)。其次,编写自定义类和您自己的定位器模式(选择适合当前用户的类)是很多开销(代码编写)。 RESX 基本上编译成您正在编写的这些类。 Visual Studio 使编辑 RESX 变得非常容易。 Microsoft 还拥有基于 RESX 构建的技术,可以更轻松地添加语言翻译 - MAT。 感谢您的回答。 【参考方案1】:我认为您必须查看 resx 文件。 https://github.com/xamarin/xamarin-forms-samples/tree/master/TodoLocalized
【讨论】:
以上是关于Xamarin 表单:资源字符串的主要内容,如果未能解决你的问题,请参考以下文章
xamarin 表单 - 如何访问 BindingContext 中的字符串
为啥我更改的字符串没有出现在使用选项卡式表单 xamarin 的其他页面上