Ця публікація буде розповіддю про цікавий екземпляр Open edx. Ми всі знаємо, що платформа Open edX — це великий, складний і потужний інструмент. Кожен екземпляр Open edX можна налаштувати по-різному відповідно до його потреб і цілей. Отже, це принесе іншу історію на стіл.
У цій історії дві дійові особи. Перше – Агентство сприяння та розвитку туризму Туреччини (TGA). TGA займається просуванням Туреччини як бренду та популярного напряму внутрішнього та міжнародного туризму. Інший гравець Артистанбул, технологічна компанія, що пропонує програмні рішення з відкритим кодом. Протягом останніх 6 років Artistanbul надавав послуги з встановлення та хостингу, налаштування платформи та розробки курсів для платформи Open edX. Artistanbul надає послуги Open edX неурядовим організаціям, університетам і компаніям. Таким чином, вони мають великий досвід роботи з конфігураціями Open edX. У цій історії, Артистанбул є постачальником Open edX Marketplace, який встановлює, налаштовує та підтримує платформу Open edX для TGA.
Ця історія про мови, їх багато. Екземпляр Open edX, про який ми будемо говорити в цій статті, наразі підтримує 13 різних мов (турецьку, англійську, німецьку, румунську, французьку, голландську, іспанську, іврит, російську, арабську, китайську, польську, українську), і ця кількість зростає з кожним роком. день. Підтримка багатьох мов вимагає певного досвіду, і ми вважаємо, що для супроводжуючих Open edX може бути корисно дізнатися про ноу-хау в такий спосіб.
Історія Artistanbul з мовами в проекті All in Türkiye ( https://allinturkiye.com/ ) розпочато у версії Open edX Koa. У той час ще не було мікроінтерфейсних структур, і Artistanbul міг додавати мови лише за допомогою прапора на сторінці адміністратора. Однак нещодавно вони оновили до Olive і довелося заново відкрити цей процес підтримки мови з нуля. Причиною цього є те, що попередній метод (також метод, запропонований у документації Tutor) не працював після інтеграції MFE.
Як виглядає трубопровід? По-перше, рішення щодо мови надходить з операційної сторони TGA. Потім вони створюють модулі для додавання цієї мови. Тим часом Artistanbul додає мови до свого тестового екземпляра. Тут приємно відзначити, що є дві різні установки: тестова та виробнича. Усі зміни спочатку вносяться в тестовий екземпляр. Якщо контроль проходить, то і на виробництві роблять. Після додавання мови в тестовий екземпляр Artistanbul може виявити деякі відсутні переклади. Потім вони запитують їхні правильні переклади, і TGA спілкується з перекладачами. Після цього кроку Artistanbul оновлює як файли .PO, так і жорстко закодовані переклади, якщо потрібно. Після того, як усе зроблено, вони вносять ці зміни у виробництво та імпортують модуль. І ось, додано нову мову.
Чому складно підтримувати кілька мов? Це питання має як технічну, так і експлуатаційну відповідь. Artistanbul використовує Olive у проекті All in Turkey. Метод, запропонований у документації Tutor, не працював для мікроінтерфейсних програм, тому замість цього їм потрібно було відредагувати вихідний код програм MFE. Це викликало їхні власні проблеми з керуванням пакетами. Інша складність полягає в тому, що Artistanbul має переконатися, що файли .PO правильно відформатовані та працюють належним чином після кожного редагування. Нарешті, мови мають відмінності, які можуть викликати додаткову роботу. Наприклад, деякі мови є RTL, а інші – LTR, тому дизайн сертифікатів у них відрізняється.
З іншого боку, існують і операційні труднощі. Іноді копіювання та вставлення тексту, який ви не можете прочитати, може призвести до помилок, які важко розпізнати. Крім того, скопіювати та вставити іноді форматувати текст з LTR на RTL або RTL на LTR, і ви навіть не знатимете, як людина, яка не вміє читати цією мовою.
Якщо ви зацікавлені в підтримці кількох мов на платформі Open edX і хочете дізнатися більше, будь ласка, не соромтеся звертатися Артистанбул. Ви також можете переглянути записану презентацію зустрічі на цю тему на веб-сайті Open edX ( https://openedx.org/video/open-edx-meetup-featuring-use-cases-for-multi-lingual-support-continuing-education/ ) або на YouTube ( https://www.youtube.com/watch?v=N4S0ceIWa3c ).
![]()