Перевод магазина

Статус
В этой теме нельзя размещать новые ответы.

Plushev

Постоялец
Регистрация
28 Июл 2008
Сообщения
57
Реакции
3
Есть такая серьёзная проблема, она уже поднималась в других темах, но решить её не получилось.

Есть магазин (Для просмотра ссылки Войди или Зарегистрируйся) он переведён на английский язык, но названия категорий перевести не получается. Мне посоветовали сделать так: создать поле в таблице с английским названием, и в зависимости от языка выбирать из того или иного поля значения.

Перекрыл весь core_functions/category.php в нём нашёл десятка два обращений к нужной таблице, решил для пробы заменить ВСЕ name на ename(поле с англ. названием категории) - толку ноль. Менял по одиночку - опять толку ноль.

Может у кого есть другие идеи как это сделать, или я чего-то неправильно делаю? Очень прошу совета.
 
Я не очень понял, Вам нужно полностью сделать что бы весь магазин был на английском?
Категории в админке создаються, их просто нужно создать/переименовать на английский непосредственно в админке.
 
Я не очень понял, Вам нужно полностью сделать что бы весь магазин был на английском?
Категории в админке создаються, их просто нужно создать/переименовать на английский непосредственно в админке.


Необходимо чтобы было два языка русский и английский - я всё перевёл, но у категорий есть только русские названия, поэтому переходя в английский режим категории остаются на русском, проблема в этом.
 
Меня тоже очень интересует эта тема. Мне сказали , что на форуме где-то уже есть подробное решение полной многоязычности. Уже три дня лажу по форуму - пока нашёл только Вашу тему. Если, что узнаете выложите пожалуйста здесь !!!
 
в соседнем топе про разные цены для разных городов - имхо решение такое же
 
Два поля. Одно для русского (name) = 0, другое для английского (ename) = 1 (или наоборот). А в шаблонах условие. Что-то вроде того:

PHP:
{if $smarty.session.current_language eq 0} $categories_tree.name {/if} 
{if $smarty.session.current_language eq 1} $categories_tree.ename {/if}

Можно создать доп. таблицу - products_lang_names (lang_id, product_name) и в зависимости от выбранного языка запрос:

select ....
from products p
left join products_lang_names pln on (p.product_id = pln.product_id and pln.lang_id = LANG_NUMBER)

тогда языков больше будет...
 
Два поля. Одно для русского (name) = 0, другое для английского (ename) = 1 (или наоборот). А в шаблонах условие. Что-то вроде того:

PHP:
{if $smarty.session.current_language eq 0} $categories_tree.name {/if} 
{if $smarty.session.current_language eq 1} $categories_tree.ename {/if}

Можно создать доп. таблицу - products_lang_names (lang_id, product_name) и в зависимости от выбранного языка запрос:

select ....
from products p
left join products_lang_names pln on (p.product_id = pln.product_id and pln.lang_id = LANG_NUMBER)

тогда языков больше будет...

а как в админке? надо создавать поля для другого языка, например 2-ю колонку как в OSCommerce, для вбивания на другом языке, но что-то мне подсказывает, что будут проблемы с кодировкой
 
Спасибо WHile!

Сделал правда немного по другому:

1. В файле category_functions.php добавил во все sql запросы типа SELECT рядом с name ename, то есть они
выглядят у меня примерно так:

$q = db_query("select categoryID, ename, name from ".CATEGORIES_TABLE.
" where parent=".$path[$level]["parent"]." order by sort_order, name") и т.д.

2. В файле english и russian.php добавил константу
define('POLE', '1'); и 0 соответственно.

3. В файле category_tree.tpl.html прописал:

{if $smarty.const.POLE eq 1} {$categories_tree.name} {/if}
{if $smarty.const.POLE eq 0} {$categories_tree.ename} {/if}

Всё замечательно работает) Есть вопросы по этому поводу пишите в теме или в личку отвечу.
Спасибо всем кто помог решить этот вопрос.
 
=======================================================================================
= Спасибо WHile!

= Сделал правда немного по другому:

= 1. В файле category_functions.php добавил во все sql запросы типа SELECT рядом с name ename, то есть они
= выглядят у меня примерно так:

= $q = db_query("select categoryID, ename, name from ".CATEGORIES_TABLE.
= " where parent=".$path[$level]["parent"]." order by sort_order, name") и т.д.

= 2. В файле english и russian.php добавил константу
= define('POLE', '1'); и 0 соответственно.

= 3. В файле category_tree.tpl.html прописал:

= {if $smarty.const.POLE eq 1} {$categories_tree.name} {/if}
= {if $smarty.const.POLE eq 0} {$categories_tree.ename} {/if}

= Всё замечательно работает) Есть вопросы по этому поводу пишите в теме или в личку отвечу.
= Спасибо всем кто помог решить этот вопрос.
================================================================================

WAU!!! Круто, но давай по порядку.
Начнём с базы данных:
В какой таблице создаёшь ename?
...
...
P.S. Если не сложно выложи линк на магазин (или в личку)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху