*

Spido

  • *
  • 1607

Русский язык для osCommerce Online Merchant v2.3.1

Русский язык для osCommerce Online Merchant v2.3.1

1. Файлы из первого архива залить в директорию магазина catalog/includes/languages/
2. Дамп обновления базы из второго архива залить в базу MySQL чистого магазина, чтобы русифицировать админку.
3. Файл из третьего архива положить в папку catalog/admin/includes/languages/

Перед русификацией админки - делайте бекап базы MySQL!
Если что-то не получится, то всегда сможете откатить назад.

Как залить дамп обновления базы:
Открываете панель управления базой PhpMyAdmin, входите под логином и паролем в эту панель.
Вверху слева будет горизонтальное меню с кнопкой "SQL".
Жмете на эту кнопку, откроется окно, где вставляете новые таблицы базы.
Выбираете файл oscommerce_update_ru.sql (файл имеет кодировку UTF-8) и жиете ОК.
Таблицы должны прописаться в базу, о чём будет выведено соответствующее сообщение по окончании процедуры записи.

Для корректного отображения русского языка нужно сделать изменения в двух файлах:

admin/includes/functions/database.php
includes/functions/database.php

заменить строчку:

Код: (здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)
if ($$link) mysql_select_db($database);на:
Код: (здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)
if ($$link) { 
        mysql_select_db($database); 
        $encode = 'utf8'; 
        mysql_query("set names '".$encode."'"); 
        mysql_query("set character_set_client='".$encode."'"); 
        mysql_query("set character_set_results='".$encode."'"); 
        mysql_query("set character_set_server='".$encode."'"); 
        mysql_query("set character_set_database='".$encode."'"); 
        mysql_query("set character_set_connection='".$encode."'"); 
        mysql_query("set session collation_connection='".$encode."_general_ci'"); 
        mysql_query("set collation_connection='".$encode."_general_ci'"); 
        mysql_query("set collation_server='".$encode."_general_ci'"); 
        header('Content-type: text/html; charset=utf8'); 
}
 

Скачать оригинальную английскую версию магазина можно здесь (здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)
Демонстрационный русифицированный магазин можно посмотреть здесь:
  • (здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)

« Последнее редактирование: 31 Янв. 2011 09:46:42 am от Spido »

Добрый день.
У меня есть несколько вопросов:
1. В какой кодировке нужно создавать базу данных для корректного отображения русского языка, в cp1251_general_ci или utf8_general_ci ?
2. Почему в Opera частично не отображает русский язык магазина установленного на вашем сайте (здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)? Но Explorer и Mozzila отображают нормально. Это проблемы оперы или неправильной установки магазина?
Файлы русского языка я так понял находятся в кодировке utf8. Изначально все ставил в этой кодировке, но русский язык нормально не отображался. Потом ставил в cp1251_general_ci, при этом пришлось перекодировать все языковые файли в cp1251, Explorer и Mozzila отображать стали нормально, но вот opera так же как и на вашем демо магазине, названия блоков, разделав отображаются как квадратики, но описание станиц показывает нормально.
В чем проблема?

*

Spido

  • *
  • 1607

1. в utf8_general_ci
2. это проблемы Opera

Спасибо, вроде все получилось.
Правда еще пришлось в файлах
www/admin/includes/functions/database.php , www/includes/functions/database.php
заменить строчку:

Код: (здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)
if ($$link) mysql_select_db($database);на:
Код: (здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)
if ($$link) { 
        mysql_select_db($database); 
        $encode = 'utf8'; 
        mysql_query("set names '".$encode."'"); 
        mysql_query("set character_set_client='".$encode."'"); 
        mysql_query("set character_set_results='".$encode."'"); 
        mysql_query("set character_set_server='".$encode."'"); 
        mysql_query("set character_set_database='".$encode."'"); 
        mysql_query("set character_set_connection='".$encode."'"); 
        mysql_query("set session collation_connection='".$encode."_general_ci'"); 
        mysql_query("set collation_connection='".$encode."_general_ci'"); 
        mysql_query("set collation_server='".$encode."_general_ci'"); 
        header('Content-type: text/html; charset=utf8'); 
}
 
А то отображалось какие то иероглифы.
А вот с оперой как то некрасиво получается, надеюсь они там поскорее исправят этот глюк.

*

Spido

  • *
  • 1607

jam214, информация об изменениях в файла - полезна.
Добавлю в хелп по установке русского языка.

почему при переименовании товара на руский язык отображаются только знаки "
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)
"

*

Spido

  • *
  • 1607

Если Вы сделали всё как указано в первом сообщении, то знаков вопроса не будет.
Значит что-то не доделали в файлах:
admin/includes/functions/database.php
includes/functions/database.php

Да мне помогло и у меня руссифицировалась и админка и каталог. Но пока детально не смотрел остальное.

1)У меня вопрос в админ панели есть раздел Настройки - Администраторы и такой сервис (дополнителной защиты) - Дополнительная защита htaccess/htpasswd. Что это за сервис и как им правильно пользоватся?
2)И есть еще один раздел Настройки - Безопасность прав директорий. И этим инструментом как пользоваться правильно, объясните пожалуйста.

*

Spido

  • *
  • 1607

1. Здесь ответ (здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)
2. По работе с директориями лучше почитать в сети. Большой объем информации.

Спасибо,  русификация прошла нормально, но вот только отзывы, в админке и в самих отзывах отображается зак  � ("Да классны�-� фильмец, советую всем посмотр�-�ть !!")    что  делать
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

*

Spido

  • *
  • 1607

(здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)
Спасибо,  русификация прошла нормально, но вот только отзывы, в админке и в самих отзывах отображается зак  � ("Да классны�-� фильмец, советую всем посмотр�-�ть !!")    что  делать
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

Видимо неправильно база настроена в части соотношения.
Попробуйте поменять соотношение.

Похоже что там не сделана нормальная функция wordwrap под русский язык... Я на 3.0 версии доделывал чтобы все ок было.

Во всех файлах отзывов где есть такие каракули нужно прописать функцию utf8_wordwrap такого плана(проверенный рабочий вариант для utf8):

Код: (здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)
   function utf8_wordwrap($str, $width = 75, $break = "\n", $return = '') // wordwrap() with utf-8 support
    {
        $str =  preg_split('/([\x20\r\n\t]++|\xc2\xa0)/sSX', $str, -1, PREG_SPLIT_NO_EMPTY);
        $len = 0;
        foreach ($str as $val)
        {
            $val .= ' ';
            $tmp = mb_strlen($val, 'utf-8');
            $len += $tmp;
            if ($len >= $width)
            {
                $return .= $break . $val;
                $len = $tmp;
            }
            else
                $return .= $val;
        }
        return $return;
    }

Добавьте это в начале файла. И далее команду wordwrap меняем на utf8_wordwrap в файле.

Если же это только ваш частный случай а у всех все хорошо - то ищите в другом месте ошибки.

Попробуйте

Ошибка при импорте базы:

Цитировать
import.php: Missing parameter: import_type (FAQ 2.8 )
import.php: Missing parameter: format (FAQ 2.8 )


PS:  хостеры залили

« Последнее редактирование: 10 Июль 2011 22:31:27 pm от andreyseo »
*

Spido

  • *
  • 1607

Если в административной части магазина установлен русский язык - дефолтным, значит магазин и будет открываться первым на русском языке.
Если Вам ненужен английский язык, то можно его вообще удалить.