WPML

Không có gì để dịch trong tích hợp ElasticPress. Plugin khả năng tương thích làm cho ElasticPress tự động trả về kết quả đúng ngôn ngữ; công việc của bạn là cài đặt các thành phần, chạy đồng bộ hóa ban đầu và xác nhận kết quả trông chính xác.

Trước khi bạn bắt đầu

Cài đặt và kích hoạt các plugin này trên cùng một trang web:

Bạn cũng cần một endpoint Elasticsearch: tự lưu trữ hoặc một dịch vụ được quản lý như ElasticPress.io (mở trong tab mới), Elastic Cloud hoặc AWS OpenSearch. Cấu hình ElasticPress với máy chủ Elasticsearch của bạn và xác nhận nó lập chỉ mục thành công trên một trang web đơn ngôn ngữ trước khi thêm lớp WPML.

Cấu hình các ngôn ngữ WPML của bạn trước khi chạy đồng bộ hóa lần đầu.

Cách hoạt động của lập chỉ mục theo từng ngôn ngữ

WPML ElasticPress tạo một chỉ mục Elasticsearch riêng biệt cho mỗi ngôn ngữ trên trang web của bạn. Chỉ mục của mỗi ngôn ngữ chứa:

  • Các bản dịch sang ngôn ngữ đó cho mọi loại bài viết có thể dịch.
  • Các bài viết bằng ngôn ngữ mặc định cho bất kỳ loại bài viết nào được thiết lập để dự phòng về ngôn ngữ mặc định khi không có bản dịch.
  • Bản sao của các bài viết không thể dịch được. Chỉ mục của mọi ngôn ngữ đều bao gồm những bài viết này để chúng có thể xuất hiện trong kết quả tìm kiếm bất kể ngôn ngữ của khách truy cập.

Mọi tài liệu trong một chỉ mục ngôn ngữ đều được phân tích bằng ngôn ngữ đó. Stopword (từ dừng), stemming (tìm từ gốc), từ viết tắt, cách xử lý số nhiều và thì đều mang tính đặc thù của ngôn ngữ. Đây là điều làm cho tìm kiếm tiếng Pháp khớp với các từ gốc tiếng Pháp và tìm kiếm tiếng Nhật khớp với hình thái học tiếng Nhật; nếu không có phân tích theo từng ngôn ngữ, công cụ tìm kiếm sẽ áp dụng các quy tắc của một ngôn ngữ cho văn bản của mọi ngôn ngữ khác.

Đối với tìm kiếm của mỗi khách truy cập, WPML ElasticPress định tuyến truy vấn đến chỉ mục ngôn ngữ phù hợp. Nhóm kết quả đã được lọc theo đúng ngôn ngữ trước khi quá trình xếp hạng mức độ liên quan bắt đầu.

Chạy đồng bộ hóa ban đầu

Với bốn plugin đang hoạt động và một endpoint Elasticsearch đã được cấu hình trong ElasticPress, hãy chạy đồng bộ hóa ban đầu:

  1. Truy cập ElasticPressSync trong trang quản trị WordPress.
  2. Nhấp vào Start Sync.

WPML ElasticPress kích hoạt một quá trình đồng bộ hóa cho mỗi ngôn ngữ và xây dựng các chỉ mục theo từng ngôn ngữ lần lượt. Trên một trang web lớn, quá trình này có thể mất vài giờ; trang sẽ báo cáo tiến trình khi đồng bộ hóa chạy.

Nếu bạn đang cập nhật từ WPML ElasticPress 1.0 lên 2.0 hoặc mới hơn, hãy lập chỉ mục lại. Định dạng chỉ mục đã thay đổi khi phiên bản 2.0 giới thiệu các chỉ mục theo từng ngôn ngữ.

Sau đồng bộ hóa ban đầu, các cập nhật nội dung sẽ tự động chuyển vào đúng chỉ mục. Bất cứ khi nào bạn tạo, sửa đổi hoặc xóa một bài viết, WPML ElasticPress sẽ cập nhật chỉ mục ngôn ngữ tương ứng trong nền tảng dựa trên ngôn ngữ của bài viết đó hoặc cài đặt bản dịch cho loại bài viết của nó.

Lập chỉ mục các ngôn ngữ cụ thể với WP-CLI

Đối với các trang web lớn, công việc theo lịch trình, tập lệnh triển khai hoặc bất kỳ quy trình làm việc nào mà giao diện người dùng quản trị không phải là một tùy chọn, WPML ElasticPress cung cấp một lệnh WP-CLI (wp wpml_elasticpress sync) bao bọc đồng bộ hóa CLI của riêng ElasticPress và thêm cờ --post-lang để chọn ngôn ngữ.

Chạy đồng bộ hóa ban đầu chỉ cho các bài viết tiếng Anh:

wp wpml_elasticpress sync --setup --post-type=post --post-lang=en

Cờ --setup xóa các chỉ mục hiện có trước khi xây dựng lại. Sau lệnh này, tìm kiếm tiếng Anh trả về kết quả bằng tiếng Anh; tìm kiếm từ các ngôn ngữ khác không trả về gì vì chỉ mục của chúng chưa được xây dựng.

Thêm ngôn ngữ thứ hai mà không xóa các chỉ mục hiện có:

wp wpml_elasticpress sync --post-type=post --post-lang=fr

Lặp lại cho mỗi ngôn ngữ bổ sung. Bỏ qua --setup để các ngôn ngữ đã được lập chỉ mục trước đó giữ nguyên.

Đồng bộ hóa nhiều ngôn ngữ trong một lần chạy:

wp wpml_elasticpress sync --post-lang=en,es

Điều chỉnh kích thước lô nếu bộ nhớ eo hẹp:

wp wpml_elasticpress sync --per-page=200

Kích thước lô mặc định là 350; việc giảm nó sẽ giúp ích trên các máy chủ bị hạn chế về bộ nhớ.

Xây dựng lại mọi chỉ mục từ đầu:

wp wpml_elasticpress sync --setup

Lệnh này xóa mọi chỉ mục ngôn ngữ và xây dựng lại tất cả. Sử dụng lệnh này khi có điều gì đó không ổn trên tất cả các ngôn ngữ hoặc sau một đợt nâng cấp lớn.

Cách kiểm tra xem tìm kiếm ElasticPress có trả về nội dung đúng ngôn ngữ hay không

Quá trình đồng bộ hóa kỹ thuật rất đơn giản; giá trị của trang này nằm ở việc xác minh. Hãy thực hiện các bước kiểm tra này sau khi đồng bộ hóa ban đầu hoàn tất và lặp lại bất cứ khi nào bạn thay đổi nội dung hoặc cài đặt ảnh hưởng đến hành vi tìm kiếm.

1. Tìm kiếm trả về kết quả cùng ngôn ngữ từ mỗi ngôn ngữ

Từ giao diện người dùng, lần lượt chuyển bộ chuyển đổi ngôn ngữ sang từng ngôn ngữ và tìm kiếm một thuật ngữ mà bạn biết là tồn tại ở dạng đã dịch.

  • Đạt. Trang kết quả chỉ liệt kê các bài viết bằng ngôn ngữ đó.
  • Không đạt. Kết quả từ các ngôn ngữ khác xuất hiện cùng với các kết quả khớp cùng ngôn ngữ. Quá trình đồng bộ hóa có thể chưa hoàn tất đối với ngôn ngữ đó – hãy kiểm tra ElasticPressSync để xem có lỗi không và chạy lại lệnh WP-CLI dành riêng cho ngôn ngữ đó.

2. Nội dung chỉ có ngôn ngữ nguồn trả về không kết quả trong các ngôn ngữ khác

Chọn một bài viết chỉ tồn tại bằng ngôn ngữ mặc định của bạn – không có bản dịch bằng các ngôn ngữ khác trên trang web. Từ phiên bản trang web không phải ngôn ngữ mặc định, hãy tìm kiếm một cụm từ trong bài viết đó.

  • Đạt. Không có kết quả nào. Bài viết không được dịch sang ngôn ngữ của khách truy cập, do đó nó không nên xuất hiện.
  • Không đạt. Bài viết xuất hiện trong kết quả. Điều này thường có nghĩa là loại bài viết được thiết lập để dự phòng về ngôn ngữ mặc định trong WPMLCài đặtDịch loại bài viết. Đó là một cài đặt cấp độ WPML, không phải là lỗi. Nếu bạn không có ý định dự phòng, hãy thay đổi cài đặt.

Mở một bài viết đã dịch trên giao diện người dùng. Widget Related Posts chỉ nên liệt kê các bài viết khác bằng cùng một ngôn ngữ.

  • Đạt. Mọi bài viết liên quan đều liên kết đến nội dung có cùng ngôn ngữ với trang hiện tại.
  • Không đạt. Các bài viết liên quan từ các ngôn ngữ khác xuất hiện. Xác nhận rằng tính năng Related Posts đã được bật trong ElasticPressFeatures và chỉ mục ngôn ngữ cho ngôn ngữ hiện tại đã hoàn tất đồng bộ hóa.

Nếu tính năng Documents được bật trong ElasticPress: tải một tệp PDF đã dịch lên phiên bản ngôn ngữ nguồn của một bài viết, sau đó tải một tệp PDF bằng ngôn ngữ khác lên bản dịch của nó. Tìm kiếm một cụm từ chỉ xuất hiện trong tệp PDF đã dịch.

  • Đạt. Tìm kiếm từ giao diện người dùng có ngôn ngữ khớp trả về đúng tệp PDF; tìm kiếm bằng ngôn ngữ nguồn không trả về tệp PDF đã dịch và ngược lại.
  • Không đạt. Các tệp PDF từ các ngôn ngữ khác xuất hiện trong kết quả. Đồng bộ hóa lại sau khi bật tính năng Documents. Lệnh wp wpml_elasticpress sync --setup xây dựng lại mọi chỉ mục với lập chỉ mục Document.

5. Các tìm kiếm trong trang quản trị (Terms, Comments, Users) lọc theo ngôn ngữ

Nếu bạn đã bật các tính năng Terms, Comments hoặc Users trong ElasticPressFeatures, hãy tìm kiếm chúng từ trang quản trị WordPress và xác nhận kết quả lọc theo ngôn ngữ quản trị hiện tại. Điều này ảnh hưởng đến những người dùng tìm kiếm trong trang quản trị của một trang web đa ngôn ngữ.

6. Đồng bộ hóa multisite không xóa các chỉ mục của trang web anh em

Nếu bạn chạy WPML và ElasticPress trên một mạng multisite, hãy chạy đồng bộ hóa chỉ mục trên một trang web và sau đó kiểm tra các trang web khác trong mạng. Chỉ mục của chúng vẫn phải còn nguyên vẹn.

  • Đạt. Việc lập chỉ mục một trang web không làm ảnh hưởng đến chỉ mục của các trang web anh em.
  • Không đạt. Các chỉ mục anh em trống rỗng. Dừng lại, chạy lại quá trình đồng bộ hóa trên các trang web bị ảnh hưởng và báo cáo sự cố cho bộ phận hỗ trợ WPML để họ có thể xác nhận xem bạn đang gặp phải một sự cố multisite trong quá khứ hay một sự cố mới.

Nếu mọi kiểm tra ở trên đều đạt, tìm kiếm đa ngôn ngữ của bạn đang hoạt động như thiết kế.

Các tính năng ElasticPress được hỗ trợ

WPML ElasticPress hiện làm cho các tính năng ElasticPress sau đây nhận biết được ngôn ngữ:

  • Post Search. Tìm kiếm trên giao diện người dùng qua các bài viết, trang và các loại nội dung tùy chỉnh.
  • Related Posts. Widget bài viết liên quan lọc theo các kết quả khớp cùng ngôn ngữ.
  • Documents. Tìm kiếm bên trong các tệp PDF, .docx, .pptx và các loại tệp đính kèm khác.
  • Terms, Comments và Users. Các tìm kiếm trong trang quản trị.

Các tính năng tìm kiếm dành riêng cho WooCommerce của ElasticPress (khám phá sản phẩm, lọc sản phẩm theo khía cạnh, tìm kiếm sản phẩm tức thì trên các danh mục) hiện không hỗ trợ đa ngôn ngữ. Phạm vi hỗ trợ đa ngôn ngữ cho tìm kiếm WooCommerce đang nằm trong lộ trình của WPML; cho đến khi tính năng này ra mắt, tìm kiếm WooCommerce trên các trang web đa ngôn ngữ sẽ đi qua quy trình xử lý tiêu chuẩn của WooCommerce Multilingual, chứ không phải qua ElasticPress.

Các cạm bẫy phổ biến

  • Đồng bộ hóa không chạy sau khi bật một tính năng ElasticPress mới. Việc bật Documents hoặc Related Posts trong ElasticPressFeatures không hồi tố thêm các tài liệu đó vào chỉ mục. Hãy đồng bộ hóa lại sau khi chuyển đổi các tính năng.
  • Đồng bộ hóa WP-CLI không có --setup sau một thay đổi lớn. Nếu bạn đã thay đổi những loại bài viết nào có thể dịch, những tính năng nào được bật hoặc đã nâng cấp WPML ElasticPress qua ranh giới của một phiên bản lớn, hãy chạy wp wpml_elasticpress sync --setup để xây dựng lại mọi chỉ mục từ đầu.
  • Mẫu kết quả tìm kiếm của giao diện bỏ qua các bộ lọc của ElasticPress. Một số giao diện tùy chỉnh triển khai truy vấn kết quả tìm kiếm của riêng chúng mà không đi qua ElasticPress. Nếu kết quả chỉ sai trên giao diện người dùng (và vượt qua các kiểm tra trong trang quản trị), mẫu giao diện có thể cần được cập nhật.
  • Tìm kiếm sản phẩm WooCommerce trả về kết quả trộn lẫn ngôn ngữ. Đây không phải là sự cố đồng bộ hóa. Đó là khoảng trống phạm vi hỗ trợ WooCommerce ở trên. Hiện tại, hãy định tuyến tìm kiếm sản phẩm thông qua quy trình xử lý tiêu chuẩn của WooCommerce Multilingual.
  • Văn bản của Documents không xuất hiện trong tìm kiếm. Xác nhận rằng tính năng Documents đã được bật trong ElasticPressFeatures và quá trình đồng bộ hóa đã chạy kể từ khi bật nó.

Viết bởiAmir

Được viết bởiAmir