| Виктор |
|
|---|---|
|
Нужно Добавить префикс 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++;
}
}
в общем все просто, еще раз повторю мог где то упустить чтото,
Відредаговано: Виктор (02.11.2020 18:33, 5 років тому) |
| Kopusha |
|
|---|---|
|
И еще в i18n.admin.structure.php $pagenav = cot_pagenav('plug', 'e=i18n&n='.$n.'&m=structure&l='.$i18n_locale, $d, $totalitems,
|