Caché Localization Manager или I11N в InterSystems Caché

b0b559464778701b45e5130e20a19ffe.jpg

Caché Localization Manager


Если двумя словами, то CLM это утилита, которая может быть полезна при локализации/интернационализации/добавлении мультиязычности проектов на InterSystems Caché.

Представьте, у Вас есть готовый проект, где весь контент на русском языке, а теперь возникла необходимость добавить англоязычную локализацию. Вы долго и упорно переводите все на английский язык, тратите на это немало времени и сил. А что если нужно локализовать не на один язык, а на десять? Именно в таких проектах и нужно использовать CLM. Он в один клик локализует весь контент проекта на нужный язык с возможностью исправления некорректного перевода.


Возможности CLM:


  • Добавление новой локализации.
  • Удаление локализации.
  • Экспорт локализации.
  • Импорт локализации
  • Возможность просматра двух таблиц одновременно.
  • Удобный переход по областям.
  • Проверка орфографии.

Давайте теперь «заглянем под капот»


image

В Caché есть стандартный подход для реализации I11N с помощью макроса $$$TEXT


      $$$TEXT("Text", "Domain", "Language") 

где:


Text — это тот текст, который в дальнейшем будете использовать для локализации.
Domain — это модули в ваших приложениях.
Language — это язык, на котором написан «Text».

6ba16088a73f41129fb23bf3641334f7.JPG


При использовании $$$TEXT в проектах данные автоматически вносятся в глобал ^CacheMsg. Как раз с этим глобалом и работает CLM.


В ^CacheMsg все аналогично $$$TEXT, только добавляется «ID» в виде хеша текста.


      ^CacheMsg("Domain", "Language", "ID") = "Text" 

ccd24bdb1e6643a162ae35e0325c2e6c.jpg

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

Date Of Sale 

Конструкция указанная выше так же может быть использована для внесения данных в глобал ^CacheMsg. Преимущество этого способа в том, что тут можно самому задавать id.


На CSP страницах эту конструкцию можно использовать где угодно. Для выпадавшего списка, всплывающих подсказок, в кнопках и т.д.


Установка


Первым делом необходимо скачать класс Installer с GitHub и импортировать в любую удобную область в Caché. Я буду использовать область USER. После, открываем терминал и переходим в область USER. Для начала установки достаточно ввести всего одну команду:


      USER> do ##class(CLM.Installer).setup() 

Процесс установки.
d171130f3d6af632092c4e61e22ab6ef.gif

Проверить корректно ли установлено приложение можено перейдя по ссылке http://localhost:57772/csp/clm/index.csp (localhost:57772 — путь к вашему серверу).

Настройка


Далее нужно получить Yandex API key. Как раз с помощью Яндекса CLM и выполняет локализацию.

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

Все слова пакуются из 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)

© Habrahabr.ru