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



    Caché Localization Manager


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

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


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


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

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


    image

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


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

    где:


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



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


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


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



    Если вы используете 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() 

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

    Проверить корректно ли установлено приложение можено перейдя по ссылке http://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.

    Метки:
    • +19
    • 2,2k
    • 2
    InterSystems 139,53
    Вендор: СУБД Caché, OLAP DeepSee, шина Ensemble
    Поделиться публикацией
    Похожие публикации
    Комментарии 2
    • 0
      Кстати тут явно что-то напутано с I11n, должно быть i18n и с в нижнем регистре.
      • 0
        Да, вы правы! Спасибо!

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое