Мультиязычный интерфейс ShopCMS
#1
Отправлено 01 October 2011 - 12:02 AM
Для активации мультиязычности вам необходимо добавить язык в файл
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
Мультиязычность относится только к интерфейсу магазина и не относится
к описаниям товаров и остальной информации в магазине.
#2
Отправлено 01 October 2011 - 01:22 AM
#3
Отправлено 01 October 2011 - 02:28 AM
Переключаться между языками можно с помощью блока приложенного к
этому сообщению. Для добавления блока воспользуйтесь пунктом "добавить блок из
файла" в конструкторе блоков.
В архиве фаил блока и Английский язык.
#4
Отправлено 01 October 2011 - 11:12 AM
#5
Отправлено 01 October 2011 - 11:49 AM
Жаль нельзя менять полностью все, т.е. и описания товаров и тайтлы и т.д., в таких случаях ставлю несколько движков, что не всегда удобно (( А изменение самого интерфейса ИМХО бесполезно..... ну разве что описания просто не делать )
я делаю все намного проще, интегрирую google translate, и переводится абсолютно все, причем именно на сайте без редиректа на translate
пример можете посмотреть Jabra-shop - Bluetooth гарнитуры Jabra и аксессуары
#6
Отправлено 01 October 2011 - 11:57 AM
я делаю все намного проще, интегрирую google translate, и переводится абсолютно все, причем именно на сайте без редиректа на translate
пример можете посмотреть Jabra-shop - Bluetooth гарнитуры Jabra и аксессуары
сорри конечно ))) но этот вариант вообще - лажа.
Объясняю почему:
если сайт делается на нескольких языках, значит само собой подразумевается и продажа товаров в разных странах, в Вашем случае индексироваться будет только 1 язык основной, а страницы переведенные гуглом динамические и в индекс не попадут, таким образом про продвижение в других странах можно забыть, а значит и это мультиязычность до одного места.... ну конечно если вас устраивает 20 человек в сутки на сайте ))) ...... то да гугл транслейт классная штука
#7
Отправлено 01 October 2011 - 01:55 PM
ну чего же =) для таких простых целей оно самое оно) тем более очень быстро переводит
а так не думаю что нужно изобретать велосипед если русский и украинский допустим похожие а англ не будет заходить на наши сайты)
vsupport.club --Лучшее решение всех проблем
#8
Отправлено 01 October 2011 - 02:06 PM
R.Sergey,
ну чего же =) для таких простых целей оно самое оно) тем более очень быстро переводит
а так не думаю что нужно изобретать велосипед если русский и украинский допустим похожие а англ не будет заходить на наши сайты)
как раз наоборот, если вы делаете мультиязычный сайт то с расчетом на то что он будет продавать и англоязычным пользователям, а если Вам это не нужно зачем тогда делать выбор языка. Чтобы понять суть того, о чем я говорю Вам не мешало бы почитать немного о SEO и поисковом продвижении сайтов. Иначе объяснить будет довольно сложно. (и то что укр. и русский похожи - это для Вас они похожи, а для поисковиков имеют огромную разницу и если основной сайт у Вас будет на укр., то в индексе будут укр. страницы несмотря на переводчик и находить Ваш сайт будут чаще по укр. запросам чем на русском.)
Вобщем итого: если переключение языка требуется для ПОНТУ то гугл транслейт, то что нада, если же требуется для представления услуг/товара для разных языков то это не вариант вообще.
#9
Отправлено 01 October 2011 - 03:42 PM
vsupport.club --Лучшее решение всех проблем
#10
Отправлено 01 October 2011 - 08:51 PM
сорри конечно ))) но этот вариант вообще - лажа.
Объясняю почему:
если сайт делается на нескольких языках, значит само собой подразумевается и продажа товаров в разных странах, в Вашем случае индексироваться будет только 1 язык основной, а страницы переведенные гуглом динамические и в индекс не попадут, таким образом про продвижение в других странах можно забыть, а значит и это мультиязычность до одного места.... ну конечно если вас устраивает 20 человек в сутки на сайте ))) ...... то да гугл транслейт классная штука
тогда обьясню как сделать "не лажу" в вашем понимании, если конечно у вас хватит знаний:
1) способ
берете определяете язык пользователя в начале сессии и в зависимости от языка меняете в переменной префикс базы (например для руского russ_products и т.д)
2)Определяем язык пользователя, пишем функцию используя Api того же переводчика и встраиваем в шаблон, в завимости от какой нибудь своей переменной в сессии, функция либо срабатывает либо нет
вот, таким образом вы получите полноценное SEO на разных языках, если конечно утчете перелинковку на разные языки и принадлежность сайта к регионам
#11
Отправлено 01 October 2011 - 09:38 PM
мой вариант гораздо проще )) несколько движков можно в одной БД можно в разных решают эту проблему и с языками и с СЕО..... благо такие заказы редкость, в основном достаточно одного языка.
#12
Отправлено 01 October 2011 - 10:06 PM
мой вариант гораздо проще )) несколько движков можно в одной БД можно в разных решают эту проблему и с языками и с СЕО..... благо такие заказы редкость, в основном достаточно одного языка.
абсолютно не проще ))
в Вашем варинте необходимо заполнять и работать с несколькими админками, что тянет за собой и человеко часы, и дополнительний персонал для магазина, и неудобство работы с мультиязычными описаниями (для коммерческого использования просто раздутие штата)
не буду флудить, но то что я написал делается не долго и просто и мне кажется Вы переоцениваете свои знания коллега ))спасибо )) но так ответить сможет каждый.... "если хватит знаний" а в моем случае больше подошло бы "найдете время" ....
#13
Отправлено 01 October 2011 - 10:36 PM
абсолютно не проще ))
в Вашем варинте необходимо заполнять и работать с несколькими админками, что тянет за собой и человеко часы, и дополнительний персонал для магазина, и неудобство работы с мультиязычными описаниями (для коммерческого использования просто раздутие штата)
ну если на то пошло, я бы не сказал что перевод гуглом будет столь качественным чтобы его можно было использовать для СЕО, сомневаюсь что поисковики захавают что-то подобное (для коммерческого использования чтобы не раздувать штат существуют услуги переводчиков и тех. обслуживания сайтов). Хотя для перевода на рус/укр возможно Вы и правы..... потестил гугловский перевод - к моему удивлению довольно адекватный.
Кстати на правах рекламы у меня в штате работает 4 переводчика и 2 контент-менеджера - обращайтесь )))))))
что же касается знаний, я не сказал что для меня это просто, мне понадобится время чтобы это реализовать. Сколько? не знаю...., но что смогу реализовать это факт. В любом случае я не вижу смысла тратить на это время.не буду флудить, но то что я написал делается не долго и просто и мне кажется Вы переоцениваете свои знания коллега ))
А с Вашей стороны было бы целесообразнее выложить сам код если это делается "не долго и просто" вместо того чтобы кидаться фразами по типу "если хватит знаний вы могли бы используя API".
З.Ы. Используя php, JS, JQ можно написать свой движок с реализацией любых функций каких только душа пожелает, если хватит знаний, а есть ли в этом смысл???
#14
Отправлено 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}
--------------------------------------------------------------------
надеюсь я раскрыто ответил на предыдущий пост
#15
Отправлено 01 October 2011 - 11:11 PM
$_SERVER['HTTP_ACCEPT_LANGUAGE'] - правильно ли определит принадлежность поисковика ???
этот вариант уже проверенный?
как я понимаю страницы в любом случае будут генерироваться в зависимости от настроек браузера, и если браузер будет на инглише, то и сайт откроется на инглише..... как при этом себя объявят поисковые роботы....
честно говоря для рус. укр. языков меня это очень даже заинтересовало.
#16
Отправлено 01 October 2011 - 11:19 PM
$_SERVER['HTTP_ACCEPT_LANGUAGE'] - правильно ли определит принадлежность поисковика ???
принадлежность поисковика оно в принципе опрделеит правильно, но поисковик должен придти с иноязычного ресурса, а для своей индексации
я бы все таки делал не через сессии а через _GET ---- index.php?language=rus и на главной странице перелинковку флажками на разные языки
вот тогда поисквая оптимизация будет правильной и проиндексируются все языки
и плюс ко всему еще функцию которая определяет язык пользователя, например если он перешел по прямой ссылке с поиковика на ....index.php?language=rus
а у него англ язык, то предложит ему выбрать язык (чтобы не предлагало два раза писать его выбор в сессию)
#17
Отправлено 01 October 2011 - 11:25 PM
#18
Отправлено 04 October 2011 - 11:30 AM
Ест у кого то?
#19
Отправлено 04 October 2011 - 04:40 PM
принадлежность поисковика оно в принципе опрделеит правильно, но поисковик должен придти с иноязычного ресурса, а для своей индексации
я бы все таки делал не через сессии а через _GET ---- index.php?language=rus и на главной странице перелинковку флажками на разные языки
вот тогда поисквая оптимизация будет правильной и проиндексируются все языки
и плюс ко всему еще функцию которая определяет язык пользователя, например если он перешел по прямой ссылке с поиковика на ....index.php?language=rus
а у него англ язык, то предложит ему выбрать язык (чтобы не предлагало два раза писать его выбор в сессию)
Так у меня еще вопрос возник походу.... как будет выглядеть ссылка которая сгенерируется после перевода.... допустим была страница
_http://site.ru/o_nas.html после перевода что будет? т.к. без ЧПУ опять же смысл теряется
#20
Отправлено 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) нужна реализация чпу которая берет название товара и просто делает либо транслит если название русское либо перевод на нужный язык а потом уже транслит с переведнного