Asked Sep 16th, 2021 3:41 a.m. 80 0 2
  • 80 0 2
+1

hỏi về Javascrip window.navigator.language

Share
  • 80 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 ANSWERS


Answered Sep 16th, 2021 4:39 a.m.
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;
Share
Answered Sep 17th, 2021 7:58 a.m.
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 ^^!

Share
Viblo
Let's register a Viblo Account to get more interesting posts.