function locale_batch_by_language in Drupal 7
Same name and namespace in other branches
- 6 includes/locale.inc \locale_batch_by_language()
Prepare a batch to import translations for all enabled modules in a given language.
Parameters
$langcode: Language code to import translations for.
$finished: Optional finished callback for the batch.
$skip: Array of component names to skip. Used in the installer for the second pass import, when most components are already imported.
Return value
A batch structure or FALSE if no files found.
Related topics
3 calls to locale_batch_by_language()
- install_import_locales in includes/
install.core.inc - Imports languages via a batch process during installation.
- install_import_locales_remaining in includes/
install.core.inc - Installation task; import remaining languages via a batch process.
- locale_languages_predefined_form_submit in modules/
locale/ locale.admin.inc - Process the language addition form submission.
File
- includes/
locale.inc, line 2251 - Administration functions for locale.module.
Code
function locale_batch_by_language($langcode, $finished = NULL, $skip = array()) {
// Collect all files to import for all enabled modules and themes.
$files = array();
$components = array();
$query = db_select('system', 's');
$query
->fields('s', array(
'name',
'filename',
));
$query
->condition('s.status', 1);
if (count($skip)) {
$query
->condition('name', $skip, 'NOT IN');
}
$result = $query
->execute();
foreach ($result as $component) {
// Collect all files for all components, names as $langcode.po or
// with names ending with $langcode.po. This allows for filenames
// like node-module.de.po to let translators use small files and
// be able to import in smaller chunks.
$files = array_merge($files, file_scan_directory(dirname($component->filename) . '/translations', '/(^|\\.)' . $langcode . '\\.po$/', array(
'recurse' => FALSE,
)));
$components[] = $component->name;
}
return _locale_batch_build($files, $finished, $components);
}