Polylang Pro là một Plugin của WordPress giúp chúng ta có thể làm một website đa ngôn ngữ trở nên dễ dàng hơn. Polylang là một plugin miễn phí, hiện tại mình cũng đang sử dụng plugin này và theo cá nhân mình thì nó khá tốt, gọn nhẹ, dễ sử dụng.

Lợi ích của website đa ngôn ngữ

Nếu bạn biết một ngôn ngữ thứ hai hoặc nhiều hơn, tạo ra một website đa ngôn ngữ giúp bạn có thể cung cấp nội dung của bạn trong các ngôn ngữ đó. Mỗi trang của bạn sẽ có những phiên bản trong các ngôn ngữ khác nhau, từ đó có thể phục vụ một cách tốt hơn cho các đối tượng khác nhau và phạm vi lớn hơn.

Với mỗi người dùng tùy theo khu vực, ngôn ngữ mà họ sẽ tìm kiếm với các từ khóa trong các ngôn ngữ hoặc sở thích khác nhau. Và các công cụ tìm kiếm như Google sẽ ưu tiên các trang có nội dung phù hợp với đối tượng tìm kiếm đó. Ví dụ chỉ với phiên bản với nội dung tiếng Việt sẽ không phù hợp với một đối tượng tìm kiếm với truy vấn bằng tiếng Pháp mặc dù nội dung của nó khi dịch ra tiếng Pháp sẽ rất phù hợp. Vì vậy, có thêm một nội dung ở ngôn ngữ khác cũng giúp website của bạn nhận được nhiều lưu lượng hơn từ các công cụ tìm kiếm.

Polylang phiên bản Pro

Polylang có phiên bản miễn phí và các bản trả phí với nhiều tính năng bổ sung, phiên bản Pro, Business Pack và Polylang for WooCommerce (phù hợp để tạo ra website bán hàng đa ngôn ngữ). Hiện tại mình chỉ sử dụng qua phiên bản Pro, dưới đây mình sẽ đưa ra một số hỗ trợ bổ sung trong phiên bản này so với bản miễn phí.

Như trên hình thì phiên bản Polylang Pro hỗ trợ thêm rất nhiều tính năng so với bản miễn phí. Với một người dùng bình thường như mình thì mình thấy có 2 tính năng mà mình thấy rất hữu ích:

  • Share slugs: sử dụng chung đường dẫn tĩnh (permalink) cho các ngôn ngữ. Có nghĩa là một bài viết, trang, danh mục có thể có 1 slug giống nhau. Khi đó URL của các phiên bản chỉ khác nhau ở mã ngôn ngữ (language code). Chẳng hạn: https://localhost/en/permalink/https://localhost/vi/permalink/ thay vì permalink-a, permalink-b
  • Widget: phiên bản miễn phí không hỗ trợ tùy chọn hiển thị widget cho một ngôn ngữ. Trích từ mục Widget của Polylang: Vì các widget WordPress 5.8 hiện được quản lý trong trình chỉnh sửa khối widget (tab Giao diện => tab phụ Widget). Với Polylang Pro, bộ chọn ngôn ngữ cũng có sẵn trong chế độ xem nhúng khối. Đối với các tiện ích kế thừa, bạn có thể chọn hiển thị chúng cho tất cả các ngôn ngữ (cài đặt mặc định) hoặc chỉ một ngôn ngữ.

Nếu bạn không có điều kiện mua phiên bản Pro với mức giá chính thức từ trang chủ thì có thể sử dụng chung với mình. Liên hệ với mình để có mức giá rẻ hơn rất rất nhiều nhé.

Hướng dẫn cài đặt và sử dụng Polylang

Trước tiên bạn cần phải cài đặt Polylang cho WordPress như cách mà bạn cài đặt các plugin khác. Kích hoạt plugin và bắt đầu quá trình Setup, bạn có thể thiết lập sau trong WP-Admin -> Languages -> Setup cũng được.

Chọn Ngôn ngữ mặc định (Default language) cho website của bạn ở đây. Để website đa ngôn ngữ hoạt động đúng cách, bạn phải cung cấp phiên bản nội dung trong ngôn ngữ mặc định mà bạn đã chọn. Khi truy cập vào trang chủ, nếu không có mã ngôn ngữ được chỉ định trên URL, Polylang sẽ chuyển đến trang sử dụng ngôn ngữ mặc định, trừ khi mô-đun Detect browser language (Nhận diện ngôn ngữ trình duyệt) được bật và website của bạn có cung cấp một phiên bản cùng ngôn ngữ với trình duyệt.

URL modifications

Quyết định xem các URL của bạn sẽ trông như thế nào. Thiết lập tùy chọn này trong WP-Admin -> Languages -> Settings.

Polylang URL modifications

Dùng URL riêng cho từng phiên bản ngôn ngữ

Lưu ý đến tùy chọn The language is set from content, URL của bài đăng, trang, danh mục và thẻ sẽ không được sửa đổi. Hai điều dưới đây cho thấy sử dụng dạng này sẽ không tốt cho SEO.

  • Bạn nên dùng URL riêng cho mỗi phiên bản ngôn ngữ của một trang thay vì dùng cookie hoặc các chế độ cài đặt của trình duyệt để điều chỉnh ngôn ngữ cho nội dung trên trang.
  • Nếu bạn muốn linh động thay đổi nội dung hoặc chuyển hướng người dùng dựa trên chế độ cài đặt ngôn ngữ, hãy lưu ý rằng có thể Google sẽ không tìm và thu thập dữ liệu được tất cả phiên bản. Điều này là do trình thu thập dữ liệu Googlebot thường bắt nguồn từ Hoa Kỳ. Ngoài ra, trình thu thập dữ liệu này còn gửi các yêu cầu HTTP mà không thiết lập Accept-Language trong tiêu đề của yêu cầu.

Các công cụ tìm kiếm cũng có thể dẫn người truy cập đến một website được hiển thị trong một ngôn ngữ khác với ngôn ngữ mà các công cụ tìm kiếm này thu thập được. Ngoài ra còn rất nhiều nhược điểm khác nữa, cá nhân mình thấy không nên sử dụng tùy dạng The language is set from content này.

Ngoài dạng trên thì 3 dạng còn lại đều có ưu điểm và nhược điểm, nên lựa chọn dựa trên điều kiện và quy mô trang web của bạn. Cá nhân mình sử dụng dạng tên thư mục con hơn là tên miền con (subdomain) hoặc tên miền khác vì nó dễ triển khai, tương thích cao.

Language switcher

Language switcher là một trình chuyển đổi ngôn ngữ, giúp người dùng chuyển đổi sang một phiên bản ngôn ngữ khác mà họ muốn. Mục đích của trình chuyển đổi ngôn ngữ là tạo liên kết đến bản dịch của trang hiện tại của bạn. Theo mặc định, nếu trang hiện tại chưa được dịch, trình chuyển đổi ngôn ngữ sẽ liên kết tới trang chủ bằng ngôn ngữ tương ứng.

Language switcher có thể được chèn bằng nhiều cách, có 3 cách đơn giản nhất là: chèn vào Menu, Widget hoặc sử dụng hàm PHP pll_the_languages() để chèn vào bất cứ đâu bạn muốn trong các tệp tin PHP của theme.

Menu

Nếu bạn không thấy mục Language switcher trong Menu, hãy bật tùy chọn này trong mục Tùy chọn hiển thị.

Polylang Language switcher

Widget

Phiên bản Polylang miễn phí chỉ hỗ trợ chèn Language switcher thông qua Widget cũ (Legacy Widget), phiên bản Pro có hỗ trợ cho Block Widget.

Thêm Language switcher vào Widget

Bản dịch chuỗi

Polylang hỗ trợ dịch một số chuỗi trong WordPress bao gồm các chuỗi của các plugin và theme. Truy cập WP-Admin -> Languages -> Strings translations sau đó bắt đầu dịch các chuỗi.

Bạn cũng có thể thêm các chuỗi của riêng mình bằng cách sử dụng hàm pll_register_string, các chuỗi được đăng ký sẽ xuất hiện trong Strings translations và có thể được dịch sang các ngôn ngữ khác. Ví dụ chèn đoạn mã sau vào tệp functions.php của theme:

function your_prefix_after_setup_theme() {
    if ( function_exists( 'pll_register_string' ) ) {
	pll_register_string('categories', 'Categories', 'YourThemeName', true);
	pll_register_string('recent_posts', 'Latest Posts', 'YourThemeName', true);
	pll_register_string('recent_comments', 'Recent Comments', 'YourThemeName', true);
    }
}
add_action( 'after_setup_theme', 'your_prefix_after_setup_theme' );

Sau đó in ra bằng cách sử dụng hàm pll__, ví dụ:

pll_e("Categories");

Nếu bạn muốn hiển thị bản dịch trong Widget, có thể sử dụng shortcode (sử dụng được cho cả phiên bản miễn phí):

function pll_widget_title_func( $atts ) {
	return pll__($atts['string']);
}
add_shortcode( 'pll_widget_title', 'pll_widget_title_func' );

Chẳng hạn chèn một đoạn shortcode vào Heading phía trên Categories List:

[pll_widget_title string="Categories"]

Trên đây là một số thiết lập Polylang cơ bản để tạo ra một website đa ngôn ngữ dựa trên nền tảng WordPress, quá dễ để làm đúng không. Lưu ý là các bài viết và danh mục trong các phiên bản ngôn ngữ khác nhau phải được neo với nhau nhé.

Nếu plugin này không đáp ứng được nhu cầu của bạn thì bạn có thể thử plugin WPML, tuy hơi nặng nhưng rất nhiều tính năng. Chúc bạn thành công.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *