Cách Dịch Ngôn Ngữ RTL trong WordPress: Tiếng Ả Rập, Tiếng Hebrew, Tiếng Ba Tư

Bạn vừa dịch xong giao diện WordPress của mình sang tiếng Ả Rập. Bạn tải tệp .mo lên, chuyển đổi ngôn ngữ trang web và kết quả là không thể đọc được. Văn bản tràn sang trái, các nút chồng lên nhau và bố cục được thiết kế cẩn thận của bạn trông như thể vừa bị máy hủy giấy xé nát.
Chào mừng bạn đến với thế giới của các ngôn ngữ từ phải sang trái (RTL) -- nơi dịch thuật chỉ là một nửa trận chiến.
Tiếng Ả Rập, tiếng Hebrew và tiếng Ba Tư (Farsi) là một trong những ngôn ngữ được sử dụng rộng rãi nhất trên trái đất. Riêng tiếng Ả Rập đã có hơn 400 triệu người bản xứ sử dụng. Nếu trang web WordPress của bạn bỏ qua những đối tượng này, bạn đang bỏ lỡ một khoản tiền lớn. Nhưng để phục vụ họ, bạn cần làm nhiều hơn là chỉ hoán đổi các từ tiếng Anh cho các từ tiếng Ả Rập. Nó đòi hỏi bạn phải suy nghĩ lại toàn bộ hướng bố cục của mình.
Hướng dẫn này bao gồm mọi thứ bạn cần biết: cách RTL hoạt động trong WordPress, cách sửa CSS, cách xử lý các tệp .po có chuỗi RTL và cách tránh những cạm bẫy phổ biến nhất.
Cách RTL Hoạt Động trong WordPress
WordPress có hỗ trợ RTL tích hợp. Khi bạn đặt ngôn ngữ trang web của mình thành tiếng Ả Rập (ar), tiếng Hebrew (he) hoặc tiếng Ba Tư (fa), WordPress sẽ tự động thêm dir="rtl" vào thẻ <html> và tải một biểu định kiểu rtl.css nếu giao diện của bạn cung cấp.
Đó là về mặt lý thuyết. Trong thực tế, hầu hết các giao diện đều được cung cấp với sự hỗ trợ RTL tối thiểu hoặc bị hỏng.
Những Thay Đổi Thực Tế
Khi chế độ RTL được kích hoạt, trình duyệt sẽ phản chiếu toàn bộ bố cục trang:
- Văn bản chảy từ phải sang trái.
- Các thanh bên đổi bên.
- Các menu điều hướng đảo ngược thứ tự.
- Các giá trị padding và margin bị lật (trái thành phải).
- Các biểu tượng có ý nghĩa chỉ hướng (mũi tên, dấu chevron) cần được phản chiếu.
Nếu CSS của giao diện của bạn chỉ được viết cho LTR, thì mọi khai báo margin-left, padding-right, float: left và text-align: left hiện đang chống lại công cụ RTL của trình duyệt.
Sửa CSS cho RTL: Hướng Dẫn Thực Tế
Cách tiếp cận sạch sẽ nhất là sử dụng Thuộc Tính Logic CSS, tự động điều chỉnh theo hướng viết của tài liệu. Thay vì left và right, bạn sử dụng inline-start và inline-end.
Trước: Thuộc Tính Vật Lý (Bị Hỏng trong RTL)
/* LTR-only CSS -- breaks in Arabic */
.sidebar {
float: left;
margin-right: 20px;
}
.nav-arrow {
padding-left: 10px;
text-align: left;
}
.card {
border-left: 3px solid #0073aa;
}
Sau: Thuộc Tính Logic (Hoạt Động ở Cả Hai Hướng)
/* Direction-agnostic CSS -- works in both LTR and RTL */
.sidebar {
float: inline-start;
margin-inline-end: 20px;
}
.nav-arrow {
padding-inline-start: 10px;
text-align: start;
}
.card {
border-inline-start: 3px solid #0073aa;
}
Với các thuộc tính logic, bạn viết CSS của mình một lần và nó hoạt động chính xác cả bằng tiếng Anh và tiếng Ả Rập mà không cần bất kỳ ghi đè nào.
Phương Pháp Ghi Đè [dir="rtl"]
Nếu bạn không thể tái cấu trúc toàn bộ biểu định kiểu của mình, bạn có thể nhắm mục tiêu RTL cụ thể bằng cách sử dụng các bộ chọn thuộc tính:
[dir="rtl"] .sidebar {
float: right;
margin-left: 20px;
margin-right: 0;
}
[dir="rtl"] .nav-arrow {
padding-left: 0;
padding-right: 10px;
text-align: right;
}
Điều này hoạt động, nhưng nó làm tăng gấp đôi gánh nặng bảo trì của bạn. Mỗi khi bạn cập nhật kiểu LTR của mình, bạn cũng phải cập nhật các ghi đè RTL.
Dịch Tệp PO với Chuỗi RTL
Bản dịch tự nó đưa ra những thách thức vượt ra ngoài bố cục. Các ngôn ngữ RTL có những đặc điểm riêng khiến hầu hết các công cụ tự động vấp phải.
Văn Bản Hai Chiều (Bidi) trong Tệp PO
Sự phức tạp thực sự xuất hiện khi văn bản RTL và LTR trộn lẫn trong một chuỗi duy nhất. Hãy xem xét mẫu WordPress phổ biến này:
msgid "Powered by %s"
msgstr "مدعوم بواسطة %s"
Chỗ giữ chỗ %s sẽ được thay thế bằng tên sản phẩm tiếng Anh như "WooCommerce." Trong đầu ra được hiển thị, trình duyệt phải hiển thị văn bản tiếng Ả Rập chảy từ phải sang trái, sau đó chuyển sang trái sang phải cho từ tiếng Anh, sau đó có khả năng chuyển lại.
Điều này được gọi là văn bản hai chiều (hoặc "bidi"), và nó được xử lý bởi Thuật Toán Hai Chiều Unicode. Hầu hết thời gian nó hoạt động tự động. Nhưng khi bạn có nhiều chỗ giữ chỗ hoặc số liền kề với văn bản RTL, thứ tự hiển thị có thể trở nên khó đoán.
Các Lỗi Dịch Thuật Phổ Biến
Các công cụ dịch thuật chung chung mắc một số lỗi cụ thể cho RTL:
-
Thứ tự chỗ giữ chỗ bị đảo ngược. Một chuỗi như
%1$s trên %2$scó thể bị hoán đổi chỗ giữ chỗ vì AI sắp xếp lại chúng để phù hợp với ngữ pháp tiếng Ả Rập. Điều này tạo ra đầu ra không chính xác như "10 trên Trang" thay vì "Trang trên 10." Tìm hiểu thêm về bảo vệ các biến mã trong quá trình dịch thuật. -
Hướng HTML bị hỏng. Nếu chuỗi của bạn chứa HTML nội tuyến như
<span dir="ltr">, một người dịch ngây thơ có thể loại bỏ thuộc tínhdirhoặc dịch nó. -
Thiếu dạng số nhiều. Tiếng Ả Rập có sáu dạng số nhiều -- không, một, hai, ít, nhiều và khác. Đây là hệ thống số nhiều phức tạp nhất trong bất kỳ ngôn ngữ nào mà WordPress hỗ trợ. Một công cụ chỉ tạo ra hai dạng (như số ít/số nhiều tiếng Anh) sẽ khiến tệp
.potiếng Ả Rập của bạn bị hỏng. Để tìm hiểu sâu về cách số nhiều Gettext hoạt động, hãy xem hướng dẫn của chúng tôi về số nhiều phức tạp trong WordPress.
Đây là cách một chuỗi số nhiều tiếng Ả Rập được dịch chính xác trông như thế nào trong một tệp .po:
# Arabic: nplurals=6
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "لا تعليقات"
msgstr[1] "تعليق واحد"
msgstr[2] "تعليقان"
msgstr[3] "%d تعليقات"
msgstr[4] "%d تعليقًا"
msgstr[5] "%d تعليق"
Nếu bất kỳ một trong sáu dạng đó bị trống hoặc không chính xác, WordPress sẽ quay lại chuỗi tiếng Anh cho số lượng cụ thể đó. Người dùng của bạn sẽ thấy "5 comments" bằng tiếng Anh rải rác trên một giao diện hoàn toàn bằng tiếng Ả Rập.
Kiểm Tra Việc Triển Khai RTL của Bạn
Dịch và sửa CSS là không đủ. Bạn cần xác minh kết quả trong một trình duyệt thực tế.
Danh Sách Kiểm Tra Nhanh
- Chuyển đổi ngôn ngữ WordPress sang tiếng Ả Rập trong Cài đặt > Chung. Đừng chỉ thêm
dir="rtl"theo cách thủ công -- hãy sử dụng cài đặt ngôn ngữ thực để WordPress tải các ghi đè RTL của riêng nó. - Kiểm tra menu điều hướng. Chúng có được phản chiếu không? Các menu thả xuống có mở theo đúng hướng không?
- Kiểm tra các trường biểu mẫu. Văn bản nhập liệu phải chảy từ phải sang trái. Văn bản chỗ giữ chỗ phải được căn phải.
- Xác minh nội dung hỗn hợp hướng. Các chuỗi chứa cả tiếng Ả Rập và tiếng Anh (như tên thương hiệu hoặc URL) phải hiển thị theo đúng thứ tự hiển thị.
- Kiểm tra trên thiết bị di động. Các lỗi bố cục RTL thường nghiêm trọng hơn trên các màn hình nhỏ hơn, nơi có ít không gian hơn cho các lỗi căn chỉnh.
Nếu bản dịch của bạn không hiển thị, vấn đề có thể không liên quan đến RTL -- hãy kiểm tra quá trình biên dịch tệp .mo và đường dẫn tệp trước.
Thủ Thuật Công Cụ Dành Cho Nhà Phát Triển Trình Duyệt
Trong Chrome DevTools, bạn có thể tạm thời buộc RTL trên bất kỳ trang nào mà không cần thay đổi cài đặt WordPress:
/* Paste in DevTools console as: document.documentElement.dir = 'rtl' */
html {
direction: rtl;
}
Điều này cung cấp cho bạn một bản xem trước nhanh về cách giao diện của bạn xử lý RTL trước khi bạn bắt đầu dịch.
Tự Động Hóa Dịch Thuật RTL Đúng Cách
Dịch thuật thủ công các ngôn ngữ RTL rất tốn kém và chậm. Các dịch giả tiếng Ả Rập chuyên nghiệp tính phí cao và việc tìm một người hiểu cả ngôn ngữ và cú pháp Gettext cụ thể của WordPress là rất khó.
SimplePoTranslate giải quyết vấn đề này bằng một công cụ AI Nhận Biết Ngữ Cảnh hiểu các thách thức cụ thể của RTL một cách tự nhiên:
- Tất cả sáu dạng số nhiều tiếng Ả Rập được tạo tự động. Công cụ của chúng tôi đọc tiêu đề
Plural-Formstrong tệp.pocủa bạn và tạo ra chính xác số lượng dạng mà ngôn ngữ mục tiêu của bạn yêu cầu. Không có khemsgstrtrống, không có dự phòng tiếng Anh. - An toàn chỗ giữ chỗ. Các biến như
%s,%dvà%1$sbị khóa trong quá trình dịch. AI không thể sắp xếp lại, xóa hoặc làm hỏng chúng -- ngay cả khi ngữ pháp tiếng Ả Rập gợi ý một thứ tự từ khác. Đọc thêm về cách khóa cú pháp bảo vệ mã của bạn. - Ngữ cảnh hai chiều. AI hiểu rằng các chuỗi hỗn hợp hướng cần được xử lý đặc biệt và bảo tồn các thuộc tính hướng HTML.
Cho dù bạn đang bản địa hóa một giao diện blog cho đối tượng người Hebrew hay dịch một cửa hàng WooCommerce đầy đủ sang tiếng Ba Tư, quy trình này đều giống nhau: tải tệp .po của bạn lên, chọn ngôn ngữ mục tiêu và tải xuống tệp đã dịch. Toàn bộ quy trình chỉ mất vài phút, không phải vài ngày.
Để có một hướng dẫn đầy đủ về quy trình bản địa hóa WordPress, hãy xem hướng dẫn cuối cùng của chúng tôi về bản địa hóa WordPress.
Ngừng Coi RTL Như Một Ý Nghĩ Bất Chợt
Các ngôn ngữ từ phải sang trái đại diện cho hơn một tỷ người dùng tiềm năng. Tiếng Ả Rập là ngôn ngữ được sử dụng nhiều thứ năm trên thế giới. Tiếng Hebrew và tiếng Ba Tư phục vụ các thị trường quan trọng ở Trung Đông và Trung Á.
Nếu trang web WordPress của bạn không thể phục vụ những người dùng này với trải nghiệm bóng bẩy, mang lại cảm giác bản xứ, họ sẽ tìm một đối thủ cạnh tranh có thể.
Tin tốt: WordPress đã có cơ sở hạ tầng. Giao diện của bạn chỉ cần CSS phù hợp và các tệp .po của bạn cần một công cụ dịch thuật tôn trọng sự phức tạp của các ngôn ngữ RTL.
Bạn đã sẵn sàng dịch trang web WordPress của mình sang tiếng Ả Rập, tiếng Hebrew hoặc tiếng Ba Tư chưa? Bắt đầu miễn phí tại SimplePoTranslate.com