Khi dịch giao diện, chữ thường dài ra so với bản tiếng Anh, có khi gấp đôi ở những nhãn ngắn. "Next" bốn ký tự thành "Tiếp theo" chín ký tự, "Undo" thành "Hoàn tác", "Cart" thành "Giỏ hàng". Nếu nút, thẻ và ô chữ được thiết kế vừa khít cho tiếng Anh, bản dịch sẽ bị cắt cụt, xuống dòng giữa từ, hoặc đè lên thành phần bên cạnh. Với tiếng Việt còn thêm một chiều nữa: dấu thanh chồng lên dấu mũ làm chữ cao hơn, dễ bị xén đầu khi khoảng cách dòng quá chật.
Cách phòng hiệu quả nhất không nằm ở người dịch mà ở khâu thiết kế: chừa chỗ, cho thành phần co giãn, và kiểm bằng bản địa hoá giả trước khi có bản dịch thật. Người dịch thì cần biết giới hạn của từng chuỗi và biết cách rút gọn mà không làm hỏng nghĩa. Bài này đi qua cả hai phía.
Vì sao bản dịch dài ra hoặc ngắn lại
Độ dài thay đổi vì ba lý do. Thứ nhất là cấu tạo từ: tiếng Anh có nhiều từ đơn ngắn và giàu nghĩa ("Save", "Edit", "Share"), trong khi tiếng Việt thường cần hai âm tiết ("Lưu" là ngoại lệ hiếm, còn lại là "Chỉnh sửa", "Chia sẻ"). Tiếng Đức ghép danh từ thành một từ rất dài không có chỗ ngắt; tiếng Phần Lan và tiếng Hungary có hậu tố chồng hậu tố. Thứ hai là ngữ pháp: tiếng Pháp, tiếng Tây Ban Nha thêm giới từ và mạo từ mà tiếng Anh lược được. Thứ ba là hệ chữ: tiếng Trung, tiếng Nhật, tiếng Hàn thường ít ký tự hơn tiếng Anh nhưng mỗi ký tự rộng hơn và cần cỡ chữ lớn hơn để đọc rõ nét, nên chiều rộng thực tế không nhỏ đi bao nhiêu.
Trong ngành có một quy tắc kinh nghiệm hay được nhắc trong các hướng dẫn thiết kế quốc tế hoá: chuỗi càng ngắn, tỷ lệ dài ra càng lớn. Nhãn vài ký tự có thể dài gấp đôi hoặc hơn; đoạn văn dài thường chỉ dài thêm khoảng một phần ba hay ít hơn tuỳ cặp ngôn ngữ. Đây là con số để lên kế hoạch, không phải định luật — cách duy nhất biết chắc là đo trên bản dịch thật hoặc bản giả.
Điều này có một hệ quả thực tế: chỗ dễ vỡ nhất không phải đoạn mô tả dài mà là nút, tab, nhãn cột và huy hiệu — đúng những chỗ nhà thiết kế cho vừa khít nhất và người dùng nhìn nhiều nhất.
Ví dụ nhãn ngắn Anh – Việt và chuyện chiều dài
Bảng dưới là các nhãn thường gặp, đếm ký tự kể cả dấu cách. Mục đích là cho thấy biên độ, không phải bảng thuật ngữ bắt buộc; từng sản phẩm có thể chọn cách dịch khác.
| Tiếng Anh | Ký tự | Cách dịch phổ biến | Ký tự | Phương án ngắn hơn khi chật |
|---|---|---|---|---|
| Next | 4 | Tiếp theo | 9 | Tiếp |
| Undo | 4 | Hoàn tác | 8 | Khó rút mà không mất nghĩa; giữ Hoàn tác và cho nút rộng ra |
| Sign in | 7 | Đăng nhập | 9 | Không nên rút; đây là thuật ngữ người dùng đã quen |
| Cart | 4 | Giỏ hàng | 8 | Giỏ (chỉ khi có biểu tượng đi kèm) |
| Settings | 8 | Cài đặt | 7 | Không cần |
| Share | 5 | Chia sẻ | 7 | Không cần |
| Unsubscribe | 11 | Huỷ đăng ký | 11 | Không cần; dài bằng nhau |
| Add to wishlist | 15 | Thêm vào danh sách yêu thích | 28 | Yêu thích (khi dùng làm nút bật tắt) |
Dòng cuối là trường hợp điển hình: dịch đủ nghĩa thì dài gần gấp đôi, rút gọn được nhưng phải đổi cả cách hiểu của nút — từ một hành động thành một trạng thái bật tắt. Quyết định đó là của nhóm sản phẩm, người dịch chỉ nên đề xuất. Cũng lưu ý số ký tự không phản ánh hết chiều rộng hiển thị: chữ có dấu tiếng Việt và chữ hoa chiếm rộng hơn chữ thường không dấu ở nhiều phông chữ.
Tiếng Việt trên giao diện: cao hơn, và không được ngắt giữa từ
Chữ tiếng Việt có thể mang hai tầng dấu trên đầu, như "ổ", "ễ", "ậ" (dấu mũ cộng dấu thanh). Nhiều phông chữ thiết kế cho tiếng Anh vẫn có đủ ký tự tiếng Việt nhưng đặt dấu sát nhau, và khi nhà thiết kế đặt chiều cao dòng bằng đúng cỡ chữ cho gọn, phần dấu trên cùng bị xén. Lỗi này hay gặp ở nút có chiều cao cố định, ô nhập một dòng và tiêu đề trên thanh điều hướng. Cách kiểm nhanh: gõ thử chuỗi "Kiểm tra Ổn định Ễnh ương Hữu ích" vào mọi kiểu chữ dùng trong sản phẩm và xem dấu có nguyên vẹn không.
Thứ hai là phông thiếu ký tự. Một số phông chữ trang trí không có đủ bộ ký tự tiếng Việt, hệ thống tự thay bằng phông khác cho riêng chữ có dấu, kết quả là một từ có hai kiểu chữ lẫn lộn. Nhà thiết kế nên kiểm bộ ký tự trước khi chọn phông, không đợi tới khi có bản dịch.
Thứ ba là ngắt dòng. Từ tiếng Việt gồm nhiều âm tiết cách nhau bằng dấu cách, nên thuật toán ngắt dòng coi mỗi âm tiết là một từ và có thể bẻ "Đăng nhập" thành "Đăng" ở dòng trên, "nhập" ở dòng dưới. Trong đoạn văn thì chấp nhận được, nhưng trên nút hay nhãn hai dòng thì đọc rất kỳ. Cách xử lý là dùng dấu cách không ngắt giữa các âm tiết của một từ trong các nhãn ngắn, hoặc thiết kế nhãn một dòng có chỗ co giãn theo chiều ngang.
Khi bắt buộc phải rút gọn: cách làm đúng và cách làm sai
Chọn từ đồng nghĩa ngắn hơn, cùng sắc thái. "Tiếp tục" thay cho "Tiến hành tiếp", "Gửi" thay cho "Gửi đi". Đây là cách tốt nhất vì không mất thông tin.
Bỏ phần đã rõ từ ngữ cảnh. Trên màn hình giỏ hàng, nút "Xoá khỏi giỏ hàng" có thể chỉ là "Xoá". Trong một danh sách cài đặt có tiêu đề "Thông báo", các dòng không cần lặp lại chữ "thông báo".
Chuyển thông tin phụ sang chỗ khác. Phần giải thích dài có thể đưa xuống dòng mô tả nhỏ bên dưới, hoặc vào chữ hiện ra khi chạm giữ. Nhãn chỉ giữ hành động.
Không viết tắt tuỳ tiện. "TT" cho thanh toán, "SL" cho số lượng, "Đ.nhập" cho đăng nhập: người viết hiểu, người dùng thì không, và trình đọc màn hình đọc thành chuỗi chữ cái vô nghĩa. Chỉ dùng viết tắt mà người dùng phổ thông đã quen.
Không cắt bằng dấu chấm lửng giữa từ. Thành phần tự cắt "Thêm vào danh sá…" là lỗi giao diện, không phải cách rút gọn. Nếu buộc phải dùng dấu chấm lửng, hãy chắc rằng phần còn lại vẫn đủ nghĩa và có cách xem đầy đủ.
Không đổi nghĩa để vừa chỗ. Dịch "Delete account" thành "Thoát" vì vừa nút là sai nghiêm trọng. Khi không có cách ngắn nào giữ được nghĩa, hãy báo lại để nhóm thiết kế nới chỗ.
Bản địa hoá giả: tìm chỗ vỡ trước khi có bản dịch
Bản địa hoá giả (pseudo-localization) là tự động biến chuỗi nguồn thành một dạng "giả ngoại ngữ": thay chữ cái bằng chữ có dấu tương tự, kéo dài chuỗi thêm một tỷ lệ, bao hai đầu bằng ký hiệu. "Settings" thành dạng như "[Šéţţîñĝš one two]". Người kiểm thử vẫn đọc được, nhưng mọi chỗ yếu lộ ra ngay. Android có sẵn ngôn ngữ giả trong tuỳ chọn nhà phát triển, gồm một bản kéo dài chữ có dấu và một bản viết từ phải sang trái. Các bước áp dụng:
- Bật hoặc tạo ngôn ngữ giả trong bản dựng thử, với tỷ lệ kéo dài khoảng ba đến năm phần mười cho chuỗi dài và nhiều hơn cho chuỗi ngắn.
- Đi qua các màn hình chính: tìm chữ bị cắt, nút tràn, bố cục vỡ, chữ đè lên nhau.
- Tìm chữ không có dấu ngoặc bao hai đầu: đó là chuỗi viết cứng trong mã, chưa đưa vào tệp chuỗi.
- Tìm hai mảnh ngoặc nằm cạnh nhau trên cùng một câu: đó là câu bị ghép từ nhiều chuỗi.
- Kiểm dấu có bị xén không, vì ngôn ngữ giả dùng chữ có dấu trên và dưới.
- Lập danh sách lỗi cho lập trình viên và nhà thiết kế sửa trước khi gửi dịch thật.
Giá trị lớn nhất của bước này là thời điểm: nó chạy được ngay khi chuỗi nguồn vừa viết xong, không phải chờ người dịch. Sửa bố cục lúc đó rẻ hơn nhiều so với sửa sau khi đã có mười ngôn ngữ, mỗi ngôn ngữ một kiểu vỡ.
Ngôn ngữ viết từ phải sang trái
Nếu sản phẩm định mở sang tiếng Ả Rập, tiếng Do Thái hay tiếng Ba Tư, độ dài chữ chỉ là một phần nhỏ. Toàn bộ bố cục phải lật gương: nút quay lại chuyển sang bên phải, thanh tiến trình chạy từ phải sang trái, biểu tượng chỉ hướng như mũi tên "tiếp theo" đổi chiều. Nhưng không phải thứ gì cũng lật — biểu tượng phát nhạc, logo, đồng hồ, con số và đoạn mã vẫn giữ nguyên.
Khó nhất là chuỗi trộn hai chiều: câu tiếng Ả Rập chứa tên thương hiệu tiếng Anh, số điện thoại hay địa chỉ email. Thuật toán hai chiều của Unicode xử lý phần lớn trường hợp, nhưng dấu câu đứng sát ranh giới hai chiều hay nhảy sai chỗ. Người dịch tiếng Ả Rập có kinh nghiệm phần mềm biết dùng các ký tự điều khiển hướng ẩn để sửa; người kiểm thử phải xem trên thiết bị thật.
Với doanh nghiệp Việt Nam, đây thường là quyết định cho giai đoạn sau. Nhưng nếu đã biết sẽ làm, hãy dặn lập trình viên dùng thuộc tính bố cục theo "đầu – cuối" thay vì "trái – phải" ngay từ bây giờ. Thay đổi đó gần như không tốn thêm công khi viết mới, nhưng tốn rất nhiều khi phải sửa lại cả sản phẩm.
Danh mục thiết kế cho chữ co giãn
Danh mục dưới đây dành cho nhà thiết kế giao diện và lập trình viên, áp dụng trước khi gửi dịch:
- Nút và tab co giãn theo nội dung, có chiều rộng tối thiểu và tối đa, không cố định một con số.
- Chiều cao dòng đủ cho dấu chồng của tiếng Việt và ký tự cao của tiếng Thái; không đặt bằng cỡ chữ.
- Nhãn cho phép xuống hai dòng ở những chỗ có không gian; chỗ không được xuống dòng thì ghi giới hạn ký tự vào ghi chú chuỗi.
- Không đặt chữ lên ảnh; chữ trên ảnh không dịch được và không co giãn được.
- Biểu tượng đi kèm nhãn, để khi chật có thể giấu nhãn mà vẫn hiểu được.
- Kiểm với cỡ chữ hệ thống lớn nhất, vì người dùng phóng to chữ gặp lỗi tràn sớm hơn ai hết.
- Bố cục theo đầu – cuối thay vì trái – phải nếu có khả năng mở ngôn ngữ viết từ phải sang trái.
Dịch Hay khi nhận dịch giao diện luôn hỏi trước giới hạn ký tự của các chuỗi hẹp và đề xuất phương án ngắn cho từng chỗ chật, thay vì để lỗi cắt chữ lộ ra ở vòng kiểm thử. Bạn có thể gửi kèm ảnh chụp các màn hình chật nhất trong mẫu đăng ký để được xem trước.
Câu hỏi thường gặp
Có nên đặt giới hạn ký tự cứng cho mọi chuỗi không?
Không cần cho mọi chuỗi, chỉ cho những chỗ không thể co giãn như nút trên thanh điều hướng, nhãn tab, huy hiệu, tiêu đề thông báo đẩy. Đặt giới hạn cứng cho mọi chỗ buộc người dịch nén nghĩa ở cả những nơi không cần, làm bản dịch cụt và khó hiểu.
Tiếng Việt có dài hơn tiếng Anh trong mọi trường hợp không?
Không. Với nhãn ngắn, tiếng Việt thường dài hơn vì cần hai âm tiết. Với câu dài và đoạn văn, chênh lệch nhỏ hơn và đôi khi tiếng Việt ngắn hơn vì không có mạo từ, không chia động từ. Chiều cao chữ thì luôn là điểm cần chú ý vì dấu chồng.
Bản địa hoá giả có thay được kiểm thử ngôn ngữ thật không?
Không. Nó chỉ bắt lỗi kỹ thuật: chữ viết cứng, câu ghép mảnh, chỗ không đủ rộng, dấu bị xén. Nó không cho biết bản dịch có đúng nghĩa hay tự nhiên không. Hai việc bổ sung cho nhau: bản giả chạy trước để sửa khung, kiểm thử thật chạy sau để sửa chữ.
Chữ tiếng Việt bị xén dấu là lỗi của người dịch hay của lập trình viên?
Của thiết kế và lập trình. Người dịch không điều khiển được chiều cao dòng hay phông chữ. Người dịch có thể giúp bằng cách chụp màn hình và báo lỗi khi kiểm thử, nhưng sửa phải ở phía giao diện: tăng chiều cao dòng, đổi phông, bỏ chiều cao cố định.
Có nên dùng tiếng Anh cho các nút ngắn để đỡ dài không?
Chỉ nên với những từ người dùng Việt đã dùng như tiếng Việt và không có từ tương đương quen hơn. Với nút hành động thông thường, giữ tiếng Anh làm sản phẩm trông như dịch dở và gây khó cho người lớn tuổi. Giải pháp đúng là chừa chỗ, không phải tránh dịch.