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

701b45e5130e20a19ffe.jpg»>image

Caché Localization Manager


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

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

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

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

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

image

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

$$$TEXT(«Text», «Domain», «Language»)
где:

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

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

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

    ^CacheMsg(«Domain», «Language», «ID») = «Text»
    image

    Если вы используете CSP, то использование $$$TEXT в CSP будет выглядеть следующим образом:

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

    Установка

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

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

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

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

    Настройка

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

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

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *