Перейти к содержимому


Мультиязычный интерфейс ShopCMS


  • Вы не можете ответить в тему
Сообщений в теме: 30

#1 Polat

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений
Репутация: 0
Начинающий

Отправлено 01 October 2011 - 12:02 AM

Мультиязычный интерфейс ShopCMS.
Для активации мультиязычности вам необходимо добавить язык в файл
config/language_list.php

По умолчанию есть только русский:

$lang_list[0] = new Language();
$lang_list[0]->description = "Русский";
$lang_list[0]->filename = "russian.php";

Для добавления к примеру английского впишите следующее:

$lang_list[1] = new Language();
$lang_list[1]->description = "English";
$lang_list[1]->filename = "english.php";

Соответственно в папку languages/ необходимо положить новый файл
языка под названием english.php

Мультиязычность относится только к интерфейсу магазина и не относится
к описаниям товаров и остальной информации в магазине.
  • 0

#2 vsupport

    Продвинутый пользователь

  • Администраторы
  • 758 сообщений
Репутация: 31
Ассистент

Отправлено 01 October 2011 - 01:22 AM

Polat, а у Вас есть фаил английского языка?
  • 0

#3 Polat

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений
Репутация: 0
Начинающий

Отправлено 01 October 2011 - 02:28 AM

Вроде завалялся!

Переключаться между языками можно с помощью блока приложенного к
этому сообщению. Для добавления блока воспользуйтесь пунктом "добавить блок из
файла" в конструкторе блоков.
В архиве фаил блока и Английский язык.
  • 0

#4 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 01 October 2011 - 11:12 AM

Жаль нельзя менять полностью все, т.е. и описания товаров и тайтлы и т.д., в таких случаях ставлю несколько движков, что не всегда удобно (( А изменение самого интерфейса ИМХО бесполезно..... ну разве что описания просто не делать )
  • 0

#5 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 01 October 2011 - 11:49 AM

Жаль нельзя менять полностью все, т.е. и описания товаров и тайтлы и т.д., в таких случаях ставлю несколько движков, что не всегда удобно (( А изменение самого интерфейса ИМХО бесполезно..... ну разве что описания просто не делать )


я делаю все намного проще, интегрирую google translate, и переводится абсолютно все, причем именно на сайте без редиректа на translate
пример можете посмотреть Jabra-shop - Bluetooth гарнитуры Jabra и аксессуары
  • 0
Изображение Изображение Изображение

#6 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 01 October 2011 - 11:57 AM

я делаю все намного проще, интегрирую google translate, и переводится абсолютно все, причем именно на сайте без редиректа на translate
пример можете посмотреть Jabra-shop - Bluetooth гарнитуры Jabra и аксессуары


сорри конечно ))) но этот вариант вообще - лажа.
Объясняю почему:
если сайт делается на нескольких языках, значит само собой подразумевается и продажа товаров в разных странах, в Вашем случае индексироваться будет только 1 язык основной, а страницы переведенные гуглом динамические и в индекс не попадут, таким образом про продвижение в других странах можно забыть, а значит и это мультиязычность до одного места.... ну конечно если вас устраивает 20 человек в сутки на сайте ))) ...... то да гугл транслейт классная штука
  • 0

#7 msidog

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 166 сообщений
Репутация: 42
Ассистент
  • ГородКривой Рог

Отправлено 01 October 2011 - 01:55 PM

R.Sergey,
ну чего же =) для таких простых целей оно самое оно) тем более очень быстро переводит
а так не думаю что нужно изобретать велосипед если русский и украинский допустим похожие а англ не будет заходить на наши сайты)
  • 0
Мой хостинг <<<invitehost.ru>>>
vsupport.club --Лучшее решение всех проблем ;)

#8 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 01 October 2011 - 02:06 PM

R.Sergey,
ну чего же =) для таких простых целей оно самое оно) тем более очень быстро переводит
а так не думаю что нужно изобретать велосипед если русский и украинский допустим похожие а англ не будет заходить на наши сайты)


как раз наоборот, если вы делаете мультиязычный сайт то с расчетом на то что он будет продавать и англоязычным пользователям, а если Вам это не нужно зачем тогда делать выбор языка. Чтобы понять суть того, о чем я говорю Вам не мешало бы почитать немного о SEO и поисковом продвижении сайтов. Иначе объяснить будет довольно сложно. (и то что укр. и русский похожи - это для Вас они похожи, а для поисковиков имеют огромную разницу и если основной сайт у Вас будет на укр., то в индексе будут укр. страницы несмотря на переводчик и находить Ваш сайт будут чаще по укр. запросам чем на русском.)

Вобщем итого: если переключение языка требуется для ПОНТУ то гугл транслейт, то что нада, если же требуется для представления услуг/товара для разных языков то это не вариант вообще.
  • 0

#9 msidog

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 166 сообщений
Репутация: 42
Ассистент
  • ГородКривой Рог

Отправлено 01 October 2011 - 03:42 PM

воо ну и я типа о том же =)))xD
  • 0
Мой хостинг <<<invitehost.ru>>>
vsupport.club --Лучшее решение всех проблем ;)

#10 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 01 October 2011 - 08:51 PM

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


тогда обьясню как сделать "не лажу" в вашем понимании, если конечно у вас хватит знаний:

1) способ
берете определяете язык пользователя в начале сессии и в зависимости от языка меняете в переменной префикс базы (например для руского russ_products и т.д)

2)Определяем язык пользователя, пишем функцию используя Api того же переводчика и встраиваем в шаблон, в завимости от какой нибудь своей переменной в сессии, функция либо срабатывает либо нет

вот, таким образом вы получите полноценное SEO на разных языках, если конечно утчете перелинковку на разные языки и принадлежность сайта к регионам
  • 0
Изображение Изображение Изображение

#11 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 01 October 2011 - 09:38 PM

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

мой вариант гораздо проще )) несколько движков можно в одной БД можно в разных решают эту проблему и с языками и с СЕО..... благо такие заказы редкость, в основном достаточно одного языка.
  • 0

#12 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 01 October 2011 - 10:06 PM

мой вариант гораздо проще )) несколько движков можно в одной БД можно в разных решают эту проблему и с языками и с СЕО..... благо такие заказы редкость, в основном достаточно одного языка.


абсолютно не проще ))
в Вашем варинте необходимо заполнять и работать с несколькими админками, что тянет за собой и человеко часы, и дополнительний персонал для магазина, и неудобство работы с мультиязычными описаниями (для коммерческого использования просто раздутие штата)



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

не буду флудить, но то что я написал делается не долго и просто и мне кажется Вы переоцениваете свои знания коллега ))
  • 0
Изображение Изображение Изображение

#13 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 01 October 2011 - 10:36 PM

абсолютно не проще ))
в Вашем варинте необходимо заполнять и работать с несколькими админками, что тянет за собой и человеко часы, и дополнительний персонал для магазина, и неудобство работы с мультиязычными описаниями (для коммерческого использования просто раздутие штата)


ну если на то пошло, я бы не сказал что перевод гуглом будет столь качественным чтобы его можно было использовать для СЕО, сомневаюсь что поисковики захавают что-то подобное (для коммерческого использования чтобы не раздувать штат существуют услуги переводчиков и тех. обслуживания сайтов). Хотя для перевода на рус/укр возможно Вы и правы..... потестил гугловский перевод - к моему удивлению довольно адекватный.
Кстати на правах рекламы у меня в штате работает 4 переводчика и 2 контент-менеджера - обращайтесь )))))))

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

что же касается знаний, я не сказал что для меня это просто, мне понадобится время чтобы это реализовать. Сколько? не знаю...., но что смогу реализовать это факт. В любом случае я не вижу смысла тратить на это время.
А с Вашей стороны было бы целесообразнее выложить сам код если это делается "не долго и просто" вместо того чтобы кидаться фразами по типу "если хватит знаний вы могли бы используя API".

З.Ы. Используя php, JS, JQ можно написать свой движок с реализацией любых функций каких только душа пожелает, если хватит знаний, а есть ли в этом смысл??? ;)
  • 0

#14 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 01 October 2011 - 11:02 PM

что же касается знаний, я не сказал что для меня это просто, мне понадобится время чтобы это реализовать. Сколько? не знаю...., но что смогу реализовать это факт. В любом случае я не вижу смысла тратить на это время.
А с Вашей стороны было бы целесообразнее выложить сам код если это делается "не долго и просто" вместо того чтобы кидаться фразами по типу "если хватит знаний вы могли бы используя API".


1) Определяем язык (пример)

if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 5) == "ru_RU")
Header ("Location: rus.php");
else
Header ("Location: eng.php");

2) язык закатываем в переменную в сессии

$_SESSION["язык_пользователя"] = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 5)

3) лепим куданибудь в core/includes или core/functions функцию Api от какого либо переводчика

пример 1: Google Translate API v1 - Developer's Guide - Google Translate API v1 - Google Code
google.language.translate("Hello world", "en", "es", function(result) {
if (!result.error) {
var container = document.getElementById("translation");
container.innerHTML = result.translation;
}
});


