Commit ce003919 authored by Gábor Hojtsy's avatar Gábor Hojtsy

Issue #504506 by andypost, pillarsdotnet, podarok: Drupal.formatPlural() did...

Issue #504506 by andypost, pillarsdotnet, podarok: Drupal.formatPlural() did not pass on extra arguments for translations of some plural values
parent d9fb98f7
......@@ -2158,35 +2158,12 @@ function _locale_rebuild_js($langcode = NULL) {
}
// Construct the array for JavaScript translations.
// We sort on plural so that we have all plural forms before singular forms.
$result = db_query("SELECT s.lid, s.source, t.plid, t.plural, t.translation FROM {locales_source} s LEFT JOIN {locales_target} t ON s.lid = t.lid AND t.language = '%s' WHERE s.location LIKE '%%.js%%' AND s.textgroup = 'default' ORDER BY t.plural DESC", $language->language);
// Only add strings with a translation to the translations array.
$result = db_query("SELECT s.lid, s.source, t.translation FROM {locales_source} s INNER JOIN {locales_target} t ON s.lid = t.lid AND t.language = '%s' WHERE s.location LIKE '%%.js%%' AND s.textgroup = 'default'", $language->language);
$translations = $plurals = array();
$translations = array();
while ($data = db_fetch_object($result)) {
// Only add this to the translations array when there is actually a translation.
if (!empty($data->translation)) {
if ($data->plural) {
// When the translation is a plural form, first add it to another array and
// wait for the singular (parent) translation.
if (!isset($plurals[$data->plid])) {
$plurals[$data->plid] = array($data->plural => $data->translation);
}
else {
$plurals[$data->plid] += array($data->plural => $data->translation);
}
}
elseif (isset($plurals[$data->lid])) {
// There are plural translations for this translation, so get them from
// the plurals array and add them to the final translations array.
$translations[$data->source] = array($data->plural => $data->translation) + $plurals[$data->lid];
unset($plurals[$data->lid]);
}
else {
// There are no plural forms for this translation, so just add it to
// the translations array.
$translations[$data->source] = $data->translation;
}
}
$translations[$data->source] = $data->translation;
}
// Construct the JavaScript file, if there are translations.
......
......@@ -149,7 +149,7 @@ Drupal.formatPlural = function(count, singular, plural, args) {
else {
args['@count['+ index +']'] = args['@count'];
delete args['@count'];
return Drupal.t(plural.replace('@count', '@count['+ index +']'));
return Drupal.t(plural.replace('@count', '@count['+ index +']'), args);
}
};
......
......@@ -224,6 +224,24 @@ function locale_update_6006() {
* @} End of "defgroup updates-5.x-to-6.x"
*/
/**
* @defgroup updates-6.x-extra Locale updates for 6.x
* @{
*/
/**
* Fix Drupal.formatPlural().
*/
function locale_update_6007() {
locale_inc_callback('_locale_invalidate_js');
return array();
}
/**
* @} End of "defgroup updates-6.x-extra"
* The next series of updates should start at 7000.
*/
/**
* Implementation of hook_uninstall().
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment