Форумы / National / Russian / Тех. поддержка / вопрос по i18n

12>>>

Oughtem
#1 13.08.2012 22:45

1. Хочу добавить поддержку 3-х языков. Всё сделал в точности как тут http://www.cotonti.com/docs/help/i18n_quickstart . А конфиге плагина прописал 

ru|Russian
ua|Ukraine
en|English

Но когда перехожу для выбора локали http://site/i18n?m=structure&l=ru , то активная у меня только одна - English (там я могу прописать титлы и дескрипшены для категорий на англ. языке). Если щёлкаю на украинскую локаль, то страница просто обновляется и я опять же перед выбором локалей. Также пробовал и другие языки и получил тот же результат: перевести титлы и дскрипшены можно только на английской локали. Соответственно и на страницах, когда добавляешь перевод на украинском языке, то он не сохраняется, а на английском сохраняется нормально.

В .htaccess такой код:

# Language selector
RewriteRule ^(ru|ua|en|de|nl)/(.*) $2?l=$1 [QSA,NC,NE]

2. Ещё хотелось бы чтоб навигационное меню менялось в соответствии с выбранным языком. Какой-то плагин вывода катгорий поддерживает эту возможность?

Cotonti 0.9.11

Отредактировано: Oughtem (14.08.2012 15:47, 11 лет назад)
esclkm
#2 14.08.2012 06:09

а украинская локализация есть на сайте?

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Oughtem
#3 14.08.2012 11:42

первый вопрос решён) как на счёт 2 ? pagecattree можно заточить под мульязычность?

Отредактировано: Oughtem (14.08.2012 15:47, 11 лет назад)
Fox
#4 14.08.2012 16:43

В своей теме создаеш файлы

themename.en.lang.php

themename.ru.lang.php

themename.uk.lang.php

<?php
/**
 * User Russian Language File for themename Skin
 *
 * @package Cotonti
 * @version 0.9.11
 * @author Cotonti Team
 * @copyright Copyright (c) Cotonti Team 2008-2012
 * @license BSD
 */

defined('COT_CODE') or die('Wrong URL.');

/**
 * Put your theme-specific language strings here
 */
$L['Home'] = 'Главная';
$L['Category 1'] = Категория 1';
$L['Follow_Twitter'] = 'Твитнуть!';
$L['Sitemap'] = 'Карта сайта';
$L['Contact'] = 'Контакты';
?>

В свой tpl в нужное место вставляеш {PHP.L.Home} и.т.д.

ХаЧу ЧПУ для форума!!! ХаЧу ДаКуменцию к ДвИжКу!!! ХаЧу АпиСания TPL ТаГов!??
Отредактировано: Fox (14.08.2012 16:49, 11 лет назад)
esclkm
#5 14.08.2012 19:05

второй - надо проверять локаль и делать 3 меню

третий - а что не ловит?

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Oughtem
#6 15.08.2012 00:59

Создание меню путём занесения названий категорий и пейджей в ланг-файл - это, граждане, изврат. Хотя способ бесспорно действующий. Таким образом можно сделать сайт, который не собирается расти.

esclkm
#7 15.08.2012 15:40

я не понял про изврат - а кто его предлагал?

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Oughtem
#8 15.08.2012 18:35

В №4

Kort
#9 16.08.2012 05:17

А какая технически разница между заполнением лэнг-файла и работой с формой (тулзовой части плагина или чего у вас там)? Ланг-файл удобнее и возможностей больше.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
esclkm
#10 16.08.2012 07:13

определенные замечания по поводу - i18n : даже в сиене они встраиваются слишком поверхностно - мне надо.. чтобы при разработке модулей я не мучался и не задумывался в отношении i18n

а так же интерфейс интернационализации не очень нагляден и понятен... так же при установке требуются инструкции - куда какие блоки и переменные

Добавлено 28 минуты спустя:

 асамый главные его недостаток - что работая сним вечно ищешь а чего оно не работает

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Отредактировано: esclkm (16.08.2012 07:41, 11 лет назад)
Leshkens
#11 02.10.2013 22:44

