Trang này tồn tại cho những trường hợp còn lại: các giao diện và plugin ít phổ biến hơn, các phiên bản phát hành rất mới mà tác giả đã tung ra trước khi khả năng tương thích của WPML kịp cập nhật, và một số lượng nhỏ các công cụ hỗ trợ chung cho các trang web gặp phải các triệu chứng cụ thể. Hầu hết khách hàng không bao giờ truy cập vào đây. Khi bạn truy cập, thường là do bộ phận Hỗ trợ của WPML đã hướng dẫn bạn đến một nút chuyển đổi cụ thể hoặc một wpml-config.xml để dán vào.
Có hai trang phụ trong phần Cài đặt bao gồm khả năng tương thích và trang này đề cập đến cả hai:
- WPMLCài đặtKhả năng tương thích chứa các nút chuyển đổi cho các triệu chứng phổ biến.
- WPMLCài đặtCấu hình XML tùy chỉnh là nơi bạn viết
wpml-config.xmlcủa riêng mình – được mô tả ở nửa sau của trang này.
Giao diện người dùng cho các mặc định phổ biến nhất (tùy chọn dịch theo từng loại nội dung tùy chỉnh, từng phân loại, từng trường) nằm trên một trang Cài đặt riêng biệt được đề cập trong Những gì được dịch – và những gì không; hầu hết khách hàng sử dụng giao diện người dùng đó và chỉ truy cập vào đây khi nó không đáp ứng được nhu cầu của họ.
Các nút chuyển đổi khả năng tương thích
Truy cập WPMLCài đặtKhả năng tương thích.
Trang này có bốn thẻ. Mỗi thẻ nhắm mục tiêu vào một nhóm vấn đề tương thích cụ thể.
Tùy chọn bản địa hóa – Dành cho các giao diện và plugin có bản dịch không tải được
Khi một giao diện hoặc plugin đã bao gồm các bản dịch giao diện người dùng của riêng nó (các tệp .mo trong thư mục /languages/) nhưng các bản dịch đó không hiển thị trên trang web của bạn, thẻ Tùy chọn bản địa hóa có ba nút chuyển đổi giúp WPML tìm và áp dụng chúng.
- Tự động tải tệp
.mocủa giao diện bằng cách sử dụngload_textdomain. Buộc WPML gọiload_textdomain()cho text domain của giao diện. Sử dụng khi các bản dịch của giao diện đã có trên ổ đĩa nhưng không xuất hiện. - Nhập textdomain. Ghi đè text domain được tự động phát hiện. Một số giao diện đăng ký text domain của chúng theo những cách không chuẩn; trường này cho phép bạn chỉ định rõ ràng text domain đó.
- Sử dụng text domain của giao diện hoặc plugin khi các lệnh gọi gettext không sử dụng chuỗi nguyên văn. Một cờ tương thích cho các giao diện/plugin sử dụng các lệnh gọi
__()với các đối số biến đổi thay vì các chuỗi nguyên văn. WPML không thể tự động phát hiện những lệnh gọi này và nút chuyển đổi này giúp WPML vẫn có thể áp dụng các bản dịch.
Nếu bộ phận Hỗ trợ của WPML hướng dẫn bạn đến đây, họ sẽ cho bạn biết cần thiết lập nút chuyển đổi nào và textdomain nào.
Làm cho giao diện hoạt động đa ngôn ngữ
Điều chỉnh các ID cho chức năng đa ngôn ngữ. Một lớp tương thích cho các giao diện có mã hóa cứng các giả định về ngôn ngữ đơn (ví dụ: một giao diện lưu “ID hình ảnh nổi bật” một lần và sử dụng cùng một hình ảnh đó trên mọi ngôn ngữ).
Hầu hết các giao diện hiện đại tương thích với WPML đều không cần tính năng này. Các giao diện cũ hơn hoặc ít hỗ trợ WPML đôi khi lại cần. Hãy bật tính năng này nếu bạn thấy các tham chiếu nội dung (hình ảnh, menu, mục nổi bật) bị rò rỉ qua các ngôn ngữ một cách không chính xác.
Lọc ngôn ngữ cho các hoạt động AJAX
Lưu cookie ngôn ngữ để hỗ trợ lọc ngôn ngữ cho AJAX. Một số plugin sử dụng AJAX để tìm nạp nội dung: danh sách sản phẩm được lọc, danh sách bài viết phân trang bằng AJAX, kết quả tìm kiếm khi bạn nhập. Nếu không có cookie ngôn ngữ, điểm cuối AJAX sẽ không biết cần phản hồi bằng ngôn ngữ nào và trả về kết quả sai ngôn ngữ.
Bật cookie này nếu bạn thấy triệu chứng sau: khách truy cập trên trang tiếng Pháp nhận được kết quả tiếng Anh từ các phần được tải bằng AJAX. Đây là cách khắc phục chỉ bằng một hộp kiểm cho toàn bộ một nhóm lỗi.
Các trang đăng nhập và đăng ký
Cho phép dịch các trang đăng nhập và đăng ký. /wp-login.php tích hợp sẵn của WordPress và màn hình đăng ký không nằm trong nội dung thông thường mà WPML dịch. Chúng nằm ngoài chuỗi mẫu của giao diện. Nút chuyển đổi này thêm chúng vào tập hợp các trang có thể dịch của WPML.
Nếu trang web của bạn chạy trên nginx, nút chuyển đổi này cũng yêu cầu tinh chỉnh cấu hình máy chủ. Trang này liên kết đến hướng dẫn nginx của WPML với khối cấu hình chính xác.
Văn bản của giao diện và plugin – Cài đặt ở đây, trình quét ở nơi khác
Hai loại công việc liên quan đến chuỗi của giao diện/plugin được chia thành hai màn hình:
- Các cài đặt trên trang này. Chúng xử lý khả năng tương thích cho các bản dịch mà giao diện/plugin đã bao gồm:
load_textdomain, ghi đè textdomain, gettext không nguyên văn. - Trình quét là một màn hình riêng. Khi bạn cần tìm các chuỗi của giao diện và plugin chưa được đăng ký để dịch, hãy sử dụng màn hình Dịch văn bản quản trị. Bạn có thể truy cập màn hình này từ tab Chuỗi trong phần Bản dịch dưới mục “không thấy các chuỗi bạn đang tìm kiếm?”.
Để biết toàn bộ quy trình quét chuỗi, hãy xem Dịch chuỗi.
wpml-config.xml tùy chỉnh
Các giao diện và plugin tương thích với WPML đi kèm với một tệp wpml-config.xml cho WPML biết chính xác trường, loại nội dung tùy chỉnh, phân loại, shortcode và khóa meta nào của chúng có thể dịch được. WPML đọc tệp này khi kích hoạt. Đối với mọi giao diện và plugin lớn và phổ biến, điều này có nghĩa là việc dịch thuật hoạt động chính xác ngay mà không cần cấu hình thêm. Bạn không cần phải làm gì cả.
Khi tệp wpml-config.xml đi kèm với một giao diện hoặc plugin không đủ cho trang web của bạn, bạn có thể tự viết tệp của riêng mình. WPML áp dụng tệp này đè lên bất kỳ thứ gì mà giao diện hoặc plugin cung cấp.
Khi nào bạn nên tự viết wpml-config.xml
Có ba tình huống.
- Một trường bạn cần dịch không có trong tệp wpml-config.xml đi kèm. Tác giả của giao diện hoặc plugin không khai báo một trường tùy chỉnh là có thể dịch, nhưng bạn cần dịch trường đó trên trang web của mình.
- Một trường có mặc định sai. Tệp wpml-config.xml đi kèm đánh dấu một mục là Sao chép và bạn muốn Dịch, hoặc ngược lại.
- Bạn đang xây dựng một giao diện hoặc plugin tùy chỉnh và bạn muốn khai báo hành vi dịch của nó từ trang Cài đặt của WPML thay vì đóng gói tệp wpml-config.xml cùng với mã của bạn.
Trong mọi trường hợp, bộ phận Hỗ trợ của WPML có thể hướng dẫn bạn đến đây với đoạn mã wpml-config.xml chính xác để dán vào. Hầu hết đây là hành động do bộ phận Hỗ trợ hướng dẫn, đôi khi là do nhà phát triển tự thực hiện.
Tại sao nên chỉnh sửa wpml-config.xml trong trang quản trị của WPML thay vì trong tệp giao diện
Bạn có thể chỉnh sửa trực tiếp tệp wpml-config.xml của giao diện hoặc plugin. Nhưng thay đổi đó sẽ bị mất trong lần cập nhật giao diện hoặc plugin tiếp theo. Trình soạn thảo trong trang quản trị của WPML tại WPMLCài đặtCấu hình XML tùy chỉnh sẽ xếp lớp tệp wpml-config.xml của bạn lên trên bất kỳ thứ gì mà giao diện hoặc plugin cung cấp, và không bị mất khi cập nhật. Đây là nơi phù hợp cho các tinh chỉnh dành riêng cho trang web.
Cấu trúc của một tệp wpml-config.xml
Trang này là một trình soạn thảo XML. Dán một khối <wpml-config>...</wpml-config>, lưu lại và WPML sẽ áp dụng tệp wpml-config.xml của bạn.
Một tệp wpml-config.xml tối giản khai báo một shortcode là có thể dịch:
<wpml-config>
<shortcodes>
<shortcode>
<tag>add_to_cart_link</tag>
</shortcode>
</shortcodes>
</wpml-config>
Các loại phần tử bạn thường sẽ khai báo:
<custom-fields>. Đánh dấu một trường tùy chỉnh làtranslate,copy,copy-once, hoặcnothing.<custom-types>. Khai báo một loại nội dung tùy chỉnh là có thể dịch.<taxonomies>. Khai báo một phân loại tùy chỉnh là có thể dịch.<shortcodes>. Liệt kê các shortcode có nội dung mà WPML nên dịch.<custom-term-fields>. Dành cho siêu dữ liệu của thuật ngữ.
Mỗi phần tử có các thuộc tính riêng (ví dụ: action="translate" trên một trường tùy chỉnh). Để xem tài liệu tham khảo wpml-config.xml đầy đủ (mọi phần tử, mọi thuộc tính, mọi giá trị được phép), hãy xem Thông tin dành cho nhà phát triển WPML.
Một quy trình làm việc thực tế
Nếu bộ phận Hỗ trợ của WPML cung cấp cho bạn một khối wpml-config.xml để dán vào:
- Truy cập WPMLCài đặtCấu hình XML tùy chỉnh.
- Dán mã XML của họ vào bên trong khối
<wpml-config>hiện có (hoặc thay thế nội dung nếu họ đã cung cấp cho bạn toàn bộ khối). - Lưu lại.
- WPML sẽ áp dụng tệp wpml-config.xml của bạn ngay lập tức. Nếu nó khai báo một loại nội dung tùy chỉnh hoặc trường tùy chỉnh mới có thể dịch, mục này sẽ xuất hiện ngay trong WPMLCài đặtDịch loại bài viết hoặc WPMLCài đặtDịch trường tùy chỉnh.
Nếu bạn đang xây dựng một giao diện hoặc plugin tùy chỉnh và muốn cung cấp cấu hình WPML của nó cùng với mã, thay vào đó, bạn sẽ đặt cùng một khối <wpml-config> vào tệp wpml-config.xml ở thư mục gốc của giao diện hoặc plugin. WPML sẽ đọc tệp này khi kích hoạt. Trình soạn thảo trong trang quản trị là dành cho các tinh chỉnh riêng của trang web; tệp được đóng gói kèm theo là dành cho các mặc định riêng của giao diện/plugin.