];
+ $var = preg_replace_callback('/([\d\.\,]+)([^\d]*)\|4([^:]*):([^;]*);/i', function ($m) {
+ $plurals = explode(':', $m[4]);
+ $result = '';
+
+ if (count($plurals) == 2) // special case: ruRU
+ {
+ switch (substr($m[1], -1)) // check last digit of number
+ {
+ case 1:
+ // but not 11 (teen number)
+ if (!in_array($m[1], [11]))
+ {
+ $result = $m[3];
+ break;
+ }
+ case 2:
+ case 3:
+ case 4:
+ // but not 12, 13, 14 (teen number) [11 is passthrough]
+ if (!in_array($m[1], [11, 12, 13, 14]))
+ {
+ $result = $plurals[0];
+ break;
+ }
+ break;
+ default:
+ $result = $plurals[1];
+ }
+ }
+ else
+ $result = ($m[1] == 1 ? $m[3] : $plurals[0]);
+
+ return $m[1].$m[2].$result;
+ }, $var);
+
+ return $var;
+ }
}
?>
\ No newline at end of file
diff --git a/localization/locale_dede.php b/localization/locale_dede.php
index 90883761..4b621528 100644
--- a/localization/locale_dede.php
+++ b/localization/locale_dede.php
@@ -605,7 +605,7 @@ $lang = array(
'receiveAlso' => "Ihr bekommt außerdem",
'spellCast' => "Der folgende Zauber wird auf Euch gewirkt",
'spellLearn' => "Ihr erlernt",
- 'bonusTalents' => "Talentpunkte",
+ 'bonusTalents' => "%d |4Talentpunkt:Talentpunkte;",
'spellDisplayed'=> ' (%s wird angezeigt)',
'attachment' => "Anlage",
'questInfo' => array(
@@ -911,14 +911,14 @@ $lang = array(
'notFound' => "Dieser Gegenstand existiert nicht .",
'armor' => "%s Rüstung",
'block' => "%s Blocken",
- 'charges' => "Aufladungen",
+ 'charges' => "%d |4Aufladung:Aufladungen;",
'locked' => "Verschlossen",
'ratingString' => "%s @ L%s",
'heroic' => "Heroisch",
'startQuest' => "Dieser Gegenstand startet eine Quest",
- 'bagSlotString' => "%d Platz %s",
+ 'bagSlotString' => '%1$d Platz %2$s',
'fap' => "Angriffskraft in Tiergestalt",
- 'durability' => "Haltbarkeit %1$d / %2$d",
+ 'durability' => 'Haltbarkeit %1$d / %2$d',
'realTime' => "Realzeit",
'conjured' => "Herbeigezauberter Gegenstand",
'sellPrice' => "Verkaufspreis",
@@ -926,7 +926,8 @@ $lang = array(
'randEnchant' => "<Zufällige Verzauberung>",
'readClick' => "<Zum Lesen rechtsklicken>",
'openClick' => "<Zum Öffnen rechtsklicken>",
- 'set' => "(%d) Set: %s",
+ 'setBonus' => "(%d) Set: %s",
+ 'setName' => '%1$s (%2$d/%3$d)',
'partyLoot' => "Gruppenloot",
'smartLoot' => "Intelligente Beuteverteilung",
'indestructible'=> "Kann nicht zerstört werden",
@@ -980,14 +981,14 @@ $lang = array(
"Meta", "Rot", "Gelb", "Blau"
),
'gemConditions' => array( // ENCHANT_CONDITION_* in GlobalStrings.lua; 2 not in use (use as PH)
- 2 => ["weniger als %d Edelstein der Kategorie %s", "weniger als %d Edelsteine der Kategorie %s"],
+ 2 => "weniger als %d |4Edelstein:Edelsteine; der Kategorie %s",
3 => "mehr Edelsteine der Kategorie %s als Edelsteine der Kategorie %s",
- 5 => ["mindestens %d Edelstein der Kategorie %s", "mindestens %d Edelsteine der Kategorie %s"]
+ 5 => "mindestens %d |4Edelstein:Edelsteine; der Kategorie %s"
),
'reqRating' => array( // ITEM_REQ_ARENA_RATING*
"Benötigt eine persönliche Arenawertung und Teamwertung von %d.",
- "Benötigt eine persönliche und eine Teamwertung von %d
in 3v3- oder 5v5-Turnieren",
- "Benötigt eine persönliche und eine Teamwertung von %d
in 5v5-Turnieren"
+ "Benötigt eine persönliche und eine Teamwertung von %d|nin 3v3- oder 5v5-Turnieren",
+ "Benötigt eine persönliche und eine Teamwertung von %d|nin 5v5-Turnieren"
),
'quality' => array(
"Schlecht", "Verbreitet", "Selten", "Rar",
diff --git a/localization/locale_enus.php b/localization/locale_enus.php
index fd14e717..75d46aeb 100644
--- a/localization/locale_enus.php
+++ b/localization/locale_enus.php
@@ -592,7 +592,7 @@ $lang = array(
'enabledByQ' => "Enabled by",
'enabledByQDesc'=> "This quest is available only, when one of these quests are active",
'gainsDesc' => "Upon completion of this quest you will gain",
- 'theTitle' => 'the title "%s"', // REWARD_TITLE
+ 'theTitle' => 'the title "%s"', // partly REWARD_TITLE
'mailDelivery' => "You will receive this letter%s%s",
'mailBy' => ' by %s',
'mailIn' => " after %s",
@@ -605,7 +605,7 @@ $lang = array(
'receiveAlso' => "You will also receive", // REWARD_ITEMS
'spellCast' => "The following spell will be cast on you", // REWARD_AURA
'spellLearn' => "You will learn", // REWARD_SPELL
- 'bonusTalents' => "talent points",
+ 'bonusTalents' => "%d talent |4point:points;", // partly LEVEL_UP_CHAR_POINTS
'spellDisplayed'=> ' (%s is displayed)',
'attachment' => "Attachment",
'questInfo' => array(
@@ -911,7 +911,7 @@ $lang = array(
'notFound' => "This item doesn't exist.",
'armor' => "%s Armor", // ARMOR_TEMPLATE
'block' => "%s Block", // SHIELD_BLOCK_TEMPLATE
- 'charges' => "Charges", // ITEM_SPELL_CHARGES
+ 'charges' => "%d |4Charge:Charges;", // ITEM_SPELL_CHARGES
'locked' => "Locked", // LOCKED
'ratingString' => "%s @ L%s",
'heroic' => "Heroic", // ITEM_HEROIC
@@ -926,7 +926,8 @@ $lang = array(
'randEnchant' => "<Random enchantment>", // ITEM_RANDOM_ENCHANT
'readClick' => "<Right Click To Read>", // ITEM_READABLE
'openClick' => "<Right Click To Open>", // ITEM_OPENABLE
- 'set' => "(%d) Set: %s", // ITEM_SET_BONUS_GRAY
+ 'setBonus' => "(%d) Set: %s", // ITEM_SET_BONUS_GRAY
+ 'setName' => "%s (%d/%d)", // ITEM_SET_NAME
'partyLoot' => "Party loot",
'smartLoot' => "Smart loot",
'indestructible'=> "Cannot be destroyed",
@@ -980,14 +981,14 @@ $lang = array(
"meta", "red", "yellow", "blue"
),
'gemConditions' => array( // ENCHANT_CONDITION_* in GlobalStrings.lua
- 2 => ["less than %d %s gem", "less than %d %s gems"],
+ 2 => "less than %d %s |4gem:gems;",
3 => "more %s gems than %s gems",
- 5 => ["at least %d %s gem", "at least %d %s gems"]
+ 5 => "at least %d %s |4gem:gems;"
),
'reqRating' => array( // ITEM_REQ_ARENA_RATING*
"Requires personal and team arena rating of %d",
- "Requires personal and team arena rating of %d
in 3v3 or 5v5 brackets",
- "Requires personal and team arena rating of %d
in 5v5 brackets"
+ "Requires personal and team arena rating of %d|nin 3v3 or 5v5 brackets",
+ "Requires personal and team arena rating of %d|nin 5v5 brackets"
),
'quality' => array( // ITEM_QUALITY?_DESC
"Poor", "Common", "Uncommon", "Rare",
diff --git a/localization/locale_eses.php b/localization/locale_eses.php
index 1027a089..14ab86e1 100644
--- a/localization/locale_eses.php
+++ b/localization/locale_eses.php
@@ -605,7 +605,7 @@ $lang = array(
'receiveAlso' => "También recibirás",
'spellCast' => "Te van a lanzar el siguiente hechizo",
'spellLearn' => "Aprenderás",
- 'bonusTalents' => "puntos de talento",
+ 'bonusTalents' => "%d |4punto:puntos; de talento",
'spellDisplayed'=> ' (mostrando %s)',
'attachment' => "Adjunto",
'questInfo' => array(
@@ -911,12 +911,12 @@ $lang = array(
'notFound' => "Este objeto no existe.",
'armor' => "%s armadura",
'block' => "%s bloqueo",
- 'charges' => "cargas",
+ 'charges' => "%d |4carga:cargas;",
'locked' => "Cerrado",
'ratingString' => "%s @ L%s",
'heroic' => "Heroico",
'startQuest' => "Este objeto inicia una misión",
- 'bagSlotString' => "%s de %d casillas",
+ 'bagSlotString' => '%2$s de %1$d casillas',
'fap' => "poder de ataque feral",
'durability' => "Durabilidad %d / %d",
'realTime' => "tiempo real",
@@ -926,7 +926,8 @@ $lang = array(
'randEnchant' => "<Encantamiento aleatorio>",
'readClick' => "<Click derecho para leer>",
'openClick' => "<Click derecho para abrir>",
- 'set' => "(%d) Bonif.: %s",
+ 'setBonus' => "(%d) Bonif.: %s",
+ 'setName' => "%s (%d/%d)",
'partyLoot' => "Despojo de grupo",
'smartLoot' => "Botín inteligente",
'indestructible'=> "No puede ser destruido",
@@ -980,14 +981,14 @@ $lang = array(
"meta", "roja(s)", "amarilla(s)", "azul(es)"
),
'gemConditions' => array( // ENCHANT_CONDITION_*
- 2 => ["menos de %d %s gema", "menos de %d %s gemas"],
+ 2 => "menos de %d |4gema:gemas; %s",
3 => "más gemas %s que gemas %s",
- 5 => ["al menos %d %s gema", "al menos %d %s gemas"]
+ 5 => "al menos %d |4gema:gemas; %s"
),
'reqRating' => array( // ITEM_REQ_ARENA_RATING*
"Requiere un índice de arena personal y de equipo de %d",
- "Requiere un índice de arena personal y de equipo de %d
en la rama de 3c3 o de 5c5",
- "Requiere un índice de arena personal y de equipo de %d
en la rama de 5c5"
+ "Requiere un índice de arena personal y de equipo de %d|nen la rama de 3c3 o de 5c5",
+ "Requiere un índice de arena personal y de equipo de %d|nen la rama de 5c5"
),
'quality' => array(
"Pobre", "Común", "Poco Común", "Raro",
diff --git a/localization/locale_frfr.php b/localization/locale_frfr.php
index 7bc873bf..e1728463 100644
--- a/localization/locale_frfr.php
+++ b/localization/locale_frfr.php
@@ -605,7 +605,7 @@ $lang = array(
'receiveAlso' => "Vous recevrez également",
'spellCast' => "Vous allez être la cible du sort suivant",
'spellLearn' => "Vous apprendrez",
- 'bonusTalents' => "points de talent",
+ 'bonusTalents' => "%d |4point:points; de talent",
'spellDisplayed'=> ' (%s affichés)',
'attachment' => "[Attachment]",
'questInfo' => array(
@@ -911,12 +911,12 @@ $lang = array(
'notFound' => "Cet objet n'existe pas.",
'armor' => "Armure : %s",
'block' => "Bloquer : %s",
- 'charges' => "Charges",
+ 'charges' => "%d |4charge:charges;",
'locked' => "Verrouillé",
'ratingString' => "%s @ L%s",
'heroic' => "Héroïque",
'startQuest' => "Cet objet permet de lancer une quête",
- 'bagSlotString' => "%s %d emplacements",
+ 'bagSlotString' => '%2$s %1$d |4emplacement:emplacements;',
'fap' => "puissance d'attaque en combat farouche",
'durability' => "Durabilité %d / %d",
'realTime' => "temps réel",
@@ -926,7 +926,8 @@ $lang = array(
'randEnchant' => "<Enchantement aléatoire>",
'readClick' => "<Clique Droit pour Lire>",
'openClick' => "<Clic Droit pour Ouvrir>",
- 'set' => "(%d) Ensemble : %s",
+ 'setBonus' => "(%d) Ensemble : %s",
+ 'setName' => "%s (%d/%d)",
'partyLoot' => "Butin de groupe",
'smartLoot' => "Butin intelligent",
'indestructible'=> "Ne peut être détruit",
@@ -980,14 +981,14 @@ $lang = array(
"Méta", "rouge(s)", "jaune(s)", "bleue(s)"
),
'gemConditions' => array( // ENCHANT_CONDITION_*
- 2 => ["moins de %d gemme %s", "moins de %d gemmes %s"],
- 3 => "plus de gemmes %s que de %s", // plus de gemmes %s que |2 %s
- 5 => ["au moins %d gemme %s", "au moins %d gemmes %s"]
+ 2 => "moins de %d |4gemme:gemmes; %s",
+ 3 => "plus de gemmes %s que |2 %s",
+ 5 => "au moins %d |4gemme:gemmes; %s"
),
'reqRating' => array( // ITEM_REQ_ARENA_RATING*
"Nécessite une cote d'arène personnelle et en équipe de %d",
- "Nécessite une cote d'arène personnelle et en équipe de %d
en arène de 3c3 ou 5c5.",
- "Nécessite une cote d'arène personnelle et en équipe de %d
en arène de 5c5."
+ "Nécessite une cote d'arène personnelle et en équipe de %d|nen arène de 3c3 ou 5c5.",
+ "Nécessite une cote d'arène personnelle et en équipe de %d|nen arène de 5c5."
),
'quality' => array(
"Médiocre", "Classique", "Bonne", "Rare",
diff --git a/localization/locale_ruru.php b/localization/locale_ruru.php
index 8e5c528f..54c6da33 100644
--- a/localization/locale_ruru.php
+++ b/localization/locale_ruru.php
@@ -605,7 +605,7 @@ $lang = array(
'receiveAlso' => "Вы также получите",
'spellCast' => "Следующее заклинание будет наложено на вас",
'spellLearn' => "Вы изучите",
- 'bonusTalents' => "очков талантов",
+ 'bonusTalents' => "%d |4очко талантов:очка талантов:очков талантов;",
'spellDisplayed'=> ' (показано: %s)',
'attachment' => "[Attachment]",
'questInfo' => array(
@@ -911,12 +911,12 @@ $lang = array(
'notFound' => "Такой предмет не существует.",
'armor' => "Броня: %s",
'block' => "Блок: %s",
- 'charges' => "зарядов",
- 'locked' => "Заперт",
+ 'charges' => "%d |4заряд:заряда:зарядов;",
+ 'locked' => "Заперто",
'ratingString' => "%s @ L%s",
'heroic' => "Героический",
'startQuest' => "Этот предмет позволяет получить задание.",
- 'bagSlotString' => "%s (ячеек: %d)",
+ 'bagSlotString' => '%2$s (%1$d |4ячейка:ячейки:ячеек;)',
'fap' => "Сила атаки зверя",
'durability' => "Прочность: %d / %d",
'realTime' => "реальное время",
@@ -926,7 +926,8 @@ $lang = array(
'randEnchant' => "<Случайное зачарование>",
'readClick' => "<Щелкните правой кнопкой мыши, чтобы прочитать.>",
'openClick' => "<Щелкните правой кнопкой мыши, чтобы открыть.>",
- 'set' => "Комплект (%d предмет): %s", // todo(med): fix that shit! |4предмет:предмета:предметов;
+ 'setBonus' => "Комплект (%d |4предмет:предмета:предметов;): %s",
+ 'setName' => "%s (%d/%d)",
'partyLoot' => "Добыча группы",
'smartLoot' => "Умное распределение добычи",
'indestructible'=> "Невозможно выбросить",
@@ -967,8 +968,8 @@ $lang = array(
'dps' => "(%.1f ед. урона в секунду)",
'damage' => array( // *DAMAGE_TEMPLATE*
// basic, basic /w school, add basic, add basic /w school
- 'single' => ["Урон: %d", "%d ед. %s", "+ %d ед. урона", "+%d ед. урона (%s)" ],
- 'range' => ["Урон: %d - %d", "%d - %d ед. %s", "+ %d - %d ед. урона", "+%d - %d ед. урона (%s)" ],
+ 'single' => ["Урон: %d", "%d ед. |3-6(%s)", "+ %d ед. урона", "+%d ед. урона (%s)" ],
+ 'range' => ["Урон: %d - %d", "%d - %d ед. |3-6(%s)", "+ %d - %d ед. урона", "+%d - %d ед. урона (%s)" ],
'ammo' => ["Добавляет %g ед. урона в секунду", "Добавляет %g ед. урона (%s) в секунду", "+ ед. урона в секунду от боеприпасов (%g)", "+ %g %s ед. урона в секунду" ]
),
'gems' => "Самоцветы",
@@ -980,14 +981,14 @@ $lang = array(
"Особый", "Красный", "Желтый", "Синий"
),
'gemConditions' => array( // ENCHANT_CONDITION_* so whats that pipe-code..?
- 2 => ["меньше, чем %d камень %s цвета", "меньше, чем %d камня %s цвета"], // меньше, чем %d |4камень:камня:камней; |3-1(%s) цвета
- 3 => "больше %s, чем %s камней", // больше |3-7(%s), чем |3-7(%s) камней
- 5 => ["хотя бы %d камень %s цвета", "хотя бы %d камня %s цвета"] // хотя бы %d |4камень:камня:камней; |3-1(%s) цвета; same here
+ 2 => "меньше, чем %d |4камень:камня:камней; |3-1(%s) цвета",
+ 3 => "больше |3-7(%s), чем |3-7(%s) камней",
+ 5 => "хотя бы %d |4камень:камня:камней; |3-1(%s) цвета"
),
'reqRating' => array( // ITEM_REQ_ARENA_RATING*
"Требуется личный и командный рейтинг на арене не ниже %d",
- "Требуется личный рейтинг и рейтинг команды Арены %d
в команде 3 на 3 или 5 на 5",
- "Требуется личный рейтинг и рейтинг команды Арены %d
в команде 5 на 5"
+ "Требуется личный рейтинг и рейтинг команды Арены %d|nв команде 3 на 3 или 5 на 5",
+ "Требуется личный рейтинг и рейтинг команды Арены %d|nв команде 5 на 5"
),
'quality' => array(
"Низкий", "Обычный", "Необычный", "Редкий",
diff --git a/template/pages/quest.tpl.php b/template/pages/quest.tpl.php
index 60f09105..75de1a98 100644
--- a/template/pages/quest.tpl.php
+++ b/template/pages/quest.tpl.php
@@ -190,11 +190,11 @@ if ($g = $this->gains):
endif;
if (!empty($g['title'])):
- echo ' '.sprintf(Lang::quest('theTitle'), $g['title'])."
\n";
+ echo ' '.Lang::quest('theTitle', [$g['title']])."
\n";
endif;
if (!empty($g['tp'])):
- echo ' '.$g['tp'].' '.Lang::quest('bonusTalents')."
\n";
+ echo ' '.Lang::quest('bonusTalents', [$g['tp']])."
\n";
endif;
echo " \n";