Почему 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, что это влияет на вас.
Шаги размножения
Запустите новый проект скрипта приложений.
Вставьте этот код ниже:
code.gs
function onCalendarHomePageOpen(e) { Logger.log("Language Code: " + Session.getActiveUserLocale()); }
Замените манифест следующим образом:
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" }
Перейдите в раздел «Развертывание»> «Тестовые развертывания» - выберите тип «Добавить», затем установите его для своей учетной записи.
Откройте страницу казней.
В новой вкладке перейдите на https://calendar.google.com/ и после загрузки на боковой панели вы должны увидеть значок для скрипта приложений. Щелкните значок, чтобы открыть боковую панель. Это вызовет функцию.
Вернитесь на страницу казней.
В другой новой вкладке перейдите на https://myaccount.google.com/u/1/language.
Измените предпочитаемый язык на китайский, упрощенный или традиционный
Обновите страницу календаря и снова откройте боковую панель.
Проверьте страницу казней.
Ожидаемый результат:
Изначально моя учетная запись была настроена на английский язык и выводилась
Language code: en
, Я изменил его на испанский, и он вывел
Language code: es
. Для китайцев я ожидал
Langauge code: zh
.
Фактический результат:
Language Code:
- нет языкового кода для китайского.