Xamarin Forms 绑定 IEnumerable 本地化
Xamarin Forms Binding IEnumerable Localisation
我有一个正在本地化的应用程序。我使用 https://github.com/jamesmontemagno/LocalizationSample 作为指南。该应用程序有一个语言列表,允许用户随时切换。
目前所有翻译都使用绑定,以便在语言更改时更新值。
我的问题是,本地化 ienumerables 的最佳方法是什么?我应该使用键列表并根据需要进行翻译,还是每种语言都有多个列表?
我的想法如下:
- 在翻译逻辑中,检查与列表相关的键
- 如果是列表,遍历每个项目并翻译它
另一个想法是创建每个支持语言的字典和翻译的 ienumerable。关键是语言代码,例如'en-gb',然后当语言改变时,我可以重新绑定到字典中的那个 ienumerable。
有人对如何最好地实施有什么建议吗?
我猜你想翻译 IEnumerable<string>
...
你如何填充你的列表?如果您使用 resx 文件(例如 AppResources.resx、AppResources.en.resx),它应该会自动完成。
在您的 ViewModel 中,像这样初始化您的列表:
...
MyValues = new List<string>();
mMyValues.Add( AppResources.MyEnumValue1 );
mMyValues.Add( AppResources.MyEnumValue2 );
...
==> 调用 'AppResources.MyEnumValue2' 将为您提供 当前文化 键值 'MyenumValue2'...
所以我觉得没有问题?
我有一个正在本地化的应用程序。我使用 https://github.com/jamesmontemagno/LocalizationSample 作为指南。该应用程序有一个语言列表,允许用户随时切换。
目前所有翻译都使用绑定,以便在语言更改时更新值。
我的问题是,本地化 ienumerables 的最佳方法是什么?我应该使用键列表并根据需要进行翻译,还是每种语言都有多个列表?
我的想法如下:
- 在翻译逻辑中,检查与列表相关的键
- 如果是列表,遍历每个项目并翻译它
另一个想法是创建每个支持语言的字典和翻译的 ienumerable。关键是语言代码,例如'en-gb',然后当语言改变时,我可以重新绑定到字典中的那个 ienumerable。
有人对如何最好地实施有什么建议吗?
我猜你想翻译 IEnumerable<string>
...
你如何填充你的列表?如果您使用 resx 文件(例如 AppResources.resx、AppResources.en.resx),它应该会自动完成。
在您的 ViewModel 中,像这样初始化您的列表:
...
MyValues = new List<string>();
mMyValues.Add( AppResources.MyEnumValue1 );
mMyValues.Add( AppResources.MyEnumValue2 );
...
==> 调用 'AppResources.MyEnumValue2' 将为您提供 当前文化 键值 'MyenumValue2'...
所以我觉得没有问题?