Yêu cầu thg 9 16, 2021 3:41 SA 63 0 2
  • 63 0 2
+1

hỏi về Javascrip window.navigator.language

Chia sẻ
  • 63 0 2

Hi Anh Chị, cho e hỏi về window.navigator.language

e có website với 2 url: abc.comabc.com/vn

abc.com ngôn ngữ English. vì nó dùng script window.navigator.language lấy ngôn ngữ măc định của browser để dịch lại các thông tin website.

vấn đề là khi e vào link abc.com/vn thì nó củng lấy ra ngôn ngử theo chrome browser mặt định 'en'.

có cách nào khi nhập abc.com/vn thì nó modify window.navigator.language ngôn ngữ mặc định của chorme chuyển thành 'vi' để các đoạn code bên dưới ko bị lỗi ngôn ngữ.

cám ơn các Anh Chị.

2 CÂU TRẢ LỜI


Đã trả lời thg 9 16, 2021 4:39 SA
0

Bạn đặt ngôn ngữ theo URL path là được, window.navigator.language thì dùng cho trường hợp mặc định. Vd:

const langFromPath = location.pathname.split("/")[1];
const hasLang = langFromPath.length === 2; // nếu path có dạng: abc.com/xx/something-else
const siteLang = hasLang ? langFromPath : navigator.language;
Chia sẻ
Đã trả lời thg 9 17, 2021 7:58 SA
0

hi @fashions.108

Navigator.language là thuộc tính chỉ đọc (read-only), bạn không thể update lại value của nó. Ref at https://developer.mozilla.org/en-US/docs/Web/API/Navigator/language

Để làm một web hỗ trợ đa ngôn ngữ, bạn cần định nghĩa các text cần hiển thị theo chuẩn i18n Sau đó, dựa vào path param như ví dụ của bạn để lấy các text đã được định nghĩa trước ra

Bạn có thể áp dụng thư viện này vào ứng dụng để code dễ hơn https://www.i18next.com/

Hope it help ^^!

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí