Trang chủ WordpressHướng dẫn Wordpress Cách tự dịch thuật plugin và theme WordPress

Cách tự dịch thuật plugin và theme WordPress

bởi Thạch Phạm
21 bình luận 9376 views
Khuyến mãi hosting

Như các bạn cũng biết là hiện tại WordPress chỉ có gói ngôn ngữ tiếng Việt nhưng khi bạn dùng một theme hay plugin chưa có tiếng Việt thì những thành phần đó đều là tiếng Anh. Nếu bạn đã làm bước cài tiếng Việt cho WordPress và muốn biết thêm cách tự dịch các plugin và theme thành tiếng Việt thì hãy làm theo bài hướng dẫn này.

Ở trong bài này, mình sẽ hướng dẫn bạn cách dịch một plugin hoặc theme yêu thích bằng một phần mềm tên là PoEdit. Sở dĩ chúng ta nên dịch bằng phần mềm này là không nên sửa chữ trực tiếp trong mã nguồn của plugin/theme vì sẽ bị mất khi cập nhật, còn dùng phần mềm PoEdit chúng ta sẽ dịch lại cái tập tin ngôn ngữ có trong các sản phẩm đó thành tiếng Việt và sử dụng trên website.

Cài đặt phần mềm PoEdit

Trước tiên hãy chắc chắn bạn đã cài phần mềm PoEdit vào máy. Bạn có thể tải phần mềm tại http://poedit.net/, dành cho tất cả hệ điều hành như Windows, Linux, MacOS.

Cách dịch ngôn ngữ bằng PoEdit

Cách 1. Dùng file .pot

File .pot là file sẽ chứa các cụm từ có trong mã nguồn đó mà bạn có thể dịch được. Nếu máy bạn có cài Microsoft Poweperpoint thì nó sẽ nhầm tưởng đây là file Powerpoint nhưng không phải.

Cách sử dụng file .pot này là hãy mở phần mềm PoEdit lên.  Sau đó chọn New -> New from PO/POT file.

tudich-poedit-1

Hãy chọn file .pot có trong thư mục theme/plugin, sau đó chọn Vietnamese(vietnam).

tudich-poedit-2

Khi chọn là Vietnamese, nó sẽ tự đặt tên file mới của bạn là vi_VN.po nhưng nếu muốn dùng tốt với WordPress tiếng Việt thì hãy vào File -> Save As và đặt tên là vi.po nhé, rồi mở file vi.po này lên bắt đầu dịch.

Khi lưu file vi.po lại bằng PoEdit, nó sẽ cho bạn một file là vi.mo – đây là file mà WordPress sẽ đọc. Do vậy bạn lưu ý một chỗ là khi dịch thì hãy mở file vi.po lên, dịch xong thì ấn Save lại là file vi.mo sẽ được cập nhật.

Để dịch trong PoEdit, bạn trỏ chuột đến từng cụm từ cần dịch rồi viết chữ được dịch sang vào phần Translation của mỗi hàng.

tudich-poedit-3

Nhớ dịch xong ấn Save lại nhé.

Sau khi dịch xong hết, hãy chắc chắn là bạn đã cài ngôn ngữ tiếng Việt cho WordPress theo hướng dẫn này hoặc chuyển WordPress sang ngôn ngữ mà bạn cần chuyển. Cuối cùng là vào thư mục /wp-content/languages/ và vào thư mục themes hoặc plugins tùy theo nhu cầu của bạn, rồi copy file vi.mo vào và sửa tên nó thành tên-sản-phẩm-vi.mo.

Ví dụ, plugin WP Super Cache sẽ có tên thư mục là /wp-content/plugins/wp-super-cache/ nên mình sẽ đặt tên file Việt hóa của plugin này là wp-super-cache-vi.mo trong thư mục /wp-content/languages/plugins.

Tuy nhiên, lưu ý với theme là nó có thể chứa một thư mục ngôn ngữ riêng mà tác giả theme có thể thiết lập thông qua hàm load_theme_textdomain. Ví dụ:

load_theme_textdomain( 'thachpham', get_template_directory() . '/languages' );

Như đoạn trên thì nghĩa là các file ngôn ngữ của theme phải được đặt trong thư mục /wp-content/themes/tên-theme/languages. Đoạn này bạn có thể tìm trong file functions.php của theme.

Và đây là kết quả.

tudich-poedit-4

Lưu ý, bạn phải chuyển website WordPress qua cùng ngôn ngữ với bản dịch, sửa tại Settings -> General -> Site Language. Đối với tiếng Việt thì phải cài ngôn ngữ tiếng Việt.

Cách 2. Dùng file .po

Nếu sản phẩm bạn cần dịch không có file .pot thì bạn có thể tái sử dụng lại file .po mà họ cung cấp sẵn trong thư mục mã nguồn rồi làm như cách mà mình đã chỉ ở trên, tức là đổi tên file thành tên-sản-phẩm-vi.po rồi dịch và copy vào thư mục /wp-content/languages. Nhớ đọc kỹ hướng dẫn ở trên nhé.

Lưu ý khi không có file .pot hoặc .po

Trường hợp sản phẩm bạn cần dịch mà không có file .pot hoặc .po thì bạn có thể upload mã nguồn lên đây để nó tự tạo file .po. Nếu upload mà nó báo mã nguồn không tạo được thì đó là code của họ không hỗ trợ dịch, vì sao thì xem ở đây.

Sử dụng plugin

Nếu bạn cảm thấy việc sử dụng phần mềm PoEdit có vẻ rườm rà và mất công thì bạn có thể sử dụng plugin Loco Translate để hỗ trợ tạo gói ngôn ngữ cho theme và plugin và hỗ trợ dịch trực tiếp trên website.

Chúc các bạn thành công!

21 bình luận

Có thể bạn quan tâm

21 bình luận

EZ Chia Sẻ 23/08/2020 - 9:24 Chiều

đã làm thành công, thanks Thạch

Reply
NhanNguyen 17/08/2020 - 11:28 Sáng

Bài viết hay quá! Thank Thạch nha

Reply
Học Luật 14/06/2017 - 5:59 Chiều

Mình muốn Việt hóa bbpress thì phải làm sao? đã có 2 file pot và mo rồi đặt vào mục /home/dfvmdpjyhosting/public_html/wp-content/plugins/bbpress/languages mà nó vẫn ko đc

Reply
Tran Tri Dung 29/03/2017 - 9:37 Chiều

Bạn Thạch cho hỏi là, khi mà bắt đầu file po/pot đó. Bạn nói là “Hãy chọn file .pot có trong thư mục theme/plugin”. Cái này tìm ở đâu? Là file trên host của website. Mình không hiểu lắm chổ này. Vì website mình đang vận hành thì tất cả các file này đều lưu trên host mà. Bạn giải thích giúp mình tí được không?

Reply
Binh Do 08/12/2016 - 2:58 Chiều

Chào a Thạch,
Mình dịch rồi nhưng có vài chỗ dịch xong nó vẫn là tiếng ANH có cách nào khắc phục được hoàn toàn những chỗ ấy không? Và 1 số chỗ mình tìm nhưng k thấy sting của nó để dịch thì có giải pháp nào để dịch không?
Cảm ơn anh Thạch.

Reply
Nguyễn Văn Phú 01/12/2016 - 9:27 Chiều

Hi anh Thạch
Cho em hỏi : Em muốn người truy cập website ở Việt Nam thì hiện tiếng việt, còn ở nước ngoài thì hiện tiếng anh thì làm sao anh thạch..

Reply
Thạch Phạm 05/12/2016 - 3:56 Sáng

Bạn có thể sử dụng plugin WPML để làm website song ngữ và nó có tính năng phát hiện quốc gia để hiển thị ngôn ngữ phù hợp đó bạn.

Reply
Nguyễn Văn Phú 21/12/2016 - 3:17 Chiều

Thế plugin Polang không phát hiện vị trí quốc gia được hả anh.

Reply
Thạch Phạm 23/12/2016 - 2:46 Chiều

Polylang thì không có chức năng đó, bạn chỉ thiết lập 1 ngôn ngữ mặc định và sau đó khách muốn thấy ngôn ngữ nào thì chọn chuyển thôi.

Reply
Tien Le 04/01/2017 - 4:02 Chiều

Chào anh Thạch Phạm,

Cảm ơn anh rất nhiều vì những bài viết cũng như video hướng dẫn về wordpress. Anh viết cũng rất chi tiết và dễ hiểu, điều đó giúp đỡ rất nhiều những newbie như em. Bất cứ vấn đề gì khó khăn liên quan đến wordpress em đều tìm đến trang thachpham.com đầu tiên để tìm lời giải đáp.

Nhân tiện đây em cũng mong e trả lời giúp e 1 vài thắc mắc sau:

Cái loco translate nó có chức năng tương tự như polylang (tức là thay đổi ngôn ngữ hiển thị khi mình người truy cập website chọn đổi ngôn ngữ không hay chỉ hiện thị trong local chỉ mình nhìn thấy)
Em đang tạo thử website ở local host và dùng theme Color Mag. Theme này nếu không trả phí thì không hỗ trợ Polylang vì thế e dùng qtranslate-X . Nhưng vấn đề là em làm 1 trang có sử dụng cái widget visual editorr
thì nội dung trong cái bảng visual editor đó không thể thay đổi hiển thị ngôn ngữ như mình chọn. Em phải làm thế nào với trường hợp này?

Mong nhận được phản hồi từ anh sớm!
Best regard,
tienle

XuGiGa 15/11/2016 - 9:19 Chiều

ảnh lỗi dịch theme wordpress “Template missing

This bundle doesn’t define a translations template loco can sync directly with the source code, but this can be slow if there are many files.” Ad trả lời iupp

Reply
Thạch Phạm 15/11/2016 - 11:36 Chiều

Giao diện của bạn chưa có tập tin ngôn ngữ gốc, bạn có thể tìm xem có tập tin .po nào không rồi dùng phần mềm Poedit để dịch nhé.

Reply
XuGiGa 16/11/2016 - 7:16 Sáng

Mình dịch file .po xong vẫn lưu lại giống tên cũ hay là có thêm -vi.po vậy a.

Reply
XuGiGa 15/11/2016 - 9:14 Chiều

Khi mình chọn new language trong loco translatetor thì hiện như vậy , ad giúp dùm với ạ.

Reply
Lâm Châu 01/11/2016 - 3:41 Chiều

mình muốn trang dashboard vẫn là tiếng anh, mà trang web view của mình là tiếng việt thì làm sao ạ

Reply
Thạch Phạm 05/11/2016 - 2:42 Sáng

Có cách nhưng bạn đợi WordPress 4.7 nhé.

Reply
Nguyen 29/09/2016 - 4:14 Chiều

Xin cho mình hỏi, trường hợp website có nhiều ngôn ngữ thì sao?

Reply
Duy Anh 05/09/2016 - 8:09 Sáng

Anh Thạch ơi, vậy còn đường dẫn: domain.com//page/2/
thì việt hoá ở đâu vậy a?

Reply
Thạch Phạm 05/09/2016 - 8:28 Sáng

cái /page/ là slug, không thể Việt Hóa. Thử thêm code sau vào functions.php:

if ( ! function_exists( 't5_page_to_seite' ) )
{
    register_activation_hook(   __FILE__ , 't5_flush_rewrite_on_init' );
    register_deactivation_hook( __FILE__ , 't5_flush_rewrite_on_init' );
    add_action( 'init', 't5_page_to_seite' );

    function t5_page_to_seite()
    {
        $GLOBALS['wp_rewrite']->pagination_base = 'trang';
    }

    function t5_flush_rewrite_on_init()
    {
        add_action( 'init', 'flush_rewrite_rules', 11 );
    }
}

SAu đó thêm vào .htaccess:

RedirectMatch Permanent ^/(.)/page/(.) /$1/trang/$2[/php]

Reply
Trần Tuấn Kiệt 29/06/2016 - 2:24 Chiều

AD cho e hỏi phần mềm sao không gõ được dấu ?E cảm ơn

Reply
Thạch Phạm 02/07/2016 - 11:15 Sáng

Mình vẫn gõ bình thường mà bạn, bạn thử tắt rồi khởi động lại nhé.

Reply

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

* Khi bình luận, bạn đồng ý rằng thông tin bạn nhập vào bao gồm tên, email và địa chỉ IP sẽ được lưu giữ tại website.