api.locale Работа с текущей локализацией

  • api.locale.call (object, callable)

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

    Параметры метода:

    • object

      Возможные значения:

      • Объект пользователя (employee), идентификатор пользователя.

        Если первым аргументом передается пользователь (employee), то перед выполнением задачи будет установлена локаль, полученная из персональных настроек пользователя, если она отличается от текущей установленной, а после выполнения задачи будет возвращено первоначальное значение локали.

      • Строка с локалью.

        Если первым аргументом передается строка с локалью ("ru", "en" или иная локаль поддерживаемая платформой), то перед выполнением переданной будет установлена данная локаль, если она отличается от текущей установленной, а после выполнения задачи будет возвращено первоначальное значение локали

    • callable — задача, которую необходимо выполнить и вернуть результат работы.

    Особенности работы метода:

    • Если переданная строка с локалью не состоит в списке доступных локалей для приложения, то создается объект-исключение.
    • Если вместо пользователя или строки с локалью передано нечто иное, то создается объект-исключение.
    • Если передан идентификатор пользователя, у которого настроена системная локаль (то есть пользователь не изменял язык системы вручную), то метод выполняется в системной локали.
    • Если передан не существующий пользовательский UUID, то метод выполняется в системной локали.
    • Для задания кода локали используется официальный двухбуквенный код языка.

    Пример 1. Выполнение задачи под локалью пользователя:

    def employee = utils.get('employee$8517')
    return api.locale.call(employee) { utils.get('mc$25701').title }

    Пример 2. Выполнение задачи под локалью, переданной в методе:

    api.locale.call('ru') { utils.edit('employee$8517', ['title' : 'newTitle']) }