WP8 Voice Command Определение файла нескольких языков

При создании VCD вы определяете такие языки:


  ...



  ...

Мой вопрос: если я хочу, чтобы несколько языков использовали один и тот же CommandSet (например, en-US и en-GB )), это возможно без копирования/вставки?

3
nl ja de

2 ответы

EDIT: The option listed in this answer doesn't work. It seems the best way to avoid VCD multi-langage copy-paste is to use T4 templates to generate VCDs are compile time.


Да, это на самом деле довольно просто. Если у вас нет перекрытия CommandSets, вы можете создать CommandSet для всего языка без упоминания конкретного региона. Помните, что xml: lang - это общий атрибут XML, и вы можете использовать его в своих интересах.

В нижеприведенном фрагменте кода мы укажем набор голосовой команды en (английский) без необходимости упоминания конкретных регионов.

<?xml version="1.0" encoding="utf-8"?>


  
     English example 
    <!-- ... -->
  

  
     Non-english example        
    <!-- ... -->    
  


Когда мы запускаем этот фрагмент кода, мы можем видеть, что другой текст примера отображается в разных эмуляторах:

VoiceCommands with es-ES text VoiceCommand with en text

Одно ограничение состоит в том, что вы не можете иметь CommandSet xml: lang = "en" в то же время, что и региональные пользовательские CommandSets (например, xml: lang = "en-us" ). Для подавляющего большинства приложений это нормально. Если вы, однако, внедряете специфический для региона PhraseList, вам придется использовать альтернативные стратегии (например, список фильмов, доступных только в определенных регионах из-за ограничений авторского права). Один из вариантов, который я видел ранее, - это шаблон T4, генерирующий VCD-файл, вместо того, чтобы иметь повторяющийся файл VCD с копированием.

2
добавлено
Когда я обновляю свой файл определения голоса с помощью xml: lang = "en" и устанавливает, что телефон использует голос en-gb, команды не отображаются в разделе «Что я могу сказать о диалоговом окне». Есть идеи ?
добавлено автор japf, источник
Да, вы правы CommandSet с xml: lang = "en" вводится только как en-US.
добавлено автор JustinAngel, источник
Да, это тоже не помогло мне. Я установил xml: lang = "en" , и он работает с моим телефоном, настроенным на голос США, но не настроенным на голос в Великобритании. Я также попробовал эмулятор, установил «Страну в Великобританию» и отправился в Великобританию, но мои команды приложений не отображаются в диалоговом окне «Что я могу сказать» (они делают все, что установлено в США).
добавлено автор Zik, источник
Кажется, он должен работать, хотя ... мы должны жаловаться в MS :)
добавлено автор Zik, источник

Это уже невозможно. С WP8.1 вы ДОЛЖНЫ поставлять xml: lang.

0
добавлено
Про Windows
Про Windows
941 участник(ов)

Microsoft Windows и всё, что с этим связано. Список интересных групп и каналов: https://github.com/goq/telegram-list

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot