⭐️ Phát hành v2.6 với tiện ích MultilingualPress mới (dành cho các trang web đa ngôn ngữ)
Gato GraphQL v2.6 đã được phát hành, bao gồm nhiều tính năng mới. Xem ghi chú phát hành trên GitHub để biết danh sách đầy đủ các thay đổi.
Dưới đây là những bổ sung quan trọng nhất.
[PRO] Thêm tích hợp với MultilingualPress
Gato GraphQL PRO hiện có tích hợp với plugin MultilingualPress.
Với tiện ích MultilingualPress mới, schema GraphQL được cung cấp các trường để truy xuất dữ liệu đa ngôn ngữ.
Ví dụ, bây giờ bạn có thể chạy query này:
query {
posts {
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
categories {
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
}
tags {
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
}
}
pages {
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
}
customPosts(filter: { customPostTypes: "some-cpt" }) {
__typename
...on GenericCustomPost {
multilingualpressIsTranslatable
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
categories(taxonomy: "some-category") {
__typename
...on GenericCategory {
multilingualpressIsTranslatable
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
}
}
tags(taxonomy: "some-tag") {
__typename
...on GenericTag {
multilingualpressIsTranslatable
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
}
}
}
}
}
fragment MultilingualPressConnectionData {
siteID
entityID
}Với tính năng bổ sung này, chúng ta có thể sử dụng Gato GraphQL để tự động dịch các bài đăng cho plugin MultilingualPress và lưu trữ những bản dịch đó vào các trang web tương ứng trong mạng multisite WordPress.
Xem video demo Automatically translating posts for MultilingualPress (on a WordPress multisite network) để biết cách hoạt động:
[PRO] Thêm trường _strRegexFindMatches
Trường _strRegexFindMatches đã được thêm vào schema GraphQL (thuộc tiện ích PHP Functions via Schema).
Trường này thực thi một biểu thức chính quy để trích xuất tất cả các kết quả khớp từ một chuỗi. Ví dụ, khi chạy query này:
query {
_strRegexFindMatches(
regex: "/https?:\\/\\/([a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\\.[a-zA-Z]{2,})/",
string: "In website https://gatographql.com there is more information"
)
}...sẽ cho kết quả:
{
"data": {
"_strRegexFindMatches": [
[
"https:\/\/gatographql.com"
],
[
"gatographql.com"
]
]
}
}Với tính năng bổ sung này, chúng ta có thể sử dụng Gato GraphQL để trích xuất các chuỗi trống từ tệp Poedit, dịch chúng sang bất kỳ ngôn ngữ nào và tạo tệp Poedit tương ứng cho ngôn ngữ đó.
Xem video demo Translating all strings in a Poedit file for any language để biết cách hoạt động:
Thêm trường siteURL
Đã thêm trường sau vào schema GraphQL, thông qua module "Site":
Root.siteURL
Ví dụ, khi thực thi query sau:
query {
siteURL
}...sẽ cho kết quả:
{
"data": {
"siteURL": "https://mysite.com"
}
}Thêm các trường để truy xuất dữ liệu multisite
Schema GraphQL hiện hỗ trợ truy xuất dữ liệu từ mạng multisite WordPress, được cung cấp thông qua module "Multisite" mới.
Module này thêm các trường sau vào schema GraphQL:
Root.networkSitesRoot.networkSiteCount
Trường networkSites trả về một mảng với tất cả các trang web trong mạng, mỗi trang web thuộc kiểu NetworkSite mới, chứa các trường sau:
idnameurllocalelanguage
Các trường này chỉ được bật khi multisite được bật (tức là khi phương thức is_multisite() trả về true).
Ví dụ, khi thực thi query sau:
query {
networkSiteCount
networkSites {
id
name
url
locale
language
}
}có thể trả về:
{
"data": {
"networkSiteCount": 3,
"networkSites": [
{
"id": 1,
"name": "Site in English",
"url": "https://mymultisite.com",
"locale": "en_US",
"language": "en"
},
{
"id": 2,
"name": "Site in Spanish",
"url": "https://es.mymultisite.com",
"locale": "es_AR",
"language": "es"
},
{
"id": 3,
"name": "Site in French",
"url": "https://fr.mymultisite.com",
"locale": "fr_FR",
"language": "fr"
}
]
}
}Thêm các persisted queries được định sẵn
Các persisted queries sau đã được thêm vào Gato GraphQL:
- [PRO] Translate posts for MultilingualPress (Gutenberg)
- [PRO] Translate posts for MultilingualPress (Classic editor)
- [PRO] Translate Poedit file content
[PRO] Thêm các quy tắc tự động hóa
Các quy tắc tự động hóa sau đã được thêm vào Gato GraphQL PRO:
- MultilingualPress: Khi xuất bản một bài đăng, dịch nó sang tất cả các ngôn ngữ (Gutenberg)
- MultilingualPress: Khi xuất bản một bài đăng, dịch nó sang tất cả các ngôn ngữ (Classic editor)