Magento – Storeview / Thay đổi ngôn ngữ bằng URL (Thay đổi laguage qua URL)

Đó là một vấn đề được thảo luận rộng rãi: Làm thế nào để tôi thay đổi dựa trên URL Cửa hàng Xem hay ngôn ngữ?

Bạn có thể thiết lập các phụ trợ khác nhau xem Cửa hàng, tùy thuộc vào thả xuống đặt ở lối vào sau đó thay đổi sự xuất hiện và / hoặc ngôn ngữ. Nó trở nên khó khăn nhưng, nếu bạn (Cũng từ lý do Google) muốn sử dụng một tên miền khác nhau cho một cửa hàng Xem, như đối với các View khác.

Do đó, vị trí bắt đầu:

nó sẽ www.english.com cho tiếng Anh hàng Xem (“Anh” được sử dụng và

www.deutsch.de cho xem cửa hàng Đức (“deutsch”).

Điều đó tất nhiên cả hai lĩnh vực đăng ký và trong cPanel của tôi (o.ä.) trên public_html (o.ä.) được chuyển, chúng tôi thậm chí còn trước.
Hai lần xem cửa hàng cũng được trang bị trong cấu hình > Web là trong cửa hàng xem “deutsch” như URL cơ sở www.deutsch.de và StoreView “Anh” là www.english.com gửi (và các URL khác).

Bây giờ nó đi vào những điểm quan trọng:

1. index.php: Ansich là ở đây dọc theo dòng

công tắc điện($_SERVER['HTTP_HOST']) { 

// Deutsch
case 'www.deutsch.de':
trường hợp 'deutsch.de':
$_SERVER["MAGE_RUN_CODE"] = "deutsch";
$_SERVER["MAGE_RUN_TYPE"] = "trang mạng";
phá vỡ;

// Tiếng Anh
case 'www.englisch.de':
trường hợp 'englisch.de':
$_SERVER["MAGE_RUN_CODE"] = "Anh";
$_SERVER["MAGE_RUN_TYPE"] = "trang mạng";
phá vỡ;

// nếu không thì (cửa hàng mặc định)
mặc định:
phá vỡ;
}

tiến hành. Những đường giữa

#ini_set('Display_errors', 1);

umask(0);

chèn

Thiết lập này hoạt động tốt cho các trường hợp, rằng với www. và không có www. URL được truy cập và có một trang web, sự thay đổi ý định. Nhưng nếu chỉ có một điểm lưu trữ được gọi và không có website, có vấn đề, điều đó

 

// Tiếng Anh
case 'www.english.com':
$_SERVER["MAGE_RUN_CODE"] = "Anh";
$_SERVER["MAGE_RUN_TYPE"] = "storeview";
phá vỡ;

 

sẽ không làm việc, vì nó không phải là có thể với Magento, Cửa hàng Quan điểm về lệnh “storeview” cuộc gọi. Tổng số vô lý nhưng vẫn làm việc hoàn hảo phiên bản này:

 

// Tiếng Anh
case 'www.english.com':
$_SERVER["MAGE_RUN_CODE"] = "Anh";
phá vỡ;

 

Nó chỉ đơn giản là những dòng cuối cùng trái hoàn toàn biến mất.

Sau đó, các URL nên bằng cách thay đổi lối Lần Store có thể đã được cũng thay đổi. Mặt khác, tất nhiên, tình hình vừa ý, mà khi gọi www.english.com Tiếng Anh hàng View được gọi là trực tiếp.

Không nên cho nó hoạt động, có thể sẽ có một chút gì đó trong .htaccess được thay đổi:

RewriteCond %{HTTP_HOST} !^ www  .english  .com $
RewriteCond %{HTTP_HOST} !^ english  .com $
RewriteCond %{HTTP_HOST} !^ www  .deutsch  .de $
RewriteCond %{HTTP_HOST} !^ Tiếng Đức  .de $
Viết lại quy tắc ^(.*)$ http://www.deutsch.de/$1 [L,R = 301]

Đặc biệt, yêu cầu là, điều đó www.deutsch.de và các cửa hàng Đức xem các chính- và miền cơ bản.

Để biết thêm thông tin về các phiên bản gần đây -Cũng Magento có sẵn trong điều này và trong điều này sự đóng góp.

Được sử dụng trong các phiên bản Magento 1.4.1.0, 1.4.1.1 và 1.5

Xuất bản bởi sợi Dệt

từ 2009 Tôi đã làm việc chặt chẽ với Magento. Tôi bắt đầu với việc tạo ra và hoạt động của các cửa hàng B2C. Điều này đã được mở rộng thông qua công việc của tôi trong lĩnh vực logistics. Điều này dẫn đến hệ thống B2E đầu tiên chuyên. Hôm nay tôi làm việc ngày một ngày với B2C thú vị, B2B- và các dự án B2E và báo cáo trong blog này về những thách thức và đưa ra lời khuyên trong cuộc.

2 Nhận xét về "Magento – Storeview / Thay đổi ngôn ngữ bằng URL (Thay đổi laguage qua URL)”

  1. Xin chào,

    lý do là một quy ước đặt tên khác nhau trong backend admin và mã.

    quản trị viên | Mã
    ———————
    Trang mạng | Trang mạng
    Cửa hàng | lớn Nhóm
    cửa hàng Xem | Cửa hàng

    Store được hai lần chiếm đóng và chỉ có thể phụ thuộc vào bối cảnh giải thích rõ ràng.
    Vì vậy, để muốn đến nay xác định MAGE_RUN_CODE một cái nhìn cửa hàng phải MAGE_RUN_TYPE trên “cửa hàng” được thiết lập, vì chúng ta “là trong các mã”.
    may mắn “cửa hàng” anyway MAGE_RUN_TYPE mặc định nếu ông được để trống, do đó ví dụ cũng trình trao mà không MAGE_RUN_TYPE.

Để lại một trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *