Главное меню
все форумы все темы форума добавить тему
Непонятки с языками
С трудом розобрался как подключить модуль локализаций. Хотя считаю, если стоит задача сделать цмс для чайников, то надо реализовать это одной кнопкой)
 
Потом добавил дополнительный язык, но в нем меня ждал сюрприз) - "Тут нам править нечего. Вернуться."
В русском же варианте эсть пустые поля, куда можно вводить новый язык, но как-то все неправильно... К тому же, куда вводить третий язык? Плюс очень непонятно что такое "устаревший"? И зачем что-то "удалить"
 
Еще добавлю, что если на демо на сайте присутствуют все разделы для локализации, то у меня их нет, а есть просто список некоторых полей.
 
И еще - кагда жмеш "вернуться" - ошибка
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 текущую локаль. От имеющегося класса он будет отличаться совсем незначительно, так что логично от текущего класса его и унаследовать.