Мультиязычность.

Любая помощь по установке/настройке/модификации concrete5

Мультиязычность.

Сообщение vbnm » 02 июл 2011, 01:50 ,  »  Сообщение:#1

http://www.concrete5russia.ru/
Прива!
Установил коробочную версию 5.4.1 на англ., и сразу встал вопрос о поддержке мультиязычности на сайте.
Поискал решения в сети, но не увидел пока четких.
Как можно сделать, чтобы пользователь имел возможность выбирать для себя интерфейс хотя бы из двух языков,- русск и англ. В виде свитка, иль кнопок с флажками языковой принадлежноти в шапке сайта?
:oops:
Последний раз редактировалось vbnm 09 июл 2011, 08:44, всего редактировалось 1 раз.
vbnm
 
Сообщения: 462
Зарегистрирован: 02 июл 2011, 01:44

Re: Мультиязычность.

Сообщение vbnm » 03 июл 2011, 00:27 ,  »  Сообщение:#2

сегодня, уже на локалке, вдобавок установил русскую версию, но вопрос остался..
подскажите решения, иль покажите хотя б сайты где это уже решено???
vbnm
 
Сообщения: 462
Зарегистрирован: 02 июл 2011, 01:44

Re: Мультиязычность.

Сообщение cmsservice » 03 июл 2011, 18:25 ,  »  Сообщение:#3

Вот тут описан один из возможных путей:
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: Мультиязычность.

Сообщение vbnm » 04 июл 2011, 23:19 ,  »  Сообщение:#4

Вот тут описан один из возможных путей:
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
... languages/

да это вариант...
но это клонирование страничное...эт хорошо, когда будет сайт визитка, ну а если предполагается постоянное добавление материала и страниц, разделов не только со стороны администрации?
Вот сейчас, у меня стоит англ версия, добавил в нее яз папку Ru_ru
Как её задействовать для мультика языкового ?
vbnm
 
Сообщения: 462
Зарегистрирован: 02 июл 2011, 01:44

Re: Мультиязычность.

Сообщение Count_Raven » 05 июл 2011, 14:25 ,  »  Сообщение:#5

Вы хотите чтобы язык сам переводился? В любом случае - на разных языках - вы будете писать сами. Что теперь?
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Мультиязычность.

Сообщение Count_Raven » 05 июл 2011, 14:29 ,  »  Сообщение:#6

vbnm писал(а):
Вот тут описан один из возможных путей:
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
... languages/

да это вариант...
но это клонирование страничное...эт хорошо, когда будет сайт визитка, ну а если предполагается постоянное добавление материала и страниц, разделов не только со стороны администрации?
Вот сейчас, у меня стоит англ версия, добавил в нее яз папку Ru_ru
Как её задействовать для мультика языкового ?


Не трогайте свою папку, тут иначе. Getext! На разных языках нужно свою приблуду делать. Для меня это легко, для пользователя - сложно. Сдеалть можно, если нанять человека. Сразу скажу - я не наймусь, у меня слишком много работы. Дел там не так уж много, можно многоязычную систему сделать за неделю.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Мультиязычность.

Сообщение vbnm » 06 июл 2011, 02:36 ,  »  Сообщение:#7

Вы хотите чтобы язык сам переводился?

ну для этого достаточно прикрутить гугл переводчик для сайта, вопрос не в этом.
Не трогайте свою папку, тут иначе. Getext! На разных языках нужно свою приблуду делать. Для меня это легко

дык раз увижу тож легко станет, а пока в голове не укладывается :D
можете пояснить???:
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку

Count Raven Amiant комментирует...

Да, кстати, Concrete5 начиная с версии 5.4.0 работает без Gettext, используя Zend Gettext Adapter. Поэтому русификация теперь возможна и без установленного на хостинге gettext.
vbnm
 
Сообщения: 462
Зарегистрирован: 02 июл 2011, 01:44

Re: Мультиязычность.

Сообщение Count_Raven » 06 июл 2011, 13:52 ,  »  Сообщение:#8

Ну а что пояснять? Раньше нужно было, чтобы на хостинге стоял gettext. Теперь не нужно, внутри системы реализация gettext уже находится.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Мультиязычность.

