function _locale_import_one_string_db
_locale_import_one_string_db(&$report, $langcode, $context, $source, $translation, $textgroup, $location, $mode, $plid = 0, $plural = 0)
Import one string into the database.
Parameters
$report: Report array summarizing the number of changes done in the form: array(inserts, updates, deletes).
$langcode: Language code to import string into.
$context: The context of this string.
$source: Source string.
$translation: Translation to language specified in $langcode.
$textgroup: Name of textgroup to store translation in.
$location: Location value to save with source string.
$mode: Import mode to use, LOCALE_IMPORT_KEEP or LOCALE_IMPORT_OVERWRITE.
$plid: Optional plural ID to use.
$plural: Optional plural value to use.
Return value
The string ID of the existing string modified or the new string added.
Related topics
File
- includes/locale.inc, line 1116
- Administration functions for locale.module.
Code
function _locale_import_one_string_db(&$report, $langcode, $context, $source, $translation, $textgroup, $location, $mode, $plid = 0, $plural = 0) { $lid = db_query("SELECT lid FROM {locales_source} WHERE source = :source AND context = :context AND textgroup = :textgroup", array(':source' => $source, ':context' => $context, ':textgroup' => $textgroup))->fetchField(); if (!empty($translation)) { // Skip this string unless it passes a check for dangerous code. // Text groups other than default still can contain HTML tags // (i.e. translatable blocks). if ($textgroup == "default" && !locale_string_is_safe($translation)) { $report['skips']++; $lid = 0; } elseif ($lid) { // We have this source string saved already. db_update('locales_source') ->fields(array( 'location' => $location, )) ->condition('lid', $lid) ->execute(); $exists = db_query("SELECT COUNT(lid) FROM {locales_target} WHERE lid = :lid AND language = :language", array(':lid' => $lid, ':language' => $langcode))->fetchField(); if (!$exists) { // No translation in this language. db_insert('locales_target') ->fields(array( 'lid' => $lid, 'language' => $langcode, 'translation' => $translation, 'plid' => $plid, 'plural' => $plural, )) ->execute(); $report['additions']++; } elseif ($mode == LOCALE_IMPORT_OVERWRITE) { // Translation exists, only overwrite if instructed. db_update('locales_target') ->fields(array( 'translation' => $translation, 'plid' => $plid, 'plural' => $plural, )) ->condition('language', $langcode) ->condition('lid', $lid) ->execute(); $report['updates']++; } } else { // No such source string in the database yet. $lid = db_insert('locales_source') ->fields(array( 'location' => $location, 'source' => $source, 'context' => (string) $context, 'textgroup' => $textgroup, )) ->execute(); db_insert('locales_target') ->fields(array( 'lid' => $lid, 'language' => $langcode, 'translation' => $translation, 'plid' => $plid, 'plural' => $plural )) ->execute(); $report['additions']++; } } elseif ($mode == LOCALE_IMPORT_OVERWRITE) { // Empty translation, remove existing if instructed. db_delete('locales_target') ->condition('language', $langcode) ->condition('lid', $lid) ->condition('plid', $plid) ->condition('plural', $plural) ->execute(); $report['deletes']++; } return $lid; }
© 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_one_string_db/7.x