如何在DatePicker C#WinRT中翻译月和日

时间:2016-04-18 07:11:32

标签: c# winrt-xaml win-universal-app

我在Windows Phone 8.1应用程序中有一个默认的datepicker控件。更改设备语言时,datepicker字段仍保留英文文本而不是翻译文本。我是否应该添加任何单独的逻辑来翻译这些文本,例如在模板中明确定义具有必要翻译逻辑的月份名称和日期?

要翻译的突出显示文字的图片

enter image description here

任何帮助或建议都会有很大帮助。

提前致谢

2 个答案:

答案 0 :(得分:0)

有语言属性来指定语言。

<DatePicker Name="date" />
     CultureInfo ci = new CultureInfo(Windows.System.UserProfile.GlobalizationPreferences.Languages[0]);
                date.Language = ci.ToString();

<强>更新

要完成工作,您必须在Package.appmanifest文件中添加对该特定语言的支持。清单文件中有默认语言字段。 您可以通过编程方式执行此操作

 CultureInfo ci = new CultureInfo(Windows.System.UserProfile.GlobalizationPreferences.Languages[0]);
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = ci.Name;
            CultureInfo.DefaultThreadCurrentCulture = ci;
            CultureInfo.DefaultThreadCurrentUICulture = ci; 

答案 1 :(得分:0)

默认情况下,

DatePicker 支持Globalization and localization。无需在DatePicker中设置任何内容即可支持多语言。

我们需要做的是 Specify the supported languages in the app's manifest

  

应用程序开发人员在应用程序清单文件的Resources元素(通常是Package.appxmanifest)中指定支持的语言列表,或者Visual Studio根据找到的语言自动生成清单文件中的语言列表在项目中。清单应该以适当的粒度级别准确地描述支持的语言。清单中列出的语言是在Windows应用商店中向用户显示的语言。

为了确保应用支持&#34; fr-FR&#34;,我们可以选择&#34; Package.appxmanifest &#34;在&#34; 解决方案资源管理器&#34;然后右键单击,然后选择&#34; 查看代码&#34;并使用

<Resources>
  <Resource Language="EN-US" />
  <Resource Language="FR-FR" />
</Resources>

而不是

<Resources>
  <Resource Language="x-generate" />
</Resources>

在此之后,当您将设备的语言更改为&#34; France&#34;时,DatePicker将自动显示在法国。但是,这不会立即生效,需要重新启动 enter image description here

<强>更新

PrimaryLanguageOverride是一种简单的覆盖设置,适用于为用户提供独立语言选择的应用,或者是有充分理由覆盖默认语言选择的应用。

因此,您可以使用PrimaryLanguageOverride来实现您想要的效果。

  

PrimaryLanguageOverride 设置在会话之间保留。每次加载应用程序时都不应该设置它。它应该只根据设置UI中显示的用户输入进行设置。酒店可随时阅读。如果从未设置过该属性,则返回一个空字符串。

您可以添加&#34;自动&#34;下拉控件中的选项。当用户选择此选项时,您可以将PrimaryLanguageOverride设置为空字符串,如:

ApplicationLanguages.PrimaryLanguageOverride = string.Empty;

然后,您的应用将根据您支持的语言使用设备语言设置。有关您的应用中将显示哪种语言的详细信息,请参阅Create the application language listLanguage matching

当使用在下拉控件中选择其他语言时,您可以将PrimaryLanguageOverride设置为所选语言,以强制您的应用以此语言显示。有关PrimaryLanguageOverride使用的详细信息,您可以查看ApplicationLanguages.PrimaryLanguageOverride | primaryLanguageOverride property中的备注