.Po .mo dosyalarını kullanarak bir eklentiyi tercüme et


34

Bu eklentiyi çevirmek istiyorum .

Eklenti zaten diğer dillere çevrildi ve .potyeni diller eklemek için dosyaları var (tarif ettiği kadarıyla).

Yeni dilim için dosyaları nasıl oluşturabilirim .pove .modosyalarım ve eklenti tarafından kullanılacak şekilde erişilebilir duruma getirebilirim? wp-config.phpAşağıdaki tanımı ekleyerek dosyama Rusça dili tanımlamaya çalıştım :

define ('WPLANG', 'ru_RU');

Yanıtlar:


43

Editör

Başkaları da var, ama bu en çok kullanılan: Poedit , platformlar arası gettext katalog (.po dosyaları) editörü.

Biçimler

  • .moMachine Object anlamına gelir
    - .poWordPress tarafından kullanılan dosyanın derlenmiş dışa aktarımı
  • .poTaşınabilir Nesne anlamına gelir
    - çeviri dizeleriyle düzenlenebilir metin dosyası
    - ana .potdosyaya dayanarak, POT dosyasından güncelle seçeneğini kullanarak PoEdit işlevi
    - bazı kişiler bunu ana dosya olarak dağıtır, ancak yalnızca çeviriler için kullanılmalıdır
  • .potPortable Object Template
    ( Taşınabilir Nesne Şablonu) anlamına gelir - WordPress'in kendisinden ve Temalar ve Eklentilerden gelen tüm çevrilebilir karakterleri almak için kullanılan , kaynak kodlarından PoEdit işlevini kullanarak kullanılan düzenlenebilir metin dosyası

Prosedür

  • .Pot dosyasını kopyalayın ve yeniden adlandırın plugin-basename-lang_COUNTRY.po
  • Başvurulan eklenti örneği için örnek: - pt_BR Brezilya Portekizcesi anlamına gelir, ancak birçok dilde ülke farklılığı yoktur ... - kendi dilinizi girmeniz gerekirsubscribe-reloaded-pt_BR.po

  • WPLANGiçinde wp-config.phpdosyaya dilinize ayarlanması gerekir, örneğin,pt_BR
  • .poDosyayı her kaydettiğinizde PoEdit .mo, WordPress'in kullandığı ve temel olarak yüklemeniz gereken tek dosya olan otomatik olarak bir dosya oluşturur.

Gözlemler

  • Tam veya düzgün bir kısmi çeviri yaparsanız, eklentiyi yazarına gönderin, böylece onu Depoya dahil edebilir ve bunun için kredilendirilirsiniz
  • Çevirinizi yedeklemeyi unutmayın, çünkü eklentiyi yükseltirseniz dosyanız kaybolacaktır.
  • @ user17078 eklenti önerisi oldukça iyi, ancak ben çok fazla kullanmadım

1
Yeni mo / po dosyasının etkisinin ne kadar olması gerekiyor?
Nemo

8

Bu deneyebilirsiniz codestyling-yerelleştirme eklentisi: . Bunu kullanarak eklentileri ve temaları tercüme edebilirsiniz.


1
Bu şimdiye kadar gördüğüm en iyi çeviri eklentisi. Bu eklenti her an kendi başına poedit sahibi olabilir ve bunun en iyi yanı ücretsiz ve kullanıcı dostu olmasıdır. Bu cevap en azından oylanmalı.
Gogol

1
Artık yok.
Chris Cox,

1
Bu iyi bir alternatif gibi gözüküyor: wordpress.org/plugins/say-what
jetlej 10:15

ilginç: @jetlej, po dosyam için çalışmıyor gibi görünüyor: /
Nemo

8

(İşte DEUTSCH diline bir ÖRNEK örneği. GELENEKLERİ GELENLERİNİZE DEĞİŞTİRİNİZ.)

Her eklenti kafasında, benzersiz bir isim var. (Örneğin:

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

sonra, bu eklentinin klasöründe, "dil" adlı bir klasör oluşturun;

daha sonra, eklenti .php dosyanıza (en üstte bir yerde), ilklendirme kodunu ekleyin:

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;

daha sonra herhangi bir metin düzenleyiciyi açın, sonra bu kod gibi ekleyin (NOT, sadece iki örnek mesaj ekleyeceğiz, "merhaba" ve "güle güle", böylece benzer satırları istediğiniz gibi ÇOK FAZLA mesaj ekleyebilirsiniz).

# 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"

daha sonra bu dosyayı "my-pluginname-en_US.po" olarak kaydedin (not. bu .po, dosyanın bir uzantısıdır, bu yüzden metin editör programınızın "my-pluginname-en_US.po.TXT" dosyasına kaydedilmediğini kontrol edin).

daha sonra POEDIT yazılımını indirin ve bu dosyayı açın. sonra "çeviri" alanını düzenleyin ve "my-pluginname-de_DE" olarak kaydedin, iki dosya oluşturulur (poEdit ikinci .mo dosyasını otomatik olarak oluşturmazsa, Dosya -> Tercihler -> Düzenleyici'ye gidin ve kontrol edin. "Kaydederken otomatik olarak .mo dosyasını derle" yazan kutudan,

sonra bu iki dosyayı "languages" klasörüne yerleştirin.

Bundan sonra, wp-config.php dosyasını açın ve şu kodu bulun:

define ('WPLANG, '');

ve değiştir

define ('WPLANG, 'de_DE');

Bu kadar. WordPress yüklendiğinde, eklentiler dil dosyanızı -de_DE önekiyle okur.

Yani, eklentinin .php dosyasında, yerine:

echo "Something string";

kullanmalısın:

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



Bitirdi. Şimdi eklentinizi test etmelisiniz.

ps kullanılan bağlantılar:


Bunu temamla denedim. Header.php'de var echo __("thanks-for-visiting", 'transparent');. Temasında \ languages ​​\ transparent-en_US.po var msgid "thanks-for-visiting" msgstr "Hello! Thank you for visiting. Take a look around and subscribe to the ". Bu ön uçta "ziyaret için teşekkürler" çıktısı veriyor.
Steve

5

POEdit kullanmak isteyeceksiniz . Po / .mo dosyaları oluşturmak için ücretsiz bir uygulamadır.

Buradaki konuyla ilgili oldukça ayrıntılı bir rehber yazdım . 3. adıma geçebilirsiniz - Metin Etki Alanı İçin Çeviri Dosyası Oluşturun.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.