it-swarm.com.de

Wie erstelle ich .pot-Dateien mit POedit?

Ich habe heute Stunden damit verbracht, etwas wirklich Einfaches zu tun, nämlich eine .pot-Datei für ein Wordpress-Theme zu erstellen, das ich erstelle. Ich habe den Smashing Magazine-Artikel , den Tutsplus-Artikel und einige andere zum Verwenden von Poedit zum Erstellen von .pot-Dateien für ein Thema und zum Erstellen von .mo- und .po-Dateien gelesen , aber leider stecke ich immer noch beim ersten Schritt fest.

Ich habe Poedit installiert und finde, dass die Benutzeroberfläche völlig anders ist als in allen Tutorials und es scheint, als gäbe es keine Möglichkeit mehr, eine .pot-Datei zu erstellen. Das Einzige, was verfügbar ist, ist das Erstellen von PO- und MO-Dateien aus einer vorhandenen POT-Datei, die ich jetzt nicht benötige.

Kann mir jemand sagen, wie ich .pot-Dateien mit Poedit oder mit einer anderen Methode erstellen kann? Ich würde es wirklich begrüßen.

Vielen Dank!

31
user1981248

Sie können versuchen, Eazy Po .

  • Wählen Sie im Menü "Datei" die Option "Neu aus Quellcodedateien".
  • Im xgettext Command Manager-Fenster; Drücken Sie auf „Ordner durchsuchen“, um den Basisquellordner auszuwählen.
  • Klicken Sie im Erstellungsbereich auf die Schaltfläche "Befehl ausführen", um eine Pot-Datei zu generieren.
16
ٍShagrouni

So können Sie mit Poedit (kostenlose Edition, Version 1.6.10) unter OS X eine .pot-Datei für Ihr Thema erstellen.

Es wird empfohlen, Sprachdateien in einem Ordner mit dem Namen "languages" in Ihrem Themenverzeichnis zu speichern. Wenn Sie es noch nicht getan haben, erstellen Sie es, bevor Sie beginnen.

In Poedit:

  1. Im Menü "Datei" wählen Sie "Neu"
  2. Wählen Sie die Sprache, die Sie in Ihrem Thema verwendet haben (wahrscheinlich Englisch)
  3. Im Menü "Katalog" wählen Sie "Eigenschaften"
  4. Geben Sie die Projektinformationen auf der Registerkarte "Übersetzungseigenschaften" ein
  5. Gehen Sie zum dritten Tab "Quellenschlüsselwörter"
  6. Klicken Sie auf die Schaltfläche "Neuer Artikel" (2. Schaltfläche) und geben Sie ein Schlüsselwort ein. Wiederholen Sie dies für jedes Ihrer Schlüsselwörter (__, _e, esc_attr_e usw.).
  7. Klicken Sie unten auf die Schaltfläche "OK"
  8. Wählen Sie im Menü "Datei" die Option "Speichern unter".
  9. Speichern Sie die Datei als "yourthemename.pot" im Ordner "languages" in Ihrem Themenverzeichnis (stellen Sie sicher, dass Sie die Erweiterung .pot zum Dateinamen hinzufügen, da sie standardmäßig als .po gespeichert wird).
  10. Wählen Sie im Menü "Katalog" erneut "Eigenschaften"
  11. Gehen Sie zur 2. Registerkarte "Quellenpfade"
  12. Setzen Sie den Wert für "Basispfad" auf ../ (die .pot-Datei wird in einem Unterverzeichnis gespeichert, sodass Sie auf diese Weise die Basis auf das übergeordnete Verzeichnis festlegen, dh auf Ihr Designverzeichnis).
  13. Klicken Sie neben "Pfad" auf die Schaltfläche "Neues Element" und geben Sie . ein. Dadurch wird Ihr Themenverzeichnis und seine Unterverzeichnisse durchsucht.
  14. Klicken Sie unten auf die Schaltfläche "OK"
  15. Klicken Sie im Projektfenster auf "Update" (2. Icon oben)
  16. Klicken Sie im Menü "Datei" auf "Speichern".

Und du bist fertig :)

37
Jasper

Sie können dies mit den WordPress-Tools ohne POEdit tun.

Machen Sie zuerst einen SVN-Checkout von http://develop.svn.wordpress.org/trunk/ :

svn co http://develop.svn.wordpress.org/trunk/ wpdev

Wechseln Sie dann in das i18n-Tools-Verzeichnis:

cd wpdev/tools/i18n/

Dann starte einfach die makepot.php über das Verzeichnis deines Themes:

php makepot.php wp-theme /path/to/your/theme themename.pot

Dadurch wird eine themename.pot-Datei für Sie erstellt. Verwenden Sie es in jedem Standard-Übersetzungstool, das Sie mögen.

