Помощь Организация мультиязычности на Presta 1.7

И на 1.7 тоже есть. Я себе убирал ru. Сейчас конечно фиг вспомнишь, но если надо - могу поковырять. Причем точно помню, что делал через оверрайды, чтобы больше к этому не возвращаться. А вообще инфы в гугле полно, стоит только попробовать начать поиск.
 
Решение для престы версии 1.7.x.x :
По такому пути /override/classes/ создаете файл Link.php с вот таким содержимым:
PHP:
<?php

class Link extends LinkCore
{
    protected function getLangLink($idLang = null, Context $context = null, $idShop = null)
    {
        static $psRewritingSettings = null;
        if ($psRewritingSettings === null) {
            $psRewritingSettings = (int) Configuration::get('PS_REWRITING_SETTINGS', null, null, $idShop);
        }

        if (!$context) {
            $context = Context::getContext();
        }

        if ((!$this->allow && in_array($idShop, array($context->shop->id,  null))) || !Language::isMultiLanguageActivated($idShop) || !$psRewritingSettings) {
            return '';
        }

        if (!$idLang) {
            $idLang = $context->language->id;
        }

        if (Configuration::get('PS_LANG_DEFAULT') == $idLang) {
            return '';
        }
        else {
            return Language::getIsoById($idLang).'/';
        }
    }
}

Этот код работает следующим образом: он убирает приставку языка только у того, который является главным (по умолчанию / основным). На всех остальных приставка языка остается.
 
Последнее редактирование:
К сожалению на версии 1.7.6.3 не работает, 500 ошибка

Решение для престы версии 1.7.x.x :
По такому пути /override/classes/ создаете файл Link.php с вот таким содержимым:
PHP:
<?php

class Link extends LinkCore
{
    protected function getLangLink($idLang = null, Context $context = null, $idShop = null)
    {
        static $psRewritingSettings = null;
        if ($psRewritingSettings === null) {
            $psRewritingSettings = (int) Configuration::get('PS_REWRITING_SETTINGS', null, null, $idShop);
        }

        if (!$context) {
            $context = Context::getContext();
        }

        if ((!$this->allow && in_array($idShop, array($context->shop->id,  null))) || !Language::isMultiLanguageActivated($idShop) || !$psRewritingSettings) {
            return '';
        }

        if (!$idLang) {
            $idLang = $context->language->id;
        }

        if (Configuration::get('PS_LANG_DEFAULT') == $idLang) {
            return '';
        }
        else {
            return Language::getIsoById($idLang).'/';
        }
    }
}

Этот код работает следующим образом: он убирает приставку языка только у того, который является главным (по умолчанию / основным). На всех остальных приставка языка остается.
 
Ну что, с Новым годом и Новым законом, земляки!
Освежим темку, так как снова актуальна.
Делитесь кто как убрал приставку на 1.7.6
Disallow: /ua/* сработает?

и еще. где "научить" ЧПУ правильно понимать украинские симолы?
/* UKRAINIAN CHARS*/
'Є' => 'Ye', 'І' => 'I', 'Ї' => 'Yi', 'Ґ' => 'G',
'є' => 'ye', 'і' => 'i', 'ї' => 'yi', 'ґ' => 'g',
 
Последнее редактирование:
Есть что актуального по этой теме?
 
Знаю, что Андрей с elcommerce делает переход на дефолтный укр. безболезненно для сеошки, как тут Для просмотра ссылки Войди или Зарегистрируйся
 
Вот ещё интересное решение для реализации мультиязычности и мультидоменности (+по странам можно долю рынка распределить заодно:(

This module allows you to set a domain for every installed language.
That means you can set a domain extension for each installed language.
No multistore is needed!
Have a unique domain for every language (or country) that you are selling your products.

Для просмотра ссылки Войди или Зарегистрируйся


пока не понятно, как в плане скорости работы и регионального SEO будет работать...

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

MS Translate как-то очень криво переводит некоторые слова. Прям комедия - читать результат перевода.
 
Назад
Сверху