- Trạng thái
- Đã giải quyết
Tổng quan về lỗi
Khi bạn thay đổi locale của ngôn ngữ, ví dụ, đối với tiếng Đức từ de_DE sang de_DE_formal, bạn có thể nhận thấy rằng bản dịch của các chuỗi văn bản ngừng hiển thị.
Vấn đề này xảy ra vì WPML không thể tìm thấy các tệp MO có locale ngôn ngữ tương ứng nữa. Trong ví dụ của chúng ta, nó sẽ tìm kiếm some-domain-de_DE_formal.mo nhưng tệp đó không tồn tại. Thay vào đó, WPML chỉ có bản ghi của some-domain-de_DE.mo.
Giải pháp tạm thời
Để giải quyết vấn đề này, bạn cần thực hiện hai việc:
1. Nếu bạn có bất kỳ chuỗi văn bản nào được dịch thông qua trang WPML -> Dịch chuỗi, hãy truy cập trang WPML -> Hỗ trợ -> Khắc phục sự cố và nhấp vào nút Show custom MO Files Pre-generation dialog box. Trong hộp thoại xuất hiện, nhấp vào nút màu xanh lam để tạo lại các tệp MO tùy chỉnh.
2. Rất có thể, bước đầu tiên sẽ không sửa được tất cả các chuỗi bị thiếu. Điều này là do một số giá trị có thể đến từ các tệp MO bản địa bị thiếu, được cung cấp bởi các plugin hoặc giao diện khác. Để giải quyết vấn đề này, bạn phải tìm các tệp MO bị thiếu và tạo các bản sao bằng cách sử dụng tên mới với mã ngôn ngữ mới.
Trong ví dụ của chúng tôi, nếu một chuỗi thường được tải từ tệp woocommerce-de_DE.mo, chúng ta phải tìm tệp đó và tạo một bản sao của nó bằng cách sử dụng tên khớp với ngôn ngữ địa phương hiện tại: woocommerce-de_DE_formal.mo. Bạn phải sao chép tất cả các tệp bị thiếu được trang web của bạn sử dụng.
Các vị trí điển hình nơi bạn có thể tìm thấy các tệp MO này là:
- ../wp-content/languages/
- ../wp-content/plugins/plugin-in-question/
- ../wp-content/plugins/plugin-in-question/languages/
Cuối cùng, bạn cũng có thể tìm thấy các đường dẫn cụ thể trong bảng wp_icl_mo_files_domains trong cơ sở dữ liệu của bạn.