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

Тема в разделе "Shop-script", создана пользователем Plushev, 17 сен 2008.

Статус темы:
Закрыта.
  1. Plushev

    Plushev Постоялец

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

    Есть магазин (http://www.3dsmagazine.com) он переведён на английский язык, но названия категорий перевести не получается. Мне посоветовали сделать так: создать поле в таблице с английским названием, и в зависимости от языка выбирать из того или иного поля значения.

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

    Может у кого есть другие идеи как это сделать, или я чего-то неправильно делаю? Очень прошу совета.
     
  2. Feel

    Feel Постоялец

    Регистр.:
    5 дек 2006
    Сообщения:
    113
    Симпатии:
    43
    Я не очень понял, Вам нужно полностью сделать что бы весь магазин был на английском?
    Категории в админке создаються, их просто нужно создать/переименовать на английский непосредственно в админке.
     
  3. Plushev

    Plushev Постоялец

    Регистр.:
    28 июл 2008
    Сообщения:
    57
    Симпатии:
    3

    Необходимо чтобы было два языка русский и английский - я всё перевёл, но у категорий есть только русские названия, поэтому переходя в английский режим категории остаются на русском, проблема в этом.
     
  4. TORPANS

    TORPANS Создатель

    Регистр.:
    10 авг 2008
    Сообщения:
    27
    Симпатии:
    0
    Меня тоже очень интересует эта тема. Мне сказали , что на форуме где-то уже есть подробное решение полной многоязычности. Уже три дня лажу по форуму - пока нашёл только Вашу тему. Если, что узнаете выложите пожалуйста здесь !!!
     
  5. scem

    scem Постоялец

    Регистр.:
    22 дек 2006
    Сообщения:
    110
    Симпатии:
    8
    в соседнем топе про разные цены для разных городов - имхо решение такое же разные магазины
     
  6. while

    while Создатель

    Регистр.:
    25 июл 2008
    Сообщения:
    43
    Симпатии:
    24
    Два поля. Одно для русского (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)

    тогда языков больше будет...
     
    TORPANS и Plushev нравится это.
  7. scem

    scem Постоялец

    Регистр.:
    22 дек 2006
    Сообщения:
    110
    Симпатии:
    8
    это так, но
    а) интерфейс админки
    б) экспорт-импорт
    в) все отчеты
    ..........
    продолжать можно долго
     
  8. TORPANS

    TORPANS Создатель

    Регистр.:
    10 авг 2008
    Сообщения:
    27
    Симпатии:
    0
    а как в админке? надо создавать поля для другого языка, например 2-ю колонку как в OSCommerce, для вбивания на другом языке, но что-то мне подсказывает, что будут проблемы с кодировкой
     
  9. Plushev

    Plushev Постоялец

    Регистр.:
    28 июл 2008
    Сообщения:
    57
    Симпатии:
    3
    Спасибо 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}

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

    TORPANS Создатель

    Регистр.:
    10 авг 2008
    Сообщения:
    27
    Симпатии:
    0
    =======================================================================================
    = Спасибо 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. Если не сложно выложи линк на магазин (или в личку)
     
Статус темы:
Закрыта.