1

我使用多语言工具包翻译了我的应用程序,并一直在使用伪语言对其进行测试。它适用于我在代码 (C#) 中翻译的字符串,但我不知道如何制作它,以便自动翻译 XAML 中的标记。

我一直在使用http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh965329.aspx作为教程,但我无法弄清楚。我也在谷歌上搜索过,但仍然没有运气。

例如,我创建了一个“水印”文本框(继承自该文本框TextBox,默认情况下会在其中显示一些文本,用户没有输入任何文本并且该项目没有焦点。XAML 看起来像这样(我将通用定位内容替换为'...'):

<local:WatermarkTextbox x:Name="TitleTextBox" Watermark="MainPage_EnterATitle" ... Style="{StaticResource TextBoxStyle1}" />

如您所见,它正在设置一个名为Watermark“标签”的属性,该属性是使用多语言工具翻译的资源名称的“标签”。我不知道如何让它自动翻译。

另一个例子是使用底部应用栏按钮:

<Button x:Name="bottomAppBar_unpinFromStartButton" AutomationProperties.Name="MainPage_UnpinFromStart" Style="{StaticResource UnPinAppBarButtonStyle}" Click="bottomAppBar_unpinFromStartButton_Click"/>

我可以在上面的链接中看到它说:

MediumButton.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name

但我不太确定这意味着什么。

即使有一个按钮,这似乎是最简单的翻译我无法让它工作。XAML 是:

<Button x:Name="RemovePhotoButton" x:Uid="MainPage_RemovePhoto" Content="" HorizontalAlignment="Center" Margin="222,0,974,78" Grid.Row="1" VerticalAlignment="Bottom" Width="170" Height="45"/>

但是当在应用程序中运行或在设计中查看时,按钮保持空白,上面没有文字。

资源设置如下:

在此处输入图像描述

它正在很好地填写翻译文件:

在此处输入图像描述

我可以使用上面链接中的代码在 C# 中翻译它,只是不使用 XAML。

只是想知道是否有人可以帮助我或指出正确的方向来解决这个问题。

谢谢

4

1 回答 1

1

首先,我认为您的资源名称中缺少的是您要设置的属性。虽然我自己从未使用过它,但我会这样理解:

您的 xml 需要更改为

<local:WatermarkTextbox x:Name="TitleTextBox" x:Uid="MainPage_EnterATitle" Watermark="" ... Style="{StaticResource TextBoxStyle1}" />

您的资源需要一个带有密钥的条目

MainPage_EnterATitle.Watermark

关于与

MediumButton.[使用:Windows.UI.Xaml.Automation]AutomationProperties.Name

这仅在引用的属性是附加属性时使用。就像您的 Watermark 属性将附加而不是控件的一部分一样。但在你的情况下它并不重要。

于 2013-01-09T13:26:35.020 回答