Столкнулся с проблемой. Щелкнув по установленному селектору на главной, язык меняется, все ок, но вот в некоторые разделы сайта не заходит, например в админку или личные сообщения. Выводит 404. То, есть, например, вот по такому адресу "mysite.ru/en/admin" или "mysite.ru/en/profile" всегда ошибка 404, все равно какой язык, хоть "mysite.ru/ru/profile". 

URL Editor установлен как удобный. .htacces скопирован из sef-urls.htaccess

0.9.14

 

Добавлено 5 минуты спустя:

Плюс ко всему, после смены языка через селектор, например на немецкий, если сменить еще раз будучи, например, в личных сообщения, то получается что-то вроде: "mysite.ru/en/pm/pm/pm"

Добавлено 13 часа спустя:

Понял что дело в ЧПУ, отключив соответсвующую функцию в настройках плагина i18n, все стало ок. Но, все же интересно почему с ЧПУ не работает?

Отредактировано: Leshkens (03.10.2013 12:11, 10 лет назад)
Macik
#12 04.10.2013 02:45

Какой скин (тема оформления) используется? Проблема может быть в формировании ссылок на ресурсы. 
Если включен ЧПУ, проверь, что ссылки формируются через ф-ю `cot_url`, и что в файле .htaccess прописаны все необходимые правила (из файла sef-urls.htaccess), плюс добавлено что-то типа:

# Language selector
RewriteRule ^(ru|ua|en|de|nl)/(.*) $2?l=$1 [QSA,NC,NE]

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Leshkens
#13 04.10.2013 07:05

Macik, да, все так. И все равно 404. Еще подметил, что ошибка возникает при переходе на модуль Users, то есть на ссылки вида: 

{PHP|cot_url('users','m=register')}

{PHP|cot_url('users','m=passrecover')}

{PHP|cot_url('users','m=profile')}

{PHP|cot_url('users')}

 

Macik
#14 04.10.2013 12:35


Давай еще раз проверим:

- Определимся что хотим - возможность переводить страницы и отображать контент на нескольких языках (плагин i18n) или возможность «на лету» переключать язык интерфейса (плагин ilanguage). Или и то и другое
- Cotonti Siena 0.9.1*  (т.е. старше 0,9,10)
- Установлен плагин 
i18n
- Установлен плагин ilanguage
- Настроены категории и языка для i18n (см. илл.1)
- Внесены правки в .htaccess  (см. илл.2 )
- в шаблоны добавлен код вызова переключения языков интерфейса(в моем случае это header.tpl, см. илл.3 )
- для формирования ссылок в шаблонах исполдьзованы вызовы cot_url (см. пример для логина и регистрации из темы HTML Kickstart - илл. 4 )

Попробуй поиграть с параметром «Опускать параметр языка в URL, если он указывает на основной язык:». Меняется ли что-нибудь?

Если после проверки всех пунктов ничего не изменилось сообщи: 
- версию котонти, браузер, версии плагинов
- есть ли ошибки в консоле браузера (
Ctrl-Shift-J в Хроме, там вкладка Console; Ctrl-Shift-K в FF)
- какие ссылки получаются на выходе из приведенных тобой вызовов cot_url.
 


 


 

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Leshkens
#15 04.10.2013 13:43

Почувствовал себя идиотом :D

Вообще все так, кроме плагина ilanguage, для чего он? Ведь i18n переключает и интерфейс и страницы. Насколько я знаю, на этом сайте тоже установлен только i18n.

Попробуй поиграть с параметром «Опускать параметр языка в URL, если он указывает на основной язык:». Меняется ли что-нибудь?

Да, меняется ровно то, что должно меняться :) В языке установленном по-умолчанию в ссылках появляется код языка.

 

На выходе получается вот что:

С включенной функцией ЧПУ в i18n (ошибка 404):

site.ru/en/register

site.ru/en/passrecover

site.ru/en/profile

site.ru/en/users

 

С выключенной функцией ЧПУ в i18n (работает):

site.ru/register?l=en

site.ru/passrecover?l=en

site.ru/profile?l=en

site.ru/users?l=en

12>>>