5 điểm bởi GN⁺ 2025-05-20 | 1 bình luận | Chia sẻ qua WhatsApp
  • Nếu dịch vụ web quyết định ngôn ngữ hiển thị bằng thông tin vị trí IP, người dùng VPN, người đang du lịch, người sống ở nước ngoài và người dùng ở các quốc gia đa ngôn ngữ có thể bị hiển thị ngôn ngữ không mong muốn
  • Quốc gia và ngôn ngữ không có quan hệ 1:1; Bỉ dùng 3 ngôn ngữ chính thức, Thụy Sĩ dùng 4, Ấn Độ dùng 22 ngôn ngữ chính thức, còn Canada là quốc gia song ngữ chính thức
  • Trình duyệt gửi header Accept-Language dựa trên thiết lập của hệ điều hành hoặc trình duyệt; ví dụ là Accept-Language: en-US,en;q=0.9,de;q=0.8
  • Cách triển khai tốt hơn là ưu tiên Accept-Language, và ghi nhớ ngôn ngữ người dùng tự thay đổi bằng cookie hoặc tham số URL
  • Nên dùng GeoIP cho các lĩnh vực cần vị trí như tiền tệ, giao hàng, yêu cầu pháp lý, còn lựa chọn ngôn ngữ thì không nên dùng, để ít làm sai lệch sở thích của người dùng hơn

Thông tin vị trí IP không cho biết sở thích ngôn ngữ

  • Địa chỉ IP chỉ cho thấy yêu cầu đến từ đâu, chứ không cho biết người dùng muốn hoặc hiểu ngôn ngữ nào
  • Với VPN, du lịch, sống ở nước ngoài, hoặc các quốc gia có nhiều ngôn ngữ chính thức, lựa chọn ngôn ngữ dựa trên IP rất dễ sai lệch
  • Quốc gia và ngôn ngữ không tương ứng một cách đơn giản
    • Bỉ: 3 ngôn ngữ chính thức
    • Thụy Sĩ: 4 ngôn ngữ chính thức
    • Ấn Độ: 22 ngôn ngữ chính thức
    • Canada: chính thức là quốc gia song ngữ, và không chính thức là môi trường đa ngôn ngữ
  • Người dùng VPN có thể thấy một ngôn ngữ ngẫu nhiên mỗi khi IP thay đổi, và cũng có trường hợp khi truy cập Google thì hiện ra ngôn ngữ họ không hiểu
  • Nếu ưu tiên cơ sở dữ liệu IP sai thay vì thông tin ngôn ngữ của trình duyệt, người dùng sẽ nhận được ngôn ngữ UI mà họ không mong muốn

Nên ưu tiên Accept-Language của trình duyệt

  • Mọi trình duyệt đều gửi header Accept-Language chứa ngôn ngữ ưu tiên của người dùng
  • Giá trị này dựa trên thiết lập của hệ điều hành hoặc trình duyệt, không phải vị trí hay IP
  • Ví dụ:
    • Accept-Language: en-US,en;q=0.9,de;q=0.8
  • Luồng xử lý hợp lý rất đơn giản
    • Đọc Accept-Language
    • Tôn trọng giá trị đó
    • Cho phép người dùng đổi ngôn ngữ nếu cần
    • Ghi nhớ lựa chọn đã đổi bằng cookie hoặc tham số URL
  • Ngay cả khi cần GeoIP, nên giới hạn nó trong các lĩnh vực như tiền tệ, giao hàng, yêu cầu pháp lý, chứ không phải ngôn ngữ

