WP Manifestindependent plugin directory
manifest / unclassified / wp-content-translator

SaoLabs Content Translator

SaoLabs AI Content Translator là plugin WordPress & WooCommerce chuyên nghiệp, mạnh mẽ, sử dụng trí tuệ nhân tạo (AI) để dịch tự động bài viết, trang, sản phẩm, chuyên mục, thẻ và menu sang nhiều ngôn ngữ mà bảo toàn 100% cấu trúc HTML, Block Gutenberg và Shortcodes.

by SaoLabs · github.com/saolabs/wp-content-translator · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/saolabs/wp-content-translator/archive/refs/heads/main.zip

SaoLabs AI Content Translator

SaoLabs AI Content Translator là plugin WordPress & WooCommerce chuyên nghiệp, mạnh mẽ, sử dụng trí tuệ nhân tạo (AI) để dịch tự động bài viết, trang, sản phẩm, chuyên mục, thẻ và menu sang nhiều ngôn ngữ mà bảo toàn 100% cấu trúc HTML, Block Gutenberg và Shortcodes.


Mục Lục


Tính Năng Nổi Bật

🛡️ Bảo Toàn Tuyệt Đối Cấu Trúc Giao Diện

  • Gutenberg Blocks: Tự động tạo mặt nạ bảo vệ các block comment như ,, các thuộc tính JSON block mà không làm hỏng giao diện bài viết.
  • Shortcodes & Embeds: Không dịch các mã nhúng như [contact-form-7 ...], [woocommerce_checkout], giữ nguyên tham số shortcode.
  • Thẻ HTML An Toàn: Bảo toàn các thẻ format <p>, <strong>, <a>, <img>, <table>, chỉ dịch phần văn bản hiển thị.

🌐 Dịch Hàng Loạt Toàn Diện (Bulk Translation Hub)

Hệ thống Dịch Hàng Loạt được tổ chức thành các tab quản lý chuyên biệt:

  1. Bài viết & Sản phẩm (Posts / Pages / Products): Dịch tiêu đề, slug, tóm tắt (excerpt) và nội dung chính.
  2. Danh mục & Thẻ (Taxonomies): Dịch Chuyên mục bài viết (Categories), Thẻ bài viết (Tags), Danh mục sản phẩm (Product Categories) và Thẻ sản phẩm (Product Tags) của WooCommerce.
  3. Menu Điều Hướng (Nav Menus): Tự động dịch và nhân bản menu sang ngôn ngữ đích, bảo toàn 100% cấu trúc phân cấp cây cha - con (Tree Hierarchy).

🔍 Cơ Chế Visual Diff Highlight So Sánh Trực Quan (v1.1.1)

  • Tích hợp bộ máy Myers Diff tối ưu chạy trên client-side (< 1ms).
  • Tự động phát hiện và highlight trực quan:
    • Bản gốc (cột trái): Từ ngữ bị lược bỏ/thay thế được tô đỏ gạch ngang (<mark class="wpct-diff-del">).
    • Bản dịch (cột phải): Từ ngữ mới được dịch/bổ sung được tô xanh lá nổi bật (<mark class="wpct-diff-ins">).
  • Huy hiệu thống kê: Hiển thị số cụm từ thay đổi (ví dụ: 🔍 3 cụm thay đổi hoặc ✔ Giống 100% bản gốc).
  • Bộ chuyển đổi linh hoạt: Nút bấm chuyển đổi tức thì giữa chế độ xem So Sánh (Highlight)Sửa (Input Area).
  • Cuộn đồng bộ (Synchronized Scrolling): Cuộn 1 bên, bên còn lại tự động cuộn theo tương ứng.

🎯 Chuẩn Hóa SEO Metadata Thuần Túy (100% Plain Text)

  • Tự động phát hiện và tương thích hoàn hảo với Rank Math SEOYoast SEO.
  • Dịch SEO Title, SEO Description, Focus Keyword.
  • Cơ chế kép: Chỉ thị Prompt cưỡng chế Plain Text + Bộ lọc Regex loại bỏ triệt để thẻ HTML và block Gutenberg, bảo đảm metadata SEO luôn là văn bản thuần túy.

🛒 Tương Thích Sâu WooCommerce

  • Tự động phát hiện WooCommerce khi đang kích hoạt.
  • Hỗ trợ dịch Tiêu đề, Mô tả dài, Mô tả ngắn sản phẩm và Ghi chú mua hàng (Purchase Note).
  • Dịch thuộc tính sản phẩm và danh mục sản phẩm WooCommerce.

