WP8语音命令定义文件多种语言

时间:2012-12-28 06:20:48

标签: windows-phone-8 voice

构建VCD时,您可以定义如下语言:

<CommandSet xml:lang="en-US">
  ...
</CommandSet>

<CommandSet xml:lang="ja-JP">
  ...
</CommandSet>

我的问题是,如果我希望多种语言使用相同的CommandSet(例如en-USen-GB),那么可能没有复制/粘贴吗?

2 个答案:

答案 0 :(得分:2)

编辑:此答案中列出的选项不起作用。似乎避免VCD多语言复制粘贴的最佳方法是使用T4模板生成VCD是编译时间。


是的,这实际上非常简单。只要您没有重叠CommandSets,就可以为整个语言创建一个CommandSet,而无需提及特定区域。请记住,xml:lang是一个通用的XML属性,您可以利用它来获得优势。

在下面的代码段中,我们将指定一个en(英语)语音命令集,而无需提及特定区域。

<?xml version="1.0" encoding="utf-8"?>
<VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.0">

  <CommandSet xml:lang="en">
    <Example> English example </Example>
    <!-- ... -->
  </CommandSet>

  <CommandSet xml:lang="es-ES">
    <Example> Non-english example </Example>       
    <!-- ... -->    
  </CommandSet>

</VoiceCommands>

当我们运行此代码段时,我们可以看到不同的示例文本显示在不同的模拟器中:

VoiceCommands with es-ES text VoiceCommand with en text

这里的一个限制是,您不能在区域特定的英语CommandSets(例如xml:lang="en")的同时拥有xml:lang="en-us" CommandSet。对于绝大多数的应用程序,这很好。但是,如果您要嵌入特定区域的PhraseList,则必须使用其他策略(例如,由于版权限制,仅在特定区域提供的电影列表)。我之前见过的一个选项是生成VCD文件的T4模板,而不是重复的复制粘贴VCD文件。

答案 1 :(得分:0)

这已经不可能了。使用WP8.1,你必须提供xml:lang。