function _locale_export_get_strings

Generates a structured array of all strings with translations in $language, if given. This array can be used to generate an export of the string in the database.

Parameters

$language: Language object to generate the output for, or NULL if generating translation template.

$group: Text group to export PO file from (eg. 'default' for interface translations).

Related topics

1 call to _locale_export_get_strings()
locale_translate_export_po_form_submit in modules/locale/locale.admin.inc
Process a translation (or template) export form submission.

File

includes/locale.inc, line 1652

Code

function _locale_export_get_strings($language = NULL, $group = 'default') {
    if (isset($language)) {
        $result = db_query("SELECT s.lid, s.source, s.context, s.location, t.translation, t.plid, t.plural FROM {locales_source} s LEFT JOIN {locales_target} t ON s.lid = t.lid AND t.language = :language WHERE s.textgroup = :textgroup ORDER BY t.plid, t.plural", array(
            ':language' => $language->language,
            ':textgroup' => $group,
        ));
    }
    else {
        $result = db_query("SELECT s.lid, s.source, s.context, s.location, t.plid, t.plural FROM {locales_source} s LEFT JOIN {locales_target} t ON s.lid = t.lid WHERE s.textgroup = :textgroup ORDER BY t.plid, t.plural", array(
            ':textgroup' => $group,
        ));
    }
    $strings = array();
    foreach ($result as $child) {
        $string = array(
            'comment' => $child->location,
            'source' => $child->source,
            'context' => $child->context,
            'translation' => isset($child->translation) ? $child->translation : '',
        );
        if ($child->plid) {
            // Has a parent lid. Since we process in the order of plids,
            // we already have the parent in the array, so we can add the
            // lid to the next plural version to it. This builds a linked
            // list of plurals.
            $string['child'] = TRUE;
            $strings[$child->plid]['plural'] = $child->lid;
        }
        $strings[$child->lid] = $string;
    }
    return $strings;
}

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