我有一个 XML 文件包含国家名称,另一个文件包含另一种语言的相同内容。
我想在这里进行绑定,为法语显示法语文件,为另一种语言显示它自己的文件等等..在一个长列表控件中
如何添加这些文件以及在哪里(资源文件夹?)
如何命名文件,我应该遵循特定的模式(例如
countries.en.xml
,countries.fr.xml
?- 这个概念就像在 AppResources 中使用键/值一样,它会自动使用正确的文化吗?
对不起,我知道这个问题很基础,但我无法忍受!
我有一个 XML 文件包含国家名称,另一个文件包含另一种语言的相同内容。
我想在这里进行绑定,为法语显示法语文件,为另一种语言显示它自己的文件等等..在一个长列表控件中
如何添加这些文件以及在哪里(资源文件夹?)
如何命名文件,我应该遵循特定的模式(例如countries.en.xml
,countries.fr.xml
?
对不起,我知道这个问题很基础,但我无法忍受!
我会建议两种选择之一。第一种是简单地将 xml 的内容放在 AppResources 文件本身中。这可能是最好的选择。这将允许您像绑定任何其他字符串一样绑定到值
Text="{Binding Path=LocalizedResources.America, Source={StaticResource LocalizedStrings}}"/>
第二种选择是将内容放在xml中并通过代码加载它们。您可以通过提供的 LocalizedStrings 类来做到这一点。您可以公开基于CultureInfo加载一次的国家属性。
private static IDictionary<string, Country> _countries;
public IDictionary<string, Country> Countries
{
get
{
if (_countries == null)
{
var culture = System.Globalization.CultureInfo.CurrentCulture;
var name = culture.Name;
if (name == "en-us")
{
// load
}
else
{
// load
}
}
return _countries;
}
}
这将允许您这样绑定
Text="{Binding Path=Countries[America], Source={StaticResource LocalizedStrings}}"/>