Почему Session.getActiveUserLocale() возвращает пустую строку, если для языка Google выбран китайский?

Я использую Session.getActiveUserLocale(), чтобы получить языковой стандарт пользователя в надстройке Google Calendar Workspace (runtimeVersion: V8), и он отлично работает для всех языков, которые я тестировал, за исключением китайского (как упрощенного, так и традиционного).

      function onCalendarHomePageOpen(e) {
Logger.log("Language Code: " + Session.getActiveUserLocale());
}

Должен возвращать "zh-CN", если мой язык установлен на упрощенный китайский на https://myaccount.google.com/language , но возвращает пустую строку.

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

У меня есть возможности https://www.googleapis.com/auth/script.locale а также addOns.common.useLocaleFromApp является true, и, как я уже упоминал, он работает должным образом для всех языков, которые я пробовал, включая японский и арабский.

Это известная проблема? Кто-нибудь может помочь? Спасибо!

1 ответ

Я зарегистрировал ошибку для этого

Session.getActiveUserLocale() не возвращает значения для китайского языка, отлично работает на других языках

Обязательно зайдите и отметьте это, чтобы сообщить Google, что это влияет на вас.

Шаги размножения

  1. Запустите новый проект скрипта приложений.

  2. Вставьте этот код ниже:

    code.gs

            function onCalendarHomePageOpen(e) {
        Logger.log("Language Code: " + Session.getActiveUserLocale());
    }
    
  3. Замените манифест следующим образом:

    appscript.json

            { 
       "timeZone":"Europe/Madrid",
       "addOns":{ 
          "calendar":{ 
             "homepageTrigger":{ 
                "runFunction":"onCalendarHomePageOpen",
                "enabled":true
             }
          },
          "common":{ 
             "logoUrl":"https://ssl.gstatic.com/docs/script/images/logo/script-64.png",
             "name":"MRE Chinese Locale",
             "useLocaleFromApp":true
          }
       },
       "oauthScopes":[
          "https://www.googleapis.com/auth/script.locale",
          "https://www.googleapis.com/auth/calendar.addons.execute"
       ],
       "exceptionLogging":"STACKDRIVER",
       "runtimeVersion":"V8"
    }
    
  4. Перейдите в раздел «Развертывание»> «Тестовые развертывания» - выберите тип «Добавить», затем установите его для своей учетной записи.

  5. Откройте страницу казней.

  6. В новой вкладке перейдите на https://calendar.google.com/ и после загрузки на боковой панели вы должны увидеть значок для скрипта приложений. Щелкните значок, чтобы открыть боковую панель. Это вызовет функцию.

  7. Вернитесь на страницу казней.

  8. В другой новой вкладке перейдите на https://myaccount.google.com/u/1/language.

  9. Измените предпочитаемый язык на китайский, упрощенный или традиционный

  10. Обновите страницу календаря и снова откройте боковую панель.

  11. Проверьте страницу казней.

Ожидаемый результат:

Изначально моя учетная запись была настроена на английский язык и выводилась Language code: en, Я изменил его на испанский, и он вывел Language code: es. Для китайцев я ожидал Langauge code: zh.

Фактический результат:

Language Code: - нет языкового кода для китайского.

Другие вопросы по тегам