Локализация приложений Microsoft TeamsLocalization for Microsoft Teams apps

При локализации приложения Microsoft Teams необходимо учитывать три основных аспекта.When localizing your Microsoft Teams app there are three major areas you need to consider.

  1. Список AppSource (если выполняется публикация в магазине приложений).Your AppSource listing (if you're publishing to the app store).
  2. Строки конечного пользователя в манифесте приложения (например, команды Bot).The end-user facing strings in your app manifest (for example bot commands).
  3. Реагирование на локализованный текст, отправленный пользователями;Responding to localized text submitted from your users.

Локализация списка AppSourceLocalizing your AppSource listing

Если вы публикуете в магазине приложений, вам необходимо знать, что локализация вашего списка AppSource пока не поддерживается.If you're publishing to the app store, you need to be aware that localizing your AppSource listing is not yet supported. Однако в процессе подготовки к поддержке локализованных вхождений в магазине App можно добавить в список дополнительные языки.However, in preparation for support for localized listings in the app store you can add additional languages to your listing. В настоящее время только сведения о языке по умолчанию (Английская версия), которые вы предоставляете в центре партнеров для вашего списка, будут отображаться в списке веб-сайтов AppSource для вашего приложения.Currently only the default (English) language information you provide in Partner Center for your listing will appear in the AppSource website listing for your app.

Чтобы настроить дополнительный язык для приложения, в центре партнероввыберите английский и дополнительный язык приложения.To configure an additional language for your app, in Partner Center, select both English and the additional language of the app. В этом примере используется французский язык.French is used in this example.

  1. Добавление английского языкаAdd English language
    • Введите имя приложения.Fill in the app name.
    • Заполните краткое описание приложения на английском языке.Fill in a short description of the app in English.
    • Заполните подробное описание приложения на английском языке.Fill in the long description of the app in English.
    • В подробном описании добавьте также строку "это приложение доступно на французском языке".In the long description, please also add the line “This app is available in “French”.
    • Отправьте изображения пользовательского интерфейса приложения (на английском языке).Upload the images of your app UI (in English).
  2. Добавление французского языкаAdd French language
    • Введите имя приложения.Fill in the app name.
    • Заполните краткое описание приложения на французском языке.Fill in a short description of the app in French.
    • Заполните подробное описание приложения на французском языке.Fill in the long description of the app in French.
    • Отправьте изображения пользовательского интерфейса приложения (на французском языке).Upload the images of your app UI (in French).

Изображения, которые вы отправляете с английским языком, будут использоваться в AppSource.The images you upload with the English language will be the ones used in AppSource.

Локализация строк в манифесте приложенияLocalizing the strings in your app manifest

Для правильной локализации приложения необходимо использовать схему приложения Microsoft Teams версии 1.5 +.You must use the Microsoft Teams app schema v1.5+ to properly localize your app. Это можно сделать, присвоив $schema атрибуту в manifest.jsфайла значение ' https://developer.microsoft.com/en-us/json-schemas/teams/v1.8/MicrosoftTeams.Localization.schema.json ' и обновив свойство ' версия манифеста ' до ' 1,7 '.You can do this by setting the $schema attribute in your manifest.json file to 'https://developer.microsoft.com/en-us/json-schemas/teams/v1.8/MicrosoftTeams.Localization.schema.json' and updating the 'manifestVersion' property to '1.7'.

Пример manifest.jsпри измененииExample manifest.json change

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.8/MicrosoftTeams.Localization.schema.json",
  "manifestVersion": "1.5",
  ...
}

Затем необходимо добавить свойство "Локализатионинфо" с языком по умолчанию, который поддерживает ваше приложение.You will then want to add the 'localizationInfo' property with the default language that your application supports. В качестве последнего базового языка используется язык по умолчанию, если параметры клиента пользователя не совпадают с какими-либо из дополнительных языков.The default language is used as the final fallback language if the user's client settings do not match any of your additional languages.

Пример manifest.jsпри измененииExample manifest.json change

{
  ...
  "localizationInfo": {
    "defaultLanguageTag": "en"
  }
  ...
}

Вы можете предоставить дополнительные файлы JSON с переводом всех строк, отличных от пользователя, в манифесте.You can provide additional .json files with translations of all the user facing strings in your manifest. Эти файлы должны соответствовать схеме JSON файла локализации , и их необходимо добавить в свойство "локализатионинфо" манифеста.These files must adhere to the Localization file JSON schema and they must be added to the 'localizationInfo' property of your manifest. Каждый файл соответствует тегу языка, который клиент Teams использует для выбора соответствующих строк.Each file correlates to a language tag which the Teams client uses to choose the appropriate strings. Тег Language имеет форму, - но мы не рекомендуем опустить часть для всех регионов, поддерживающих нужный язык.The language tag takes the form of - but it is recommended to omit the portion to target all regions that support the desired language.

Клиент Teams будет применять строки в указанном порядке: строки языка по умолчанию — строки языка по умолчанию — > только строки > язык пользователя и строки области пользователя.The Teams client will apply the strings in this order: default language strings -> user's language only strings -> user's language + user's region strings.

Например, вы предоставляете язык по умолчанию: "fr" (французский, все регионы) и дополнительные языковые файлы для "en" (английский, все регионы) и "en-GB" (английский, Великобритания).For example, you provide a default language of 'fr' (French, all regions), and additional language files for 'en' (English, all regions) and 'en-gb' (English, Great Britain). Если для языка пользователя задано значение "en-GB":If the user's language is set to 'en-gb':

  1. Клиент Teams получит строки "fr", заменяя их строками "en".The Teams client will take the 'fr' strings overwrite them with the 'en' strings.
  2. Перезаписать их строками "en – GB".Overwrite those with the 'en-gb' strings.

Если для языка пользователя задано значение "en-CA":If the user's language is set to 'en-ca':

  1. Клиент Teams получит строки "fr", заменяя их строками "en".The Teams client will take the 'fr' strings overwrite them with the 'en' strings.
  2. Так как не указана локализация "en-CA", будут использоваться локализации "en".Since no 'en-ca' localization is supplied, the 'en' localizations will be used.

Если для языка пользователя задано значение "es-ES", клиент Teams будет принимать строки "fr" и не будет переопределять их с помощью языковых файлов.If the user's language is set to 'es-es', the Teams client will take the 'fr' strings and will not override them with any of the language files.

Таким образом, настоятельно рекомендуется предоставлять в манифесте только верхние и языковые переводы в манифесте ("en" вместо "en-US"), а также предоставлять переопределение на уровне области только для тех строк, которые им нужны.Therefore, it is strongly recommended to provide top-level, language-only translations in your manifest ('en' instead of 'en-us') and only provide region-level overrides for the few strings that need them.

Пример manifest.jsпри измененииExample manifest.json change

{
  ...
  "localizationInfo": {
    "defaultLanguageTag": "en",
    "additionalLanguages": [
      {
        "languageTag": "en-gb",
        "file": "en-gb.json"
      },
      {
        "languageTag": "fr",
        "file": "fr.json"
      },
      {
        "languageTag": "pl",
        "file": "pl.json"
      }
    ]
  }
  ...
}

Пример файла Localization. JSONExample localization .json file

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.8/MicrosoftTeams.Localization.schema.json",
  "name.short": "Le App",
  "name.full": "App pour Microsoft Teams",
  "description.short": "Créez d'excellentes applications pour Microsoft Teams avec App.",
  "description.full": "Créez de nouvelles applications Microsoft Teams, concevez et prévisualisez des cartes bot, et explorez la documentation avec App.",
  "staticTabs[0].name": "Editeur de manifest",
  "staticTabs[1].name": "Editeur de cartes",
  "staticTabs[2].name": "Bibliothèque de contrôles",
  "bots[0].commandLists[0].commands[0].title": "chercher",
  "bots[0].commandLists[0].commands[0].description": "Rechercher la documentation Teams pertinente"
}

Обработка локализованных текстов, отправленных пользователямиHandling localized text submissions from your users

Если вы предоставляете локализованные версии вашего приложения, то, скорее всего, ваши пользователи будут отвечать на один и тот же язык.If your provide localized versions of your application it is very likely that your users will respond with the same language. Команды не переводятся обратно на язык по умолчанию, поэтому ваше приложение должно их обработать.Teams does not translate the user submissions back to the default language, so your app will need to handle that. Например, если вы задаете локализованные сообщения commandList , ответы на ваш Bot будут иметь локализованный текст команды, а не язык по умолчанию.For example, if you provide a localized commandList, the responses to your bot will be the localized text of the command, not the default language. Ваше приложение должно будет отвечать соответствующим образом.Your app will need to respond appropriately.