function _locale_import_po
_locale_import_po($file, $langcode, $mode, $group = NULL)
Parses Gettext Portable Object file information and inserts into database
Parameters
$file: Drupal file object corresponding to the PO file to import.
$langcode: Language code.
$mode: Should existing translations be replaced LOCALE_IMPORT_KEEP or LOCALE_IMPORT_OVERWRITE.
$group: Text group to import PO file into (eg. 'default' for interface translations).
Related topics
File
- includes/locale.inc, line 669
- Administration functions for locale.module.
Code
function _locale_import_po($file, $langcode, $mode, $group = NULL) { // Try to allocate enough time to parse and import the data. drupal_set_time_limit(240); // Check if we have the language already in the database. if (!db_query("SELECT COUNT(language) FROM {languages} WHERE language = :language", array(':language' => $langcode))->fetchField()) { drupal_set_message(t('The language selected for import is not supported.'), 'error'); return FALSE; } // Get strings from file (returns on failure after a partial import, or on success) $status = _locale_import_read_po('db-store', $file, $mode, $langcode, $group); if ($status === FALSE) { // Error messages are set in _locale_import_read_po(). return FALSE; } // Get status information on import process. list($header_done, $additions, $updates, $deletes, $skips) = _locale_import_one_string('db-report'); if (!$header_done) { drupal_set_message(t('The translation file %filename appears to have a missing or malformed header.', array('%filename' => $file->filename)), 'error'); } // Clear cache and force refresh of JavaScript translations. _locale_invalidate_js($langcode); cache_clear_all('locale:', 'cache', TRUE); // Rebuild the menu, strings may have changed. menu_rebuild(); drupal_set_message(t('The translation was successfully imported. There are %number newly created translated strings, %update strings were updated and %delete strings were removed.', array('%number' => $additions, '%update' => $updates, '%delete' => $deletes))); watchdog('locale', 'Imported %file into %locale: %number new strings added, %update updated and %delete removed.', array('%file' => $file->filename, '%locale' => $langcode, '%number' => $additions, '%update' => $updates, '%delete' => $deletes)); if ($skips) { $skip_message = format_plural($skips, 'One translation string was skipped because it contains disallowed HTML.', '@count translation strings were skipped because they contain disallowed HTML.'); drupal_set_message($skip_message); watchdog('locale', '@count disallowed HTML string(s) in %file', array('@count' => $skips, '%file' => $file->uri), WATCHDOG_WARNING); } return TRUE; }
© 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_import_po/7.x