Каков правильный способ реализации Hyphenopoly?

У меня проблемы с реализацией Hyphenopoly (https://github.com/mnater/Hyphenopoly) в проекте Django. Иногда кажется, что все работает нормально, иногда нет. Кроме того, на мобильном браузере результат неприятен, так как дефис отображается непоследовательно (или вообще не отображается) на элементах с итальянским языком. Кроме того, я не могу понять предоставленную документацию. Моя вина.

Здесь я сообщаю часть структуры каталогов проекта

Как вы видите, и как я понял, я загрузил только несколько файлов из оригинальной библиотеки, чтобы дефисировать итальянские и английские фрагменты текста (разделенные или смешанные). Основной язык по-прежнему en, поскольку я определил его в атрибуте lang элемента html; для каждого элемента с итальянским содержанием я указал атрибут language соответственно (для смешанного содержания я использовал spans).

В элементе head моего файла base.html:

<script src="{% static './hyphens/Hyphenopoly_Loader.js' %}"></script>
<script src="{% static 'HyphenConfig.js' %}"></script>

Файл HyphenConfig.js, вместо него:

$(document).ready(function() {
    var Hyphenopoly = {
        require: {
            'en-us': 'ALL',
            'en': 'ALL',
            'it': 'ALL'
        },
        paths: {
            patterndir: "./hyphens/patterns/",
            maindir: "./hyphens/"   
        },
        setup: {
            selectors: {
                '.hyphenate': {
                    compound: "all",
                    leftmin: 0,
                    rightmin: 0,
                    minWordLength: 4
                }
            }
        }
    };
});

Я также определил класс hyphenate в глобальном css-файле:

.hyphenate {
    hyphens: auto !important;
    -webkit-hyphens: auto !important;
    -ms-hyphens: auto !important;
}

То, что я ожидал?

Для каждого элемента, при условии указания языка (en или it) и класса дефиса, я ожидал лучшего результата, чем тот, который наблюдал.

Правильная ли это реализация, или мне не хватает какого-то файла или конфигурации?

Я автор hyphenopoly.js Есть некоторые проблемы с вашей реализацией.

  1. вам нужно будет вызвать функцию Hyphenopoly.config в файле HyphenConfig.js (https://mnater.github.io/Hyphenopoly/Config.html)
  2. Для требования нужных языков вам нужно будет указать длинное слово на нужном языке или "FORCEHYPHENOPOLY" для принудительного использования дефиса ("ALL" не будет работать вообще).
  3. Язык "en" не поддерживается, но поддерживаются "en-us" и "en-gb". Если ваша страница использует "en", вам нужно определить "fallback": https://mnater.github.io/Hyphenopoly/Config.html#fallbacks-optional
  4. .
  5. Проверьте в консоли браузера сообщения об ошибках (чтобы убедиться, что пути разрешены правильно)
  6. 'leftmin': 0 и 'rightmin': 0 не имеет смысла. Значения не будут меньше, чем определено в шаблонах (leftmin: 2, rightmin: 3 для en-us и leftmin: 2, rightmin: 2 для it).
  7. Помните, что большинство браузеров поддерживают css-гифен для en и it, поэтому дефисное написание не сработает (если только вы не использовали "FORCEHYPHENOPOLY", см. п. 2)
  8. .

Попробуйте следующее (не проверено):

Hyphenopoly.config({
    require: {
        'en-us': 'supercalifragilisticexpialidocious',
        'it': 'architettonicamente'
    },
    fallbacks: {
        'en': 'en-us'
    },
    paths: {
        patterndir: "./hyphens/patterns/",
        maindir: "./hyphens/"   
    },
    setup: {
        selectors: {
            '.hyphenate': {
                compound: "all",
                minWordLength: 4
            }
        }
    }
});
Вернуться на верх