Адміністратор працює російською, майстер — українською, а нагадування про задачу ставить крон, у якого мови немає взагалі. Чия мова має опинитися в повідомленні? Відповідь одна і вона не про зручність: мова читача.
Чому це взагалі питання
Повідомлення народжується в момент події. Його створює інша людина — та, що перенесла запис або призначила задачу, — або й зовсім служба за розписом. Читає його третій. Якщо текст зібрати відразу, він приїде мовою автора: майстер, у якого весь кабінет український, отримував «Оплата не прошла» посеред українського інтерфейсу.
Тому в повідомлення кладеться не готовий рядок, а те, чим йому належить стати: ключ і підстановки. Переклад відбувається останньої миті — коли вже відомо, кому саме це читати.
Порядок вибору мови
Мова отримувача шукається драбинкою, за спаданням достовірності:
- Вибір людини в профілі. Якщо він є — сперечатися ні з чим.
- Мова, якою людина працює. Інтерфейс запам’ятовує її сам: застосунок повідомляє серверу мову на кожному запиті, і це спостереження зберігається. До налаштувань профілю доходять одиниці, а ця мова відома про кожного.
- Мова компанії. Для крона це значно вірніше замовчування, ніж спільне для всієї системи: повідомлення салону логічно писати мовою салону.
- Мова застосунку. Остання щабель, і саме з неї колись брався російський текст в українському кабінеті.
Повідомлення, у якого особистого отримувача немає — те, що адресоване всій компанії, — перекладається мовою компанії. Це і є другий випадок, для якого потрібна третя щабель.
Два поля замість одного
Вибір людини і спостереження за тим, якою мовою вона працює, зберігаються окремо, і це не дублювання.
Порожнє значення у виборі — це теж відповідь: «як за замовчуванням». Людина не просила конкретної мови, вона погоджується з тим, що система вирішить сама. Якщо записати туди спостереження, у цієї відповіді не залишиться сенсу: відрізнити «я вибрав російську» від «я того вівторка зайшов із російського браузера» буде нічим, а перше має бути сильнішим за друге назавжди.
Тому спостереження пишеться у своє поле і лише коли воно змінилося: мова приходить із кожним запитом, і запис «те саме» означав би оновлення профілю на кожне звернення до застосунку.
Як це виглядає на практиці
Перемкніть мову в шапці застосунку — і повідомлення почнуть приходити нею ж. Окремо нічого налаштовувати не потрібно: мова, якою ви працюєте, і є відповіддю на питання «якою мовою вам писати».
Явний вибір мови повідомлень підтриманий на стороні сервера і поки не винесений у профіль окремим перемикачем. Коли він там з’явиться, працювати він буде так, як описано вище: вибрана мова сильніша за спостереження, а порожнє значення означає «як за замовчуванням» і повертає драбинку до мови інтерфейсу.
Мови, якими продукт розмовляє, — українська, російська та англійська. Значення поза цим списком ігнорується, тобто драбинка просто йде на щабель нижче, а не віддає текст незнайомою мовою.
Що перевірити, якщо мова все-таки не та
- Подивіться, якою мовою у вас інтерфейс. Повідомлення йде за ним, а не за мовою того, хто подію створив.
- Перевірте мову компанії в її налаштуваннях: вона вирішує для повідомлень без особистого отримувача і для тих випадків, коли про людину нічого не відомо.
- Рядки, які вже лежать у базі, заднім числом не перекладаються. Назви послуг, створених стартовим набором, або текст, набраний руками, повідомлення покаже так, як він записаний. Перекладається оболонка повідомлення, а не вміст вашого салону.
Коментарі
Коментарів поки немає. Поставте запитання — відповідаємо протягом доби.