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 的其他页面上

在应用程序中安全地保存密钥或字符串 - Xamarin 表单

如何在 xamarin 表单中获得更多输入?

Xamarin 表单 ListView 绑定

在 xamarin 表单上动态绑定图像源