Nhà Cung Cấp AI Hỗ Trợ

Nhà Cung Cấp Mô Hình Tiêu Biểu Đặc Điểm
OpenAI gpt-4o, gpt-4o-mini, gpt-4-turbo Bản dịch tự nhiên, tốc độ cao, khả năng hiểu ngữ cảnh tốt
Google Gemini gemini-1.5-flash, gemini-1.5-pro, gemini-2.0-flash Hỗ trợ context window lớn, chi phí tối ưu, dịch đa ngữ chuẩn xác
Anthropic Claude claude-3-5-sonnet, claude-3-5-haiku, claude-3-opus Hành văn trau chuốt, thích hợp cho nội dung học thuật, chuyên sâu
DeepSeek deepseek-chat (V3), deepseek-reasoner (R1) Chi phí siêu tiết kiệm, chất lượng dịch thuật ấn tượng
Custom Endpoint Ollama, OpenRouter, Groq, vLLM, Local AI Tương thích chuẩn API OpenAI, tự do kết nối server riêng

Cấu Trúc Thư Mục Dự Án

wp-content-translator/
├── admin/
│   ├── css/
│   │   └── admin.css               # Giao diện quản trị, theme bảng review, visual diff highlight
│   ├── js/
│   │   ├── admin-settings.js       # Xử lý trang cài đặt, kiểm tra API key
│   │   ├── bulk-translator.js      # Bộ điều khiển tiến trình dịch hàng loạt & review modal
│   │   ├── diff-engine.js          # Thuật toán Myers Diff, tokenization & clustering
│   │   └── metabox.js              # Xử lý dịch đơn lẻ trong màn hình sửa bài viết
│   └── views/
│       ├── bulk-page.php           # Giao diện màn hình Dịch hàng loạt (3 tab)
│       ├── metabox-view.php        # Template metabox trong post editor
│       └── settings-page.php       # Giao diện cấu hình API key & nhà cung cấp
├── includes/
│   ├── admin/
│   │   ├── class-admin-menu.php    # Đăng ký menu quản trị & nạp scripts/styles
│   │   ├── class-ajax-handler.php  # Xử lý toàn bộ AJAX endpoints
│   │   ├── class-bulk-translator.php # Controller logic trang Bulk
│   │   ├── class-metabox.php       # Quản lý Metabox đơn bài viết
│   │   └── class-settings.php      # Quản lý options & lưu thiết lập
│   ├── providers/
│   │   ├── interface-provider.php  # Contract cho các AI providers
│   │   ├── class-abstract-provider.php # Base provider, xử lý system prompt & rate limit
│   │   ├── class-claude-provider.php
│   │   ├── class-custom-provider.php
│   │   ├── class-deepseek-provider.php
│   │   ├── class-gemini-provider.php
│   │   └── class-openai-provider.php
│   ├── services/
│   │   ├── class-content-parser.php     # Tokenizer bọc Gutenberg blocks & shortcodes
│   │   ├── class-seo-manager.php        # Trích xuất & lưu SEO meta (Rank Math, Yoast)
│   │   ├── class-translator-engine.php  # Cỗ máy dịch, làm sạch plain text & retry
│   │   └── class-woocommerce-manager.php# Trích xuất & lưu trường WooCommerce
│   ├── class-i18n.php              # Quản lý đa ngôn ngữ & danh sách locale
│   └── class-plugin.php            # Singleton khởi tạo toàn bộ plugin
├── readme.txt                      # Tài liệu chuẩn WordPress Plugin Repository
├── README.md                       # Tài liệu kỹ thuật chi tiết
└── wp-content-translator.php       # File bootstrap chính của plugin

Yêu Cầu Hệ Thống

  • WordPress: Phiên bản 5.8 trở lên (khuyến nghị 6.x).
  • PHP: Phiên bản 7.4 trở lên (khuyến nghị PHP 8.1 / 8.2).
  • Phần mở rộng PHP: cURL, json, mbstring.
  • Plugin tương thích (Tùy chọn):
    • WooCommerce (nếu cần dịch sản phẩm).
    • Rank Math SEO hoặc Yoast SEO (nếu cần dịch metadata SEO).

Hướng Dẫn Cài Đặt

Cách 1: Cài đặt bằng file nén (.zip)

  1. Tải về file wp-content-translator.zip.
  2. Truy cập vào trang quản trị WordPress: Plugins $\rightarrow$ Add New Plugin $\rightarrow$ Upload Plugin.
  3. Chọn file wp-content-translator.zip và bấm Install Now.
  4. Bấm Activate Plugin để kích hoạt.

Cách 2: Cài đặt thủ công qua thư mục

  1. Giải nén thư mục wp-content-translator.
  2. Tải toàn bộ thư mục lên máy chủ vào đường dẫn: /wp-content/plugins/wp-content-translator/.
  3. Vào trang quản trị WordPress: Plugins $\rightarrow$ Installed Plugins và bấm Activate.

Hướng Dẫn Sử Dụng

1. Cấu hình API Key & Mô hình

  1. Trong menu bên trái, truy cập vào: AI Translator $\rightarrow$ Cài đặt.
  2. Chọn nhà cung cấp AI mong muốn (ví dụ: Google Gemini hoặc OpenAI).
  3. Nhập API Key tương ứng.
  4. Chọn mô hình mặc định (ví dụ: gemini-1.5-flash hoặc gpt-4o-mini).
  5. Bấm nút Kiểm tra kết nối để xác nhận API hoạt động tốt $\rightarrow$ Bấm Lưu cài đặt.

2. Dịch đơn lẻ trong màn hình soạn thảo

  1. Mở bài viết, trang hoặc sản phẩm cần dịch.
  2. Tìm hộp công cụ SaoLabs AI Translator ở cột bên phải hoặc phía dưới bài viết.
  3. Chọn ngôn ngữ đích (Target Language).
  4. Chọn chế độ áp dụng:
    • Ghi đè nội dung hiện tại (Overwrite): Thay thế trực tiếp bản gốc.
    • Tạo bản sao mới (Duplicate as New): Giữ nguyên bài gốc, tạo 1 bài nháp mới bằng ngôn ngữ đích.
  5. Tích chọn các trường cần dịch: Tiêu đề, Nội dung, Slug, SEO, WooCommerce...
  6. Bấm Xem trước bản dịch $\rightarrow$ Modal hiển thị so sánh trực quan mở ra $\rightarrow$ Duyệt, chỉnh sửa nếu muốn và bấm Áp dụng.

3. Dịch hàng loạt (Bulk Translation)

  1. Trong menu bên trái, truy cập: AI Translator $\rightarrow$ Dịch hàng loạt.
  2. Chọn tab nội dung:
    • Bài viết & Sản phẩm: Lọc theo loại nội dung, chuyên mục, trạng thái.
    • Danh mục & Thẻ: Lọc theo taxonomy (Categories, Tags, Product Categories...).
    • Menu điều hướng: Chọn menu nguồn để dịch và nhân bản.
  3. Tích chọn các mục cần dịch.
  4. Chọn ngôn ngữ đích và tích chọn Xem trước & duyệt thủ công (Preview Mode) nếu muốn kiểm tra trước khi ghi đè.
  5. Bấm Bắt đầu dịch hàng loạt.
  6. Tiến trình sẽ chạy tuần tự tự động với thanh tiến độ thời gian thực.
  7. Khi hoàn tất, bảng duyệt xuất hiện cho phép:
    • Bấm Xem & Sửa để kiểm tra visual diff từng mục.
    • Bấm Áp dụng đơn lẻ cho từng dòng hoặc Áp dụng tất cả.

4. Cơ chế Visual Diff Highlight & So Sánh

Khi mở popup Xem & Sửa (Chi tiết bản dịch):

  • Hàng nội dung dài sẽ tự động hiển thị ở chế độ So Sánh (Highlight).
  • Các từ bị lược bỏ hoặc dịch từ nguồn được gạch ngang đỏ.
  • Các từ mới dịch sang được phủ nền xanh lá nổi bật.
  • Muốn sửa nhanh? Bấm nút Sửa (icon bút chì), ô nhập liệu xuất hiện ngay lập tức để gõ văn bản tùy biến.
  • Muốn đối soát lại? Bấm lại nút So Sánh, diff được cập nhật theo nội dung vừa gõ!

Cơ Chế Kỹ Thuật Độc Quyền

Bảo toàn Block Gutenberg & Shortcode

