Thêm đa ngôn ngữ cho WordPress

by admincp
37 Xem

WordPress được sử dụng để tạo nhiều thể loại trang web khác nhau. Khi xây dựng một giao diện WordPress, bạn nên xây dựng nó để đáp ứng số lượng khán giả lớn nhất có thể. Mục tiêu này muốn nói rằng chủ đề của bạn phải sẵn sàng bằng các ngôn ngữ khác nhau. WordPress cung cấp API đơn giản mà bạn có thể sử dụng trong thiết kế giao diện để quốc tế hóa website. Trong bài viết này, bạn sẽ học cách thêm đa ngôn ngữ cho WordPress.

Xem thêm Tạo đa ngôn ngữ cho theme và plugin wordpress.

Cấu hình đa ngôn ngữ cho WordPress

Bạn có thể thêm các ngôn ngữ khác nhau vào trang web WordPress của mình. Để làm được điều đó, bạn có thể tải xuống các tệp dịch từ blog của nhóm dịch giả WordPress. Từ trang này, bạn có thể thấy các ngôn ngữ khác nhau có bản dịch, cũng như các bản dịch đã hoàn thành. Giả sử tôi muốn tải về ngôn ngữ tiếng Pháp. Tôi sẽ đi đến hàng ngôn ngữ tiếng Pháp, sau đó bấm vào tỷ lệ phần trăm như thể hiện trong hình dưới đây.

Sau đó, bạn chọn phiên bản WordPress và tải file .mo về máy tính.

Khi bạn đã tải xuống tệp .mo, bạn sẽ phải lưu tệp đó trong thư mục wp-content/languages. Truy cập vào Settings -> General trong quản trị WordPress. Ở đó bạn sẽ có thể thấy các tùy chọn ngôn ngữ mà bạn đã đặt trong thư mục wp-content/languages như được hiển thị trong hình ảnh. Vui lòng chọn ngôn ngữ mong muốn bạn muốn thay đổi trang web thành và nhấp vào ‘Lưu thay đổi’

Nạp TextDomain trong chủ đề

Bước đầu tiên để quốc tế hóa cho theme là tạo giao diện WordPress. Trong ví dụ này bằng cách tạo ra một chủ đề con của chủ đề twentyseventeen. Để tạo chủ đề con, trước tiên hãy tạo thư mục wp-content/themes/wpinternationlizationtheme. Trong thư mục này, thêm tệp style.css với nội dung sau:

/*
 Theme Name:   wpinternationlizationtheme
 Description:  Twenty Seventeen Child Theme.
 Author:       Abbas Suterwala
 Author URI:   http://example.com
 Template:     twentyseventeen
 Version:      1.0.0
 Text Domain:  wpinternationlizationtheme
*/

Tệp này định nghĩa một chủ đề con với tên wpinternationlizationtheme. Ở trên, mọi thông tin khai báo trong tệp style.css là các trường chuẩn mà chúng ta định nghĩa cho một chủ đề con. Trường Text Domain là trường xác định tên duy nhất cho miền văn bản của chủ đề này. Theme này sẽ tải các tệp dịch với khóa này làm mã định danh duy nhất.

Tạo một file functions.php với đoạn mã sau đây:

<?php
function wpinternationlizationtheme_enqueue_styles() {

    $parent_style="parent-style"; 

    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style ),
        wp_get_theme()->get('Version')
    );
}
add_action( 'wp_enqueue_scripts', 'wpinternationlizationtheme_enqueue_styles' );

?>

Mã trên nạp chủ đề mẹ (trường hợp này là twentyseventeen). Sau đó, styles từ chủ đề con được nạp.

Điều này cho phép các chủ đề con được tải cuối cùng và có thể được tùy chỉnh theo nhu cầu của chủ đề con. Bây giờ bạn sẽ muốn nạp miền văn bản, WordPress sẽ tìm kiếm bản dịch cho chủ đề này ở đâu? Bạn có thể tải miền văn bản của chủ đề bằng cách sử dụng hàm load_theme_textdomain của WordPress.

Để làm điều đó, thêm đoạn mã sau vào functions.php của bạn:

function wpinternationlizationtheme_setup(){
    $domain = 'wpinternationlizationtheme';
    // wp-content/languages/wpinternationlizationtheme/de_DE.mo
    load_theme_textdomain( $domain, trailingslashit( WP_LANG_DIR ) . $domain );
    // wp-content/themes/wpinternationlizationtheme/languages/de_DE.mo
    load_theme_textdomain( $domain, get_stylesheet_directory() . '/languages' );
    // wp-content/themes/wpinternationlizationtheme/languages/de_DE.mo
    load_theme_textdomain( $domain, get_template_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'wpinternationlizationtheme_setup' );

Đoạn mã trên sử dụng hook after_setup_theme. Tính năng này, giúp website tải miền văn bản cho chủ đề. Điều này được thực hiện bởi hàm load_theme_textdomain. Chức năng này được thiết lập để tìm kiếm các tệp .mo trong các thư mục sau:

- Languages directory
- Child theme directory 
- Parent theme directory

Sử dụng bản dịch trong WordPress

Khi bạn đã thiết lập miền văn bản, hãy xem các hàm bạn có thể sử dụng để quốc tế hóa website WordPress của mình. Có hai hàm chủ yếu mà bạn có thể sử dụng. Thứ nhất là __ . Hàm này nhận hai đối số, đầu tiên là chuỗi và tên miền. Hàm này sau đó trả về chuỗi được bản địa hóa.

Vì vậy, nếu bạn muốn thêm một số văn bản ở cuối mỗi bài đăng, nhưng cũng muốn nội dung này được dịch dựa trên ngôn ngữ lựa chọn, hãy thêm mã sau vào hàm functions.php của bạn:

function wpinternationlizationtheme_after($content) {
    return $content . __('Read more', 'wpinternationlizationtheme');
}
add_filter('the_content', 'wpinternationlizationtheme_after');

Hàm khác bạn có thể sử dụng là _e, cũng giống với hàm __. Hàm này hiển thị văn bản được dịch trực tiếp trên trang thay vì chỉ trả về giá trị.

ví dụ: nếu bạn muốn thêm thông báo chân trang, thì thêm đoạn sau vào file footer.php

<?php
_e('This site is powered by WordPress','wpinternationlizationtheme');
?>

Tạo tệp .mo

Có nhiều công cụ có sẵn để tạo tệp .mo. Trong bài viết này, mình sẽ sử dụng công cụ phổ biến là poedit. Bạn có thể tải phần mềm poedit cho hệ điều hành của bạn từ https://poedit.net/download

Sau khi cài đặt poedit, bạn mở ‘file->New Catalog’:

Trong màn hình này, bạn có thể nhập thông tin cơ bản về dự án. Tab tiếp theo là cung cấp đường dẫn, như được hiển thị bên dưới hình:

Tab tiếp theo cho phép bạn nhập các từ khóa cần tìm kiếm để nhận kết quả các chuỗi cần bản địa hóa. Vì bạn đã sử dụng hai hàm ___e trong các ví dụ trên, hãy thêm hai hàm này vào tab này.

Công cụ sẽ tìm kiếm tất cả các chuỗi cần dịch như thể hiện trong hình dưới đây.

Bây giờ bạn có thể thêm bản dịch cho từng chuỗi và sau đó nhấp vào ‘Lưu’ để lưu tệp tại wp-content/themes/ wpinternationlizationtheme/languages/fr_FR.mo

Bây giờ, cuối cùng, nếu bạn thay đổi ngôn ngữ thành ‘Tiếng Pháp’, bạn sẽ thấy các chuỗi của mình được dịch sang tiếng Pháp trên trang web. Chúc bạn thành công.

Hãy cho mình biết suy nghĩ của bạn trong phần bình luận bên dưới bài viết này. Hãy theo dõi kênh chia sẻ kiến thức WordPress của Vinastar trên TwitterFacebook

Liên hệ

Công ty chuyên Thiết kế website uy tín nhất Miền Bắc: http://vinastar.net

Hotline tư vấn: 0989 48 3456

Nguồn: Sưu tầm trên internet

Bài viết liên quan

Leave a Comment