3

VCD を構築するときは、次のように言語を定義します。

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

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

en-US私の質問は、複数の言語で同じ CommandSet (やなど) を使用したい場合、en-GBコピー/貼り付けなしで可能ですか?

4

2 に答える 2

2

編集:この回答に記載されているオプションは機能しません。VCDマルチランゲージコピーアンドペーストを回避する最善の方法は、T4テンプレートを使用してVCDを生成することです。コンパイル時です。


うん、それは実際にはかなり簡単です。CommandSetが重複していない限り、特定の地域に言及することなく、言語全体の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>

このコードスニペットを実行すると、さまざまなエミュレーターにさまざまなサンプルテキストが表示されます。

es-ESテキストを使用したVoiceCommands テキスト付きのVoiceCommand

xml:lang="en"ここでの1つの制限は、地域固有の英語のCommandSet(例)と同時にCommandSetを使用できないことですxml:lang="en-us"。圧倒的多数のアプリにとって、それは問題ありません。ただし、地域固有のPhraseListを埋め込む場合は、別の戦略を使用する必要があります(たとえば、著作権の制限により、特定の地域でのみ利用可能な映画のリスト)。私が以前に見たオプションの1つは、VCDファイルを繰り返しコピーアンドペーストする代わりにVCDファイルを生成するT4テンプレートです。

于 2012-12-28T08:00:30.007 に答える