function 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

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);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.