Hướng Dẫn Toàn Diện về Dịch Thuật Đa Ngôn Ngữ cho Website WordPress
Dịch website WordPress là một quá trình phức tạp đòi hỏi phải lên kế hoạch và thực hiện cẩn thận. Chúng tôi đã soạn thảo hướng dẫn toàn diện này dựa trên kinh nghiệm phong phú trong việc dịch các website, sử dụng plugin Gato AI Translations for Polylang.
Hướng dẫn này giúp bạn nắm vững mọi thứ cần biết: từ khâu chuẩn bị ban đầu và cấu hình, qua quy trình dịch thuật thực tế, đến kiểm tra và xử lý sự cố. Hãy theo dõi hướng dẫn này để đảm bảo quá trình dịch thuật diễn ra suôn sẻ.
Cài đặt và Cấu hình Polylang
Gato AI Translations for Polylang yêu cầu Polylang được cài đặt và kích hoạt. Polylang là framework đa ngôn ngữ quản lý các ngôn ngữ và mối quan hệ dịch thuật của bạn.
Sau khi cài đặt, bạn cần cấu hình Polylang với các ngôn ngữ của mình:
- Vào Languages trong menu quản trị WordPress
- Thêm ngôn ngữ mặc định của bạn (ngôn ngữ của nội dung hiện có)
- Thêm tất cả các ngôn ngữ đích bạn muốn dịch sang

Bạn phải xác minh rằng tất cả các plugin đang hoạt động đều tương thích với Polylang. Một số plugin có thể không hoạt động chính xác trong môi trường đa ngôn ngữ.
Nếu phát hiện plugin không tương thích, hãy tìm giải pháp thay thế, liên hệ nhà phát triển để được hỗ trợ, hoặc xem xét liệu nó có thực sự cần thiết hay không.
Kiểm Tra và Sửa Nội Dung Gốc Trước
Trước khi bắt đầu dịch, điều cần thiết là phải đảm bảo nội dung gốc của bạn ở trạng thái hoàn hảo. Bất kỳ vấn đề nào trong nội dung gốc đều sẽ được nhân rộng sang tất cả các bản dịch, nghĩa là bạn sẽ phải sửa cùng một vấn đề nhiều lần (một lần cho mỗi ngôn ngữ).
Danh sách kiểm tra nội dung:
-
Kiểm tra các liên kết bị hỏng
- Sử dụng plugin như Broken Link Checker để xác định các liên kết nội bộ và bên ngoài bị hỏng
- Sửa tất cả các liên kết bị hỏng trước khi dịch
- Xác minh rằng các liên kết nội bộ trỏ đến đúng bài viết/trang
-
Xác minh tất cả hình ảnh tồn tại và được tối ưu hóa
- Kiểm tra tất cả hình ảnh tải chính xác
- Đảm bảo hình ảnh có văn bản alt phù hợp cho khả năng truy cập và SEO
- Xác minh kích thước tệp hình ảnh hợp lý (không quá lớn)
- Xóa mọi hình ảnh giữ chỗ hoặc tham chiếu hình ảnh bị hỏng
-
Xem xét định dạng và kiểu dáng
- Kiểm tra định dạng văn bản nhất quán
- Xác minh rằng các tiêu đề được cấu trúc đúng (H1, H2, H3, v.v.)
- Đảm bảo danh sách, bảng và các nội dung có cấu trúc khác hiển thị chính xác
- Kiểm tra rằng kiểu dáng tùy chỉnh và CSS hoạt động như mong đợi
-
Xác thực cấu trúc nội dung
- Đảm bảo sử dụng đúng các khối Gutenberg hoặc các phần tử page builder
- Kiểm tra rằng các loại bài đăng tùy chỉnh và phân loại được thiết lập chính xác
- Xác minh rằng siêu dữ liệu (trường tùy chỉnh, trường ACF, v.v.) đầy đủ
-
Kiểm tra nội dung giữ chỗ
- Xóa bất kỳ văn bản "Lorem ipsum" hoặc giữ chỗ nào
- Thay thế bất kỳ nội dung tạm thời nào bằng phiên bản cuối cùng
- Đảm bảo tất cả nội dung sẵn sàng để xuất bản
-
Cân nhắc SEO
- Xác minh rằng tiêu đề meta và mô tả đã được đặt
- Kiểm tra rằng URL thân thiện với SEO
- Đảm bảo sử dụng đúng tiêu đề cho cấu trúc SEO
Cấu Hình Thay Thế Liên Kết Nội Bộ
Khi dịch nội dung, các liên kết nội bộ cần được cập nhật để trỏ đến các phiên bản đã dịch. Gato AI Translations for Polylang có thể tự động xử lý điều này cho bạn.
Plugin cho phép bạn cấu hình các loại liên kết nội bộ nào cần được thay thế:
- Custom Posts: Liên kết đến các bài đăng, trang, loại bài đăng tùy chỉnh, v.v.
- Media: Liên kết đến các mục phương tiện (hình ảnh, video, v.v.)
- Tags: Liên kết đến trang lưu trữ thẻ
- Categories: Liên kết đến trang lưu trữ danh mục
- Users: Liên kết đến trang tác giả
Các liên kết bài đăng trong nội dung được tự động trích xuất từ nội dung gốc và thay thế. Đối với các loại liên kết khác (phương tiện, thẻ, danh mục, người dùng), bạn cần bật chúng trong cài đặt nếu muốn chúng được thay thế.
Cách cấu hình:
- Vào trang Cài đặt, trong Plugin Configuration > Internal Links Replacement
- Chỉ bật các loại liên kết bạn thực sự sử dụng trong nội dung của mình
- Lưu cài đặt

Xác Minh Tất Cả Liên Kết Sử Dụng URL Chính Xác
Để tính năng thay thế liên kết nội bộ hoạt động chính xác, tất cả các liên kết trong nội dung của bạn phải sử dụng định dạng URL phù hợp. Điều này áp dụng cho các liên kết trong:
- Nội dung bài đăng/trang (khối Gutenberg, HTML, v.v.)
- Widget Elementor và trường meta
- Phần tử Bricks builder và trường meta
- Trường tùy chỉnh và siêu dữ liệu
Yêu cầu URL:
-
URL phải bao gồm tên miền đầy đủ
- ✅ Đúng:
https://www.mysite.com/hello-world/ - ❌ Sai:
/hello-world/(URL tương đối) - ❌ Sai:
hello-world/(không có tên miền hoặc giao thức)
- ✅ Đúng:
-
URL phải trỏ đến slug hiện tại
- Nếu bạn đã thay đổi slug của bài đăng, hãy cập nhật tất cả các liên kết để sử dụng slug mới
- WordPress cần có khả năng truy xuất bài đăng từ URL
- Các slug cũ được chuyển hướng sẽ không hoạt động để thay thế liên kết
-
URL phải sử dụng đúng tên miền (không có chuyển hướng)
- ✅ Đúng:
https://www.mysite.com/hello-world/ - ❌ Sai:
https://mysite.com/hello-world/(nếu trang web của bạn sử dụng www) - Plugin cần tên miền chính xác để khớp và thay thế liên kết đúng
- ✅ Đúng:
Để sửa các tên miền không đúng trong URL, bạn có thể sử dụng plugin như Better Search Replace để tìm kiếm và thay thế URL trực tiếp trong cơ sở dữ liệu của bạn, ví dụ: thay thế https://mysite.com bằng https://www.mysite.com.
Chọn Trạng Thái Nháp hoặc Đã Xuất Bản
Khi các bản dịch được tạo ra, bạn cần quyết định liệu chúng có nên được xuất bản ngay hay lưu dưới dạng nháp để xem xét trước.
Theo mặc định, các bản dịch được lưu dưới dạng nháp. Để các bản dịch được xuất bản ngay lập tức, vào trang Cài đặt, trong Plugin Configuration > General Configuration, và đặt tùy chọn Status when translated thành Publish hoặc Same as origin post (nếu bài đăng gốc đã được xuất bản).

Hỗ Trợ Ngôn Ngữ Phải sang Trái (RTL)
Nếu bạn đang dịch sang các ngôn ngữ Phải sang Trái như tiếng Do Thái, tiếng Ả Rập, tiếng Ba Tư hoặc tiếng Urdu, bạn cần đảm bảo giao diện của mình hỗ trợ đúng bố cục RTL.


RTL ảnh hưởng đến điều gì:
Ngôn ngữ RTL đòi hỏi nhiều hơn là chỉ thay đổi hướng văn bản. Giao diện của bạn cần xử lý:
- Hướng bố cục: Các phần tử cần chảy từ phải sang trái
- Căn chỉnh văn bản: Văn bản nên căn phải theo mặc định
- Điều chỉnh khoảng cách:
margin-leftnên trở thànhmargin-right,padding-leftnên trở thànhpadding-right, v.v. - Điều hướng: Menu và điều hướng nên chảy theo RTL
- Biểu mẫu: Các trường nhập liệu và nút nên căn chỉnh chính xác
- Biểu tượng và hình ảnh: Có thể cần phản chiếu hoặc định vị lại
Những gì đã được xử lý sẵn:
- Polylang tự động đặt hướng ngôn ngữ đúng (thuộc tính
dir="rtl") - Dịch nội dung hoạt động giống hệt nhau cho ngôn ngữ RTL và LTR
- Gato AI Translations dịch nội dung chính xác bất kể hướng văn bản

Những gì bạn cần kiểm tra:
-
Hỗ trợ RTL của giao diện: Kiểm tra giao diện của bạn với ngôn ngữ RTL để xem nó xử lý như thế nào
- Nhiều giao diện hiện đại bao gồm bảng kiểu RTL
- Kiểm tra tài liệu của giao diện để biết thông tin hỗ trợ RTL
- Tìm kiếm
rtl.csshoặc các tệp tương tự trong giao diện của bạn
-
CSS tùy chỉnh: Xem xét bất kỳ CSS tùy chỉnh nào bạn đã thêm
- Các giá trị trái/phải được mã hóa cứng có thể cần điều chỉnh
- Cân nhắc sử dụng các thuộc tính logic (
margin-inline-startthay vìmargin-left)
-
Tương thích page builder: Nếu sử dụng Elementor, Bricks hoặc các page builder khác
- Kiểm tra xem chúng có hỗ trợ bố cục RTL không
- Kiểm tra bố cục ở chế độ RTL trước khi dịch
Nếu giao diện của bạn không hỗ trợ RTL tốt, bạn có thể cần chuyển sang giao diện tương thích RTL, thêm CSS RTL tùy chỉnh, hoặc sử dụng plugin thêm hỗ trợ RTL.
Xác Định Nội Dung Plugin Bên Thứ Ba Cần Dịch
Nhiều plugin WordPress tạo ra các Loại Bài Đăng Tùy Chỉnh (CPT) riêng để lưu trữ nội dung (ví dụ: sản phẩm WooCommerce, sự kiện Events Calendar, khóa học LearnDash, v.v.).
Trước khi dịch, bạn cần:
-
Xác định CPT nào chứa nội dung cần dịch
- Xem xét các plugin đang hoạt động và CPT của chúng
- Xác định cái nào cần dịch (không phải tất cả đều cần)
-
Đảm bảo các CPT và phân loại liên quan có thể dịch được
- Vào Languages > Settings > Custom post types and Taxonomies của Polylang
- Bật dịch cho các CPT và phân loại liên quan

Tự Động Tạo Mục Dịch cho CPT
Nếu một CPT dựa vào phương thức wp_insert_post để tạo mục, bạn có thể vào trang Cài đặt, trong Plugin Configuration > General Configuration, và bật tùy chọn Automatic creation of translation entries cho CPT đó để plugin tự động tạo các mục dịch.

Nếu một CPT dựa vào phương thức khác ngoài wp_insert_post, bạn sẽ cần tự tạo các mục dịch bằng giao diện người dùng của Polylang trước khi có thể dịch chúng.
Ví dụ, với sản phẩm WooCommerce, bạn cần tạo các mục dịch trước. Xem tài liệu về dịch Loại Bài Đăng Tùy Chỉnh bên thứ ba để xem video demo.
Xác Minh Plugin SEO Của Bạn Được Hỗ Trợ
Siêu dữ liệu SEO (tiêu đề meta, mô tả, thẻ Open Graph, v.v.) rất quan trọng cho SEO đa ngôn ngữ. Gato AI Translations for Polylang bao gồm hỗ trợ tích hợp cho các plugin SEO phổ biến nhất, tự động dịch tất cả siêu dữ liệu liên quan đến SEO.
Plugin hỗ trợ 8 plugin SEO chính:
- All in One SEO
- Rank Math
- SEO Simple Pack
- SEOPress
- Slim SEO
- The SEO Framework
- WP Meta SEO
- Yoast SEO
Nếu bạn đang sử dụng plugin SEO không có trong danh sách trên, bạn phải chỉ định các khóa meta nào cần đồng bộ và dịch, tương ứng với plugin SEO bạn đang sử dụng. Bất kỳ plugin nào lưu trữ siêu dữ liệu trong bảng wp_postmeta đều được hỗ trợ.
Chọn Nhà Cung Cấp AI và Mô Hình
Chất lượng bản dịch của bạn phụ thuộc vào dịch vụ AI và mô hình bạn chọn.
Các dịch vụ AI hiện đại (như ChatGPT, Claude và Gemini) tạo ra bản dịch tốt hơn đáng kể so với các dịch vụ cũ hơn (Google Translate hoặc DeepL) vì chúng hiểu ngữ cảnh, giọng điệu và sắc thái tốt hơn; bảo toàn đúng cấu trúc HTML và định dạng; không dịch sai URL hoặc liên kết tương đối; duy trì phong cách viết và giọng văn xuyên suốt các bản dịch; và xử lý thuật ngữ kỹ thuật và ngôn ngữ chuyên ngành tốt hơn.
Bạn có thể chọn từ các dịch vụ AI sau:
- ChatGPT (OpenAI)
- Claude (Anthropic)
- DeepSeek
- Gemini (Google)
- Mistral AI
- OpenRouter (bộ tổng hợp LLM cung cấp quyền truy cập vào tất cả các mô hình chính, bao gồm Grok và Llama)
- Self-hosted LLM (lưu trữ trên máy chủ của bạn, ví dụ: qua Ollama)
Chúng tôi khuyến nghị sử dụng các phiên bản mô hình mới nhất hiện có (ví dụ: ChatGPT 5.2 thay vì 5.0), vì các mô hình mới hơn liên tục cung cấp chất lượng dịch thuật tốt hơn.
Mẹo chuyên gia: Bạn có thể cấu hình các dịch vụ AI khác nhau cho các ngôn ngữ khác nhau. Ví dụ, sử dụng DeepSeek cho tiếng Trung (chất lượng xuất sắc và rất phải chăng), ChatGPT cho các ngôn ngữ châu Âu, và Claude cho nội dung kỹ thuật phức tạp. Điều này cho phép bạn tối ưu hóa cả chất lượng lẫn chi phí.
Bạn có thể sử dụng OpenRouter để truy cập các mô hình AI mới nhất ngay khi chúng được phát hành.
Cân Nhắc Tùy Chỉnh Prompt Dịch Thuật AI
Prompt dịch thuật mặc định hoạt động tốt cho hầu hết nội dung, nhưng việc tùy chỉnh nó có thể cải thiện chất lượng dịch cho trường hợp sử dụng cụ thể của bạn.
Ví dụ:
Một blog du lịch có thể tùy chỉnh prompt của họ bằng cách thêm những điều sau:
Translate to a natural, flowing, easy-to-read, casual blog-style language. Keep original content structure, meaning, and styling (but do adjust sentence structure and style to be relevant to the target language).
Lightly improve boring parts - Add curiosity triggers, light humor, and light slang (as fits the target language), like a human travel blogger would write.Bạn có thể sửa đổi prompt mặc định, hoặc tạo nhiều prompt AI tùy chỉnh và chọn cái nào sử dụng trong Cài đặt:

Kiểm Tra Khối Gutenberg Của Bạn
Trước khi dịch, bạn cần xác định các khối bạn đang sử dụng và đảm bảo chúng được hỗ trợ để dịch.
Các khối Gutenberg được hỗ trợ sẵn:
- Tất cả các khối core WordPress: Paragraph, Heading, List, Quote, Image, Gallery, v.v.
- Khối bên thứ ba: Các khối từ plugin Yoast SEO, GenerateBlocks, Kadence, Greenshift, v.v.
Nếu bạn đang sử dụng khối không được hỗ trợ có chứa các chuỗi cần dịch, bạn có thể:
- Thêm tích hợp để dịch khối, hoặc
- Thay thế bằng khối được hỗ trợ (ví dụ, thay thế khối testimonial tùy chỉnh bằng phương án thay thế được hỗ trợ).
Cần hỗ trợ? Chúng tôi có thể tích hợp các khối tùy chỉnh cho bạn. Hãy xem Dịch vụ Tùy chỉnh của chúng tôi nếu bạn muốn có chuyên gia xử lý việc tích hợp.
Lưu ý: có các khối không thể dịch được.
Nếu bạn cần thay thế khối không được hỗ trợ, bạn sẽ muốn tìm tất cả các bài đăng sử dụng nó. Xem hướng dẫn tìm bài đăng chứa một khối cụ thể để biết các phương pháp xác định vị trí sử dụng các khối cụ thể.
Kiểm Tra Widget Elementor Của Bạn
Nếu bạn đang sử dụng page builder Elementor, bạn cần kiểm tra các widget bạn đang sử dụng và đảm bảo chúng được hỗ trợ để dịch. Quá trình này tương tự như kiểm tra các khối Gutenberg, nhưng dành riêng cho các widget Elementor.
Tất cả các widget Elementor core đều được hỗ trợ sẵn.
Nếu bạn có các widget không được hỗ trợ:
- Thêm tích hợp để dịch widget, hoặc
- Thay thế bằng widget được hỗ trợ
Kiểm Tra Phần Tử Bricks Của Bạn
Nếu bạn đang sử dụng page builder Bricks, bạn cần kiểm tra các phần tử bạn đang sử dụng và đảm bảo chúng được hỗ trợ để dịch. Quá trình này tương tự như kiểm tra các khối Gutenberg, nhưng dành riêng cho các phần tử Bricks.
Tất cả các phần tử Bricks core đều được hỗ trợ sẵn.
Nếu bạn có các phần tử không được hỗ trợ:
- Thêm tích hợp để dịch phần tử, hoặc
- Thay thế bằng phần tử được hỗ trợ
Xử Lý Hình Ảnh Chứa Văn Bản
Một lỗi thường gặp khi dịch website là quên rằng hình ảnh có thể chứa văn bản cần dịch.
Khi bạn dịch một bài đăng, hình ảnh được sao chép sang phiên bản đã dịch, và siêu dữ liệu hình ảnh (tiêu đề, văn bản alt, chú thích) được dịch, nhưng bất kỳ văn bản nào trong các hình ảnh đó vẫn ở ngôn ngữ gốc.
Để kiểm tra hình ảnh của mình, cách dễ nhất là chuyển Thư viện Phương tiện WordPress sang bố cục Lưới — điều này cho phép bạn quét trực quan tất cả hình ảnh của mình cùng một lúc và nhanh chóng phát hiện những hình ảnh nào chứa văn bản nhúng bằng ngôn ngữ sai.

Ví dụ, hình ảnh này chứa văn bản tiếng Do Thái, khiến nó không phù hợp với các ngôn ngữ khác.

