我使用了多语言工具包来翻译我的应用程序,并使用伪语言对其进行了测试。它对于我已经翻译成代码(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。
只是想知道是否有人能帮我解决这个问题,或者给我指出正确的方向。
谢谢
发布于 2013-01-09 21:26:35
首先,我认为您的资源名称中缺少的是您想要设置的属性。虽然我自己从来没有用过它,但我会这样理解它:
您的xaml需要更改为
<local:WatermarkTextbox x:Name="TitleTextBox" x:Uid="MainPage_EnterATitle" Watermark="" ... Style="{StaticResource TextBoxStyle1}" />并且您的资源需要一个包含密钥的条目
MainPage_EnterATitle.Watermark关于包含
MediumButton.using:Windows.UI.Xaml.AutomationAutomationProperties.Name
仅当引用的特性是附着特性时才使用此选项。例如,如果您的Watermark属性是附加的,而不是控件的一部分。但在你的情况下这并不重要。
https://stackoverflow.com/questions/14178258
复制相似问题