framework/i18n/GettextPoFile.php
public function save($filePath, $messages)
    {
        $language = str_replace('-', '_', basename(dirname($filePath)));
        $headers = [
            'msgid ""',
            'msgstr ""',
            '"Project-Id-Version: \n"',
            '"POT-Creation-Date: \n"',
            '"PO-Revision-Date: \n"',
            '"Last-Translator: \n"',
            '"Language-Team: \n"',
            '"Language: ' . $language . '\n"',
            '"MIME-Version: 1.0\n"',
            '"Content-Type: text/plain; charset=' . Yii::$app->charset . '\n"',
            '"Content-Transfer-Encoding: 8bit\n"',
        ];
        $content = implode("\n", $headers) . "\n\n";
        foreach ($messages as $id => $message) {
            $separatorPosition = strpos($id, chr(4));
            if ($separatorPosition !== false) {
                $content .= 'msgctxt "' . substr($id, 0, $separatorPosition) . "\"\n";
                $id = substr($id, $separatorPosition + 1);
            }
            $content .= 'msgid "' . $this->encode($id) . "\"\n";
            $content .= 'msgstr "' . $this->encode($message) . "\"\n\n";
        }
        file_put_contents($filePath, $content);
    }
public function save($filePath, $messages)
    {
        $language = str_replace('-', '_', basename(dirname($filePath)));
        $headers = [
            'msgid ""',
            'msgstr ""',
            '"Project-Id-Version: \n"',
            '"POT-Creation-Date: \n"',
            '"PO-Revision-Date: \n"',
            '"Last-Translator: \n"',
            '"Language-Team: \n"',
            '"Language: ' . $language . '\n"',
            '"MIME-Version: 1.0\n"',
            '"Content-Type: text/plain; charset=' . Yii::$app->charset . '\n"',
            '"Content-Transfer-Encoding: 8bit\n"',
        ];
        $content = implode("\n", $headers) . "\n\n";
        foreach ($messages as $id => $message) {
            $separatorPosition = strpos($id, chr(4));
            if ($separatorPosition !== false) {
                $content .= 'msgctxt "' . substr($id, 0, $separatorPosition) . "\"\n";
                $id = substr($id, $separatorPosition + 1);
            }
            $content .= 'msgid "' . $this->encode($id) . "\"\n";
            $content .= 'msgstr "' . $this->encode($message) . "\"\n\n";
        }
        file_put_contents($filePath, $content);
    }
public function save ( $ filePath , $ messages ) { $ language = str_replace ( '-' , '_' , basename ( dirname ( $ filePath ) ) ) ; $ headers = [ 'msgid ""' , 'msgstr ""' , '"Project-Id-Version: \n"' , '"POT-Creation-Date: \n"' , '"PO-Revision-Date: \n"' , '"Last-Translator: \n"' , '"Language-Team: \n"' , '"Language: ' . $ language . '\n"' , '"MIME-Version: 1.0\n"' , '"Content-Type: text/plain; charset=' . Yii :: $ app -> charset . '\n"' , '"Content-Transfer-Encoding: 8bit\n"' , ] ; $ content = implode ( "\n" , $ headers ) . "\n\n" ; foreach ( $ messages as $ id => $ message ) { $ separatorPosition = strpos ( $ id , chr ( 4 ) ) ; if ( $ separatorPosition !== false ) { $ content .= 'msgctxt "' . substr ( $ id , 0 , $ separatorPosition ) . "\"\n" ; $ id = substr ( $ id , $ separatorPosition + 1 ) ; } $ content .= 'msgid "' . $ this -> encode ( $ id ) . "\"\n" ; $ content .= 'msgstr "' . $ this -> encode ( $ message ) . "\"\n\n" ; } file_put_contents ( $ filePath , $ content ) ; }
Saves messages to a PO file.
@param string $filePath file path
@param array $messages message translations. Array keys are source messages and array values are
translated messages: source message => translated message. Note if the message has a context,
the message ID must be prefixed with the context with chr(4) as the separator.
Saves messages to a PO file .