Plugin sử dụng kiến trúc regex hai bước:

Raw Content
    │
    ▼
Content_Parser::mask_blocks_and_shortcodes()
    ├── Thay thế <!-- wp:name {...} --> bằng ___WPCT_GB_0___
    └── Thay thế [shortcode ...] bằng ___WPCT_SC_0___
    │
    ▼
Translator_Engine -> AI Provider (Dịch thuật an toàn)
    │
    ▼
Content_Parser::unmask_content()
    └── Khôi phục chính xác 100% token mask về cấu trúc ban đầu
    │
    ▼
Clean, Formatted & Safe Output

Chuẩn hóa SEO Metadata 100% Plain Text

Để khắc phục hiện tượng AI "nhiệt tình thái quá" tự bọc các mô tả SEO vào thẻ <p> hoặc Gutenberg block:

  1. Prompt Isolation: Cung cấp directive tách biệt nghiêm cấm sinh HTML khi cờ is_plain_text = true.
  2. Post-processing Sanitizer:
    public static function clean_plain_text($text) {
     // 1. Xóa toàn bộ comment Gutenberg <!-- wp:... -->
     $text = preg_replace('/<!--[\s\S]*?-->/', '', $text);
     // 2. Bóc tách thẻ HTML thuần túy
     $text = wp_strip_all_tags($text, true);
     // 3. Giải mã HTML entities và loại bỏ khoảng trắng thừa
     $text = html_entity_decode($text, ENT_QUOTES | ENT_HTML5, 'UTF-8');
     return trim($text);
    }

Thuật toán Myers Diff & Change Clustering

Trong admin/js/diff-engine.js:

  1. Tokenization: Tách từ ngữ Unicode ([\w\u00C0-\u024F\u1E00-\u1EFF]+), dấu câu, và khoảng trắng thành mảng token.
  2. Prefix/Suffix Trimming: Cắt bỏ các đoạn đầu và đoạn cuối trùng khớp trước khi tính ma trận diff, giảm độ phức tạp tính toán xuống mức cực tiểu.
  3. Change Clustering: Gom nhóm các thay đổi liền kề cách nhau bởi dấu cách vào cùng một block highlight, tránh tình trạng highlight đứt đoạn từng chữ cái.

Lịch Sử Phiên Bản (Changelog)

1.1.1 (13/09/2026)

  • Sửa lỗi SEO Plain Text: Khắc phục triệt để lỗi tự sinh thẻ HTML <p> và Gutenberg comment `` trong metadata SEO của Rank Math và Yoast SEO.
  • Bổ sung Visual Diff Highlight: Tích hợp bộ so sánh trực quan làm nổi bật cụm từ thay đổi giữa bản gốc (đỏ gạch ngang) và bản dịch (xanh lá).
  • Chuyển đổi View Toggle: Hỗ trợ nút chuyển đổi nhanh giữa chế độ "So Sánh" và "Sửa" cùng tính năng cuộn đồng bộ 2 cột.
  • Tối ưu trải nghiệm: Bỏ hộp thoại confirm phiền toái khi chạy ở chế độ xem trước (Preview mode).

1.1.0 (12/09/2026)

  • Dịch Hàng Loạt Taxonomies: Bổ sung tab dịch hàng loạt cho Categories, Tags, WooCommerce Product Categories & Tags.
  • Dịch Hàng Loạt Menus: Hỗ trợ dịch và nhân bản Menu điều hướng, bảo toàn cấu trúc cây phân cấp.
  • Navigation Tabs: Giao diện tab chuyển đổi trực quan trong màn hình Dịch Hàng Loạt.
  • Chuẩn hóa badge trạng thái: Cập nhật nhãn trạng thái ngắn gọn, rõ ràng (✔ Đã dịch (X mục) / ✔ (Giữ nguyên)).

1.0.0 (10/09/2026)

  • Phiên bản phát hành chính thức đầu tiên.
  • Hỗ trợ OpenAI, Google Gemini, Anthropic Claude, DeepSeek và Custom Endpoints.
  • Tích hợp WooCommerce và SEO (Yoast, Rank Math).

Giấy Phép

Phát hành theo giấy phép GPL-2.0+ (GNU General Public License v2 hoặc mới hơn). Xem chi tiết tại GNU General Public License.


© 2026 SaoLabs. Phát triển và duy trì bởi đội ngũ SaoLabs.