0

我正在尝试实现一个接口来提供多语言支持。为了简单起见,我将在 XAML 中举一个示例:

<TextBlock Text="Type" Grid.Column="0" Grid.Row="0"  HorizontalAlignment="Right" />

我希望使 XAML 代码的属性“文本”根据定义语言的变量和成对的数组进行更改,给定键,该数组返回该语言的关联文本。

哪种方法最实用?现在我为每个定义上述文本块的文本块使用一个属性,方法如下:

 <TextBlock Text="{Binding Type}" Grid.Column="0" Grid.Row="0"  HorizontalAlignment="Right" />

然后定义一个像这样的属性:

public string Type
{
     get
     {
        return Dictionary.Search("German", "Type");
     }
}
4

3 回答 3

2

Silverlight 中的本地化通常通过使用资源字典及其在区域和文化方面的分层组织来实现。运行时根据CultureInfo.CurrentUICulture 属性解释那些,但可以修改此行为以满足您的需要。

在这里这里查看本地化的起点。

于 2013-06-12T07:51:58.897 回答
0

您将使用Zeta 资源编辑器之类的工具来为您的默认语言以及每种支持的语言创建(和编辑)资源。资源必须命名为strings.resx, strings.en.resx, strings.de.resxaso

当您将这些资源添加到您的项目时,资源经理将负责正确的语言。然后,您可以从 XAML 绑定到字符串或使用类 ResourceManager 从后面的代码中获取字符串。

此处详细描述了如何:使 XAML 内容可本地化

于 2013-06-12T07:51:00.530 回答
0

最简单的方法是为每种语言维护 ResourceFiles,它会在绑定时根据当前语言自动更改文本。

于 2013-11-26T07:37:34.413 回答