人们通常是如何在Silverlight/XAML中实现多语言的?

本文关键字:实现 XAML 语言 Silverlight | 更新日期: 2023-09-27 18:18:11

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

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

我希望使该XAML代码的属性"Text"根据定义语言的变量和成对数组进行更改,该变量在给定键的情况下返回该语言的相关文本。

哪一种方法最实用?现在,我为每个textblock使用一个属性,以以下方式定义上面的textblock:

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

,然后定义如下属性:

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

人们通常是如何在Silverlight/XAML中实现多语言的?

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

查看这里和这里的本地化起点

您可以使用像Zeta资源编辑器这样的工具来为您的默认语言和每个支持的语言创建(和编辑)资源。资源必须命名为strings.resx, strings.en.resx, strings.de.resx

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

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

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