Часто задаваемые вопросы и руководство по диагностике набора средств для многоязычных приложений

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. В случае разработки приложений для Windows 10 см. раздел последняя документация]

Установка

Каковы требования к системе?

Поддерживаемые операционные системы: Windows 8 (RTM или выше, 32- или 64-разрядная версия).

Необходимое программное обеспечение: Microsoft Visual Studio.

Свободное пространство на диске: 10 Mбайт (для 32-разрядной версии), 10 Mбайт (для 64-разрядной версии).

Какие языки программирования поддерживаются набором средств?

Набор средств поддерживает разработку всех приложений для Windows с использованием среды выполнения Windows (WinRT). Сюда входят RESW-файлы (XAML) и RESJSON-файлы (JavaScript), но в остальной части документа мы будем говорить только о RESJSON-файлах.

Включение набора средств для многоязычных приложений

Требуются ли файлы формата RESJSON, выполненные на нескольких языках?

Нет. Одним из основных преимуществ данного набора средств является то, что выполнение файлов формата RESJSON на нескольких языках не требуется. Набор средств управляет ресурсами приложения и синхронизирует их при помощи проектных XLF-файлов. Это решает проблемы, связанные с синхронизацией содержимого нескольких файлов формата RESJSON.

При совпадении в разных проектах файлов форматов RESJSON и XLF переводы из XLF-файла игнорируются. В этом случае в ходе сборки отображается предупреждение о том, что переводы формата XLF не включены в окончательный вариант приложения. Файлы форматов RESJSON и XLF являются совпадающими, когда у них имеется целевой язык с одним кодом языка. Примером совпадающей пары будет strings\de-DE\resources.resjson и German (Germany).xlf с одинаковым атрибутом целевого языка "de-DE".

Могут ли у меня быть файлы формата RESJSON, выполненные на нескольких языках?

Да, но это не рекомендуется. Если вы хотите включить в проект файлы формата RESJSON на нескольких языках и при этом использовать данный набор средств, убедитесь в отсутствии совпадающих файлов форматов RESJSON и XLF.

В меню "Сервис" нет параметра, включающего набор средств для многоязычных приложений.

Выполните следующие действия.

  1. Убедитесь, что вы выбрали "Имя проекта", а не "Решение", перед выбором меню Сервис.
  2. Проверьте, установлено ли расширение набора средств, при помощи диспетчера расширений.
  3. Проверьте, является ли проект проектом приложения Магазина Windows.

Не отображается начало сборки набора средств для многоязычных приложений при сборке проекта.

Убедитесь, что вы включили свой проект с помощью параметра Включить набор средств для многоязычных приложений в меню Сервис. При включении приложения с помощью предыдущей версии следует отключить и снова включить набор средств для многоязычных приложений в меню Сервис. При этом проект обновляется и может работать с новой версией набора средств.

Проверьте, установлен ли компонент "Build Task for all Visual Studio editions". Этот компонент сборки устанавливается с расширением, но его выбор можно отменить вручную в ходе установки. Данный компонент необходим для обновления XLF-файлов и добавления перевода в PRI-файл. При правильной установке и корректной работе этого компонента отображаются следующие сообщения о сборке:

1> Multilingual App Toolkit build started.
1> Multilingual App Toolkit build completed successfully.

Набор средств докладывает о том, что в ходе сборки языковых файлов формата XLIFF найдено не было.

Сообщение:

No XLIFF language files were found.  The app will not contain any localized resources.

Отображается, когда набор средств не находит в проекте файлов с расширением XLF. Данные файлы по умолчанию размещаются в папке "Многоязычные ресурсы". Их можно перемещать, но лучше оставить в данной папке, так как это позволяет редактору находить соответствующие файлы метаданных.

Щелкните имя проекта правой кнопкой мыши и выберите Добавление языков перевода... из окна обозревателя решений. Будет открыто диалоговое окно для добавления языков на основе XLF. Любые существующие языки на основе XLF, обнаруживаемые набором средств, получают отметку в соответствующем поле выбора, указывающую на то, что данный язык уже включен в проект.

