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

В этом разделе приведены ответы на часто задаваемые вопросы и проблемы, связанные с набором средств многоязычных приложений (MAT).

Дополнительные сведения см. в разделе "Использование набора средств многоязычных приложений".

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

Нужны ли resw-файлы на нескольких языках?

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

Проекты, содержащие соответствующие RESW и XLF-файлы, вызывают пропускание переводов из XLF-файла. В этом случае во время сборки отображается предупреждение, чтобы сообщить вам, что переводы XLF не включены в окончательное приложение. Resw-файл и XLF-файл совпадают при наличии целевого языка с тем же кодом языка. Примером пары сопоставления будет Strings\de-DE\Resources.resw файл <project-name>.de-DE.xlf (содержащийся target-language="de-DE").

Можно ли иметь RESW-файлы на нескольких языках?

Вы можете, но мы не рекомендуем его. Если вы хотите включить resw-файлы на нескольких языках в проект и использовать набор средств, убедитесь, что у вас нет соответствующих ФАЙЛОВ RESW и XLF.

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

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

  • Перед открытием меню "Сервис " выберите узел проекта, а не узел решения.
  • Убедитесь, что расширение набора средств установлено с помощью диспетчера расширений Visual Studio.
  • Убедитесь, что проект является проектом UWP.

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

Убедитесь, что вы включили MAT для проекта. В меню "Сервис" выберите пункт "Включить многоязычный набор средств>приложений". Если проект включен с предыдущей версией, отключите и повторно включите MAT с помощью меню "Сервис ". Это обновляет проект для работы с новой версией набора средств.

Убедитесь, что установлен компонент "Задача сборки для всех выпусков Visual Studio". Этот компонент сборки устанавливается с расширением, но его можно вручную отменить во время установки. Этот компонент необходим для обновления 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. Набор средств создает и сохраняет эти файлы в папке MultilingualResources по умолчанию. Их можно переместить; но лучше оставить их в этой папке, так как это позволяет многоязычным редактору находить связанные файлы метаданных.

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

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

<XliffResource Include="MultilingualResources\<project-name>.fr-FR.xlf" />

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

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

При сборке проекта файлы ресурсов и XLF-файлы синхронизируются.

  • XLF-файлы обновляются, чтобы отразить любую добавленную или удаленную строку, а также добавлены или удалены файлы ресурсов.
  • Файлы ресурсов обновляются до отражения всех переведенных строк в XLF-файлах.

Это подробно описано в разделе "Использование набора средств для многоязычных приложений".

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

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

Что такое Microsoft Translator?

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

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

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

Что такое псевдоязычие и что такое псевдо-отслеживающие ресурсы?

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

Разделы справки задайте для моего языка псевдоязык, чтобы я смог протестировать свои псевдо-loc'd строки?

Это объясняется в разделе "Использование набора средств многоязычных приложений".

Какие проблемы локализуемости можно найти с помощью псевдоязыка?

Это объясняется в разделе "Использование набора средств многоязычных приложений".

Я не вижу никаких переводов при запуске приложения, или мое приложение только частично переведено

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

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

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

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

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

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

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

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

Это сообщение можно отобразить, когда XLF-файл содержит неподдерживаемый целевой язык. Например, "zh-cht" неправильно (измените его на "zh-hant"), а "zh-chs" неправильно (измените его на "zh-hans").

Есть ли способ узнать больше сведений об ошибках, которые я вижу?

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

Запуск MSBuild из командной строки также может создавать дополнительные сообщения.

msbuild /t:rebuild <project-name>

Сбой перевода импорта

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

Что делать, если у переводчика нет Windows 10, Windows 11 и (или) Visual Studio и (или) набора средств для многоязычных приложений?

При выборе выходных данных: получатель почты в диалоговом окне "Экспорт строковых ресурсов" электронная почта содержит ссылку на скачивание и установку набора средств многоязычных приложений (MAT). Переводчик по-прежнему может установить автономный редактор многоязычного редактора MAT даже без Windows 10, Windows 11 или Visual Studio.

Дополнительные сведения см. в разделе "Использование набора средств многоязычных приложений".

Что произошло с файлами "MarkupRules.xml" и "ResourcesLocks.xml"?

Набор средств многоязычных приложений не использует собственные файлы блокировки ресурсов. Вместо этого тег <mrk> XLIFF 1.2 добавляется непосредственно в 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. Сборка из командной строки; Результирующая ошибка может содержать больше сведений, чем сообщается в выходных данных сборки.

Не удалось выполнить сертификацию приложения в Microsoft Store

Перед началом процесса сертификации Microsoft Store необходимо исключить <project-name>.qps-ploc.xlf файл из проекта. Псевдоязычие используется для обнаружения потенциальных проблем локализуемости или ошибок, но не является допустимым языком Microsoft Store. Если оно не удалено, приложение завершится ошибкой во время процесса сертификации Microsoft Store.

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

Расширение Visual Studio (MAT VS) многоязычного набора приложений собирает анонимные данные об использовании и отправляет его на серверы Майкрософт, чтобы улучшить наши продукты и службы. Телеметрия отключена по умолчанию и может быть включена или отключена в любое время.

Данные об использовании: это анонимные сведения о том, какие функции используются. Например, добавление нового языка в решение с поддержкой MAT.

Данные конфигурации: это анонимные сведения о версии MAT VS, установленной в и версии Windows, в которой она выполняется.

Ниже приведен конкретный пример данных, собранных в следующем формате: key / Value / Notes:

  • AddLanguage / MachineID: xxxx/ Это основано на хэше сетевого адаптера. Она не гарантируется уникальной.
  • Произошло событие TimeStamp / 2022/01/07T22:04:45.0000000Z / Time.
  • MAT_Version / 4.1.02 / Установленная версия MAT.
  • Языки / fr,es,de/DE / Список языков, добавленных в проект.

Все данные собираются с помощью Application Insights и отправляются в Azure Log Analytics. Данные сохраняются в течение 90 дней, а затем удаляются.