Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как добавить перевод стран и городов в форме заказа


dvigok

Recommended Posts

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

Установил три локализации Рус, Испанский, Английский (скачал этот архив и с него взял папку - language с нужными языками - база была с русского opencart) (http://www.opencart...._download_id=23)

- все переводится кроме стран и городов при заказе товара. Что нужно изменить (в каком файле) или что добавить.

Сайт: http://worldmapmarin...ap-of-logistics

Версия Op[enCart 1.5.1.3

Надіслати
Поділитися на інших сайтах


там дело не в том, что города не переводятся, в базе данных русские названия городов для Российской Федерации ну и еще нескольких родственных стран. Для остальных стран названия городов на английском.

ну а делать что, перевести названия городов

(195, 'Испания', 'ES', 'ESP', '', 0, 1),

вот для записей с признаком 195, переводишь все города, на префикс городов внимания не обращай.

(2971, 195, 'AL', 'Álava', 1),
(2972, 195, 'AB', 'Albacete', 1),
(2973, 195, 'AC', 'Alicante', 1),
(2974, 195, 'AM', 'Almeria', 1),
(2975, 195, 'AS', 'Asturias', 1),
(2976, 195, 'AV', 'Ávila', 1),
(2977, 195, 'BJ', 'Badajoz', 1),
(2978, 195, 'IB', 'Baleares', 1),
(2979, 195, 'BA', 'Barcelona', 1),
(2980, 195, 'BU', 'Burgos', 1),
(2981, 195, 'CC', 'Cáceres', 1),
(2982, 195, 'CZ', 'Cádiz', 1),
(2983, 195, 'CT', 'Cantabria', 1),
(2984, 195, 'CL', 'Castellón', 1),
(2985, 195, 'CE', 'Ceuta', 1),
(2986, 195, 'CR', 'Ciudad Real', 1),
(2987, 195, 'CD', 'Córdoba', 1),
(2988, 195, 'CU', 'Cuenca', 1),
(2989, 195, 'GI', 'Girona', 1),
(2990, 195, 'GD', 'Granada', 1),
(2991, 195, 'GJ', 'Guadalajara', 1),
(2992, 195, 'GP', 'Guipúzcoa', 1),
(2993, 195, 'HL', 'Huelva', 1),
(2994, 195, 'HS', 'Huesca', 1),
(2995, 195, 'JN', 'Jaén', 1),
(2996, 195, 'RJ', 'La Rioja', 1),
(2997, 195, 'PM', 'Las Palmas', 1),
(2998, 195, 'LE', 'Leon', 1),
(2999, 195, 'LL', 'Lleida', 1),
(3000, 195, 'LG', 'Lugo', 1),
(3001, 195, 'MD', 'Madrid', 1),
(3002, 195, 'MA', 'Malaga', 1),
(3003, 195, 'ML', 'Melilla', 1),
(3004, 195, 'MU', 'Murcia', 1),
(3005, 195, 'NV', 'Navarra', 1),
(3006, 195, 'OU', 'Ourense', 1),
(3007, 195, 'PL', 'Palencia', 1),
(3008, 195, 'PO', 'Pontevedra', 1),
(3009, 195, 'SL', 'Salamanca', 1),
(3010, 195, 'SC', 'Santa Cruz de Tenerife', 1),
(3011, 195, 'SG', 'Segovia', 1),
(3012, 195, 'SV', 'Sevilla', 1),
(3013, 195, 'SO', 'Soria', 1),
(3014, 195, 'TA', 'Tarragona', 1),
(3015, 195, 'TE', 'Teruel', 1),
(3016, 195, 'TO', 'Toledo', 1),
(3017, 195, 'VC', 'Valencia', 1),
(3018, 195, 'VD', 'Valladolid', 1),
(3019, 195, 'VZ', 'Vizcaya', 1),
(3020, 195, 'ZM', 'Zamora', 1),
(3021, 195, 'ZR', 'Zaragoza', 1),
  • +1 1
Надіслати
Поділитися на інших сайтах


  • 1 year later...

список есть, по всем странам, парсера не видел

http://www.tury.ru/resort/list.php?cn=22

 

а вот тут есть базы, посмотри

https://github.com/x88/i18nGeoNamesDB

Змінено користувачем Zeppelin
  • +1 1
Надіслати
Поділитися на інших сайтах


Можно ведь хранить таблицы стран и регионов для каждого языка, и в зависимости от выбранного перевода сайта подставлять нужные таблицы. Только вот с моими скудными знаниями у меня не получается вычислить ту переменную которая хранит код языка. Пробовал $language_id, не определена :( Посоветуйте

Надіслати
Поділитися на інших сайтах


Вроде получилось. Теперь список стран и регионов выводится на выбранном на языке (en, ru).

Вместе с этим форумом я выдавил вот такое решение

  • Для каждого языка добавил таблички country и zone с нужным переводом в базу данных
  • Подкорректировал запрос к БД в файликах \model\localisation\country.php, zone.php 
    SELECT * FROM " . DB_PREFIX . "country_" . $this->session->data['language'] . " WHERE status = '1' ORDER BY name ASC"
    

Только пришлось убрать проверку на наличие списка в кеше.

public function getZonesByCountryId($country_id) {
/* 		$zone_data = $this->cache->get('zone.' . (int)$country_id);
		if (!$zone_data) { */
			$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_" . $this->session->data['language'] . " WHERE country_id = '" . (int)$country_id . "' AND status = '1' ORDER BY name");
			$zone_data = $query->rows;
			$this->cache->set('zone.' . (int)$country_id, $zone_data);
/* 		} */
		return $zone_data;
Надіслати
Поділитися на інших сайтах


  • 1 month later...

 

Вроде получилось. Теперь список стран и регионов выводится на выбранном на языке (en, ru).

Вместе с этим форумом я выдавил вот такое решение

  • Для каждого языка добавил таблички country и zone с нужным переводом в базу данных
  • Подкорректировал запрос к БД в файликах \model\localisation\country.php, zone.php 
    SELECT * FROM " . DB_PREFIX . "country_" . $this->session->data['language'] . " WHERE status = '1' ORDER BY name ASC"
    

Только пришлось убрать проверку на наличие списка в кеше.

public function getZonesByCountryId($country_id) {
/* 		$zone_data = $this->cache->get('zone.' . (int)$country_id);
		if (!$zone_data) { */
			$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_" . $this->session->data['language'] . " WHERE country_id = '" . (int)$country_id . "' AND status = '1' ORDER BY name");
			$zone_data = $query->rows;
			$this->cache->set('zone.' . (int)$country_id, $zone_data);
/* 		} */
		return $zone_data;

а вы не могли бы более подробно расписать шаги, очень надо ! все сделал а вот этот пункт портит все  :( помогите пожалуйста

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

а вы не могли бы более подробно расписать шаги, очень надо ! все сделал а вот этот пункт портит все  :( помогите пожалуйста

А что конкретно Вам не ясно?

Таблицы со странами и регионами брал с разных локализаций Опенкарта. Назвал country_ru, country_en, zone_ru, zone_en.

Найдите в файлах \model\localisation\country.php и zone.php  строку 

SELECT * FROM " . DB_PREFIX . "country"  WHERE status = '1' ORDER BY name ASC"

 и замените на 

SELECT * FROM " . DB_PREFIX . "country_" . $this->session->data['language'] . " WHERE status = '1' ORDER BY name ASC"

во втором файле, вместо country - zone

$this->session->data['language'] эта переменная хранит код используемого языка. То есть теперь данные будут браться из таблички country_ru или country_en в зависимости от выбранного языка 

Или Вам объяснить как работать в phpmyadmin? Простите, но я не понял что Вы не поняли)

Надіслати
Поділитися на інших сайтах


  • 1 month later...

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

Установил три локализации Рус, Испанский, Английский (скачал этот архив и с него взял папку - language с нужными языками - база была с русского opencart) (http://www.opencart...._download_id=23)

- все переводится кроме стран и городов при заказе товара. Что нужно изменить (в каком файле) или что добавить.

Сайт: http://worldmapmarin...ap-of-logistics

Версия Op[enCart 1.5.1.3

 

новое решение Countries & Zones PRO (Страны и Зоны PRO) 3.14

Надіслати
Поділитися на інших сайтах

  • 3 months later...

А что конкретно Вам не ясно?

Таблицы со странами и регионами брал с разных локализаций Опенкарта. Назвал country_ru, country_en, zone_ru, zone_en.

Найдите в файлах \model\localisation\country.php и zone.php  строку 

SELECT * FROM " . DB_PREFIX . "country"  WHERE status = '1' ORDER BY name ASC"

 и замените на 

SELECT * FROM " . DB_PREFIX . "country_" . $this->session->data['language'] . " WHERE status = '1' ORDER BY name ASC"

во втором файле, вместо country - zone

$this->session->data['language'] эта переменная хранит код используемого языка. То есть теперь данные будут браться из таблички country_ru или country_en в зависимости от выбранного языка 

Или Вам объяснить как работать в phpmyadmin? Простите, но я не понял что Вы не поняли)

 

Сделал все по Вашему описанию, но вылезло 2 косяка:

1) При создании отдельных таблиц в БД для разных языков все равно на странице оформления заказа выдает ошибку, что не может найти в данной бд таблицу с предыдущем именем (оригинальную таблицу), не могу понять откуда еще не нее ссылается opencart.

2) При выборе любой страны регионы стали подгружаться в полном объеме, все что есть.

Подскажите в чем может быть дело?

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Если еще актуально... Был оффлайн)

Прикрепил два изменённых файлика и четыре таблицы в формате sql. Если в вашей БД есть таблице с такими именами, удалите их, потом импортируйте мои.

Сделайте копии своих файлов и БД сначала

 

Все изменения делаете на свой страх и риск.

zone.php

country.php

4_tables_in_db.zip

Надіслати
Поділитися на інших сайтах


  • 1 year later...

Господа, некоторые базы регионов и городов являются некачественными, так как их досконально не анализировали на ошибки и не корректировали. Те, что выложены в этой и смежной теме тоже такие или исправлены?

Пример ошибочных данных. Этот скриншот сделал с примера, что предлагает указанный продавец модуля с пометкой PRO на странице товара.

ee85a8add2266c485bcfc196a227f19d.jpg

Список районов на самом деле

Надіслати
Поділитися на інших сайтах


Думаю, для таких ситуаций возможен вариант, когда снизу или сверху выпадающего списка регионов есть дополнительное поле с надписью сверху него: "Если вашей области (региона) нету в выпадающем списке, введите
название здесь:".
Если пытаться добавлять недостающие области вручную, то думаю, что всё равно нужен такой вариант, потому что сложно может быть разобраться, какое территориальное деление существует в настоящее время и какие правильные названия.

Надіслати
Поділитися на інших сайтах


  • 3 months later...

Opencart 1.5.6.4  

 

1. Скачиваем архив,

2. разархивируем.

3. Увидим  store (4).sql

4. Идем в свою базу данных - делаем её бекап

5. Удаляем Ваши английские  oc_coutry, oc_zone таблицы из базы данных

6. Заливаем эти

Радуемся потому что у нас все на русском.

 

store (4).zip

 

Удачи всем.  Я так долго мучался и решение нашлось

Змінено користувачем ERserver
  • +1 1
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Opencart 1.5.6.4  

 

1. Скачиваем архив,

2. разархивируем.

3. Увидим  store (4).sql

4. Идем в свою базу данных - делаем её бекап

5. Удаляем Ваши английские  oc_coutry, oc_zone таблицы из базы данных

6. Заливаем эти

Радуемся потому что у нас все на русском.

 

attachicon.gifstore (4).zip

 

Удачи всем.  Я так долго мучался и решение нашлось

 

матюкается на ошибки, но основной костяк СНГ-стран перевелся полностью. Большое спасибо! 

 

НО! Крым и его города по-прежнему приписываются к Украине. 

Надіслати
Поділитися на інших сайтах


матюкается на ошибки, но основной костяк СНГ-стран перевелся полностью. Большое спасибо! 

 

НО! Крым и его города по-прежнему приписываются к Украине. 

 

У меня ошибок не было - странно

Брал перевод с чистого opencart 1.5.6.4

Надіслати
Поділитися на інших сайтах


Если еще актуально... Был оффлайн)

Прикрепил два изменённых файлика и четыре таблицы в формате sql. Если в вашей БД есть таблице с такими именами, удалите их, потом импортируйте мои.

Сделайте копии своих файлов и БД сначала

 

Все изменения делаете на свой страх и риск.

У меня ваша ру база импортировалась с ? вместо символов, как правильно ее импортировать, какой кодировкой?

 

p.s.решил проблему другим способом : просто скопировал старую country и zone в country_ru и zone_ru

Змінено користувачем rodigy
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
  • 3 months later...
  • 3 years later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.