Создан материал, который привязан к термину таксономии. Поскольку термины представляют собой буквы алфавита, то появляется проблема с буквами Е и Э: адрес у первой - "e", у второй - "e-0". Таким образом, при создании материала и привязке его к термину Э, в адресе у него указывается ссылка на "e".
Может кто сталкивался с подобным: с необходимостью подправить букву транслитерации, и где именно лежит сей файл.
Вот здесь нашел обсуждение нечто похожего, но без конечного решения.
Комментарии
Хук hook_transliteration_overrides_alter пробовали?
Пример:
<?php
// Provide special overrides for German for a custom site.
// The core-provided transliteration of Ä is Ae, but we want just A.
function MYMODULE_transliteration_overrides_alter(&$overrides, $langcode) {
if ($langcode == 'de') {
$overrides[0xc4] = 'A';
}
}
?>
В D6 можно было так.
Вопрос про D9, если автор верно указал тег версии
Да, D9
Не пробовал, т.к. хз какая переменная [0xc4] отвечает за букву Э.
Не пробовал, т.к. хз какая переменная [0xc4] отвечает за букву Э.
Открыть в папке с модулем файл отвечающий за русский язык и посмотреть коды букв
Пытался в модулях ядра найти файлы с библиотеками:
..\vendor\symfony\polyfill-iconv\Resources\charset\много фалов типа from.windows-1251.php с кодировками
и
..\core\lib\Drupal\Component\Transliteration\data\много фалов типа x6d.php
есть там файлы типа da.php, de.php, eo.php, kg.php, uk.php, а русского (ru.php) нет.
В общем и там пытался найти букву Э, находил, но там только какие-то кракозябры.
Нашел на Википедии кирилицу в юникоде:
[042D] - Э
[044D] - э
попробовал хук изменить в
\core\lib\Drupal\Core\Language\language.api.php
<?php
function hook_transliteration_overrides_alter(&$overrides, $langcode) {
// Provide special overrides for German for a custom site.
if ($langcode == 'en') {
// The core-provided transliteration of Ä is Ae, but we want just A.
$overrides[042D] = 'eh';
}
}
?>
Ничего не изменилось
<?php($langcode == 'ru')?>
тоже пробовал