【问题标题】:Xamarin Forms Binding IEnumerable LocalisationXamarin 表单绑定 IEnumerable 本地化
【发布时间】:2018-05-21 10:45:58
【问题描述】:

我有一个正在本地化的应用程序。我使用https://github.com/jamesmontemagno/LocalizationSample 作为指导。该应用程序有一个语言列表,允许用户随时切换。

目前所有翻译的使用绑定,以便在语言更改时更新值。

我的问题是,本地化 ienumerables 的最佳方法是什么?我应该使用一个键列表并根据需要进行翻译,还是每种语言都有多个列表?

我的想法如下:

  • 在翻译逻辑中,检查与列表相关的键
  • 如果是列表,则遍历每个项目并进行翻译

另一个想法是为每种支持语言和翻译后的 ienumerable 创建一个字典。关键是语言代码,例如'en-gb',然后当语言发生变化时,我可以重新绑定到字典中的那个 ienumerable。

有人对如何最好地实施有建议吗?

【问题讨论】:

  • 您是在谈论本地化 IEnumerable 值吗?或 IEnumerable 其中 T 是一个包含要显示的“字符串”属性的类?
  • 它几乎总是 IEnumerable - 如果它是 IEnumerable 那么会有一个 String 类型的 Display 属性。

标签: xamarin.forms binding localization ienumerable


【解决方案1】:

我猜你想翻译IEnumerable<string>...

您如何填充您的列表?如果您使用 resx 文件(例如 AppResources.resx、AppResources.en.resx),则应该自动完成。

在您的 ViewModel 中,像这样初始化您的列表:

...
MyValues = new List<string>();
mMyValues.Add( AppResources.MyEnumValue1 );
mMyValues.Add( AppResources.MyEnumValue2 );
...

==> 调用“AppResources.MyEnumValue2”将为您提供键“MyenumValue2”的当前文化值...

所以我认为没有问题?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-10
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2018-09-25
    • 1970-01-01
    相关资源
    最近更新 更多