все форумы все темы добавить тему
Непонятки с языками
С трудом розобрался как подключить модуль локализаций. Хотя считаю, если стоит задача сделать цмс для чайников, то надо реализовать это одной кнопкой)
 
Потом добавил дополнительный язык, но в нем меня ждал сюрприз) - "Тут нам править нечего. Вернуться."
В русском же варианте эсть пустые поля, куда можно вводить новый язык, но как-то все неправильно... К тому же, куда вводить третий язык? Плюс очень непонятно что такое "устаревший"? И зачем что-то "удалить"
 
Еще добавлю, что если на демо на сайте присутствуют все разделы для локализации, то у меня их нет, а есть просто список некоторых полей.
 
И еще - кагда жмеш "вернуться" - ошибка
Warning: include( /public_html/kernel/modules/lang_editor/files_list.php) [function.include]: failed to open stream: Нет такого файла или каталога in / /public_html/kernel/modules/lang_editor/index.php on line 28
 
Warning: include() [function.include]: Failed opening ' /public_html/kernel/modules/lang_editor/files_list.php' for inclusion (include_path='.:/usr/local/php5/lib/php: /public_html/kernel/classes/Smarty/sysplugins/') in  /public_html/kernel/modules/lang_editor/index.php on line 28
Да, вы правы - функционал бежит немного впереди описания. Давайте попробую в двух словах объяснить что произошло.
В системе есть базовый язык. Считается что в базовом языке присутствуют все строки для перевода. Базовым считался язык указанный в настройках как язык по умолчанию. Вы создали новый язык, установили его в настройках как язык по умолчанию. В итоге получилось что в базовом языке нет ни одной строки для перевода.
 
В новой ревизии я прописал базовым языком русский, так что все должно быть нормально.
 
Если вы предложите как упростить работу с языками - это будет здорово.
Loki

В новой ревизии я прописал базовым языком русский, так что все должно быть нормально.

 
Тоесть мне сейчас нужно переустановить ЦМС?
Loki

Если вы предложите как упростить работу с языками - это будет здорово.

 
Думаю это уже где-то хорошо реализовано, нужно найти и скопировать
roman
Тоесть мне сейчас нужно переустановить ЦМС?

Достаточно скачать новую версию и развернуть поверх имеющейся.
В новой ревизии не все поля предложены для перевода.
Например "* поля обязательные для заполнения."
Есть такое. Некоторые строки для перевода появляются Не после установки, а по мере обращения к ним. Обновите версию - они появятся.
То есть, если я добавляю модуль - тогда появляются поля для перевода этого модуля?
roman
То есть, если я добавляю модуль - тогда появляются поля для перевода этого модуля?

Нет. Они появляются когда модуль их запрашивает, если не были созданы ранее.
Loki
Они появляются когда модуль их запрашивает, если не были созданы ранее.

 
у меня почему-то не так. Например установил модуль "чат", перевода нет, поля для перевода не предоставлены. И в других местах постоянно проскакивают куски непереведенного текста.
 
По моему надо предоставить для перевода все поля сразу, возможно с обозначеним какие поля используются в данной конфигурации сайта.
Согласен. Конечно надо. С другой стороны подобная схема позволяет пользователю легко и просто добавлять собственные строки, а разработчику - автоматизировать их добавление.
Хочу уточнить, может я неправильно что-то сделал, в общем у меня должно быть на сайте три языка (в перспективе их будет больше), я создаю модуль (назовем его mymod) и чтобы он был доступен на каждом языке, в структуре прописываю его аж три раза с путями /mymod/ru, /mymod/en, /mymod/de и соответствующими языками, а также четвертый раз с путем /mymod и дефолтным языком... оно как бы не смертельно, но я подозреваю, что это должно как-то проще делаться, ибо когда модулей у меня будет 10, то в структуре будет аж 40 позиций.
 
C точки зрения качественной индексации поисковиками, локаль должна явно присутствовать в ссылке, если язык отличается от оригинала, а для пользователя удобнее получать более компактные ссылки, то есть в идеале схема должна работать так:
1. если локаль не указана и ссылка вида http://site.com/mymod, спрашиваем у браузера предпочитаемый язык.
1.1. если предпочитаемый язык у нас есть, подсовываем страницу на этом языке.
1.2. если предпочитаемого языка у нас в системе нет, подсовываем страницу на дефолтном языке системы.
2. если локаль указана и ссылка вида http://en.site.com/mymod или http://site.com/mymod/en, или http://site.com/en/mymod, то сразу даем пользователю страницу на требуемом языке и соответственно все ссылки на сайте должны модифицироваться соответствующим образом, чтоб без разрешения пользователя язык не переключался самовольно.
 
Как это правильно реализовать?
Понимаю ваше недоумение, но я считаю такую схему единственно верной. Как показывает практика, буквально в единичных случаях у владельцев сайта хватает сил на поддержание в актуальном состоянии контента для всех представленных на сайте языков. В результате довольно скоро содержимое ветвей сайта для разных языков становится разным, а в перспективе разной становится даже структура разделов.
Так что я бы делал вот такую структуру:
Text
 
-ru //для всех наследников подключили русский
   -module
-en //для всех наследников подключили английский
   -module
 

 
Если такой вариант категорически не нравится, то можно поступить двумя другими способами:
1. пишем модуль, который мониторит URL на предмет наличия в нем указания локали и переключает ее. Модуль объявляем статическим и вешаем на корневой элемент сайта. В этом случае понадобится только одна ветвь. В этом случае локаль надо будет передавать в качестве параметра (что повлечет кучу неудобств), либо хранить в куках или сессии.
 
2. второй вариант идеологически более правильный: пишем свой класс разбора/генерации url, который будет добавлять и откусывать в начало URL текущую локаль. От имеющегося класса он будет отличаться совсем незначительно, так что логично от текущего класса его и унаследовать.