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