Файл формата XLF не включается в список файлов, обрабатываемых набором средств в ходе сборки.

Если файл формата XLF исключался из проекта, а затем был повторно включен в него, элемент типа файла может установиться некорректно. Для проверки такой возможности откройте файл проекта напрямую и проверьте тип включения файла XLF. Чтобы набор средств обрабатывал файл, элемент его типа должен быть установлен на "Никакой". Если он установлен на "Содержимое" или другое значение, измените его на "Никакой". Сохраните файл проекта и перезагрузите проект.

Пример: тип German (Germany).xlf является некорректным.

<Content Include="MultilingualResources\German (Germany).xlf" />
<None Include="MultilingualResources\Pseudo Language %28Pseudo%29.xlf" />

Я добавил языки на основе XLF. Где мои строки?

Выбранные вами языки добавлены в папку "MultilingualResources". Первоначально созданные языковые файлы пусты. Строки из файлов RESJSON заполняют эти XLF-файлы в ходе следующего перестроения.

При сборке проекта файлы XLF остаются пустыми.

Выполните следующие действия.

  1. При помощи команды Перестроить добейтесь обновления XLF-файлов. Visual Studio оптимизирует команду Сборка, чтобы собрать только те файлы, которые изменились с момента последнего выполнения команды Сборка. При добавлении новых XLF-файлов Visual Studio не обнаруживает изменения.
  2. Убедитесь в том, что ваше приложение поддерживает модель разработки глобализации и локализации Магазина Windows. Обратитесь к другим подразделам раздела Глобализация приложения.

Добавление языков в приложение

Что такое Служба перевода Майкрософт?

Переводчик Майкрософт является облачной службой, обеспечивающей машинный перевод. Машинный перевод является идеальным решением, когда выполнение перевода человеком нецелесообразно. Подробнее см. в разделе Переводчик Майкрософт.

Набор средств использует Службу перевода Майкрософт для обеспечения разработчиков предложениями по переводу. Поддерживаемые Переводчиком Майкрософт языки можно увидеть при появлении значка Переводчика в окне "Добавление языков перевода".

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

Псевдоязык.

Псевдоязык — это искусственная модификация программного продукта, имитирующая настоящую локализацию для языка, но при этом воспринимаемая носителями данного языка. Псевдоперевод заменяет символы и увеличивает длину строки ресурсов для поиска потенциальных проблем с локализацией или ошибок на раннем этапе проекта и до того, как начнется непосредственно локализация. Подробнее о тестировании возможности локализации с помощью псевдоязыка см. в разделе Тестирование возможности локализации.

Что такое псевдотрекеры ресурсов?

Помимо замены символов и удлинения строк, псевдообработчик обеспечивает каждому ресурсу уникальный отслеживающий идентификатор. Такой трекер присоединяется к началу каждой строки и заключается в квадратные скобки [xxxxx]. Эти трекеры можно использовать в ходе тестирования визуальной проверки пользовательского интерфейса. Они могут помочь в отслеживании конкретных ресурсов в продукте, особенно если у нескольких ресурсов имеется похожий или дублирующийся текст.

В следующем примере текста "Hello World" псевдоперевод увеличивает занимаемое им место на экране приблизительно на 30 % и применяет трекер ресурса:

"Hello World" -> "Ĥèĺļõ Ŵòŗłđ" -> "[!!_Ĥèĺļõ Ŵòŗłđ_!!]" -> “[hJ8s1][!!_Ĥèĺļõ Ŵòŗłđ_!!]"

Трекеры ресурсов включены по умолчанию, их можно увидеть в файле PseudoSettings.config под атрибутом "EnableResourceTracker = true". При необходимости данный параметр может изменяться на false.

Не могу найти псевдоязык в списке "Выбор языка Windows 8".

Русский язык (qps-ploc) не отображается в списке выбора языка Windows 8 по умолчанию. Для добавления русского языка (qps-ploc):

  1. Откройте панель управления и выберите компонент Часы, язык и регион > Язык.
  2. Щелкните Добавление языка.
  3. В поле поиска введите qps-ploc. Введите полный языковой код; в противном случае псевдоязыка не будет в результатах поиска.
  4. Выберите Русский (pseudo-qps) и нажмите Добавить.
  5. Убедитесь, что русский язык (qps-ploc) возглавляет ваш список предпочитаемых языков.

Тестирование

При запуске приложения переводы не появляются либо приложение переведено частично.

  1. Проверьте факт наличия переводов в файле XLF.

    Откройте файл XLF в многоязычном редакторе и проверьте наличие переводов. При обновлении строк файла RESJSON или RESW все соответствующие переводы удаляются. Это нужно, чтобы обеспечить совпадение перевода и соответствующей строки. Переведите строку и выполните перестройку.

  2. Строки переведены, но не появляются в приложении.

    Используйте Перестроить для включения обновленного файла XLF в файл интерфейса основного доступа приложения. Visual Studio оптимизирует команду Сборка для сборки только тех файлов, которые изменялись с последней отработки команды "Сборка". В настоящее время файлы XLF не отрабатывают необходимость перестройки автоматически.

  3. Проверьте порядок языков в списке выбора языка.

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

Какие проблемы локализации могут быть связаны с использованием псевдоязыка?

  • Усечения интерфейса пользователя. Псевдоязык добавляет символы в строку для отображения ее возможного вида после перевода.
  • Встроенные строки. Нахождение обычного текста в псевдоязыковом приложении означает, что строка встроена и не переводится набором средств.

Подробнее о псевдоязыке и тестировании возможности локализации с помощью псевдоязыка см. раздел Тестирование возможности локализации.

Приложение не отображается в соответствии со списком выбора языка.

Выбор языка определяется порядком расположения языков в списке, сверху вниз. Перед развертыванием приложения убедитесь в правильности порядка расположения языков. Откройте панель управления, выберите компонент Часы, язык и регион > Язык, выберите язык и нажмите Вверх или Вниз для изменения порядка языков.

Набор средств выдает ошибку 0x80004004 на выходе сборки.

Сообщение:

Merge of Loc PRI file failed calling makepri.exe: "0x80004004"

Причиной может быть конфликт региональных стандартов и действий набора средств по сборке. Обойти конфликт можно путем замены регионального кода на ru-RU при выполнении сборки.

Набор средств выдает ошибку 0x80004005 на выходе сборки.

Сообщение:

Merge of Loc PRI file failed calling makepri.exe: "0x80004005"

Причиной может быть наличие неподдерживаемого целевого языка в XLF-файле. Версия Customer Preview набора средств для многоязычных приложений некорректно использовала целевой язык и региональные параметры "zh-cht" для китайского языка с традиционным письмом и "zh-chs" для китайского языка с упрощенным письмом. Это является результатом исправления предыдущих выпусков.

Для исправления данной ошибки измените файлы XLF, содержащие некорректные коды, вручную. Замените "zh-cht" на "zh-hant" и "zh-chs" на "zh-hans".

Можно ли получить дополнительные сведения о наблюдаемых ошибках?

Да, можно включить регистрацию подробных сведений в журнале в Visual Studio. Выберите меню Сервис > Параметры для отображения диалогового окна Параметры. Затем разверните Проекты и решения и выберите Сборка и запуск. Измените Степень подробности сообщений при сборке проекта MSBuild с минимальной на среднюю или выше.

Примечание  Запуск msbuild из командной строки также приводит к отображению дополнительных сообщений. Выполните сборку проекта из командной строки Visual Studio:

msbuild /t:rebuild <projectname>

 

Импорт/экспорт файлов XLIFF

Неудача при импорте перевода

Перед импортом выполняется базовая проверка, чтобы информация о целевом языке и региональных параметрах в импортируемом XLF-файле соответствовала информации в существующем XLF-файле. Откройте XLF-файлы в многоязычном редакторе и проверьте совпадение сведений о языке и региональных параметрах.

Что делать при отсутствии установленного Windows 8/Visual Studio/Набора средств для многоязычных приложений для переводчика?

Ничего! При выборе для перевода команды Отправить электронная почта включает ссылку для скачивания и установки набора средств для многоязычных приложений. При отсутствии Windows 8 и Visual Studio единственным устанавливаемым компонентом является многоязычный редактор.

После отработки и возвращения файлов перевода щелкните правой кнопкой мыши файл XLF и выберите Импортировать переводы, затем выберите возвращенный файл XLF.

Устаревший функционал

Что стало с файлами MarkupRules.xml и ResourcesLocks.xml?

Последняя выпущенная версия набора средств для многоязычных приложений не использует файлы с правом блокировки ресурсов. Вместо этого тег XLIFF 1.2 <mrk> добавлен непосредственно в XLF-файл для указания строк, не измененных в ходе машинного перевода. Это обеспечивает независимость XLIFF-файла, а также пофайловую блокировку ресурсов.

В результате необходимость в дополнительных вспомогательных файлах отпадает и они могут быть безопасно удалены из проектов, созданных при помощи предыдущей версии набора средств.

Что стало с файлом TPX?

TPX-файл обеспечивал простой способ включения файлов MarkupRules.xml и ResourcesLocks.xml при отправке XLF-файла для перевода. После исключения двух упомянутых файлов необходимость в данном функционале также отпала.

При наличии TPX-файла с переводами, которые необходимо вернуть, просто измените расширение файла с TPX на ZIP. Это позволит открывать и извлекать содержимое при помощи проводника или любого программного средства, совместимого с ZIP.

Другие вопросы

Все сделано правильно, но все равно не работает.

Выполните следующие действия.

  1. Добавьте переводы, пользуясь одним из описанных ниже методов.

  2. Выполните дамп PRI-файла (документированного в конфигурации MakePRI.exe) и проверьте нахождение ваших переводов в данном PRI-файле. Переводы должны появляться с использованием языкового кода и переведенного значения:

    <Candidate qualifiers="Language-QPS-PLOC" type="String">
        <Value>[!!_Ŝéãřćĥ_!!]</Value>
    </Candidate>
    
  3. Выполните сборку из командной строки; при этом отображается больше подробностей об ошибках, чем на выходе сборки.

Я запустил приложение при помощи набора средств для многоязычных приложений для бета-версии Visual Studio 11 или ее выпуска RC. Необходимы ли какие-либо особые действия?

Да. После установки набора средств Multilingual App Toolkit v1.0 следует отключить и снова включить данный набор средств для многоязычных приложений при помощи меню Сервис. При этом проект обновляется и может работать с новой версией набора средств.

Я установил Windows 8 и Visual Studio 2012, а также набор средств для многоязычных приложений для бета-версии Visual Studio 11.

При использовании Программ и компонентов для установки набора средств для многоязычных приложений Release Preview данного набора средств не устанавливается, так как расширение по-прежнему устанавливается в Visual Studio.

Чтобы устранить эту проблему, запустите Visual Studio и удалите расширение набора средств для многоязычных приложений через диспетчер расширений.

Не удалось сертифицировать приложение в Магазине Windows.

Убедитесь в том, что приложение содержит только поддерживаемые языки. XLF-файл псевдоязыка следует убрать из проекта перед началом сертификации. В Магазине Windows псевдоязык не является вариантом выбора языка, поэтому его наличие не имеет значения для клиентов.

Связанные разделы

Глобализация вашего приложения

Переводчик Майкрософт

Тестирование возможности локализации

Настройка MakePRI.exe