Dies ist besser, weil es den WordPress-Code verwendet, um die i18n-Funktionen zu finden, damit Sie keine davon verpassen. Darüber hinaus werden Informationen wie der Titel des Themas, wie Name, Beschreibung usw., gefunden und hinzugefügt. Dadurch können diese auch übersetzt werden. Stellen Sie sicher, dass Sie den Header "Text Domain:" in Ihre style.css einfügen, damit diese funktionieren.

25
Otto

Ich fand, der einfachste Weg ist jetzt, die WP-CLI zu verwenden. Navigiere zu deinem Theme oder Plugin und führe den folgenden Befehl aus (nachdem WP-CLI installiert wurde):

wp i18n make-pot . languages/my.pot

(Siehe Dokumentation des Befehls)

Sie können diese Datei dann mit Poedit oder einem anderen praktischen Übersetzungstool bearbeiten.

3
lhermann

Wie Otto sagte :

Für Mac-Benutzer würde ich Folgendes tun:

  • Nach der Installation von svn co http://develop.svn.wordpress.org/trunk/ wpdev

Also ...

  • Erstelle /languages/ dir für dein Theme
  • Erstellen Sie eine Befehlsdatei wie lang.command in diesem /languages/-Verzeichnis
  • Innerhalb von lang.command

code hinzufügen so etwas ..

#!/bin/bash
cd $(dirname "$0")
php /Users/YOUNAME/wpdev/tools/i18n/makepot.php wp-theme ../../mytheme mytheme.pot

PS: Ändere deinen korrekten makepot.php Pfad und mytheme in deinen Themennamen

Jetzt können Sie jedes Mal, wenn Sie eine neue .POT -Datei erstellen möchten, einfach lang.command ausführen.

 dir 

0
l2aelba

Sie können externe Tools mit Loco Translate plugin ganz ablegen. Ich habe es vor etwa einem Jahr versucht und seitdem nie mehr POEdit verwendet. Installieren Sie es auf Ihrer Test-Site und erstellen Sie mit einem Klick eine POT-Datei.

0
Ihor Vorotnov

Ich habe das gleiche Problem, die Lösung ist in der ersten Registerkarte, wenn Sie Katalog extrahieren, sollte UTF8 empfohlen, und in der 3. Registerkarte "Quellen Schlüsselwörter", klicken Sie auf die Schaltfläche "Neues Element" (2. Schaltfläche) und geben Sie ein Schlüsselwort und wiederholen Dies gilt für jedes Ihrer Keywords (__, _e).

0
user105155

Skript .po-Datei automatisch erstellen, den gesamten Text aus Ihrem Code automatisch hinzufügen

  1. Füge load_theme_textdomain hinzu ('my-textdomain',DIR. '/ Languages ​​/');
  2. Erstelle den Ordner wp-content/themes/MY_THEME/languages ​​(füge deine Sprachdatei .mo diesem Ordner hinzu)
  3. Erstelle po.php und füge dieses Skript hinzu:
<?php /*Script by Sien.com.vn */
define('WP_USE_THEMES', true);

require(''.$_SERVER['DOCUMENT_ROOT'].'/wp-load.php' );

function title_p($title) {

$title='Po create';   

return $title;}
add_filter( 'pre_get_document_title', 'title_p' );


$robots_p='noindex,nofollow';   

get_header();  

echo '<div id="content" class="col col-100">';

