识别标准gettext pot文件

识别标准gettext pot文件,gettext,php-gettext,Gettext,Php Gettext,在我的php框架(CakePHP)中,有一个用于生成POT文件的i18n工具。文件头的生成方式如下: protected function _writeHeader() { $output = "# LANGUAGE translation of CakePHP Application\n"; $output .= "# Copyright YEAR NAME <EMAIL@ADDRESS>\n"; $output .= "#\n"; $output

在我的php框架(CakePHP)中,有一个用于生成POT文件的i18n工具。文件头的生成方式如下:

protected function _writeHeader() {
    $output = "# LANGUAGE translation of CakePHP Application\n";
    $output .= "# Copyright YEAR NAME <EMAIL@ADDRESS>\n";
    $output .= "#\n";
    $output .= "#, fuzzy\n";
    $output .= "msgid \"\"\n";
    $output .= "msgstr \"\"\n";
    $output .= "\"Project-Id-Version: PROJECT VERSION\\n\"\n";
    $output .= "\"POT-Creation-Date: " . date("Y-m-d H:iO") . "\\n\"\n";
    $output .= "\"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\\n\"\n";
    $output .= "\"Last-Translator: NAME <EMAIL@ADDRESS>\\n\"\n";
    $output .= "\"Language-Team: LANGUAGE <EMAIL@ADDRESS>\\n\"\n";
    $output .= "\"MIME-Version: 1.0\\n\"\n";
    $output .= "\"Content-Type: text/plain; charset=utf-8\\n\"\n";
    $output .= "\"Content-Transfer-Encoding: 8bit\\n\"\n";
    $output .= "\"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\\n\"\n\n";
    return $output;
}

打破了gettext的某些标准。如果没有,我想解释一下为什么要把它放在文件的头中。

我认为它是“模糊的”,因为头不完整。i、 e.从POT生成PO文件时,将填写模板条目


从源代码生成POT文件的官方Gettext
xgettext
工具也将模糊标志添加到标题中。从这个意义上说,这肯定不违反标准。

啊,我明白了。这很有道理。msgid和msgstr应该在那里吗?我只是安装了Ubuntu并搜索了一些例子。我确实在标题和空白处看到了msgid和msgstr。显然,空白
msgstr”“
实际上表示多行条目。i、 e.整个标题块是文件中的一个条目,其中包含一个空的
msgid
和一个多行
msgstr
。当我第一次看到PO文件时,我被这一点弄糊涂了。我花了一段时间才弄明白。
$output .= "#, fuzzy\n";
$output .= "msgid \"\"\n";
$output .= "msgstr \"\"\n";