Các lựa chọn của bạn:
-
Giữ văn bản nhúng (nếu ngôn ngữ vẫn có thể hiểu được nói chung)
- Phù hợp khi văn bản ở ngôn ngữ được hiểu rộng rãi hoặc sử dụng ký hiệu/số phổ quát
- Không cần thêm công việc
-
Xóa văn bản khỏi hình ảnh
- Sử dụng hình ảnh không có văn bản nhúng
-
Sử dụng lớp phủ văn bản thay vì văn bản nhúng
- Sử dụng hình ảnh không có văn bản nhúng
- Phủ văn bản (sử dụng khối Gutenberg, widget Elementor, phần tử Bricks hoặc CSS) sẽ được dịch tự động
-
Tạo phiên bản dịch của hình ảnh
- Tạo tệp hình ảnh riêng cho mỗi ngôn ngữ
- Thay thế thủ công hình ảnh trong các bài đăng đã dịch
Xử Lý Dịch Thuật Dữ Liệu Người Dùng Bổ Sung
Polylang có thể xử lý trường tiểu sử cho hồ sơ người dùng WordPress, nhưng nếu bạn có dữ liệu người dùng bổ sung được lưu trong các trường tùy chỉnh (qua ACF, Meta Box hoặc các phương tiện khác), bạn sẽ cần một cách tiếp cận đặc biệt.
Nếu bạn có dữ liệu người dùng cần dịch (ví dụ: chức danh công việc, trình độ, mô tả, v.v.), bạn sẽ cần tạo các trường riêng cho mỗi ngôn ngữ.
-
Tạo các trường riêng cho mỗi ngôn ngữ
- Sử dụng ACF hoặc Meta Box, tạo các trường như:
Qualification ENQualification FRQualification DE- v.v.
- Sử dụng ACF hoặc Meta Box, tạo các trường như:
-
Cập nhật giao diện để hiển thị trường đúng
- Sửa đổi các mẫu giao diện để kiểm tra ngôn ngữ hiện tại
- Hiển thị trường phù hợp dựa trên ngôn ngữ đang hoạt động
- Ví dụ mã PHP:
$current_lang = pll_current_language(); $qualification = get_field("qualification_{$current_lang}", 'user_' . $user_id); echo $qualification;
-
Điền trường thủ công
- Sau khi dịch nội dung, cập nhật thủ công các trường hồ sơ người dùng
Bỏ Qua Dịch Thuật Các Thuật Ngữ Không Nên Dịch
Một số thuật ngữ không bao giờ nên được dịch — tên thương hiệu, danh từ riêng, thuật ngữ kỹ thuật hoặc thuật ngữ chuyên ngành.
Bạn có thể bỏ qua việc dịch các thuật ngữ này bằng cách thêm hướng dẫn vào prompt tùy chỉnh của mình, ví dụ:
Do not translate the following types of terms:
- Hotel names (e.g., "Grand Hotel", "Beach Resort")
- Restaurant names
- Brand names
- Technical acronyms (API, SEO, CMS, etc.)
Keep these terms exactly as they appear in the original text.Tránh Thẻ Trùng Lặp Giữa Các Ngôn Ngữ
Nội dung của chúng ta có thể có các thẻ đại diện cho cùng một khái niệm bằng hai ngôn ngữ khác nhau. Khi các thẻ này được dịch, chúng có thể tạo ra trùng lặp hoặc xung đột.
Ví dụ, nếu bạn có website tiếng Trung đang được dịch sang tiếng Anh, và bạn có cả thẻ 布宜诺斯艾利斯 (Buenos Aires bằng tiếng Trung) và thẻ Buenos Aires bằng tiếng Anh, khi dịch sang tiếng Anh, cả hai thẻ đều trở thành buenos-aires. Điều này tạo ra tình trạng thẻ trùng lặp.

Cách sửa trước khi dịch:
-
Kiểm tra các thẻ của bạn
- Xem xét tất cả các thẻ trong ngôn ngữ gốc của bạn
- Xác định các thẻ có thể là bản trùng lặp của thẻ trong các ngôn ngữ khác
- Tìm các thẻ đại diện cho cùng khái niệm nhưng ở các ngôn ngữ khác nhau
-
Hợp nhất các thẻ
- Chọn một phiên bản ngôn ngữ để giữ (thường là ngôn ngữ gốc của bạn)
- Gộp hoặc xóa các thẻ trùng lặp
- Cập nhật bài đăng để sử dụng thẻ đã hợp nhất
-
Dọn dẹp trước khi dịch
- Đảm bảo nội dung gốc của bạn chỉ có thẻ ở ngôn ngữ gốc
- Xóa bất kỳ thẻ nào ở ngôn ngữ đích khỏi nội dung gốc
- Điều này ngăn ngừa xung đột trong quá trình dịch
Tránh Tên Địa Điểm Trùng Lặp Giữa Các Ngôn Ngữ
Nếu nội dung của bạn sử dụng tiêu đề kết hợp nhiều hệ chữ viết, bạn có thể thấy mẫu này: tiêu đề bắt đầu bằng tên địa điểm địa phương, sau đó là cùng tên đó bằng chữ Latin trong ngoặc đơn, rồi phần còn lại của dòng.
Mẫu gốc điển hình (ví dụ):
- Gốc (ví dụ bằng tiếng Do Thái):
פוקט (Pouket) - מדריך לאי היפה— tên địa phương, sau đó cách viết tiếng Anh hoặc quốc tế trong ngoặc đơn, rồi phụ đề. - Đã dịch (ví dụ sang tiếng Anh):
Pouket (Pouket) - beautiful island guide.
Sau khi dịch, tiêu đề đã ở một ngôn ngữ và hệ chữ viết, vì vậy mô hình dịch sát nghĩa lặp lại cùng tên địa điểm hai lần (ví dụ Pouket (Pouket)).
Giải pháp: tinh chỉnh prompt dịch thuật
Tùy chỉnh prompt của bạn để mô hình chuẩn hóa các mở đầu dư thừa "Tên (TênGiống)" khi phần trong ngoặc đơn không thêm thông tin mới. Ví dụ, thêm hướng dẫn như:
If a heading begins with a place name followed by the same translated name in parentheses, remove the duplicate and keep one natural version. Do not remove the parenthesis if the text inside uses a different script, a different spelling, or includes additional descriptive information.Chú Ý Đến Slug Thẻ/Danh Mục Của Bạn
Nếu slug thẻ hoặc danh mục của bạn đã ở ngôn ngữ đích, bạn có thể nghĩ rằng không có gì cần dịch.

Điều đó thường ổn — nhưng có một vấn đề với Polylang free (không phải Pro).
Với Polylang Pro, các thuật ngữ đã dịch có thể tái sử dụng cùng slug trên các ngôn ngữ. Với phiên bản miễn phí, WordPress áp đặt slug duy nhất trên toàn bộ, vì vậy slug của thuật ngữ đã dịch được tự động thêm hậu tố -2.
Ví dụ: một danh mục có slug travels_and_attractions bằng tiếng Do Thái, khi dịch sang tiếng Anh, trở thành travels_and_attractions-2 thay vì giữ nguyên slug.
Nếu điều này ảnh hưởng đến URL hoặc SEO của bạn, bạn sẽ cần sửa thủ công các slug sau khi dịch, hoặc nâng cấp lên Polylang Pro để cho phép tái sử dụng slug giữa các ngôn ngữ.
Đảm Bảo Nhúng Của Bạn Ở Ngôn Ngữ Phù Hợp
Nếu bạn đang nhúng nội dung bên thứ ba — như Google Maps, widget mạng xã hội hoặc các iframe nền tảng khác — hãy kiểm tra rằng nhúng được hiển thị bằng ngôn ngữ đích.
Ví dụ, một nhúng Google Maps được cấu hình cho tiếng Do Thái sẽ vẫn hiển thị nhãn tiếng Do Thái, tên đường phố và giao diện ngay cả sau khi bạn đã dịch phần còn lại của trang sang tiếng Anh. Trong trường hợp đó, bạn có thể muốn sử dụng nhúng không phụ thuộc ngôn ngữ.

