Виктор |
|
---|---|
Нужно Добавить префикс i18n.admin.structure, так как плагин по ссылке переходит на редактирование только page категорий &n=$n
$t->assign(array( 'ADMIN_STRUCTURE_I18N_LINK' => cot_rc_link(cot_url('plug', 'e=i18n&m=structure&n=$n'),$L['i18n_structure']), 'ADMIN_STRUCTURE_I18N_URL' => cot_url('plug', "e=i18n&m=structure&n=$n") )); далее при написании своего модуля, уже в i18n.structure можно уже перехватить код модуля Додано 2 місяця потому: что бы переводы заработали хотя бы в структуре модулей биржи и не только,.. это не полное решение но кому-то может пригодится я могу где-то ошибаться, так как не помню как делал все подробно, просто смотрю в код и описываю примерные действия, если что поправьте.. 1) файл admin.structure.php, строка примерно 66, есть ссылка которая ведет в редактирование категорий и их перевода если установлен плагин i18n, 'ADMIN_STRUCTURE_EXT_URL' => cot_url('admin', 'm=structure&n='.$code), здесь у нас есть переменная $code в которой у нас есть код разрешения, у которого есть соответственно структура (folio,market,'ваш модуль'), префикс n передает его далее 2) далее по хуку admin.structure.tags в admin.structure.php подключается i18n.admin.structure.php в котором у нас прописаны ссылки $t->assign(array( 'ADMIN_STRUCTURE_I18N_LINK' => cot_rc_link(cot_url('plug', 'e=i18n&m=structure'), $L['i18n_structure']), 'ADMIN_STRUCTURE_I18N_URL' => cot_url('plug', 'e=i18n&m=structure') )); как видно код разрешения здесь не указан и далее по коду переводятся только категории page, и далее все для page, здесь я добавил этот префикс чтобы можно с ним работать далее $t->assign(array( 'ADMIN_STRUCTURE_I18N_LINK' => cot_rc_link(cot_url('plug', 'e=i18n&m=structure&n=$n'),$L['i18n_structure']), 'ADMIN_STRUCTURE_I18N_URL' => cot_url('plug', "e=i18n&m=structure&n=$n") )); 3) переходим по ссылке "Интернационализация структуры", тоесть 'в файл' plugins\i18n\inc\i18n.structure.php, как я писал здесь в большинстве все функции работают для page, но теперь мы передали префиксом &n - код того расширения которого нужно перевести на другой язык, 3) (i18n.structure.php), чтобы проверить работает перевод категорий для других модулей, можно сделать следующее, строка примерно 40, к ссылке добавляем префикс 'I18N_LOCALE_ROW_URL' => cot_url('plug', "e=i18n&m=structure&n=$n&l=$lc", false, true), 4)далее, здесь уже вы должны придумать как организовать написать код, далее для примера, строка 135 foreach ($structure[$n] as $code => $row)//вместо page - $n { if (1==1)//здесь не помню, но данная функция cot_i18n_enabled($code) вроде для page, для примера 1==1, я вроде переписывал эту функцию $k++; if ($k < $d || $ii == $maxperpage) { continue; } $cat_i18n = $i18n_structure[$code][$i18n_locale]; $t->assign(array( 'I18N_CATEGORY_ROW_TITLE' => htmlspecialchars($row['title']), 'I18N_CATEGORY_ROW_DESC' => htmlspecialchars($row['desc']), 'I18N_CATEGORY_ROW_CODE_NAME' => "code[$ii]", 'I18N_CATEGORY_ROW_CODE_VALUE' => $code, 'I18N_CATEGORY_ROW_ITITLE_NAME' => "title[$ii]", 'I18N_CATEGORY_ROW_ITITLE_VALUE' => htmlspecialchars($cat_i18n['title']), 'I18N_CATEGORY_ROW_IDESC_NAME' => "desc[$ii]", 'I18N_CATEGORY_ROW_IDESC_VALUE' => htmlspecialchars($cat_i18n['desc']), 'I18N_CATEGORY_ROW_ODDEVEN' => cot_build_oddeven($ii) )); /* === Hook - Part2 : Include === */ foreach ($extp as $pl) { include $pl; } /* ===== */ $t->parse('MAIN.I18N_CATEGORY_ROW'); $ii++; } } в общем все просто, еще раз повторю мог где то упустить чтото,
|
|
This post was edited by Виктор (2020-11-02 18:33, 4 years ago) |