Сообщение vbnm » 07 июл 2011, 03:43 ,  »  Сообщение:#9

"внутри системы реализация gettext уже находится."
если вы где-то уже описывали поэтапное подключение и использование этой функции для мультика, плиз, киньте ссылку..
vbnm
 
Сообщения: 462
Зарегистрирован: 02 июл 2011, 01:44

Re: Мультиязычность.

Сообщение Count_Raven » 07 июл 2011, 12:18 ,  »  Сообщение:#10

Блин, нет никакой ссылки.

Я скажу так:
- В posix(unix)-системах многие программы для локализации используют библиотеку gettext.
- Если вы хотите автоматический перевод каких-либо элементов на сайте, они пишутся при помощи функции t(string). Например t('Next'); будет для русского переведена как "Далее" или "Следующий". Если перевода не обнаружено, будет просто написан оригинал "Next".
- Чтобы динамически переключать переводы gettext нужно будет писать PHP-код, который будет в зависимости от окружающих параметров (каких-то переданных переменных в GET, POST или в сессии подгружать необходимый файл локализации.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Мультиязычность.

Сообщение vbnm » 07 июл 2011, 23:35 ,  »  Сообщение:#11

Count_Raven спасибо за наводку, но для меня это пока сложно, сам процес представляю, но прокодить не смогу..нужен аналог какой-нибудь, модуль, иль плагин уже работающий на этом принципе и использующий этот функционал.
сегодня чет завел NetBeans IDE 6.8, решил в нем посмотреть на Бетон 5)))
оболдел, он его не понимает видать, в багах пишет аж 658 ошибок, причем смотрел, как русскую сборку, так и англ..
vbnm
 
Сообщения: 462
Зарегистрирован: 02 июл 2011, 01:44

Re: Мультиязычность.

Сообщение vbnm » 08 июл 2011, 11:15 ,  »  Сообщение:#12

Count_Raven
насколько я понял вы предложили использовать вот этот метод.
только я нашел три разных кода, если посмотреть детально:

1
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку

2
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку

3
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку


попробовал реализовать на локальном Денвере, у меняч ВинХР, даже на нем включил ГетТекст, не получилось)))
исходя из описания, что есть по ссылкам,-пропускал шаги по выведению файлов mo.po/
просто брал их из русской сборки

создал доп папку ЛОкал, в нее поместил по описанию файлы с сохранение структуры
типо: Z:\home\couch-pi.com\www\concrete\locale\ru_RU\LC_MESSAGES
или: Z:\home\couch-pi.com\www\concrete\locale\ru\LC_MESSAGES
поробовал заливать папку Ру и в сам Зенд, подумал, что он может не отвечать, так как папка Локал находится в корне уровнем выше.
типо: Z:\home\couch-pi.com\www\concrete\concrete\libraries\3rdparty\Zend\Locale\ru_RU

активировать пытался и через фаил Индекс, что в корне, и через Конфинг, что в соответ папке
в итоге у меня получался такой вот салат:

Код: Выделить всё
<?php

$lang = 'ru_RU.utf8';

if (!defined('LC_MESSAGES')) define('LC_MESSAGES', 5); // в Windows эта константа может быть не определена
setlocale(LC_MESSAGES, $lang); // устанавливаем локаль
   
if  (!isset ($_COOKIE['lang'])) setcookie('lang', $lang, 1640995200); // сохраняем язык в Cookie
bind_textdomain_codeset("messages", 'UTF8'); // устанавливаем кодировку файла messages.mo

if ($lang == 'ru_RU.utf8') {
    // подключаем файлы русской локализации
    bindtextdomain("messages", "./locale");
    textdomain("messages");
}
else {
    // возвращаем английский язык
    bindtextdomain("messages", "");
}

// Задаем текущий язык проекта
putenv("LANG=ru_RU");

// Задаем текущую локаль (кодировку)
setlocale (LC_ALL,"Russian");

// Указываем имя домена
$domain = '//www.couch-pi.com/concrete/';

// Задаем каталог домена, где содержатся переводы
bindtextdomain ($domain, "./locale");

// Выбираем домен для работы

textdomain ($domain);

