hỏi về Javascrip window.navigator.language
Hi Anh Chị, cho e hỏi về window.navigator.language
e có website với 2 url: abc.com và abc.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
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;
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 ^^!