【问题标题】:How do people usually implement multilanguage in Silverlight/XAML?人们通常如何在 Silverlight/XAML 中实现多语言?
【发布时间】:2013-06-12 07:13:24
【问题描述】:

我正在尝试实现一个界面来提供多语言支持。为了简单起见,我将在 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");
     }
}

【问题讨论】:

    标签: c# .net silverlight xaml multilingual


    【解决方案1】:

    Silverlight 中的本地化通常通过使用Resource Dictionaries 及其在区域和文化方面的分层组织来实现。运行时基于CultureInfo.CurrentUICulture Property 解释这些行为,但可以修改此行为以满足您的需要。

    查看herehere 以了解localisation 的起点。

    【讨论】:

      【解决方案2】:

      您可以使用Zeta resource editor 之类的工具为您的默认语言以及每种支持的语言创建(和编辑)资源。资源必须命名为strings.resxstrings.en.resxstrings.de.resxa.s.o.

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

      这里有详细描述How to: Make XAML Content Localizable

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 将此作为评论
        猜你喜欢
        • 2011-07-25
        • 2011-03-30
        • 2013-07-09
        • 1970-01-01
        • 1970-01-01
        • 2021-06-30
        • 2022-10-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多