Смена языка в 1.10.6

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 31 марта 2016 в 13:54
Приветствую!
Не подскажите как сделать смену языка на главной странице, чтобы юзер мог менять язык, как я понимаю поддержка мультиязычности в 1.10.6 есть.
Как вывести эти кнопки для смена языка?
#2 31 марта 2016 в 14:23
В настройках сайта.


В шаблоне template.php

  1. <?php if ($inConf->is_change_lang){
  2.  
  3. $langs = cmsCore::getDirsList('/languages'); ?>
  4. <div onclick="$('#langs-select').toggle().toggleClass('active_lang');$(this).toggleClass('active_lang'); return false;" title="<?php echo $_LANG['TEMPLATE_INTERFACE_LANG']; ?>" id="langs" style="background-image: url(/templates/<?php echo TEMPLATE; ?>/images/icons/langs/<?php echo $inConf->lang; ?>.png);">
  5. <span>&#9660;</span>
  6. <ul id="langs-select">
  7. <?php foreach ($langs as $lng) { ?>
  8. <li onclick="setLang('<?php echo $lng; ?>'); return false;" style="background-image: url(/templates/<?php echo TEMPLATE; ?>/images/icons/langs/<?php echo $lng; ?>.png);"><?php echo $lng; ?></li>
  9. <?php } ?>
  10. </ul>
  11. </div>
  12.  
  13. <?php } ?>
В дефолтном шаблоне это есть, в вашем — не знаю.
#3 31 марта 2016 в 14:51
Нил™, спасибо.
#4 31 марта 2016 в 14:56
А не подскажите, как добавить туда новый язык кроме английского и русского?
#5 31 марта 2016 в 15:38
Просто добавьте папку с языковым файлами lдля нового языка в /languages
#6 31 марта 2016 в 16:05
Подскажите еще плиз.

Как в выпадающем списке указать English, Русский и т.д.
А не просто en и ru
Простым переименованием папок не получается.

#7 31 марта 2016 в 16:36

А не просто en и ru

Stecc
Вот зачем вам этот стресс? Если не знаете.Все и так хорошо работает.
#8 31 марта 2016 в 17:01

Вот зачем вам этот стресс? Если не знаете.Все и так хорошо работает.

Dost
Да работает, но мне очень надо чтобы были языки полностью написаны.
Или это сложно реализовать?
#9 31 марта 2016 в 17:53
\admin\applets\config.php

  1. echo '<option value="'.$lng.'" '.($config['lang'] == $lng ? 'selected="selected"': '').'>'.$lng.'</option>';
на

  1. echo '<option value="'.$lng.'" '.($config['lang'] == $lng ? 'selected="selected"': '').'>'.$_LANG['LANGNAME'].'</option>';

В шаблоне template.php

Нил™

  1. <li onclick="setLang('<?php echo $lng; ?>'); return false;" style="background-image: url(/templates/<?php echo TEMPLATE; ?>/images/icons/langs/<?php echo $_LANG['LANGNAME']; ?>.png);"><?php echo $lng; ?></li>
на

  1. <li onclick="setLang('<?php echo $lng; ?>'); return false;" style="background-image: url(/templates/<?php echo TEMPLATE; ?>/images/icons/langs/<?php echo $lng; ?>.png);"><?php echo $_LANG['LANGNAME']; ?></li>
В папках с языками в lang.php

  1. $_LANG['LANGNAME'] = 'Русский';
или

  1. $_LANG['LANGNAME'] = 'English';
и т.д. в зависимости от языка.
#10 31 марта 2016 в 18:27
Нил™, спасибо огромное.

И подскажите еще, как можно сделать чтобы статьи на английском отображались только когда стоит на EN а русские соответственно на русском.
Ничего в голову не приходит как это реализовать.
#11 31 марта 2016 в 20:11
Stecc, в редактировании статьи заполните содержимое для каждого языка.
#12 31 марта 2016 в 20:31
Нил™, Спасибо.
По вашему коду внес изменения, и при выборе языка например РУССКИЙ, у всех меняются названия на РУССКИЙ.
Движок чистый, дефолтный шаблон.
#13 31 марта 2016 в 21:02

у всех меняются названия

Stecc
У кого у всех?
#14 31 марта 2016 в 21:03
А понял. Ну да, правильно меняется, а я затупил. Надо подумать scratch
#15 31 марта 2016 в 21:10
Можно в принципе вот так. В шаблоне template.php


  1. <?php if ($inConf->is_change_lang){
  2.  
  3. $langs = cmsCore::getDirsList('/languages'); ?>
  4. <div onclick="$('#langs-select').toggle().toggleClass('active_lang');$(this).toggleClass('active_lang'); return false;" title="<?php echo $_LANG['TEMPLATE_INTERFACE_LANG']; ?>" id="langs" style="background-image: url(/templates/<?php echo TEMPLATE; ?>/images/icons/langs/<?php echo $inConf->lang; ?>.png);">
  5. <span>&#9660;</span>
  6. <ul id="langs-select">
  7. <li onclick="setLang('ua'); return false;" style="background-image: url(/templates/<?php echo TEMPLATE; ?>/images/icons/langs/ua.png);">Український</li>
  8. <li onclick="setLang('ru'); return false;" style="background-image: url(/templates/<?php echo TEMPLATE; ?>/images/icons/langs/ru.png);">Русский</li>
  9. <li onclick="setLang('en'); return false;" style="background-image: url(/templates/<?php echo TEMPLATE; ?>/images/icons/langs/en.png);">English</li>
  10.  
  11.  
  12. </ul>
  13. </div>
  14.  
  15. <?php } ?>
А то что я нагородил в посте 9 отменить
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.