Przetłumacz wtyczkę za pomocą plików .po .mo

34

Chcę przetłumaczyć wtyczkę.

Wtyczka została już przetłumaczona na inne języki i zawiera .potpliki do dodawania nowych języków (o ile rozumiem z opisu).

Jak utworzyć .poi .mopliki dla mojego nowego języka i udostępnić je, aby były używane przez wtyczkę? Próbowałem zdefiniować język rosyjski w moim wp-config.phppliku, wstawiając poniższą definicję:

define ('WPLANG', 'ru_RU');
Shimon S.
źródło

Odpowiedzi:

43

Edytor

Są inne, ale jest to najczęściej używane: Poedit , wieloplatformowy edytor katalogów gettext (pliki .po).

Formaty

  • .mooznacza Machine Object
    - skompilowany eksport .popliku, który jest używany przez WordPress
  • .pooznacza Portable Object
    - edytowalny plik tekstowy z ciągami tłumaczeń
    - oparty na .potpliku głównym , wykorzystujący funkcję PoEdit Aktualizuj z pliku POT
    - niektórzy ludzie rozpowszechniają ten plik jako plik główny, ale należy go używać tylko do tłumaczeń
  • .potoznacza Portable Object Template
    - edytowalny plik tekstowy służący do pobierania wszystkich możliwych do przetłumaczenia ciągów z samego WordPressa oraz motywów i wtyczek, przy użyciu funkcji aktualizacji ze źródeł PoEdit

Procedura

  • Zduplikuj plik .pot i zmień jego nazwę na plugin-basename-lang_COUNTRY.po
  • Przykład przywoływanego przypadku wtyczki: - pt_BR oznacza portugalską Brazylię, ale w wielu językach nie ma odmiany kraju ... - musisz wpisać własny języksubscribe-reloaded-pt_BR.po

  • WPLANGw wp-config.phppliku należy ustawić język, np.pt_BR
  • Za każdym razem, gdy zapisujesz .poplik, PoEdit automatycznie generuje .moplik, który jest tym, którego używa WordPress i zasadniczo jedynym, który musisz przesłać

Spostrzeżenia

  • Jeśli wykonasz pełne lub przyzwoite tłumaczenie częściowe, prześlij je autorowi wtyczki, aby mógł dołączyć go do repozytorium i uzyskać uznanie za to
  • Nie zapomnij wykonać kopii zapasowej swojego tłumaczenia, ponieważ jeśli uaktualnisz wtyczkę, plik zostanie utracony
  • @ user17078 sugestia wtyczki jest całkiem fajna, ale nigdy jej nie używałem
brasofilo
źródło
1
Jak długo powinien potrwać nowy plik mo / po?
Nemo,
8

Można spróbować tej wtyczki codestyling-lokalizacyjne: . Za pomocą tego możesz tłumaczyć wtyczki i motywy.

Aristeides
źródło
1
To najlepsza wtyczka do tłumaczenia, jaką kiedykolwiek widziałem. Ta wtyczka może posiadać poedit każdego dnia, a najlepsze jest to, że jest darmowa i przyjazna dla użytkownika. Ta odpowiedź powinna zostać poddana pod głosowanie co najmniej.
Gogol
1
Już nie istnieje.
Chris Cox,
1
To wygląda na dobrą alternatywę: wordpress.org/plugins/say-what
jetlej
@jetlej jest interesujący, ale wydaje się, że nie działa dla mojego pliku po: /
Nemo
8

(Oto PRZYKŁAD tłumaczenia na DEUTSCH. ZMIEŃ zwyczaje na SWOJE PRAGNIONE).

w każdej główce wtyczek jest unikalna nazwa. (na przykład:

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

następnie w folderze tej wtyczki utwórz folder „języki”;

następnie do pliku .php wtyczki (gdzieś u góry) wstaw kod inicjujący:

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;

następnie otwórz dowolny edytor tekstowy, a następnie wstaw tak jak ten kod (UWAGA, ŻE dodajemy tylko dwie przykładowe wiadomości, „cześć” i „cześć”, więc możesz DODAĆ TAKIE WIELE INFORMACJI, JAK CHCESZ o podobnych liniach).

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

następnie zapisz ten plik jako „my-pluginname-en_US.po” (zwróć uwagę, że .po jest rozszerzeniem pliku, więc sprawdź, czy Twój program do edycji tekstu nie zapisał w „my-pluginname-en_US.po.TXT”).

następnie pobierz oprogramowanie POEDIT i otwórz ten plik. następnie edytuj pole „tłumaczenie”, a następnie zapisz jako „my-pluginname-de_DE” wygenerowane zostaną dwa pliki (jeśli poEdit nie wygeneruje automatycznie drugiego pliku .mo, po prostu przejdź do Plik -> Preferencje -> Edytor i sprawdź pole z napisem „Automatycznie kompiluj plik .mo podczas zapisywania”),

następnie umieść te dwa pliki w folderze „językach”.

następnie otwórz wp-config.php i znajdź ten kod:

define ('WPLANG, '');

i zmień na

define ('WPLANG, 'de_DE');

To wszystko. Po załadowaniu WordPress odczyta plik językowy wtyczek z prefiksem -de_DE.

Tak więc w pliku .php wtyczki zamiast:

echo "Something string";

powinieneś użyć:

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



Skończone. Teraz powinieneś przetestować swoją wtyczkę.

ps użyte linki:

T.Todua
źródło
Próbowałem tego z moim motywem. W header.php mam echo __("thanks-for-visiting", 'transparent');. Mam w theme \ languages ​​\ transparent-en_US.po msgid "thanks-for-visiting" msgstr "Hello! Thank you for visiting. Take a look around and subscribe to the ". Daje to „dzięki za odwiedziny” na froncie.
Steve
5

Będziesz chciał użyć POEdit . To darmowa aplikacja do tworzenia plików .po / .mo.

Napisałem ładny samouczek dogłębnej na całego tematu tutaj . Możesz przejść do kroku 3 - Utwórz plik tłumaczenia dla domeny tekstowej.

Pippin
źródło