function _locale_import_parse_plural_forms

Parses a Plural-Forms entry from a Gettext Portable Object file header

Parameters

$pluralforms: A string containing the Plural-Forms entry.

$filepath: A string containing the filepath.

Return value

An array containing the number of plurals and a formula in PHP for computing the plural form.

Related topics

1 call to _locale_import_parse_plural_forms()
_locale_import_one_string in includes/locale.inc
Imports a string into the database

File

includes/locale.inc, line 1242

Code

function _locale_import_parse_plural_forms($pluralforms, $filepath) {
    // First, delete all whitespace
    $pluralforms = strtr($pluralforms, array(
        " " => "",
        "\t" => "",
    ));
    // Select the parts that define nplurals and plural
    $nplurals = strstr($pluralforms, "nplurals=");
    if (strpos($nplurals, ";")) {
        $nplurals = substr($nplurals, 9, strpos($nplurals, ";") - 9);
    }
    else {
        return FALSE;
    }
    $plural = strstr($pluralforms, "plural=");
    if (strpos($plural, ";")) {
        $plural = substr($plural, 7, strpos($plural, ";") - 7);
    }
    else {
        return FALSE;
    }
    // Get PHP version of the plural formula
    $plural = _locale_import_parse_arithmetic($plural);
    if ($plural !== FALSE) {
        return array(
            $nplurals,
            $plural,
        );
    }
    else {
        drupal_set_message(t('The translation file %filepath contains an error: the plural formula could not be parsed.', array(
            '%filepath' => $filepath,
        )), 'error');
        return FALSE;
    }
}

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