Caché Localization Manager або I11N в InterSystems Caché



Caché Localization Manager
Якщо двома словами, то CLM це утиліта, яка може бути корисна при локалізації/інтернаціоналізації/додавання мультимовності проектів на InterSystems Caché.

Уявіть, у Вас є готовий проект, де весь контент російською мовою, а тепер виникла необхідність додати англомовну локалізацію. Ви довго і наполегливо переводите все на англійську мову, витрачаєте на це чимало часу і сил. А що якщо потрібно локалізувати не на одну мову, а на десять? Саме в таких проектах і потрібно використовувати CLM. Він в один клік локалізує весь контент проекту на потрібну мову з можливістю виправлення некоректного перекладу.
Можливості CLM:
  • Додавання нової локалізації.
  • Видалення локалізації.
  • Експорт локалізації.
  • Імпорт локалізації
  • Можливість просматра двох таблиць одночасно.
  • Зручний перехід по областях.
  • Перевірка орфографії.

Давайте тепер "заглянемо під капот"
image
У Caché є стандартний підхід для реалізації I11N з допомогою макросу $$$TEXT
$$$TEXT("Text", "-", "Language") 

де:
Text
— це той текст, який надалі будете використовувати для локалізації.
Domain
— це модулі у ваших додатках.
Language
— це мова, на якій написаний "Text".

При використанні $$$TEXT у проектах дані автоматично вносяться в глобал ^CacheMsg. Як раз з цим глобалом і працює CLM.
^CacheMsg все аналогічно $$$TEXT, тільки додається "ID" у вигляді хешу тексту.
^CacheMsg("-", "Language", "ID") = "Text" 



Напевно, явною перевагою CLM є те, що він працює в серверному коді скрізь, де використовується $$$TEXT. Наприклад на CSP сторінках контент можна отримати наступним чином:

<csp:text id="14218931" domain="HOLEFOODS">Date Of Sale</csp:text> 

Конструкція зазначена вище так само може бути використана для внесення даних в глобал ^CacheMsg. Перевага цього способу в тому, що тут можна самому задавати
id
.
На CSP сторінках цю конструкцію можна використовувати де завгодно. Для випадав списку, спливаючих підказок, кнопках і т. д.
Установка
насамперед необхідно завантажити клас Installer з GitHub і імпортувати в будь-яку зручну область в Caché. Я буду використовувати область USER. Після, відкриваємо термінал і переходимо в область USER. Для початку установки досить ввести лише одну команду:
USER> do ##class(CLM.Installer).setup() 

Процес установки.
Перевірити чи коректно встановлено додаток можемо перейшовши по посиланню localhost:57772/csp/clm/index.csp (localhost:57772 — шлях до вашого сервера).

Налаштування
Далі потрібно отримати Yandex API key. Як раз з допомогою Яндекса CLM і виконує локалізацію.

Тепер давайте розберемося з перевіркою орфографії. У CLM був використаний Caché Native Access для реалізації SpellCheck. CNA був написаний для виклику зовнішніх функцій динамічних бібліотек, таких як .dll або .so. Сам SpellCheck працює з допомогою бібліотеки Hunspell. Для перевірки орфографії Hunspell потрібно два файлу. Перший файл — словник, що містить слова, другий — файл афіксів, який визначає значення спеціальних міток (прапорів) у словнику.

Як відбувається перевірка слів:

Всі слова пакуються з CLM, відправляються через CNA на Hunspell, де CNA конвертує їх на зрозумілий Hunspell мову. Hunspell перевіряє кожне слово, знаходить початкову форму слова і всі можливі варіації, і повертає назад. Де ж взяти всі ці словники і бібліотеки?

— CNA: скористайтеся готовим релізом цієї бібліотеки або зберіть її самі.
— Hunspell: так само, є готовий реліз і джерело для самостійної збірки.
— Ще, нам знадобитися стандартна бібліотека мови С. На windows він знаходиться за адресою C:\Windows\System32\msvcrt.dll.
— Завантажити словники можна тут.

На даний момент підтримується 50 мов.
Albanian 
Arabian 
Armenian 
Azeri 
Belarusian 
Bosnian 
Basque 
Bulgarian 
Catalan 
Croatian 
Czech 
Chinese 
Danish 
Dutch 
English 
Estonian 
Esperanto 
Finnish 
French 
Georgian 
German 
Greek 
Hebrew 
Hungarian 
Icelandic 
Indonesian 
Italian 
Japanese 
Kazan 
Korean 
Latin 
Latvian 
Lithuanian 
Macedonian 
Malay 
Maltese 
Norwegian 
Polish 
Portuguese Brazil 
Romanian 
Russian 
Spanish 
Serbian 
Slovak 
Slovenian 
Swedish 
Thai 
Turkish 
Ukrainian 
Vietnamese 

Весь процес налаштування зводиться до введення шляхів всього того, що було отримано раніше. Відкрийте CLM у браузері. У правому верхньому куті є кнопка «Set Paths». Натиснувши на нього ви побачите наступне вікно. Використовуйте його для введення шляхів.
image

Ось що повчитися у менеimage
Демонстрація локалізації простої форми для реєстрації

Критика, зауваження, пропозиції вітаються.
Весь вихідний код і інструкція так само викладена на github під ліцензією MIT.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.