Điều tương tự áp dụng cho bất kỳ nền tảng hoặc dịch vụ nào tạo ra nhúng dành riêng cho ngôn ngữ (ví dụ: chương YouTube, widget đánh giá, biểu mẫu đặt chỗ). Luôn xác minh mỗi nhúng sau khi dịch.
Đảm Bảo Không Có Kiểu Dáng Dành Riêng Ngôn Ngữ Trong Nội Dung Gốc
Nội dung bài đăng được viết cho một ngôn ngữ cụ thể — đặc biệt là ngôn ngữ RTL như tiếng Do Thái hoặc tiếng Ả Rập — có thể bao gồm các thuộc tính hướng và ngôn ngữ nội tuyến được áp dụng trực tiếp cho các phần tử HTML. Khi nội dung đó được dịch sang một ngôn ngữ khác, các kiểu được mã hóa cứng đó bị chuyển tiếp và làm hỏng bố cục.
Các nguyên nhân thường gặp trong nội dung gốc RTL:
<div dir="rtl" lang="he">— buộc hướng RTL và đánh dấu ngôn ngữ là tiếng Do Thái trên toàn bộ phần<p dir="rtl">— buộc căn chỉnh RTL trên các đoạn riêng lẻ<h2 style="text-align: right;">— mã hóa cứng căn chỉnh phải trên tiêu đề
Khi nội dung này được dịch sang tiếng Anh (hoặc bất kỳ ngôn ngữ LTR nào), văn bản trở thành tiếng Anh nhưng bố cục vẫn hiển thị từ phải sang trái — dẫn đến tiêu đề bị lệch, luồng văn bản ngược và định dạng bị hỏng.
Trước khi dịch, hãy kiểm tra nội dung gốc của bạn để tìm các thuộc tính này và xóa chúng. Hãy để giao diện và cài đặt ngôn ngữ/locale của WordPress kiểm soát hướng và căn chỉnh một cách toàn cục, thay vì nhúng nó trong các khối nội dung riêng lẻ.
Xử Lý Các Mẫu Theme Builder Elementor
Nếu bạn đang sử dụng Theme Builder của Elementor để tạo các mẫu toàn cục (header, footer, mẫu bài đơn, mẫu lưu trữ, v.v.), điều quan trọng là phải hiểu cách các mẫu này được xử lý trong quá trình dịch.
Những gì được dịch:
- Menu: Các mục menu được thay thế bằng phiên bản menu đã dịch
- Nội dung động: Nội dung được lấy từ bài đăng/trang được dịch (vì nội dung nguồn được dịch)
Những gì không được dịch:
- Văn bản được mã hóa cứng: Bất kỳ văn bản nào được thêm trực tiếp vào mẫu (không phải từ nội dung động) sẽ KHÔNG được dịch
- Văn bản widget: Văn bản trong các widget như tiêu đề, đoạn văn, nút, v.v. vẫn ở ngôn ngữ gốc
- HTML tùy chỉnh: Bất kỳ HTML tùy chỉnh hoặc khối mã nào vẫn chưa được dịch
Ví dụ:
Mẫu header Elementor này chứa văn bản được mã hóa cứng ("Our Phone Number:"):

Giải pháp:
Thiết kế mẫu chỉ sử dụng:
- Menu (được thay thế tự động)
- Hình ảnh (không phụ thuộc ngôn ngữ)
- Nội dung động (đến từ các bài đăng đã dịch)
- Tránh thêm bất kỳ văn bản, tiêu đề hoặc mô tả được mã hóa cứng nào trực tiếp trong mẫu
Điều này đảm bảo các yếu tố toàn cục của trang web (header, footer, v.v.) hoạt động chính xác trên tất cả các ngôn ngữ.
Cấu Hình Advanced Custom Fields (ACF)
Nếu bạn đang sử dụng Advanced Custom Fields (ACF), bạn cần cấu hình cách xử lý từng trường trong quá trình dịch. Các trường ACF có thể chứa nhiều loại nội dung khác nhau, và mỗi loại có thể cần xử lý khác nhau.
Trong phần Gato Translate, các trường ACF có thể được đặt thành một trong các tùy chọn sau:
-
(Do nothing): Trường được bỏ qua khỏi quá trình dịch hoặc đồng bộ
-
Translate: Nội dung trường được dịch sang ngôn ngữ đích
- Dùng cho: Trường văn bản, trường textarea, trường WYSIWYG và bất kỳ trường nào chứa văn bản có thể dịch
-
Copy: Giá trị trường được sao chép nguyên vẹn sang bản dịch (không dịch)
- Dùng cho: Số, ngày tháng, checkbox, trường đúng/sai và bất kỳ trường nào không nên dịch
-
Translate Reference: Trường tham chiếu đến thực thể khác (bài đăng, trang, người dùng, v.v.) và tham chiếu được cập nhật để trỏ đến phiên bản đã dịch
- Dùng cho: Trường Post Object, Page Link, Relationship, User và Taxonomy

Field Groups có thể áp dụng cho nhiều hơn chỉ bài đăng và trang. Chúng cũng có thể áp dụng cho:
- Danh mục
- Thẻ
- Mục phương tiện
- Người dùng
- Phân loại tùy chỉnh
- Loại bài đăng tùy chỉnh
Hãy chắc chắn cấu hình cài đặt dịch cho các nhóm trường áp dụng cho các thực thể này nữa!
Nếu bạn đang sử dụng Polylang Pro, bạn cũng phải vô hiệu hóa tính năng dịch ACF của nó để cho phép Gato AI Translations xử lý dịch thuật thay thế.
Cấu Hình Meta Box
Nếu bạn đang sử dụng Meta Box (một plugin trường tùy chỉnh phổ biến khác), quy trình cấu hình tương tự như ACF. Các trường Meta Box cũng cần được cấu hình để dịch, sao chép hoặc dịch tham chiếu.
Trong phần Gato Translate, các trường Meta Box có thể được đặt thành một trong các tùy chọn sau:
- (Do nothing): Trường được bỏ qua khỏi quá trình dịch hoặc đồng bộ
- Translate: Nội dung trường được dịch
- Copy: Giá trị trường được sao chép nguyên vẹn
- Translate Reference: Tham chiếu trường được cập nhật để trỏ đến thực thể đã dịch