1 bình luận

 
GN⁺ 2025-05-20
Ý kiến trên Hacker News
  • Việc không chấp nhận Accept-Language thực sự rất khó chịu
    Tệ hơn nữa là nhiều trang web đa ngôn ngữ còn dịch cả nút chuyển ngôn ngữ lẫn danh sách ngôn ngữ sang ngôn ngữ hiện tại, một kiểu thiết kế ngớ ngẩn làm hỏng luôn mục đích của nó
    Wikipedia làm việc này rất đúng. Nút chuyển ngôn ngữ rõ ràng bằng một biểu tượng đa ngôn ngữ phổ quát, và danh sách ngôn ngữ hiển thị tên của từng ngôn ngữ bằng chính ngôn ngữ đó, thường được sắp theo thứ tự bảng chữ cái, đồng thời đưa các lựa chọn có khả năng phù hợp lên trên
    Ví dụ, trang Wikipedia tiếng Anh hiển thị các ngôn ngữ được đề xuất như Deutsch, Français, Nederlands. Đừng tự tiện đoán ngôn ngữ của người dùng rồi làm khổ nhau; cứ làm như Wikipedia là được

    • Cũng rất dễ khiến người ta nổi điên khi vào đúng trang mình muốn từ công cụ tìm kiếm, rồi một modal chọn quốc gia hiện ra, và ngay khi chọn xong thì nó ném bạn về trang chủ của website khu vực đó
      Có nơi có nút đóng, nhưng nhiều nơi thì không, nên càng bực hơn
    • Nói là “theo thứ tự bảng chữ cái” thì cũng hơi tinh vi quá. Hôm nay tôi xem danh sách ngôn ngữ trên bài viết nổi bật bằng tiếng Anh, thấy 中文, Italiano xuất hiện như ngôn ngữ được đề xuất, còn phần còn lại thì được nhóm theo khu vực địa lý chứ không hẳn theo bảng chữ cái
      Khu vực châu Âu dường như có một nhóm chữ Kirin, nhưng Қазақша lại đứng sau Українська; điều này không chính xác ngay cả theo tiếng Kazakhstan, và với người không biết chữ Қ thì cũng khá bất ngờ. Nhóm tiếng Trung cũng không có vẻ được sắp theo số nét, còn tiếng Hàn thì ở phía dưới nữa
      Bản địa hóa của Wikipedia rất xuất sắc, đây chỉ là một bổ sung nhỏ về việc “sắp xếp theo bảng chữ cái” mơ hồ đến mức nào khi tên ngôn ngữ được hiển thị bằng chính ngôn ngữ đó
    • Wikipedia còn nhớ lựa chọn lần trước và đẩy nó lên trên. Đó mới chính là trải nghiệm người dùng. Thực sự hữu ích và không gây bực bội
    • Một ví dụ hoàn hảo về cách làm tệ là ứng dụng YouTube trên iPhone từng đột nhiên chuyển sang tiếng Amhara
      Tài liệu hỗ trợ của Google https://support.google.com/youtube/answer/87604 giải thích bằng tiếng Anh các nút cần bấm, nhưng tôi không biết tiếng Amhara, và lúc đó thậm chí còn không biết đó là ngôn ngữ gì. Tính năng dịch trên iPhone cũng không nhận ra ngôn ngữ Ethiopia này
      Chỉ cần có một biểu tượng đa ngôn ngữ phổ quát là đã có thể tránh được tình huống khó xử đó một cách dễ dàng
    • Vấn đề này có hai tầng. Nếu hiện ra một ngôn ngữ châu Âu khác, thường vẫn có thể lần mò tìm từ tương đương với “English” để chuyển đổi, nên chưa đến mức thảm họa
      Nhưng nếu hiện ra một hệ chữ mà mình không biết, như tiếng Bengal, thì sẽ thành vấn đề
      Vì vậy, có lẽ mọi menu chọn ngôn ngữ đều nên để sẵn tiếng Anh và tiếng Trung ở dạng không bản địa hóa như một lối thoát, vì gần như mọi người dùng web đều có thể nhận ra chúng đủ để lần đến ngôn ngữ thực sự của mình
  • Tôi cũng ghét “tính năng” YouTube tự động dịch tiêu đề video sang ngôn ngữ đã cài đặt. Tôi hiểu tiếng Anh được, không cần mấy bản dịch tự động kiểu này, và nó thật sự rất phiền

    • Chuyện này còn tệ hơn rất nhiều so với việc chỉ đơn giản là “tôi hiểu tiếng Anh”
      Nếu tôi không biết ngôn ngữ đó, thì nhiều khả năng video đó vốn không dành cho tôi. Những video nhắm tới khán giả quốc tế đa phần đều dùng tiếng Anh, hoặc ít nhất là do chính người tạo nội dung tự dịch
      Tiêu đề là những câu rất ngắn nên thiếu ngữ cảnh cần thiết để dịch. Tôi từng thấy một tiêu đề tiếng Bồ Đào Nha là Vamos assistir uma conexão com o passado; nếu dịch thẳng thì thành “Hãy xem một kết nối với quá khứ”, và tôi phải tự dịch ngược trong đầu mới nhận ra tiêu đề gốc là Let's play A Link to the Past
      Tài liệu trên mạng cũng rất tốt để luyện ngoại ngữ thứ hai, nên tôi mong họ đừng đánh giá thấp khả năng của người dùng. Ít nhất hãy để tôi được đọc nguyên văn trước, rồi nếu cần tôi có thể dùng Google Translate hoặc từ điển
      Tôi công nhận tính năng này giúp mở rộng khả năng tiếp cận nội dung trực tuyến, nhưng nếu nó làm trải nghiệm tệ đi thì ít nhất phải cho phép tắt nó
    • Tôi là người Đức nhưng để máy tính ở tiếng Anh, và YouTube đôi khi tự động dịch video hoặc quảng cáo tiếng Đức, tạo ra những câu chữ cực kỳ kỳ quặc cùng giọng máy nghe rất giả
      Kiểu như Lidl is worth it, ja!
    • Không chỉ tiêu đề mà cả rãnh âm thanh cũng là vấn đề
      Một vài YouTuber tôi hay xem đang mở rộng ngôn ngữ bằng các rãnh âm thanh dịch do fan tạo, và tiếng Anh đôi khi cũng là một trong số đó. Mỗi lần xem những video như vậy, các lối chơi chữ hay tầng nghĩa ẩn trong ngôn ngữ gốc đều biến mất trong bản dịch, nên tôi lúc nào cũng phải tự chuyển lại sang ngôn ngữ gốc
      Vì YouTube ghét Firefox và các tiện ích mở rộng liên quan đến YouTube, video thường bắt đầu phát trước khi toàn bộ điều khiển tải xong, nên nhiều khi tôi còn phải tua lại chỉ để đổi rãnh ngôn ngữ
      Có người đã liên kết một tiện ích hữu ích trong bình luận khác nên tôi định thử, nhưng việc YouTube không có nổi một công tắc “luôn dùng ngôn ngữ gốc” trong phần cài đặt thật sự rất bực mình. Khi muốn âm thanh dịch thì tôi có thể tự bật; mà vì tôi đọc hiểu được vài ngôn ngữ ở mức nào đó, trường hợp cần như vậy khá hiếm với nội dung tôi xem
      Nếu đây là để cản trình chặn quảng cáo hoặc nhồi quảng cáo thì tôi còn hiểu được phần nào, nhưng cái này chỉ đơn giản là một tính năng “tiện lợi” được triển khai dở tệ. Dù vậy chắc vẫn có PM nào đó được khen thưởng vì nó
    • Có vẻ thuật toán YouTube dùng tính năng này và thưởng cho những ai tăng “khả năng tiếp cận nội dung” theo cách đó
      Nhưng nếu nó hiển thị cho tôi một tiêu đề tiếng Na Uy dịch máy xấu xí thay vì tiêu đề tiếng Anh mà tôi đọc được, thì theo kinh nghiệm của tôi đó là dấu hiệu của một kênh chất lượng thấp chạy theo thuật toán, và tôi sẽ bấm “không đề xuất kênh này” ngay
    • Giờ thì cả kết quả Reddit trên Google và Kagi cũng bị dịch, nên có lúc tôi tưởng mình đã tìm được một câu trả lời liên quan bằng ngôn ngữ của mình, nhưng thực ra lại là bản dịch máy của một bài đăng tiếng Anh
  • Tôi không thích kiểu thiết kế này vì nó ngầm giả định rằng “ai cũng chỉ hiểu một ngôn ngữ”.
    Tôi có thể đọc thoải mái ngôn ngữ của bạn và thường thích nguyên bản hơn bản địa hóa tệ. Vì vậy, nếu đoán ngôn ngữ ưa thích dựa trên IP thì gần như chắc chắn sẽ sai.
    Trình duyệt đã cho biết tôi có thể dùng ngôn ngữ nào thông qua cài đặt ngôn ngữ rồi, không có lý do gì để giả định người dùng không đủ hiểu biết để thiết lập đúng cái đó.
    Lồng tiếng AI mặc định bật trên YouTube còn tệ hơn. Khoảng một nửa số video tôi mở ra, tôi phải vào cài đặt, tắt lồng tiếng AI, rồi tua lại từ đầu để xem lại. Không tốn quá nhiều thời gian nhưng cực kỳ khó chịu.

    • Lồng tiếng AI của YouTube thực sự khủng khiếp. Tôi mất 5 phút mới nhận ra âm thanh mình đang nghe không phải quảng cáo kỳ quặc từ tab khác mà là từ chính video.
      Tôi cũng ghét việc tiêu đề bị hiển thị dưới dạng bản dịch. Xem một video nói tiếng Anh mà tiêu đề lại ở ngôn ngữ khác thì rất kỳ quặc.
    • Tôi đã đặt tiếng Tây Ban Nha là một trong những ngôn ngữ tôi biết trên Google, vậy mà nó vẫn tự động dịch mọi thứ sang tiếng Anh.
      Tôi không thông thạo tiếng Tây Ban Nha, nhưng một trong những cách tốt nhất để trở nên thông thạo là tiêu thụ nội dung nguyên bản, còn YouTube thì làm điều đó trở nên khó khăn.
  • Thứ gây khó chịu nhất là Google. Nó biết tôi là ai, biết tôi đang đi du lịch, biết sở thích ngôn ngữ của tôi là tiếng Anh, nhưng ở một số trang nhất định vẫn hiển thị ngôn ngữ theo vị trí.
    Tôi đã cho phép Google theo dõi mình, nên mong họ dùng điều đó không chỉ cho quảng cáo mà còn cho cả trải nghiệm người dùng tốt.

    • Người dùng tiếng Catalunya bị ép nhận tiếng Tây Ban Nha ngay cả khi trong tài khoản Google, ngôn ngữ hệ thống và ngôn ngữ trình duyệt đều không hề gắn với tiếng Tây Ban Nha.
      Dù tôi sống ở Mỹ, Google vẫn cố đưa kết quả tiếng Tây Ban Nha ngay cả cho các tìm kiếm liên quan đến tiếng Catalunya. Ví dụ, nó ưu tiên Wikipedia tiếng Tây Ban Nha. Hành vi của công cụ tìm kiếm lên xuống theo từng năm, nhưng chưa bao giờ thực sự tốt.
      Đây là vấn đề lớn với con cái tôi, những đứa không hiểu tiếng Tây Ban Nha, và cũng là vấn đề với các khu vực nói tiếng Catalunya không thuộc Tây Ban Nha, bao gồm cả Andorra.
      Gemini từng rất dễ gắn nhãn nội dung tiếng Catalunya là không an toàn và chặn không cho tiếp tục hội thoại. Ngay cả với những prompt như “hãy tóm tắt bài viết này” cũng vậy, dù gần đây có thể đã cải thiện.
      Google trước đây từng là ví dụ về một tập đoàn lớn có trách nhiệm, nhạy cảm với sự đa dạng của thế giới. Tôi vẫn đánh giá cao nỗ lực của nhiều nhóm, nhưng có vẻ rõ ràng rằng đây không còn là ưu tiên nữa.
    • Google kỳ lạ thay lại là bên tệ nhất trong chuyện này.
      Gần đây có vẻ như họ kết luận rằng việc tự động dịch review trên Maps từ ngôn ngữ địa phương sang tiếng Anh là sai. Họ dịch mọi ngôn ngữ khác sang tiếng Anh, nhưng vì tôi sống ở khu vực đó nên lại cho rằng tôi chắc cũng biết ngôn ngữ địa phương và không cần tiếng Anh.
      Kết quả tìm kiếm cũng vậy. Vì tôi đã ở đó lâu nên họ mặc nhiên nghĩ tôi sẽ muốn Wikipedia bằng ngôn ngữ địa phương. Thực ra chỉ là vì muốn tìm thông tin địa phương thì phải tìm bằng ngôn ngữ địa phương, nhưng họ lại diễn giải đó là tín hiệu sở thích.
      Điều này cũng đúng với toàn bộ xu hướng kiểu “phần mềm phải thông minh và tự đoán mọi sở thích”. Thật khó hiểu vì sao Google vẫn tiếp tục làm vậy dù liên tục thất bại một cách nhất quán, ngoài một sự tự mãn doanh nghiệp lệch lạc.
    • Tôi từng tranh luận với một kỹ sư Google về chuyện này.
      Anh ta nói rằng để tối ưu hiệu quả, quá trình render nội dung có nhiều giai đoạn, và khi tạo cấu trúc trang chính thì vẫn chưa có thông tin người dùng. Nhưng tôi thấy điều đó không hợp lý, vì ngay ở giai đoạn đó lẽ ra vẫn phải dùng được header Accept-Language.
    • Trải nghiệm tệ nhất là khi tôi đến một quốc gia mới mà Play Store lại không hiển thị ứng dụng địa phương. Lý do là tài khoản Google của tôi bị ràng buộc với quốc gia cũ.
      Việc đổi quốc gia không hề dễ, và tôi phải từ bỏ quốc gia cũ cùng các ứng dụng ở đó. Vì tôi hay đi đi về về nên cuối cùng đã mua thêm một chiếc điện thoại thứ hai và tạo tài khoản cho quốc gia mới.
    • Google biết tôi sống ở Anh và dùng tiếng Anh, nhưng khi tôi đăng nhập trên TV trong phòng khách sạn ở Tây Ban Nha để xem video YouTube tiếng Anh thì nó lại hiển thị quảng cáo tiếng Tây Ban Nha.
      Nó rõ ràng biết tôi không hiểu, nhưng vẫn làm vậy vì vẫn có thể tính phí nhà quảng cáo, nên thấy khá buồn cười.
  • Nguyên tắc còn quan trọng hơn nhiều là đừng tự động dịch nội dung sang ngôn ngữ của người dùng.
    Chỉ cần hiển thị ngôn ngữ thực sự có dữ liệu. Nếu muốn, người dùng đủ thông minh để bấm nút “dịch” của trình duyệt, và chất lượng bản dịch đó nhiều khi còn tốt hơn.
    Tiếng Anh không phải tiếng mẹ đẻ cũng không phải ngoại ngữ thứ hai của tôi, nhưng tôi hiểu đủ để dùng cho công việc hằng ngày. Tôi không muốn phải lục lọi trong đống rác dịch tự động chỉ để tìm nút đọc bản tiếng Anh gốc.
    Kỳ lạ là vấn đề này chủ yếu chỉ xảy ra với tiếng Anh. Các website ở ngôn ngữ khác thường không làm thế, và chỉ riêng điều đó cũng đã đủ là tín hiệu rằng khách truy cập quốc tế ghét chuyện này.
    Nếu bạn định dùng dịch máy trên website, thì trước khi đăng hãy thử dịch xuôi ngược cho mọi ngôn ngữ. Hãy dịch, dán kết quả trở lại, rồi dịch ngược về ngôn ngữ gốc; như vậy bạn sẽ thấy đại khái nội dung mà mình định công bố trông ra sao. Tốt nhất là đừng làm.

    • Tôi ghét Reddit tự động dịch sang tiếng Pháp. Văn phong riêng của từng người vốn đã khó hoặc không thể dịch chuẩn ngay cả với người dịch thật, vậy mà lại đem đi dịch tự động.
      Ngay cả nếu không biết tiếng Anh, tôi cũng thấy nội dung đã bị dịch như thế không còn đáng xem.
      Tính năng đổi ngôn ngữ hoặc hiện nguyên văn rất khó tìm, lại còn khác nhau tùy là ứng dụng, web di động hay web desktop.
      Việc họ cố ép người dùng tải ứng dụng cũng là một vấn đề riêng khác.
    • Dịch máy từ vài năm nay đã đủ tốt để ngay cả người bản ngữ cũng không nhận ra.
  • Giả định rằng “mọi trình duyệt đều gửi header Accept-Language, cho biết ngôn ngữ ưu tiên dựa trên cài đặt OS hoặc trình duyệt của người dùng, và người dùng có thể đổi nếu muốn” cũng đã bị phá vỡ
    Trước hết, Accept-Language là một danh sách có thứ tự, nhưng những người thường xuyên dùng nhiều ngôn ngữ trong đời sống hằng ngày thường có ưu tiên theo từng ngữ cảnh/chủ đề chứ không phải một thứ tự ưu tiên tuyệt đối
    Ngay cả khi một trang tin tiếng Anh có bản dịch tiếng Pháp, họ vẫn có thể muốn bản tiếng Anh dù thông thạo tiếng Pháp hơn
    Vì vậy người dùng sẽ chỉ định ngôn ngữ thực dụng nhất thay vì sở thích thực tế. Ví dụ, các trang địa phương không dùng tiếng Anh thường ít giở trò hơn các trang quốc tế bằng tiếng Anh, nên nếu đặt ngôn ngữ chỉ là tiếng Anh thì nhóm đầu sẽ bị buộc hiển thị tiếng Anh còn đa số các trang khác hầu như không bị ảnh hưởng
    Thậm chí việc một trang Pháp bỏ qua mọi ưu tiên và mặc định đẩy bản tiếng Pháp lên lại có thể hữu ích trong trường hợp đó
    Cuối cùng, tôi chỉ mong người vận hành website đừng tỏ ra quá thông minh mà hãy cung cấp một giao diện thật rõ ràng và nhanh để đổi sang phiên bản khác. Wikipedia làm việc này khá ổn

    • Giải pháp không phải là vứt bỏ header Accept-Language hữu ích, mà là đừng cung cấp các bản dịch dở dang
      Nếu là website đa ngôn ngữ thì chỉ nên cung cấp các bộ bản dịch đã được dịch đầy đủ và kiểm chứng. Việc dịch UI và nội dung tự sản xuất sang một vài ngôn ngữ có thể hợp lý với doanh nghiệp tùy khách hàng mục tiêu, nhưng phải duy trì và đồng bộ tất cả những thứ đó
      Không nên đụng vào nội dung do người dùng tạo. Trừ khi nó được đặt như một tính năng hỗ trợ dưới nút kiểu “Đã phát hiện tiếng Tây Ban Nha. Bấm để xem bản dịch tự động sang tiếng Anh”, còn lại không nên tự động dịch, và thực ra ngay cả việc đó cũng tốt hơn nên để trình duyệt xử lý
      Chỉ cần chọn ngôn ngữ bằng Accept-Language và thêm cách chuyển đổi là đủ
      Thực ra Wikipedia không hoạt động theo kiểu cung cấp bản dịch của cùng một nội dung. Mỗi ngôn ngữ là một instance riêng, và ngoại trừ các chuỗi UI của MediaWiki thì đó không phải là bản dịch của cùng một bài viết mà là những bài viết khác nhau bằng các ngôn ngữ khác nhau có phần chồng lặp nội dung. Bản tiếng Hà Lan của mục Language không tự nhận là bản dịch tiếng Hà Lan của cùng bài đó, và nó được đặt có chủ ý ở subdomain và đường dẫn khác
    • Về mặt kỹ thuật, Accept-Language có thể chỉ định “giá trị chất lượng” hay trọng số cho từng ngôn ngữ: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/...
      Theo tôi, cả trình duyệt lẫn website đều còn nhiều chỗ để cải thiện
      Website nên cho phép người dùng ghi đè ngôn ngữ mà trình duyệt yêu cầu. Trình duyệt cũng nên cho phép chọn theo từng site như “mặc định của site”, “yêu cầu ngôn ngữ mặc định của hệ thống”, “yêu cầu tiếng Anh”, “yêu cầu tiếng Trung”, “yêu cầu tiếng Tây Ban Nha”, v.v.
      Cách tốt nhất là site công bố danh sách ngôn ngữ được hỗ trợ. Ví dụ có thể đặt trong manifest.json: https://developer.mozilla.org/en-US/docs/Web/Progressive_web... định dạng có thể là dạng giống Map>
      Việc chọn ngôn ngữ nên diễn ra ở phía client chứ không phải phía server
    • Accept-Language không phải là danh sách có thứ tự mà là danh sách có thứ tự bộ phận
      Nếu bạn muốn bản tiếng Anh của một trang tin tiếng Anh ngay cả khi có bản dịch tiếng Pháp, thì chỉ cần đặt hai ngôn ngữ ở cùng một mức ưu tiên
    • Tôi không hiểu giả định rằng người dùng chỉ định ngôn ngữ thực dụng nhất thay vì sở thích thực tế xuất phát từ đâu
      Nhìn vào thực tế là nhiều, thậm chí có lẽ gần như mọi website, không tôn trọng header Accept-Language, thì khó mà cho rằng khi chọn thiết lập này người dùng đang chạy kiểu lý thuyết trò chơi đó trong đầu
  • Tôi từng phụ trách một dự án triển khai khả năng truy cập và hỗ trợ đa ngôn ngữ cho các website liên quan đến chính phủ
    Chúng tôi dùng Accept-Language để chọn giá trị mặc định trong số các ngôn ngữ được hỗ trợ, nhưng PM đã đảo ngược quyết định đó và ép mặc định là tiếng Anh
    Kiểm toán viên về khả năng truy cập đã đưa “sử dụng Accept-Language” thành một mục đỏ trong báo cáo kiểm toán, và khi biết rằng ban đầu nó được triển khai như vậy rồi bị hoàn tác, họ đã khiển trách công ty rất nặng
    Việc này cùng những quyết định ngớ ngẩn tương tự đã giúp tôi có thêm vài tuần việc hợp đồng

  • Nhân tiện đang là chỗ để than phiền về ngôn ngữ, tôi cũng có phàn nàn về Apple TV
    Tôi có người thân chỉ biết tiếng Nhật và tài khoản Apple của tôi đặt ở Phần Lan. Chúng tôi định cùng xem The Martian, nhưng dù rõ ràng có track audio lồng tiếng Nhật, tôi vẫn không thể chọn nó
    Họ hoàn toàn không hiển thị các tùy chọn không liên quan đến quốc gia tài khoản, và muốn lách thì phải đổi toàn bộ tài khoản Apple sang quốc gia khác
    Nhưng nếu đang có gói đăng ký Apple TV còn hiệu lực thì cũng không thể thực hiện thay đổi đó. Kết quả là cả gia đình không thể cùng xem Apple TV

    • Có lẽ đây là vấn đề cấp phép. Có thể họ không được phép phát bản lồng tiếng Nhật ở Phần Lan. Nếu vậy thì sự ngớ ngẩn là do luật bản quyền hoặc các luật sư gây ra
    • Netflix cũng có điểm kỳ quặc tương tự ở Phần Lan
      Nếu tôi nhớ không nhầm thì có cài đặt ngôn ngữ tài khoản, và để xem Kim's Convenience bạn phải đặt sang tiếng Anh. Không cần VPN hay giả vờ đang ở nước khác, nhưng nếu không đặt đúng ngôn ngữ thì nội dung sẽ bị ẩn
      Ngay cả khi xem nội dung với phụ đề tiếng Anh trong UI tiếng Phần Lan cũng vẫn như vậy
  • Khi ở nước ngoài thì chuyện này thực sự rất vô lý, và ngay cả khi ở trong nước cũng gây khó chịu khi phiên bản bản địa hóa không tương đương như tài liệu lập trình
    Ngay cả trong trường hợp lý tưởng thì tôi vẫn có xu hướng thích bản gốc tiếng Anh hơn, còn trên thực tế thường lại là dịch máy nên tệ hơn nhiều
    Một điều cực kỳ khó chịu khác mà gần đây tôi thấy thường xuyên hơn là các bản dịch máy của nội dung xuất hiện trong kết quả tìm kiếm. Reddit giờ cũng làm vậy, và thực sự quá khủng khiếp
    Một trong những lý do chính để dùng truy vấn tìm kiếm không phải tiếng Anh là để nhận được kết quả không phải tiếng Anh. Ví dụ như khi tìm thông tin về các chủ đề không áp dụng trên toàn cầu

    • Tôi gần như có thể nghe thấy đội ngũ sản phẩm của Reddit tạo ra tính năng này trong khi tự xem mình là người chỉ dùng một ngôn ngữ và ngân nga quốc ca Mỹ
      Phần còn lại của thế giới có thể hiểu tốt nhiều ngôn ngữ
    • Gần đây tôi khá thất vọng vì tài liệu Mongo
      Tôi chưa kiểm tra xem là dựa trên vị trí hay dựa trên Accept-Language, nhưng cách nó hoạt động thực sự gây bực tức
      Khi tìm trên web thì kết quả hiện ra là bản tiếng Anh, nhưng khi mở ra thì ngay lúc JavaScript tải xong nó đổi sang PT-BR, rồi vài giây sau khi trang tải hoàn toàn thì lại quay về tiếng Anh, đồng thời để lại slug /pt-br/ trong URL
      Quá rõ ràng là bản dịch không phải do con người tạo ra hay kiểm duyệt. Hơn nữa tôi là người dùng PT-PT, nên càng khó chịu hơn vì khác biệt với PT-BR
  • Trước đây tôi từng xây một hệ thống nhỏ để phân tích Accept-Language, gán trọng số theo mức ưu tiên của người dùng, rồi chọn ngôn ngữ gần nhất với sở thích của họ trong những gì chúng tôi cung cấp
    Ví dụ, có bản dịch tiếng Bồ Đào Nha Brazil nhưng không có tiếng Bồ Đào Nha Bồ Đào Nha, nên với người dùng yêu cầu loại sau thì sẽ cung cấp loại trước, trừ khi có một kết quả khớp chính xác ở mức ưu tiên thấp hơn thì dùng cái đó
    Về mặt kỹ thuật thì nó hoạt động tốt, mã cũng gọn gàng, và làm ra cũng khá vui
    Nhưng từ góc nhìn người dùng, đa số lại đơn giản muốn tiếng Anh bất kể header Accept-Language là gì. Có thể đổi ở chân trang, nhưng có vẻ nó không đủ dễ thấy
    Bây giờ thì chúng tôi chỉ hỏi thẳng, và người dùng cũng hài lòng hơn

    • Nếu “hỏi” nghĩa là mỗi lần vào trang web mà không có cookie thì trước tiên lại hiện ra bức tường chọn ngôn ngữ, thì đó là nỗi khổ tôi gặp rất thường xuyên
      Rất khó để biết cách ở lại đúng trang mà tôi đã bấm vào. Tôi không rõ nút “continue” sẽ áp dụng giá trị được chọn sẵn, hay chỉ đóng cửa sổ bật lên và tiếp tục hiển thị trang hiện tại
      Nếu là trường hợp đầu thì tôi cũng không biết giá trị được chọn sẵn là ngôn ngữ hiện tại của trang hay một ngôn ngữ khác, và lại phải cân nhắc xem có nên đoán locale hiện tại, chọn nó rồi mới đóng popup hay không. Tôi thậm chí còn nghĩ tới việc dùng công cụ dành cho nhà phát triển để xóa modal và lách qua nó. Một nút đóng nhỏ cũng là thứ xa xỉ với kiểu tường ngôn ngữ này
      Trong 95 trên 100 lần, ngôn ngữ mà tôi đã bấm vào vốn đã ổn rồi. Nếu tôi cần thông tin giao hàng theo khu vực hoặc tùy chọn thanh toán trên bản tiếng Đức, tôi sẽ tự tìm bộ chọn ngôn ngữ ở góc trên bên phải hoặc chân trang
      Chỉ cần nó nằm ở một trong hai chỗ đó thôi thì web sẽ hạnh phúc hơn nhiều nếu không còn các popup JavaScript cứ hiện ra mãi
    • Dù vậy tôi vẫn muốn mặc định là Accept-Language, nhưng điều quan trọng là hãy hỏi người dùng
      Tôi tò mò về các mẫu thiết kế cung cấp lựa chọn. Bài này có điểm hay là không dùng biểu tượng, nhưng tôi không thích cách nó gộp nhiều khu vực vào cùng một ngôn ngữ: https://usersnap.com/blog/design-language-switch/
    • Nhiều người có lẽ để giá trị này là mặc định của hệ điều hành, chỉ đơn giản là đã quen với nó, và thậm chí có thể còn không biết cách thay đổi