Làm website WordPress đa ngôn ngữ với PolyLang [NEW]

Cách đây khá lâu mình có viết bài hướng dẫn sử dụng plugin qTranslate để làm website đa ngôn ngữ, tuy nhiên hiện tại plugin đó cập nhật khá chậm và còn nhiều lỗi nên mình xin hướng dẫn các bạn một plugin miễn phí khác dễ làm sử dụng. hữu dụng hơn và ít lỗi hơn được đặt tên PolyLangđặc biệt là không có hiện tượng tự động tắt khi cập nhật lên phiên bản WordPress mới như qTranslate.

Xin nhắc lại, một trang web đa ngôn ngữ là một chức năng cho phép chúng ta viết nhiều hơn một ngôn ngữ trên trang web (ví dụ: các bài đăng với các phiên bản ngôn ngữ khác nhau do bạn tự viết) chứ không phải là một chức năng tự dịch. nội dung trên trang web.

Ghi chú

  • Trước khi sử dụng, mình khuyến khích bạn nên cài đặt tiếng Việt cho WordPress nếu trong các ngôn ngữ bạn cần sử dụng có tiếng Việt, để có thể hỗ trợ đầy đủ các cụm từ tiếng Việt trong WordPress.
  • Plugin này chỉ hỗ trợ tùy chỉnh đa ngôn ngữ với nội dung bạn nhập. Đối với các cụm từ trong theme và plugin, để dịch bạn phải dịch theo cách thủ công sang nhiều tệp ngôn ngữ khác nhau, hãy xem hướng dẫn tự dịch theme & plugin.

Cài đặt PolyLang

Sau khi cài đặt plugin PolyLang, bạn cần truy cập Cài đặt -> Ngôn ngữ để đặt ngôn ngữ sử dụng. Bây giờ bạn hãy lần lượt thêm các ngôn ngữ mà bạn muốn sử dụng trên website của mình (thêm tất cả, kể cả tiếng Việt nếu bạn đã Việt hóa WordPress). bên trong Thêm ngôn ngữ mớibạn chỉ cần chọn tên ngôn ngữ và nó sẽ thiết lập cho bạn, vì vậy hãy để nguyên như vậy.

Làm website WordPress đa ngôn ngữ với PolyLang [NEW]

Ví dụ: tôi thêm 3 ngôn ngữ như sau:

đa ngôn ngữ

Tiếp theo, bạn chuyển sang Dịch chuỗi để đặt tiêu đề trang web và định dạng ngày giờ ở mỗi ngôn ngữ. Nếu bạn có thêm tiếng Việt, trong phần kiểu định dạng thời gian bạn nên để như d / m / Y biến nó thành tiêu chuẩn Việt Nam.

Tiếp theo bạn chuyển sang tab Cài đặt trong số đó, sẽ có một số tùy chọn như sau:

polylang-settings

  • Ngôn ngữ mặc định: Ngôn ngữ mặc định trên Trang web. Nếu bạn nhìn thấy dòng màu đỏ bên dưới, điều đó có nghĩa là bạn có dữ liệu bài đăng, trang, danh mục và thẻ chưa được đặt thành ngôn ngữ. Đánh dấu vào nó để áp dụng ngôn ngữ mặc định cho chúng.
  • Sửa đổi URL: Sử dụng cấu trúc ngôn ngữ cho từng phiên bản ngôn ngữ trên trang web. Tôi khuyên bạn nên chọn “Ngôn ngữ được đặt từ tên thư mục trong các liên kết cố định khá” để sử dụng http://domain.com/en/name-post.
    • Ẩn thông tin ngôn ngữ URL cho ngôn ngữ mặc định: Ẩn đường dẫn chỉ định ngôn ngữ trong ngôn ngữ mặc định. Ví dụ bạn chọn tiếng Việt thì đường dẫn phiên bản tiếng Việt sẽ không có / vi / trên đó.
    • Xóa / ngôn ngữ / trong các liên kết cố định khá: Loại bỏ / ngôn ngữ / một phần của đường dẫn. (Nên chọn)
    • Giữ / ngôn ngữ / trong liên kết cố định khá: Bảo tồn / ngôn ngữ / trên đường dẫn.
  • Phát hiện ngôn ngữ trình duyệt: Nếu bạn đánh dấu trang, trang web sẽ chuyển về cùng ngôn ngữ với trình duyệt.
  • Phương tiện truyền thông: Nếu được chọn, bạn có thể thêm các phiên bản hình ảnh riêng lẻ cho từng ngôn ngữ.
  • Đồng bộ hóa: Nếu bạn muốn một số bộ phận có cùng giá trị bằng bất kỳ ngôn ngữ nào, hãy chọn nó. Ví dụ, phần Trường tùy chỉnh, nếu bạn đánh dấu chọn, nó sẽ sử dụng giá trị trường tùy chỉnh cho tất cả các phiên bản ngôn ngữ.

Hiển thị nút chuyển đổi ngôn ngữ trên giao diện

Để hiển thị các nút chuyển đổi ngôn ngữ, bạn có thể vào Giao diện -> Tiện ích để thêm một tiện ích con có tên Trình chuyển đổi ngôn ngữtrong tùy chọn, bạn có thể tùy chọn hiển thị tên và cờ của từng ngôn ngữ hoặc kiểu thả xuống tùy thích.

polylang-languagewitcher-widgets

Hoặc nếu bạn muốn chèn trình chuyển đổi ngôn ngữ này theo cách thủ công vào bất kỳ đâu trong chủ đề, bạn có thể sử dụng chức năng sau:

pll_the_languages($args);

Trong đó, $ args là một mảng các tham số như sau (nếu không đặt nó sẽ áp dụng giá trị mặc định)

  • ‘dropdown’ => Hiển thị biểu mẫu thả xuống, đặt giá trị là 1 nó sẽ trở thành biểu mẫu thả xuống (mặc định: 0)
  • ‘show_names’ => Tên ngôn ngữ hiển thị, giá trị là 1 nó sẽ hiển thị tên ngôn ngữ (mặc định: 1)
  • ‘display_names_as’ => Hiển thị tên ngôn ngữ theo “name” hoặc “slug” (mặc định: ‘name’)
  • ‘show_flags’ => Hiển thị cờ nếu giá trị là 1 (mặc định: 0)
  • ‘hide_if_empty’ => Ẩn ngôn ngữ nếu không có bài đăng hoặc trang tương ứng bằng ngôn ngữ đó, giá trị 1 bị ẩn (mặc định: 1)
  • ‘force_home’ => Sử dụng đường dẫn trang chủ nếu giá trị là 1, nếu giá trị là 0, nó sẽ thay đổi trang hiện tại thành ngôn ngữ đã chọn (mặc định: 0)
  • ‘echo’ => echo nếu được đặt thành 1, trả về một chuỗi nếu được đặt thành 0 (mặc định: 1)
  • ‘hide_if_no_translation’ => Ẩn ngôn ngữ nếu ngôn ngữ đó chưa được dịch (mặc định: 0)
  • ‘hide_current’=> Ẩn ngôn ngữ đang chọn nếu giá trị là 1 (mặc định: 0)
  • ‘post_id’ => Nếu giá trị này được đặt, phần ngôn ngữ sẽ trỏ đến một bài đăng hoặc trang được chỉ định bởi ID (mặc định: null)
  • ‘raw’ => Nếu bạn muốn viết lại thủ công CSS cho phần này, hãy đặt giá trị thành 1 (mặc định: 0)

Ví dụ:

pll_the_languages( array(

‘show_flags’ => 0,
‘dropdown’ => 1

));

polylang-languagewitcher

Nếu bạn muốn nó hiển thị kiểu ngang, hãy thêm phần sau vào style.css của chủ đề:


.widget_polylang li {
float: left;
margin-right: 1em;
list-style: none;
}
.widget_polylang li img {
margin: 8px 0px 8px 0;
}

Thiết lập menu đa ngôn ngữ

Cái hay của PolyLang là nó hỗ trợ một vị trí menu có thể được hiển thị riêng biệt cho từng ngôn ngữ khác nhau. Khi bạn vào Giao diện -> Thực đơn thì bạn sẽ thấy vị trí menu hỗ trợ từng ngôn ngữ như sau:

menu polylang

Bây giờ, hãy tạo các menu khác nhau và nhập ngôn ngữ tương ứng và chọn vị trí thích hợp.

polylang-menu02

Thiết lập các bài đăng và trang bằng nhiều ngôn ngữ

Trước khi thao tác, mình cần các bạn hiểu cơ chế tạo một bài viết với nhiều ngôn ngữ, tức là mỗi ngôn ngữ sẽ là một bài viết riêng, nhưng khi thiết lập thì bài viết này sẽ chỉ hiển thị bằng ngôn ngữ tương ứng. Khi bạn đi tới Bài đăng -> Tất cả bài đăng, bạn sẽ thấy một cột ngôn ngữ bổ sung như sau:

polylang-allposts

Trong đó, có 2 biểu tượng mang ý nghĩa này:

polang-icon-đã-kiểm tra – Bài đăng này dành cho ngôn ngữ tương ứng với cột của nó.

polylang-icon-rỗng– Chỉ vào bài tương ứng với ngôn ngữ của nó.

polang-icon-none – Bài này chưa có ngôn ngữ tương ứng, bấm để tạo.

Ví dụ:

polang-hậu-ngôn ngữ

Điều này có nghĩa là bài đăng này là phiên bản Thụy Điển, hãy nhấp vào biểu tượng polylang-icon-rỗng sẽ dẫn đến trang chỉnh sửa bài viết của hai ngôn ngữ còn lại.

Khi tạo bài viết mới, bạn tìm trong cột Languages, sẽ có phần chọn ngôn ngữ và nhập tên bài viết của các ngôn ngữ còn lại. Tốt nhất bạn nên soạn các bài đăng khác nhau cho từng ngôn ngữ, sau đó mở lại từng bài đăng và nhập tên bài đăng của nó với phiên bản ngôn ngữ khác.

polang-addnewpost

Tương tự đối với Pages.

Cài đặt danh mục & thẻ đa ngôn ngữ

Đối với danh mục và thẻ, nó cũng giống như bài đăng, tức là bạn sẽ tạo nhiều danh mục khác nhau và trỏ nó đến các phiên bản ngôn ngữ cho từng danh mục.

polang-category

Như hình trên, nó thực sự là một danh mục nhưng với 3 ngôn ngữ khác nhau. Bạn có thể đặt khi chỉnh sửa danh mục hoặc khi tạo danh mục.

polang-category02

Và khi tạo một bài viết mới, danh sách chuyên mục sẽ hiển thị tương ứng với ngôn ngữ bạn thiết lập cho bài viết chứ không phải tất cả nên bạn đừng lo lắng về việc nó bị rối nhé.

Tương tự với các thẻ.

Đa ngôn ngữ với các chủ đề và plugin

PolyLang không thể hỗ trợ bạn chỉnh sửa các điều khoản trong theme và plugin thành đa ngôn ngữ, nhưng nó có thể tải tệp ngôn ngữ phù hợp với ngôn ngữ đã chọn để hiển thị ra bên ngoài. Điều này có nghĩa là, nếu bạn muốn plugin và chủ đề của mình hiển thị ngôn ngữ thích hợp trên các ngôn ngữ khác nhau, thì chủ đề và plugin của bạn phải có tệp ngôn ngữ .mo trên máy chủ để nó có thể tải. .

Nếu bạn không biết cách dịch chủ đề, vui lòng xem hướng dẫn tự dịch chủ đề và plugin của chúng tôi.

Xin lưu ý rằng để chủ đề của bạn có thể tìm thấy tệp ngôn ngữ tương ứng, hãy tìm nó trong tệp functions.php của chủ đề. load_theme_textdomain xem nó tải tệp ngôn ngữ trong thư mục nào và đặt tệp ngôn ngữ vào thư mục đó.

Phần kết

PolyLang chỉ có vậy thôi nhưng những gì mình hướng dẫn ở trên cũng đủ để bạn làm nên một trang web đa ngôn ngữ khá hoàn chỉnh. Nếu khó thì tôi nghĩ phần khó nhất chỉ là thiết lập theme để hiển thị tốt bằng nhiều ngôn ngữ, nhưng bạn có thể thử tự tìm hiểu và đọc.

Chúc may mắn!

5/5 – (1 phiếu bầu)