Bạn cũng phải vô hiệu hóa tính năng dịch Meta Box của Polylang để cho phép Gato AI Translations xử lý dịch thuật thay thế.
Cấu Hình Trường Meta Tùy Chỉnh
Ngoài ACF, Meta Box và các plugin SEO, trang web của bạn có thể có các trường meta tùy chỉnh khác từ:
- Mã tùy chỉnh
- Các plugin khác
- Trường tùy chỉnh WordPress (hộp meta Custom Fields cơ bản)
Các trường meta này cần được cấu hình thủ công trong cài đặt plugin.
Xác định các khóa meta tùy chỉnh:
-
Xuất nội dung của bạn
- Vào Tools > Export trong WordPress
- Xuất tất cả các loại nội dung bạn định dịch
- Điều này tạo ra tệp XML với tất cả nội dung và siêu dữ liệu của bạn
-
Phân tích tệp xuất
- Mở tệp XML trong trình chỉnh sửa văn bản
- Tìm kiếm các thẻ
<wp:postmeta> - Liệt kê tất cả các khóa meta duy nhất
-
Lọc ra các trường đã biết
- Xóa các trường ACF (thường có tiền tố là tên nhóm trường của bạn)
- Xóa các trường Meta Box
- Xóa các trường core WordPress (ví dụ:
_edit_last,_wp_old_slug,_thumbnail_id) - Xóa các trường plugin SEO (nếu sử dụng plugin SEO được hỗ trợ)
-
Xác định những gì còn lại
- Đây là các trường meta tùy chỉnh của bạn
- Xác định mỗi trường chứa gì và cách xử lý nó
Xác định nhu cầu dịch thuật:
Đối với mỗi trường meta tùy chỉnh, hãy xác định:
- Translate: Chứa văn bản có thể dịch (tiêu đề, mô tả, nội dung)
- Copy: Chứa dữ liệu không nên dịch (ID, số, cài đặt)
- Translate Reference: Chứa ID thực thể cần trỏ đến phiên bản đã dịch
Cấu hình trong plugin:
- Vào Cài đặt, trong tab Meta Configuration
- Chọn tùy chọn dịch (Translate/Copy/Translate Reference)
- Thêm tên khóa meta tùy chỉnh, sử dụng khớp chính xác hoặc mẫu regex

Thực Hiện Quá Trình Dịch
Bây giờ khi tất cả các chuẩn bị đã hoàn tất, đã đến lúc thực hiện các bản dịch.
Kiểm Tra Quy Trình Trước Tiên
Trước khi bắt đầu dịch toàn bộ website, điều quan trọng là phải kiểm tra quy trình trên quy mô nhỏ trước. Cách tiếp cận này sẽ tiết kiệm thời gian và ngăn các vấn đề bị nhân rộng trên toàn bộ nội dung của bạn.
Đây là quy trình kiểm tra được khuyến nghị:
-
Bắt đầu với một bài đăng đơn lẻ và một ngôn ngữ
- Chọn một bài đăng đại diện bao gồm nhiều loại nội dung (văn bản, hình ảnh, liên kết, v.v.)
- Dịch nó sang chỉ một ngôn ngữ đích mà bạn hiểu rõ
- Xác thực bản dịch một cách chi tiết: kiểm tra từng khối, từng liên kết, từng hình ảnh và từng mảnh siêu dữ liệu
- Nếu bạn phát hiện vấn đề nào (ví dụ: một khối không được dịch, một liên kết không được thay thế, định dạng bị hỏng), hãy sửa nó trước khi tiến hành. Vấn đề tương tự sẽ được nhân rộng cho tất cả các ngôn ngữ nếu bạn không giải quyết nó ngay bây giờ.
-
Mở rộng sang thêm vài bài đăng
- Khi bản dịch đầu tiên hoàn hảo, hãy dịch thêm 3-5 bài đăng sang cùng ngôn ngữ
- Xác thực từng bài một cách kỹ lưỡng
- Điều này giúp bạn xác định các mẫu hoặc vấn đề tái phát
-
Kiểm tra với các ngôn ngữ bổ sung
- Nếu bạn đang dịch sang nhiều ngôn ngữ, hãy kiểm tra với thêm một ngôn ngữ nữa để đảm bảo mọi thứ hoạt động trên các cặp ngôn ngữ khác nhau
-
Chỉ sau đó tiến hành dịch hàng loạt
- Khi bạn tin tưởng rằng mọi thứ hoạt động chính xác, bạn có thể tiến hành dịch phần còn lại của website
Cách tiếp cận tăng dần này đảm bảo rằng bất kỳ vấn đề cấu hình hoặc nội dung nào đều được phát hiện sớm, khi chúng dễ sửa.
Thứ Tự Dịch
Thứ tự bạn dịch các loại nội dung khác nhau quan trọng, đặc biệt khi nội dung tham chiếu đến nội dung khác.
Dịch nội dung theo thứ tự cụ thể này để tránh các vấn đề tham chiếu:
-
Users
- Mô tả người dùng có thể được bao gồm trong các khối
-
Taxonomies (Tags/Categories)
- Thẻ và danh mục (và phân loại tùy chỉnh) thường được tham chiếu bởi các bài đăng, vì vậy chúng cần tồn tại trước khi bài đăng được dịch
-
Media
- Các mục phương tiện (hình ảnh, video, tài liệu) được tham chiếu bởi bài đăng làm hình ảnh nổi bật hoặc hình ảnh gallery, vì vậy hãy dịch chúng trước bài đăng
-
Custom Post Types
- Dịch bài đăng, trang và các CPT khác
- Quan trọng: Nếu một CPT tham chiếu đến CPT khác, hãy dịch theo thứ tự phụ thuộc ngược
- Ví dụ: Nếu bài đăng sử dụng Reusable Blocks, hãy dịch Reusable Blocks trước, sau đó mới dịch Posts
-
Menus
- Dịch menu cuối cùng, vì chúng tham chiếu đến bài đăng, trang và danh mục
Quyết Định Có Dịch Slug Hay Không
Dịch slug bài đăng và phân loại sang ngôn ngữ đích thường được mong muốn cho các ngôn ngữ hệ chữ Latin (ví dụ: tiếng Pháp, tiếng Đức, tiếng Tây Ban Nha): đường dẫn vẫn có thể đọc được và bạn có thể phản ánh các từ khóa đã bản địa hóa trong URL.
Đối với hệ chữ viết không phải Latin — tiếng Do Thái, tiếng Nhật, tiếng Trung và tương tự — slug được bản địa hóa thường biến thành mớ hỗn độn: phiên âm vụng về, các đoạn rất dài, mã hóa phần trăm hoặc URL khó chia sẻ và so sánh. Nhiều nhóm giữ slug Latin (hoặc ngôn ngữ gốc) cho những ngôn ngữ đó và dựa vào tiêu đề đã dịch cho tên hiển thị, được bản địa hóa.
Coi việc dịch slug là một chính sách cho mỗi ngôn ngữ đích, không phải là công tắc bật/tắt duy nhất cho toàn bộ trang web:
- Chia ngôn ngữ thành các nhóm — ví dụ: "dịch slug" cho các đích Latin so với "không dịch slug" cho tiếng Trung, tiếng Nhật, tiếng Do Thái, v.v.
- Chạy các lô dịch riêng biệt — dịch hàng loạt sang một nhóm với dịch slug được bật, sau đó chạy lô khác sang nhóm kia với dịch slug bị tắt.
- Cấu hình từng lô qua Gato Translate (Custom) (được đề cập trong Cách thực hiện dịch bên dưới): tắt các tùy chọn như Translate custom post slugs? và Translate tag and category slugs? cho các lô mà bạn muốn giữ nguyên slug. Hướng đến một chính sách mỗi lần chạy (ví dụ: một ngôn ngữ hoặc một nhóm ngôn ngữ có cùng quy tắc) để cài đặt khớp với kết quả bạn mong đợi.
Đối với các quy trình có script hoặc lặp lại, WP-CLI hỗ trợ --translate-slugs=true hoặc --translate-slugs=false cho mỗi lần gọi.
Dịch Hai Lượt
Nếu bạn đã bật thay thế liên kết nội bộ hoặc dịch tham chiếu thực thể, bạn có thể cần dịch hai lượt:
Lượt 1: Chỉ dịch thuộc tính
- Cấu hình dịch để loại trừ nội dung và meta, tức là chỉ dịch thuộc tính (tiêu đề/tên và slug)
- Thực hiện dịch

Sau khi thực hiện lượt đầu tiên, các bài đăng đã dịch sẽ được tạo với URL và ID đã dịch, cho phép URL liên kết nội bộ và ID tham chiếu thực thể được phân giải sang ngôn ngữ đích.
Lượt 2: Chỉ dịch nội dung và meta
- Cấu hình dịch để chỉ dịch nội dung và meta (tức là loại trừ thuộc tính)
- Thực hiện dịch lại

Sau khi thực hiện lượt thứ hai, nội dung và meta còn lại sẽ được dịch, và URL liên kết nội bộ và ID tham chiếu thực thể sẽ được thay thế bằng các phiên bản đã dịch.
Cách Thực Hiện Dịch
Tùy chọn 1: Quản trị WordPress (Bulk Actions)
- Vào danh sách nội dung (Posts, Pages, Media, v.v.)
- Chọn các mục bạn muốn dịch
- Chọn Gato Translate từ menu dropdown bulk actions
- Nhấp Apply

Menu được dịch khác: chúng được dịch tự động khi bạn lưu chúng trong trình chỉnh sửa menu.
Thay thế: Gato Translate (Custom)
Để kiểm soát nhiều hơn, sử dụng Gato Translate (Custom) cho phép bạn ghi đè cài đặt cho lần dịch cụ thể đó:

Điều này mở ra trang cài đặt tùy chỉnh nơi bạn có thể cung cấp các tùy chọn cụ thể cho lần dịch đó:

Tùy chọn 2: WP-CLI (cho các lô lớn)
Đối với các website lớn với hàng trăm hoặc hàng nghìn mục, WP-CLI là lựa chọn thay thế tiện lợi.
Bạn có thể chạy dịch theo lô qua dòng lệnh, sau đó bạn có thể thực hiện các bản dịch trong nền, trong khi bạn đang làm việc khác.

Kiểm Tra Nhật Ký Dịch
Khi một bản dịch thất bại (do API ngoại tuyến, hết tín dụng API, v.v.) hoặc tạo ra cảnh báo, bạn sẽ thấy huy hiệu thông báo trong menu plugin:

Xem xét nhật ký dịch để hiểu điều gì đã xảy ra:
- Vào mục menu Logs trong menu plugin
- Xem xét bất kỳ lỗi hoặc cảnh báo nào
- Sửa mọi vấn đề trước khi tiếp tục


Chạy Lại Các Bản Dịch Thất Bại
Mỗi khi một bản dịch thất bại, bạn có thể kích hoạt lại dịch mục đó và ngôn ngữ đó, và tránh tốn tín dụng API cho các bản dịch đã thành công.
Các bản dịch thất bại được đánh dấu bằng nền vàng trên biểu tượng chỉnh sửa Polylang:

Bạn có thể lọc để chỉ hiển thị các mục có bản dịch thất bại:

Để dịch lại chỉ các mục thất bại, sử dụng bulk action Gato Translate (Custom) với tùy chọn Process failed translations only:


Xác Thực Chất Lượng và Tính Hoàn Chỉnh của Bản Dịch
Sau khi dịch nội dung, điều quan trọng là phải xác thực rằng các bản dịch thành công và có chất lượng tốt. Đừng giả định mọi thứ hoạt động hoàn hảo — hãy dành thời gian để xác minh.
Xác thực trong trình chỉnh sửa:
Mở các bài đăng đã dịch trong trình chỉnh sửa WordPress và kiểm tra:
-
Dịch nội dung
- Tất cả văn bản có được dịch không? (không chỉ tiêu đề)
- Tất cả các khối/widget/phần tử có được dịch không?
- Kiểm tra các khối Gutenberg, widget Elementor hoặc phần tử Bricks
- Xác minh định dạng được bảo toàn
-
Trường tùy chỉnh
- Các trường ACF có được dịch/sao chép/tham chiếu chính xác không?
- Các trường Meta Box có được xử lý đúng không?
- Các trường meta tùy chỉnh có được cấu hình chính xác không?
-
Siêu dữ liệu SEO
- Kiểm tra rằng tiêu đề meta được dịch
- Xác minh rằng mô tả meta được dịch
- Xác nhận rằng thẻ Open Graph được dịch
- Xem xét bất kỳ trường plugin SEO nào khác
-
Phương tiện
- Hình ảnh nổi bật có được đặt chính xác không?
- Các hình ảnh trong nội dung có trỏ đến phiên bản đã dịch không (nếu có)?
- Văn bản alt hình ảnh có được dịch không?
-
Liên kết
- Các liên kết nội bộ có trỏ đến phiên bản đã dịch không?
- Các liên kết bên ngoài có được bảo toàn chính xác không?
- Các liên kết danh mục/thẻ có hoạt động không?
Xác thực giao diện người dùng:
Xem các bài đăng đã dịch trong trình duyệt và xác minh:
-
Giao diện trực quan
- Trang có trông chính xác không?
- Bố cục có được bảo toàn không?
- Hình ảnh có hiển thị đúng không?
- Kiểu dáng có chính xác không?
-
Áp dụng mẫu
- Mẫu chính xác có đang được sử dụng không?
- Header/footer có hiển thị chính xác không?
- Thanh bên/widget có hiển thị không?
- Menu có hiển thị phiên bản đã dịch không?
-
Chức năng
- Tất cả các liên kết có hoạt động không?
- Biểu mẫu có hoạt động không?
- Các yếu tố tương tác có hoạt động không?
- Điều hướng có chính xác không?
-
Yếu tố dành riêng ngôn ngữ
- Đối với ngôn ngữ RTL, bố cục có chính xác không?
- Phông chữ có hiển thị đúng không?
- Hướng văn bản có chính xác không?
Chất lượng dịch thuật:
Dịch thuật AI hiện đại thường rất tốt, nhưng bạn vẫn nên xem xét:
-
Ngôn ngữ bạn hiểu
- Đọc qua các bản dịch bằng ngôn ngữ bạn biết
- Kiểm tra độ chính xác, giọng điệu và phong cách
- Xác minh thuật ngữ kỹ thuật chính xác
- Đảm bảo giọng thương hiệu được duy trì
-
Ngôn ngữ bạn không hiểu
- Đối với các ngôn ngữ bạn không nói được, hãy cân nhắc thuê người bản ngữ để xem xét
- Điều này đặc biệt quan trọng cho các ngôn ngữ rất khác với ngôn ngữ của bạn (ví dụ: tiếng Anh sang tiếng Hàn, tiếng Trung, tiếng Ả Rập)
- Ngay cả một đánh giá nhanh cũng có thể phát hiện các vấn đề lớn
- Hiệu đính chuyên nghiệp được khuyến nghị cho nội dung quan trọng
-
Nội dung chuyên ngành
- Nội dung kỹ thuật có thể cần xem xét chuyên gia
- Nội dung pháp lý/y tế nên được xem xét bởi các chuyên gia
- Nội dung marketing có thể cần điều chỉnh giọng thương hiệu
Sửa Chữa Các Khối "Nội Dung Không Hợp Lệ"
Khi dịch các đoạn HTML lớn chứa nhiều thẻ và thuộc tính, các dịch vụ AI đôi khi có thể trả về phản hồi làm hỏng đầu ra của khối.
Ví dụ, khi dịch khối core/paragraph chứa đoạn HTML rất lớn bằng ChatGPT 5.0 mini, như thế này:
<!-- wp:paragraph -->
<p>
Pédagogie:
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><strong><br></strong>Support :
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><br>Coûts :
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><br>Débouchés :
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark>
</p>
<!-- /wp:paragraph -->...phản hồi có thể thêm thẻ <mark> bổ sung không có trong nội dung gốc:
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★
+<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">Khi chỉnh sửa bài đăng trong trình chỉnh sửa WordPress, khối đó có thể không hiển thị được và thay vào đó hiển thị thông báo "Block contains unexpected or invalid content":

Nhấp vào Attempt recovery rất có thể sẽ giải quyết được vấn đề.
Nếu có thể, hãy tránh sử dụng các khối HTML, vì toàn bộ đoạn HTML phải được dịch như một đơn vị duy nhất.
Thay vào đó hãy sử dụng các khối tùy chỉnh với thuộc tính, để các chuỗi có thể dịch đó có thể được xác định, trích xuất và dịch mà không làm hỏng định dạng.
Khắc Phục Lỗi Dữ Liệu Bị Hỏng
Đôi khi bạn có thể gặp lỗi trong quá trình dịch vì nội dung của bạn chứa dữ liệu bị hỏng hoặc lỗi thời. Điều này thường xảy ra khi:
- Một loại bài đăng trước đây hỗ trợ một tính năng (như bài đăng cha) nhưng không còn nữa
- Nội dung tham chiếu đến các thực thể không còn tồn tại
- Sự không nhất quán trong cơ sở dữ liệu từ các lần di chuyển hoặc thay đổi plugin
- Các mối quan hệ mồ côi trong các trường tùy chỉnh
Hiểu về lỗi:
Khi bạn thấy lỗi như thế này trong nhật ký:
2025-10-25T03:40:38+00:00 Error [Query "create-missing-translation-media"] Execution with errors: 🔴 Object with ID '26061' (of type 'GenericCustomPost') cannot be loaded. Please check if referencing this ID is stale data (i.e. still stored on the WordPress database, but pointing to a non-existing object) and, if so, remove it or fix it.Điều này có nghĩa là:
- Nội dung tham chiếu đến thực thể (bài đăng, trang, phương tiện, v.v.) với ID 26061
- Thực thể đó không còn tồn tại trong cơ sở dữ liệu
- Plugin không thể dịch vì không thể phân giải tham chiếu
Cách sửa:
Phương pháp 1: Trình chỉnh sửa WordPress (đơn giản nhất)
- Mở bài đăng/mục đang thất bại khi dịch
- Xác định tham chiếu bị hỏng (kiểm tra trường tùy chỉnh, mối quan hệ, v.v.)
- Xóa hoặc sửa tham chiếu
- Lưu bài đăng
- Thử dịch lại
Phương pháp 2: Dọn dẹp cơ sở dữ liệu
Nếu bạn không thể sửa qua trình chỉnh sửa:
- Xác định trường nào chứa tham chiếu xấu
- Sử dụng công cụ hoặc plugin cơ sở dữ liệu để xóa dữ liệu lỗi thời
- Hãy cẩn thận — luôn sao lưu trước khi thực hiện thay đổi cơ sở dữ liệu
Phương pháp 3: Gato GraphQL (nâng cao)
Vì Gato AI Translations for Polylang sử dụng Gato GraphQL bên dưới, bạn có thể chạy GraphQL queries để sửa dữ liệu bị hỏng theo chương trình:
-
Đầu tiên, truy xuất ID của các mục có vấn đề bằng GraphQL query.
-
Sau đó sửa vấn đề bằng mutation. Ví dụ, để xóa tham chiếu cha từ mục phương tiện:
mutation {
updateMediaItem( input: { id: 26066, customPostID: null } ) {
status
errors {
__typename
...on GenericErrorPayload {
message
}
}
}
}Nếu bạn không thể sửa:
Nếu dữ liệu bị hỏng không thể được dọn dẹp, bạn có thể cần:
- Tạo lại bài đăng/mục từ đầu
- Xuất nội dung, làm sạch và nhập lại
- Liên hệ hỗ trợ để được hỗ trợ với các trường hợp phức tạp
Tích Hợp Các Mục Đã Dịch vào Cấu Hình
Sau khi dịch nội dung, các mục đã dịch mới được tạo có thể cần được tích hợp vào cấu hình website.
Cập Nhật ACF Field Groups
ACF Field Groups có thể được gán cho các bài đăng, trang, danh mục, thẻ hoặc các thực thể khác cụ thể. Khi bạn dịch nội dung, các phiên bản đã dịch cũng có thể cần được gán cho cùng các nhóm trường.
Sau khi dịch, cập nhật các gán ACF Field Group của bạn để bao gồm các phiên bản đã dịch:
- Vào mục menu Field Groups trong menu plugin ACF
- Chỉnh sửa nhóm trường áp dụng cho các thực thể cụ thể
- Trong Location Rules, thêm các phiên bản đã dịch
- Lưu nhóm trường
Ví dụ:
Một nhóm trường áp dụng cho bài đăng cụ thể "Hello World" trong ngôn ngữ gốc:

Sau khi dịch bài đăng, các phiên bản đã dịch ("Hola Mundo" bằng tiếng Tây Ban Nha và "你好世界" bằng tiếng Trung) cũng phải được gán cho cùng nhóm trường:

Xong rồi!
Bạn đã hoàn thành quá trình dịch thuật. Xin chúc mừng! 👏
Kết Luận
Hướng dẫn toàn diện này sẽ giúp bạn dịch website WordPress của mình thành công. Nếu bạn cần thêm thông tin, hãy xem tài liệu Gato AI Translations for Polylang.