if(current_user_can('manage_options')){

function write_txt($path,$content,$type){
$file=fopen($path,$type) or die();
fwrite($file,$content);
fclose($file);
return TRUE;
}

if(isset($_POST['lang'])){
$lang_code=pathinfo($_POST['lang'],PATHINFO_FILENAME);

load_textdomain('this_lang',__DIR__.'/'.$lang_code.'.mo');


$textdomain=$_POST['textdomain'];


$txt='';

function sfile($dir, $ext) {
    global $textdomain;

$globFiles = glob("$dir".DIRECTORY_SEPARATOR."*.$ext");
$globDirs = glob("$dir/*", GLOB_ONLYDIR);

foreach ($globDirs as $dir) {
sfile($dir, $ext);

}

foreach ($globFiles as $file=>$path) {

$txt.=file_get_contents($path,FILE_USE_INCLUDE_PATH);

}


preg_match_all('/__\(\'(.+?)\',\''.$textdomain.'\'\)/',$txt,$output);


$arr=array();

foreach(array_unique($output[1]) as $v){

    if(isset($v)){
write_txt(''.__DIR__.'/po.dat',''.$v.'**$!3|\\/**','a+');
    }
}

}
sfile(get_template_directory(),'php');


$get=file_get_contents(''.__DIR__.'/po.dat');

$k=explode('**$!3|\\/**',$get);


foreach(array_unique($k) as $v){

    if(!empty($v)){ 

if($v==__($v,'this_lang')){
write_txt(''.__DIR__.'/po.dat.empty','
msgid "'.$v.'"
msgstr ""
','a+');
}else{
write_txt(''.__DIR__.'/po.dat.isset','
msgid "'.$v.'"
msgstr "'.__($v,'this_lang').'"
','a+');
}

    }

    }

if(empty(file_get_contents(''.__DIR__.'/po.dat.isset')) && empty(file_get_contents(''.__DIR__.'/po.dat.empty'))){
        echo '<div class="error">Error, Textdomain <b>'.$textdomain.'</b> not found!</div>';
    }else{

write_txt(''.__DIR__.'/'.$lang_code.'.po','# '.$lang_code.' LANG
msgid ""
msgstr ""
"PO-Revision-Date: 2017-11-23 22:26+0700\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 2.0.4\n"
"Language: vi_VN\n"
"Project-Id-Version: Sien\n"
"POT-Creation-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"


'.file_get_contents(''.__DIR__.'/po.dat.isset').'
'.file_get_contents(''.__DIR__.'/po.dat.empty').'
','w+');


echo '<div class="success"><span style="color:blue">Success</span> -> Saved to: '.__DIR__.'/ <b>'.$lang_code.'.po</b></div>';

unlink(''.__DIR__.'/po.dat');
unlink(''.__DIR__.'/po.dat.isset');
unlink(''.__DIR__.'/po.dat.empty');

}

}


echo '<form action="" method="POST">
<div class="menu bd text-center"><p>Language: <select name="lang">';

foreach(glob("".__DIR__."/*.mo") as $path) {echo '<option value="'.$path.'">'.pathinfo($path,PATHINFO_FILENAME).'</option>';}

echo '</select></p>';

$txt='';
function stext($dir, $ext) {
$globFiles = glob("$dir".DIRECTORY_SEPARATOR."*.$ext");
$globDirs = glob("$dir/*", GLOB_ONLYDIR);
foreach ($globDirs as $dir) {stext($dir, $ext);}

foreach ($globFiles as $file=>$path) {
    if($path!=__FILE__){
$txt.=(str_replace(' ','',file_get_contents($path,FILE_USE_INCLUDE_PATH)));
    }

}

preg_match_all('/load_theme_textdomain\((\'|\")(.+?)(\'|\")/',$txt,$gtextdomain);
$td='';
foreach($gtextdomain[2] as $text){

    if(!empty($text)){
    $td.='<option value="'.$text.'">'.$text.'</option>';
    }


}

write_txt(__DIR__.'/textdomain.dat',$td,'a+');
}
stext(get_template_directory(),'php');

$textdomain=file_get_contents(__DIR__.'/textdomain.dat');
if(empty($textdomain)){echo '<div class="error">Not found textdomain [ <b>load_theme_textdomain ("you-textdomain","path_to_language_folder");</b> ]</div>';}else{
echo '<p>Textdomain: <select name="textdomain">'.$textdomain.'</select></p>';
}

echo '<p>
<input type="submit" value="Create new.po file"/>
</p>
</div>
</form>';

unlink(__DIR__.'/textdomain.dat');

}

echo '</div>';

get_footer(); 
  1. Gehen Sie zu youdomain/wp-content/themes/MY_THEME/languages ​​/ po.php und erstellen Sie eine .po-Datei
  2. Kopieren Sie wp-content/themes/MY_THEME/languages ​​/ [LANG] .po auf den Desktop und öffnen Sie es mit Poedit -> Kompilieren Sie MO -> kopieren Sie [LANG] .mo in languages ​​Ordner

Verwenden Sie als echo __ ('Dieser Text', 'Sie-Textdomäne');

0
Siên

Für alle, die Poedit anstelle von Easy Po verwenden möchten.

  1. Download (neueste Version von) Poedit and Install
  2. Gehen Sie zu Datei> Neu. Es öffnet sich eine neue Registerkarte, in der Sie Ihre Übersetzungssprache auswählen und (Strg + S) im Stammverzeichnis Ihres WordPress-Themas speichern können.

  3. Klicken Sie auf der nächsten Seite auf "Aus Quellen extrahieren". Die Registerkarte, die als Nächstes angezeigt wird, ähnelt der in den von Ihnen eingefügten Links verwendeten. "Projektinfo" ist jetzt "Übersetzungseigenschaften", und "Pfade" und "Schlüsselwörter" sind "Quellenpfade" bzw. "Quellenschlüsselwörter"

0
Toheeb