WPML

WPML lưu trữ dữ liệu ngôn ngữ, bản dịch và chuỗi văn bản trong các bảng cơ sở dữ liệu tùy chỉnh. Hãy tìm hiểu cách các bảng này kết nối với các bảng và nội dung của WordPress.

Mô hình cơ sở dữ liệu của WPML

Sơ đồ sau đây cho thấy mô hình của các bảng mà WPML sử dụng:

Sơ đồ các bảng cơ sở dữ liệu của WPML

Bảng ngôn ngữ và bản dịch

Bảng chứa thông tin ngôn ngữ và bản dịch được gọi là icl_translations.

  • Mỗi phần tử nội dung trang web được cấu hình là có thể dịch (bài viết, trang, thẻ, chuyên mục, loại nội dung tùy chỉnh và phân loại tùy chỉnh) đều có một mục nhập trong bảng này. Lưu ý: Bình luận không thể dịch được nhưng chúng có một bản ghi trong icl_translations vì chúng được gán thông tin ngôn ngữ.
  • Mục nhập chỉ định ngôn ngữ của mục và nhóm bản dịch (loại phần tử) mà nó thuộc về.
  • Các mục nhập của cùng một cụm bản dịch chia sẻ cùng một giá trị trong các cột element_type và trid.
  • Mục nhập không có ngôn ngữ nguồn (NULL) trong cùng một cụm là mục nhập gốc.

Bảng này có các cột sau:

  • translation_id – số sê-ri
  • element_type – loại của phần tử. Giá trị này được giải thích và truy xuất trong hook wpml_element_type.
  • element_id – ID của mục (post_id cho các loại bài viết, term_taxonomy_id cho các thuật ngữ phân loại)
  • trid – ID của nhóm bản dịch
  • language_code – mã ngôn ngữ của mục
  • source_language_code – nếu được dịch, đây là ngôn ngữ của mục gốc

Ví dụ: nếu chúng ta có một bài viết tiếng Anh với ID=3, được dịch sang tiếng Tây Ban Nha và bản dịch tiếng Tây Ban Nha có ID=7, bảng icl_translations sẽ trông như thế này:

translation_idelement_typeelement_idtridlanguage_codesource_language_code
1post_post32enNULL
2post_post72esen
* Vì hai mục nhập có cùng giá trị trid cho trid, nên chúng là bản dịch của nhau. Bản thân giá trị này không quan trọng.
Bảng icl_translations của WPML và các bảng liên kết

Trên các trang web cũ hơn (được tạo trước WPML 4.8), bạn có thể chạy quy trình một lần để tối ưu hóa các bảng bản dịch.

Bảng cờ quốc gia

WPML đi kèm với một bộ sưu tập lớn các lá cờ quốc gia. Hãy lưu ý rằng việc liên kết ngôn ngữ với quốc gia có thể gây ra vấn đề. Nhiều ngôn ngữ được sử dụng (đôi khi theo những cách khác nhau) ở các quốc gia khác nhau. Tuy nhiên, cờ quốc gia vẫn là một dấu hiệu trực quan hữu ích và giúp khách truy cập dễ dàng nhận ra ngôn ngữ của họ.

Cờ quốc gia của WPML được lưu trữ trong thư mục res/flags và bảng icl_flags cho biết cờ nào sẽ được trả về cho từng quốc gia. Các cột của bảng icl_flags là:

  • id – số sê-ri
  • lang_code – mã ngôn ngữ
  • flag – tên của tệp cờ
  • from_template – “0”: lấy cờ từ thư mục res/flags của WPML, “1”: lấy cờ từ thư mục giao diện

Nếu bạn muốn sử dụng một lá cờ khác, bạn có thể tải lên tệp cờ tùy chỉnh bằng cách truy cập WPMLNgôn ngữ và nhấp vào Chỉnh sửa ngôn ngữ.

Thêm cờ tùy chỉnh
Thêm cờ tùy chỉnh

Bạn có thể sử dụng chính trang Chỉnh sửa ngôn ngữ này để thêm một ngôn ngữ tùy chỉnh.

Bảng dịch chuỗi

Hầu hết các trang web WordPress đều bao gồm một số chuỗi không thuộc về bất kỳ mục nào (bài viết, trang, thẻ, chuyên mục) nhưng vẫn cần được dịch – ví dụ: khẩu hiệu của blog.

WPML bao gồm một cơ chế gọi là Dịch chuỗi, để xử lý các chuỗi này.

Các chuỗi được lưu giữ trong bảng icl_strings với các cột sau:

  • id – số sê-ri
  • language – ngôn ngữ
  • context – ngữ cảnh của chuỗi (chỉ ra chuỗi thuộc về cái gì)
  • name – tên của chuỗi
  • value – giá trị của chuỗi (nội dung của nó)
  • string_package_id - ID của gói mà chuỗi thuộc về
  • type – loại trình soạn thảo được sử dụng khi chỉnh sửa chuỗi thông qua trình biên tập dịch thuật ( LINE, AREA hoặc VISUAL )
  • title – tiêu đề của chuỗi để hiển thị trong trình biên tập dịch thuật
  • status – trạng thái bản dịch cho biết chuỗi đã được dịch đầy đủ sang tất cả các ngôn ngữ hay chưa
  • gettext_context – ngữ cảnh được đặt trong hàm gettext, ví dụ _x
  • domain_name_context_md5 – khóa duy nhất để cải thiện hiệu suất tra cứu

Các bản dịch của một chuỗi được lưu giữ trong bảng icl_string_translations:

  • id – số sê-ri
  • string_id – ID (số sê-ri) của chuỗi đang được dịch
  • language – ngôn ngữ của bản dịch
  • status – trạng thái của bản dịch (hoàn thành / chưa hoàn thành)
  • value – bản thân bản dịch
  • translator_id – id của người dịch
  • translation_service – dịch vụ dịch thuật được sử dụng để dịch chuỗi. Có thể để trống, là dịch vụ cục bộ hoặc dịch vụ từ xa
  • batch_id – ID của lô khi một chuỗi được dịch bởi một dịch vụ dịch thuật
  • translation_date – ngày dịch
Các bảng icl_strings và icl_string_translations của WPML

Tất cả các bảng của WPML

Dưới đây là danh sách đầy đủ của tất cả các bảng mà WPML sử dụng:

wp_icl_background_task
wp_icl_content_status
wp_icl_core_status
wp_icl_flags
wp_icl_languages
wp_icl_languages_translations
wp_icl_locale_map
wp_icl_message_status
wp_icl_mo_files_domains
wp_icl_node
wp_icl_reminders
wp_icl_strings
wp_icl_string_batches
wp_icl_string_packages
wp_icl_string_positions
wp_icl_string_status
wp_icl_string_translations
wp_icl_translate
wp_icl_translate_job
wp_icl_translations
wp_icl_translation_batches
wp_icl_translation_downloads
wp_icl_translation_status

Thêm trong phần này

Được viết bởi Amir · Cập nhật lần cuối vào 28 tháng 8 năm 2025