Tại Sao Bản Dịch Của Bạn Không Hiển Thị Trên WordPress (Hướng Dẫn Khắc Phục Sự Cố)

Không có gì bực bội hơn trong quá trình phát triển WordPress ngoài việc gặp phải "Lỗi im lặng".
Bạn đã làm mọi thứ đúng. Bạn đã dịch file .po. Bạn đã biên dịch nó thành file .mo. Bạn đã tải nó lên máy chủ của mình thông qua FTP. Bạn đã xóa bộ nhớ cache.
Bạn làm mới trang, mong đợi sẽ thấy tiếng Tây Ban Nha, tiếng Pháp hoặc tiếng Đức. Thay vào đó, bạn thấy... tiếng Anh.
Không có thông báo lỗi, không có màn hình trắng—chỉ có văn bản không được dịch đầy bướng bỉnh. Trước khi bạn phát điên lên, hãy đọc hướng dẫn này. Dưới đây là 5 lý do phổ biến nhất khiến bản dịch không tải được trong WordPress và cách khắc phục chúng.
1. Bạn Đặt Tên File Sai
WordPress cực kỳ khắt khe về việc đặt tên file. Nếu bạn bỏ lỡ một ký tự, nó sẽ không tải file.
Định dạng tiêu chuẩn là: {text-domain}-{locale}.mo
- Tên miền văn bản (Text Domain): Đây là ID duy nhất của theme hoặc plugin (ví dụ:
woocommerce,twentytwentyfour,my-custom-plugin). - Locale: Mã WP locale (ví dụ:
es_EScho tiếng Tây Ban Nha tại Tây Ban Nha,fr_FRcho tiếng Pháp).
Những Lỗi Thường Gặp:
- Đặt tên file chỉ là
es_ES.mo(Điều này chỉ hoạt động đối với các file core WordPress toàn cục, không phải plugin). - Sử dụng dấu gạch nối sai:
my_plugin_es_ES.mo(Dấu gạch dưới) thay vìmy-plugin-es_ES.mo(Dấu gạch ngang). - Đoán tên miền văn bản. Bạn phải kiểm tra code của plugin (tiêu đề
style.csshoặc hàmload_plugin_textdomain) để tìm slug chính xác.
2. Bạn Đặt File Vào Sai Thư Mục
Nơi bạn tải file lên quan trọng không kém gì việc bạn đặt tên nó như thế nào. WordPress tìm kiếm trong các thư mục cụ thể theo một thứ tự cụ thể.
- Thư mục hệ thống "An Toàn":
/wp-content/languages/plugins/hoặc/wp-content/languages/themes/.- Ưu điểm: Điều này an toàn trước các bản cập nhật plugin.
- Nhược điểm: Bạn phải đặt tên file là
textdomain-locale.mo.
- Thư mục của Tác giả:
/wp-content/plugins/plugin-name/languages/.- Ưu điểm: Dễ tìm.
- Nhược điểm: NGUY HIỂM. Khi bạn cập nhật plugin, thư mục này sẽ bị xóa sạch. Bản dịch của bạn sẽ biến mất.
Thực Hành Tốt Nhất: Luôn đặt các file .mo tùy chỉnh của bạn vào thư mục /wp-content/languages/ toàn cục để ngăn ngừa mất dữ liệu trong quá trình cập nhật.
3. "Kẻ Giết Người Thầm Lặng": Cú Pháp Lỗi Trong File .po
Đây là vấn đề khó gỡ lỗi nhất và nó thường xảy ra với các công cụ dịch AI chung chung.
WordPress đọc các file .mo nhị phân, được biên dịch từ các file văn bản .po. Nếu file .po của bạn chứa lỗi cú pháp, file .mo có thể được tạo, nhưng nó sẽ bị "hỏng" bên trong.
Điều này xảy ra như thế nào? Nếu người dịch (người hoặc AI) làm rối định dạng Gettext, chuỗi sẽ trở nên không hợp lệ.
- Ví dụ: Thiếu dấu ngoặc kép đóng
". - Ví dụ: Phá vỡ một biến (thay đổi
%sthành% s). - Ví dụ: Làm rối loạn số lượng
msgid_plural.
Khi WordPress gặp phải một mục bị hỏng trong file .mo, nó thường bỏ qua nó hoặc ngừng đọc toàn bộ file, trở về tiếng Anh ban đầu.
4. Bạn Quên Biên Dịch (.po so với .mo)
WordPress không thể đọc trực tiếp các file .po. Đây là một quan niệm sai lầm phổ biến.
.po= Con người có thể đọc được (Portable Object)..mo= Máy móc có thể đọc được (Machine Object).
Nếu bạn tải lên file my-theme-es_ES.po nhưng quên tạo file .mo phù hợp, sẽ không có gì xảy ra. Bạn phải biên dịch nó.
5. Bộ Nhớ Cache (Thủ Phạm Quen Thuộc)
Nếu bạn đang sử dụng các plugin bộ nhớ cache (WP Rocket, LiteSpeed) hoặc bộ nhớ cache phía máy chủ (Varnish, Redis), trang web của bạn có thể đang phục vụ một phiên bản HTML được lưu trong bộ nhớ cache từ trước khi bạn tải lên bản dịch.
Khắc phục: xóa tất cả bộ nhớ cache, bao gồm bộ nhớ cache của trình duyệt và bộ nhớ cache đối tượng.
Giải Pháp Tối Ưu: File Hợp Lệ Ngay Từ Đầu
Khắc phục sự cố đường dẫn và tên file thì dễ. Khắc phục sự cố cú pháp lỗi (Lý do #3) là một cơn ác mộng.
Nếu bạn sử dụng một công cụ làm hỏng các biến code của bạn hoặc làm hỏng cấu trúc Gettext, bạn sẽ mất hàng giờ để tự hỏi tại sao file không hoạt động, mà không nhận ra rằng bản thân file đã bị "nhiễm độc".
Đây là lý do tại sao chúng tôi xây dựng SimplePoTranslate.
- Khóa Cú Pháp: Chúng tôi đảm bảo mọi chuỗi đều hợp lệ về mặt cú pháp trước khi bạn tải xuống. Chúng tôi khóa các biến như
%sđể chúng không thể bị hỏng. - Định Dạng Hoàn Hảo: Chúng tôi tạo ra các file
.posạch sẽ, tiêu chuẩn, biên dịch thành các file.mohoạt động 100% thời gian. - Không Cần Plugin: Bạn tải xuống file và bạn biết nó hoạt động. Bạn chỉ cần tải nó lên đúng thư mục.
- Plugin WordPress: Bạn thích bỏ qua việc tải lên thủ công hoàn toàn? Plugin SimplePoTranslate WordPress chính thức của chúng tôi tự động phát hiện các file
.pottheme và plugin của bạn, dịch chúng trên đám mây và triển khai kết quả vào đúng thư mục với tên file chính xác. Không còn file bị đặt tên sai, không còn đường dẫn thư mục sai — hai lý do phổ biến nhất khiến bản dịch không xuất hiện.
Đừng đoán xem tại sao bản dịch của bạn lại vô hình. Hãy bắt đầu với một file mà bạn có thể tin tưởng.
Sẵn sàng dịch mà không đau đầu? Bắt đầu miễn phí tại SimplePoTranslate.com