function _locale_export_po_generate
_locale_export_po_generate($language = NULL, $strings = array(), $header = NULL)
Generates the PO(T) file contents for given strings.
Parameters
$language: Language object to generate the output for, or NULL if generating translation template.
$strings: Array of strings to export. See _locale_export_get_strings() on how it should be formatted.
$header: The header portion to use for the output file. Defaults are provided for PO and POT files.
Related topics
File
- includes/locale.inc, line 1690
- Administration functions for locale.module.
Code
function _locale_export_po_generate($language = NULL, $strings = array(), $header = NULL) { global $user; if (!isset($header)) { if (isset($language)) { $header = '# ' . $language->name . ' translation of ' . variable_get('site_name', 'Drupal') . "\n"; $header .= '# Generated by ' . $user->name . ' <' . $user->mail . ">\n"; $header .= "#\n"; $header .= "msgid \"\"\n"; $header .= "msgstr \"\"\n"; $header .= "\"Project-Id-Version: PROJECT VERSION\\n\"\n"; $header .= "\"POT-Creation-Date: " . date("Y-m-d H:iO") . "\\n\"\n"; $header .= "\"PO-Revision-Date: " . date("Y-m-d H:iO") . "\\n\"\n"; $header .= "\"Last-Translator: NAME <EMAIL@ADDRESS>\\n\"\n"; $header .= "\"Language-Team: LANGUAGE <EMAIL@ADDRESS>\\n\"\n"; $header .= "\"MIME-Version: 1.0\\n\"\n"; $header .= "\"Content-Type: text/plain; charset=utf-8\\n\"\n"; $header .= "\"Content-Transfer-Encoding: 8bit\\n\"\n"; if ($language->formula && $language->plurals) { $header .= "\"Plural-Forms: nplurals=" . $language->plurals . "; plural=" . strtr($language->formula, array('$' => '')) . ";\\n\"\n"; } } else { $header = "# LANGUAGE translation of PROJECT\n"; $header .= "# Copyright (c) YEAR NAME <EMAIL@ADDRESS>\n"; $header .= "#\n"; $header .= "msgid \"\"\n"; $header .= "msgstr \"\"\n"; $header .= "\"Project-Id-Version: PROJECT VERSION\\n\"\n"; $header .= "\"POT-Creation-Date: " . date("Y-m-d H:iO") . "\\n\"\n"; $header .= "\"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\\n\"\n"; $header .= "\"Last-Translator: NAME <EMAIL@ADDRESS>\\n\"\n"; $header .= "\"Language-Team: LANGUAGE <EMAIL@ADDRESS>\\n\"\n"; $header .= "\"MIME-Version: 1.0\\n\"\n"; $header .= "\"Content-Type: text/plain; charset=utf-8\\n\"\n"; $header .= "\"Content-Transfer-Encoding: 8bit\\n\"\n"; $header .= "\"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\\n\"\n"; } } $output = $header . "\n"; foreach ($strings as $lid => $string) { // Only process non-children, children are output below their parent. if (!isset($string['child'])) { if ($string['comment']) { $output .= '#: ' . $string['comment'] . "\n"; } if (!empty($string['context'])) { $output .= 'msgctxt ' . _locale_export_string($string['context']); } $output .= 'msgid ' . _locale_export_string($string['source']); if (!empty($string['plural'])) { $plural = $string['plural']; $output .= 'msgid_plural ' . _locale_export_string($strings[$plural]['source']); if (isset($language)) { $translation = $string['translation']; for ($i = 0; $i < $language->plurals; $i++) { $output .= 'msgstr[' . $i . '] ' . _locale_export_string($translation); if ($plural) { $translation = _locale_export_remove_plural($strings[$plural]['translation']); $plural = isset($strings[$plural]['plural']) ? $strings[$plural]['plural'] : 0; } else { $translation = ''; } } } else { $output .= 'msgstr[0] ""' . "\n"; $output .= 'msgstr[1] ""' . "\n"; } } else { $output .= 'msgstr ' . _locale_export_string($string['translation']); } $output .= "\n"; } } return $output; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!locale.inc/function/_locale_export_po_generate/7.x