// Если необходимо, принудительно указываем кодировку
// (эта строка не обязательна, она нужна,
// если вы хотите выводить текст в отличной
// от текущей локали кодировке).
bind_textdomain_codeset($domain, 'UTF-8');
// Задаем текущий язык проекта
putenv("LANG=ru_RU");

// Задаем текущую локаль (кодировку)
setlocale (LC_ALL,"Russian");

// Указываем имя домена
$domain = 'www.couch-pi.com/concrete';

// Задаем каталог домена, где содержатся переводы
bindtextdomain ($domain, "./locale");

// Выбираем домен для работы

textdomain ($domain);

// Если необходимо, принудительно указываем кодировку
// (эта строка не обязательна, она нужна,
// если вы хотите выводить текст в отличной
// от текущей локали кодировке).
bind_textdomain_codeset($domain, 'UTF-8');

require('concrete/dispatcher.php');


кеш чистил, серв перезапускал...
:oops:
vbnm
 
Сообщения: 462
Зарегистрирован: 02 июл 2011, 01:44

Re: Мультиязычность.

Сообщение Count_Raven » 08 июл 2011, 13:31 ,  »  Сообщение:#13

vbnm писал(а):Count_Raven спасибо за наводку, но для меня это пока сложно, сам процес представляю, но прокодить не смогу..нужен аналог какой-нибудь, модуль, иль плагин уже работающий на этом принципе и использующий этот функционал.
сегодня чет завел NetBeans IDE 6.8, решил в нем посмотреть на Бетон 5)))
оболдел, он его не понимает видать, в багах пишет аж 658 ошибок, причем смотрел, как русскую сборку, так и англ..


1. Уже семерка давно вышла.
2. Ага, не понимает.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Мультиязычность.

Сообщение Count_Raven » 08 июл 2011, 13:35 ,  »  Сообщение:#14

Вопрос нужно изучать. Подводные камни могут иметься. Я никогда не работал с Zend Gettext Adapter, может там есть какие-то нюансы. Нужно экспериментировать.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Мультиязычность.

Сообщение vbnm » 09 июл 2011, 04:03 ,  »  Сообщение:#15

Вопрос нужно изучать. Подводные камни могут иметься. Я никогда не работал с Zend Gettext Adapter, может там есть какие-то нюансы. Нужно экспериментировать.

поэксперементировал.
спасибо за наводку в вашем блоге
русскую локалку добавляю в папку Z:\home\couch-pi.com\www\concrete\languages
как оказалось, можно и через Конфинг, или Индекс первого уровня задать
Z:\home\couch-pi.com\www\concrete\config/site.php
добавив в нее
Код: Выделить всё
if (!defined('LOCALE')) {
 define("LOCALE", 'ru_RU');
}

к примеру
а можно и так, как написано у вас в блоге, через папку конфинг второго уровня в файле
Z:\home\couch-pi.com\www\concrete\concrete\config/base.php
Код: Выделить всё
/**
 * Character support
 */

if (!defined('APP_CHARSET')) {
   define('APP_CHARSET', 'UTF-8'); // pages, etc...
}

if (!defined('DB_CHARSET')) {
   define('DB_CHARSET', 'utf8'); // pages, etc...
}

if (!defined("DB_COLLATE")) {
   define('DB_COLLATE', '');
}

if (!defined('LOCALE')) {
 define("LOCALE", 'ru_RU');
}

но у меня пока внутренний баг пошел связанный с кодировкой таблиц БД
Произошла неизвестная ошибка.
mysql error: [1267: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='] in EXECUTE("select arID, arOverrideCollectionPermissions, arInheritPermissionsFromAreaOnCID from Areas where cID = '1' and arHandle = 'Main : Разметка 1 : Cell 1'")

как разберусь, посмотрю, нормально ли такой вариант использовать.
И это все пока на локалке Денвера под Виндой, а на Онлайн Хосте стоит Линукс, так что возможны сюрпризы в дальнейшем при переносе.

1. Уже семерка давно вышла.

да, знаю, но все времени нет и переустановить))
Последний раз редактировалось vbnm 09 июл 2011, 19:12, всего редактировалось 2 раз(а).
vbnm
 
Сообщения: 462
Зарегистрирован: 02 июл 2011, 01:44

След.

Вернуться в Помощь по concrete5

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron