แปลปลั๊กอินโดยใช้ไฟล์. po .mo


34

ฉันต้องการที่จะแปลนี้ปลั๊กอิน

ปลั๊กอินได้รับการแปลเป็นภาษาอื่นแล้วและมี.potไฟล์สำหรับเพิ่มภาษาใหม่ (เท่าที่ฉันเข้าใจจากคำอธิบาย)

ฉันจะสร้าง.poและ.moไฟล์สำหรับภาษาใหม่ของฉันและทำให้เข้าถึงได้เพื่อให้ปลั๊กอินใช้งานได้อย่างไร ฉันพยายามกำหนดภาษารัสเซียในwp-config.phpไฟล์ของฉันโดยการใส่คำจำกัดความด้านล่าง:

define ('WPLANG', 'ru_RU');

คำตอบ:


43

บรรณาธิการ

มีคนอื่น ๆ แต่สิ่งนี้ถูกใช้มากที่สุด: Poedit , ตัวแก้ไขข้ามแพลตฟอร์มแคตตาล็อก gettext (.po ไฟล์)

รูปแบบ

  • .moย่อมาจาก Machine Object
    - รวบรวมการส่งออก.poไฟล์ที่ WordPress ใช้
  • .poย่อมาจาก Portable Object
    - ไฟล์ข้อความที่แก้ไขได้พร้อมกับสตริงการแปล
    - ตาม.potไฟล์ต้นแบบโดยใช้การอัปเดตจากไฟล์ POTฟังก์ชั่น PoEdit
    - บางคนแจกจ่ายสิ่งนี้เป็นไฟล์หลัก แต่ควรใช้สำหรับการแปลเท่านั้น
  • .potย่อมาจาก Portable Object Template
    - ไฟล์ข้อความที่แก้ไขได้ซึ่งใช้เพื่อดึงสตริงที่แปลได้ทั้งหมดจาก WordPress และธีมและปลั๊กอินโดยใช้การอัปเดตจากแหล่งที่มาของฟังก์ชัน PoEdit

ขั้นตอน

  • ทำซ้ำไฟล์. pot และเปลี่ยนชื่อเป็น plugin-basename-lang_COUNTRY.po
  • ตัวอย่างสำหรับกรณีปลั๊กอินที่อ้างถึง: - pt_BRหมายถึงโปรตุเกสบราซิล แต่หลายภาษาไม่มีรูปแบบประเทศ ... - คุณจะต้องกรอกด้วยภาษาของคุณเองsubscribe-reloaded-pt_BR.po

  • WPLANGในwp-config.phpไฟล์จะต้องตั้งค่าเป็นภาษาของคุณเช่นpt_BR
  • ทุกครั้งที่คุณบันทึก.poไฟล์ PoEdit จะสร้าง.moไฟล์โดยอัตโนมัติซึ่งเป็นหนึ่งในเวิร์ดเพรสที่ใช้และโดยทั่วไปเป็นไฟล์เดียวที่คุณต้องอัปโหลด

ข้อสังเกต

  • ถ้าคุณทำเต็มรูปแบบหรือการแปลบางส่วนที่ดีส่งไปยังผู้เขียนปลั๊กอินเพื่อให้เขาสามารถรวมไว้ในที่เก็บและคุณจะได้รับเครดิตสำหรับมัน
  • อย่าลืมสำรองข้อมูลการแปลของคุณเพราะถ้าคุณอัพเกรดปลั๊กอินไฟล์ของคุณจะหายไป
  • คำแนะนำปลั๊กอิน @ user17078 นั้นค่อนข้างดี แต่ฉันไม่เคยใช้มากนัก

1
ไฟล์ mo / po ใหม่ควรจะมีผลนานแค่ไหน
Nemo

8

คุณสามารถลองนี้ปลั๊กอิน codestyling-แปล: คุณสามารถแปลปลั๊กอินและชุดรูปแบบได้โดยใช้สิ่งนี้


1
นี่คือปลั๊กอินการแปลที่ดีที่สุดที่ฉันเคยเห็น ปลั๊กอินนี้สามารถเป็นเจ้าของ poedit ทุกวันและส่วนที่ดีที่สุดคือมันเป็นฟรีและใช้งานง่าย คำตอบนี้ควรได้รับการโหวตอย่างน้อยที่สุด
โกกอล

1
ไม่มีอยู่แล้ว.
คริสค็อกซ์

1
นี่ดูเหมือนเป็นทางเลือกที่ดี: wordpress.org/plugins/say-what
jetlej

@jetlej น่าสนใจดูเหมือนจะไม่ทำงานกับไฟล์ po ของฉันแม้ว่า: /
Nemo

8

(นี่คือตัวอย่างของการแปลเป็น DEUTSCH เปลี่ยนศุลกากรสำหรับคนที่คุณต้องการ)

ในหัวปลั๊กอินทุกอันจะมีชื่อเฉพาะ (ตัวอย่างเช่น:

/*
Plugin Name: my-pluginname
.......
*/

จากนั้นในโฟลเดอร์ของปลั๊กอินนั้นให้สร้างโฟลเดอร์ "languages";

จากนั้นไปที่ไฟล์ plugin .php ของคุณ (ที่ด้านบน) ใส่รหัสเริ่มต้น:

class load_language 
{
    public function __construct()
    {
    add_action('init', array($this, 'load_my_transl'));
    }

     public function load_my_transl()
    {
        load_plugin_textdomain('my-pluginname', FALSE, dirname(plugin_basename(__FILE__)).'/languages/');
    }
}

$zzzz = new load_language;

จากนั้นเปิดตัวแก้ไขข้อความใด ๆ จากนั้นแทรกเช่นรหัสนี้ (หมายเหตุว่าเราเพิ่มข้อความตัวอย่างสองข้อความเท่านั้น "hello" และ "bye" ดังนั้นคุณสามารถเพิ่มข้อความได้มากเท่าที่คุณต้องการด้วยบรรทัดที่คล้ายกัน)

# English translations for PACKAGE package.
# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: my-pluginname 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 13:46-0400\n"
"PO-Revision-Date: 2013-03-21 11:20+0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"


#: mypluginindex.php:87 (it is just a line of a note, to remind where our code appears)
msgid "mymessage1"
msgstr "Hello"

#: mypluginindex.php:88
msgid "mymessage2"
msgstr "Bye"

จากนั้นให้บันทึกไฟล์นี้เป็น "my-pluginname-en_US.po" (โปรดทราบว่า. po เป็นส่วนขยายของไฟล์ดังนั้นตรวจสอบว่าโปรแกรมแก้ไขข้อความของคุณไม่ได้บันทึกเป็น "my-pluginname-en_US.po.TXT")

จากนั้นดาวน์โหลดซอฟต์แวร์ POEDIT แล้วเปิดไฟล์นี้ จากนั้นแก้ไขฟิลด์ "แปล" แล้วบันทึกเป็น "my-pluginname-de_DE" จะมีการสร้างสองไฟล์ (หาก poEdit ไม่ได้สร้างไฟล์. mo ที่สองโดยอัตโนมัติเพียงไปที่ไฟล์ -> การตั้งค่า -> ตัวแก้ไขและตรวจสอบ กล่องที่ระบุว่า "รวบรวมไฟล์. mo โดยอัตโนมัติเมื่อบันทึก")

จากนั้นใส่ทั้งสองไฟล์ลงในโฟลเดอร์ "languages"

หลังจากนี้ให้เปิด wp-config.php และค้นหารหัสนี้:

define ('WPLANG, '');

และเปลี่ยนเป็น

define ('WPLANG, 'de_DE');

นั่นคือทั้งหมดที่ เมื่อโหลด WordPress มันจะอ่านไฟล์ภาษาปลั๊กอินพร้อมคำนำหน้า -de_DE

ดังนั้นในไฟล์. php ของปลั๊กอินแทนที่จะเป็น:

echo "Something string";

คุณควรใช้:

echo __("mymessage1", 'my-pluginname');



เสร็จ ตอนนี้คุณควรทดสอบปลั๊กอินของคุณ

ลิงก์ที่ใช้ ps:


ฉันลองสิ่งนี้ด้วยธีมของฉัน ใน header.php echo __("thanks-for-visiting", 'transparent');ฉันมี ในรูปแบบ \ ภาษา \ โปร่งใส en_US.po msgid "thanks-for-visiting" msgstr "Hello! Thank you for visiting. Take a look around and subscribe to the "ฉันมี เอาต์พุตนี้ "ขอบคุณสำหรับการเยี่ยมชม" ที่ส่วนหน้า
Steve

5

คุณจะต้องการใช้POEdit มันเป็นแอพพลิเคชั่นฟรีสำหรับการสร้างไฟล์. po / .mo

ผมเขียนกวดวิชาสวยในเชิงลึกเกี่ยวกับหัวข้อทั้งหมดที่นี่ คุณสามารถข้ามไปขั้นตอนที่ 3 - สร้างไฟล์แปลสำหรับโดเมนข้อความ


5

ผมขอแนะนำให้ยัง H TTP: //poeditor.com/ เป็นเครื่องมือแปลบนเว็บที่ทำงานได้ดีกับไฟล์. po, .mo, .pot และไฟล์ประเภทอื่น ๆ


ผู้เข้าชมเสนอการแก้ไขที่ชี้ไปยังปลั๊กอินใหม่สำหรับบริการนี้: wordpress.org/extend/plugins/poeditor
brasofilo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.