Как сделать мультиязычность кнопки "All news by the author"

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X

Не могу найти как превести кнопки "All news by the author" и "Actoins"

#1 10 сентября 2024 в 12:51

Как сделать мультиязычность (перевод) кнопок «All news by the author»   и  «Actoins»

Устанавливал английский язык по умолчанию.

Изображение

  • «All news by the author» — нашел ввод текста в виджете — там поле не мультиязычное. Возможно ли это поменять и где?
  • «Actoins» — не нашел

Изображение

#2 10 сентября 2024 в 13:00

«Actoins» если правильно вас понял, то это название виджета. Расположение в разделе «виджеты и страницы»->«все страницы» рядом с виджетом глубиномера.

 (перевод) кнопок «All news by the author» наверное пока только костылем если само поле не мультиязычно.

файл system\controllers\content\widgets\author\widget.php строка примерно 163

вот это 

  1. // Учитываем приватность
  2. if($this->getOption('show_user_items_link') && cmsUser::getInstance()->isPrivacyAllowed($profile, 'view_user_'.$ctype['name'])) {
  3. $fields['user_items_link'] = [
  4. 'href' => href_to_profile($profile, ['content', $ctype['name']]),
  5. 'icon' => 'book-reader',
  6. 'text' => $this->getOption('user_items_link_title') ?: sprintf(LANG_WD_CON_AUTHOR_READ, mb_strtolower($ctype['labels']['profile']))
  7. ];
  8. }

заменить на  это

  1. $t_lang = cmsCore::getLanguageName() == 'en' ? $this->getOption('user_items_link_title') : 'Все новости автора';
  2. // Учитываем приватность
  3. if($this->getOption('show_user_items_link') && cmsUser::getInstance()->isPrivacyAllowed($profile, 'view_user_'.$ctype['name'])) {
  4. $fields['user_items_link'] = [
  5. 'href' => href_to_profile($profile, ['content', $ctype['name']]),
  6. 'icon' => 'book-reader',
  7. 'text' => $t_lang ?: sprintf(LANG_WD_CON_AUTHOR_READ, mb_strtolower($ctype['labels']['profile']))
  8. ];
  9. }

При таком костыле на английском языке будет выведена надпись которую указали в виджете, а при всех остальных языках выведет указанную в кавычках в конце этой строки "$t_lang = cmsCore::getLang..."

#3 10 сентября 2024 в 13:48

Спасибо

Добавлено спустя 11 минут

всех остальных языках выведет указанную в кавычках в конце этой строки "$t_lang = cmsCore::getLang..."

AtlantisWeb

Для более 2х языков получается не очень, но вариант. Спасибо

#4 10 сентября 2024 в 14:05

 dChirkis, ну это костыль, делать его мегауниверсальным, такое себе))

  1. switch(cmsCore::getLanguageName()){
  2. case 'ru':
  3. $t_lang = 'Все новости автора'; break;
  4. case 'ch':
  5. $t_lang = '所有作者的新闻'; break;
  6. default:
  7. $t_lang = $this->getOption('user_items_link_title');
  8. }
  9. // Учитываем приватность
  10. if($this->getOption('show_user_items_link') && cmsUser::getInstance()->isPrivacyAllowed($profile, 'view_user_'.$ctype['name'])) {
  11. $fields['user_items_link'] = [
  12. 'href' => href_to_profile($profile, ['content', $ctype['name']]),
  13. 'icon' => 'book-reader',
  14. 'text' => $t_lang ?: sprintf(LANG_WD_CON_AUTHOR_READ, mb_strtolower($ctype['labels']['profile']))
  15. ];
  16. }

case'ами по аналогии добавляете все нужные вам языки.

#6 10 сентября 2024 в 17:23

добавьте это

Loadырь

Спасибо, Это лучший вариант. Всё заработало.

#7 2 ноября 2024 в 21:44

Closed #1512 as completed.

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.