пример 2:

< ? function translate($s_text, $s_lang, $d_lang){
$url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=".urlencode($s_text)."&langpair=".urlencode($s_lang.'|'.$d_lang);

$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_REFERER, "http://gritsinger.com");
$b = curl_exec($c);
curl_close($c);
$json = json_decode($b, true);
if ($json['responseStatus'] != 200)return false;
return $json['responseData']['translatedText'];
}
print(translate('hello world, this example, easy translate', 'en', 'ru')); ?>


4) далее во всех шаблонах где используется product_brief и другие smarty переменные, которые необходимо перевести ставим

пример

вместо

{$product_info.brief_description}

код

{php}
$product_brief_to_translate = $this->get_template_vars('product_brief');

google.language.translate($product_brief_to_translate, "en", "es", function(result) {
if (!result.error) {
var container = document.getElementById("translation");
container.innerHTML = result.translation;
}
});
{/php}


--------------------------------------------------------------------
надеюсь я раскрыто ответил на предыдущий пост
  • 0
Изображение Изображение Изображение

#15 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 01 October 2011 - 11:11 PM

Благодарю... хоть и на пальцах суть понятна, но вот вопрос как себя поисковики поведут.....??

$_SERVER['HTTP_ACCEPT_LANGUAGE'] - правильно ли определит принадлежность поисковика ???
этот вариант уже проверенный?

как я понимаю страницы в любом случае будут генерироваться в зависимости от настроек браузера, и если браузер будет на инглише, то и сайт откроется на инглише..... как при этом себя объявят поисковые роботы....

честно говоря для рус. укр. языков меня это очень даже заинтересовало.
  • 0

#16 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 01 October 2011 - 11:19 PM

$_SERVER['HTTP_ACCEPT_LANGUAGE'] - правильно ли определит принадлежность поисковика ???


принадлежность поисковика оно в принципе опрделеит правильно, но поисковик должен придти с иноязычного ресурса, а для своей индексации
я бы все таки делал не через сессии а через _GET ---- index.php?language=rus и на главной странице перелинковку флажками на разные языки
вот тогда поисквая оптимизация будет правильной и проиндексируются все языки


и плюс ко всему еще функцию которая определяет язык пользователя, например если он перешел по прямой ссылке с поиковика на ....index.php?language=rus
а у него англ язык, то предложит ему выбрать язык (чтобы не предлагало два раза писать его выбор в сессию)
  • 0
Изображение Изображение Изображение

#17 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 01 October 2011 - 11:25 PM

eugene_wb, плиз ЛС
  • 0

#18 Влад И мир

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений
Репутация: 0
Начинающий

Отправлено 04 October 2011 - 11:30 AM

Украинский язык

Ест у кого то?
  • 0

#19 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 04 October 2011 - 04:40 PM

принадлежность поисковика оно в принципе опрделеит правильно, но поисковик должен придти с иноязычного ресурса, а для своей индексации
я бы все таки делал не через сессии а через _GET ---- index.php?language=rus и на главной странице перелинковку флажками на разные языки
вот тогда поисквая оптимизация будет правильной и проиндексируются все языки

и плюс ко всему еще функцию которая определяет язык пользователя, например если он перешел по прямой ссылке с поиковика на ....index.php?language=rus
а у него англ язык, то предложит ему выбрать язык (чтобы не предлагало два раза писать его выбор в сессию)


Так у меня еще вопрос возник походу.... как будет выглядеть ссылка которая сгенерируется после перевода.... допустим была страница
_http://site.ru/o_nas.html после перевода что будет? т.к. без ЧПУ опять же смысл теряется
  • 0

#20 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 05 October 2011 - 08:21 PM

Так у меня еще вопрос возник походу.... как будет выглядеть ссылка которая сгенерируется после перевода.... допустим была страница
_http://site.ru/o_nas.html после перевода что будет? т.к. без ЧПУ опять же смысл теряется


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

1) как вариант делать чпу по хитрому с акцентом на мультиязычность: /o_nas--contacts--kontaktu--contacto--.html

2) отказатся от чпу в пользу поддоменов и привязать их к региону
ru.site.com
en.site.com
ua.site.com
для поисковой оптимизации это очень хорошо сработает + можно в php определить первые две буквы домена и ставить тот язык по умолчанию для перевода

3) нужна реализация чпу которая берет название товара и просто делает либо транслит если название русское либо перевод на нужный язык а потом уже транслит с переведнного
  • 0
Изображение Изображение Изображение