diff --git a/endpoints/achievement/achievement.php b/endpoints/achievement/achievement.php index 3d36494b..0cb6df45 100644 --- a/endpoints/achievement/achievement.php +++ b/endpoints/achievement/achievement.php @@ -107,13 +107,33 @@ class AchievementBaseResponse extends TemplateResponse implements ICache default => Lang::game('si', SIDE_BOTH) // 0, 3 }; + // id + $infobox[] = Lang::achievement('id') . $this->typeId; + // icon if ($_ = $this->subject->getField('iconId')) { - $infobox[] = Util::ucFirst(lang::game('icon')).Lang::main('colon').'[icondb='.$_.' name=true]'; + $infobox[] = Util::ucFirst(Lang::game('icon')).Lang::main('colon').'[icondb='.$_.' name=true]'; $this->extendGlobalIds(Type::ICON, $_); } + // profiler relateed (note that this is part of the cache. I don't think this is important enough to calc for every view) + if (Cfg::get('PROFILER_ENABLE') && !($this->subject->getField('flags') & ACHIEVEMENT_FLAG_COUNTER)) + { + $x = DB::Aowow()->selectCell('SELECT COUNT(1) FROM ?_profiler_completion_achievements WHERE `achievementId` = ?d', $this->typeId); + $y = DB::Aowow()->selectCell('SELECT COUNT(1) FROM ?_profiler_profiles WHERE `realm` IS NOT NULL AND `realmGUID` IS NOT NULL'); + $infobox[] = Lang::profiler('attainedBy', [round(($x ?: 0) * 100 / ($y ?: 1))]); + + // - js component missing; + // - can't yet assign styles to li element + // if (User::getPinnedCharacter()) + // $infobox[] = Lang::profiler('completion') . '[span class="compact-completion-display"][/span]'; // [li style="display:none"]...[/li] + } + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/class/class.php b/endpoints/class/class.php index 50ca4666..f983c679 100644 --- a/endpoints/class/class.php +++ b/endpoints/class/class.php @@ -103,6 +103,13 @@ class ClassBaseResponse extends TemplateResponse implements ICache if ($specList) $infobox[] = Lang::game('specs').'[ul][li]'.implode('[/li][li]', $specList).'[/li][/ul]'; + // id + $infobox[] = Lang::chrClass('id') . $this->typeId; + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/currency/currency.php b/endpoints/currency/currency.php index 31bc6823..cc65b9e8 100644 --- a/endpoints/currency/currency.php +++ b/endpoints/currency/currency.php @@ -72,13 +72,20 @@ class CurrencyBaseResponse extends TemplateResponse implements ICache if ($_ = $this->subject->getField('cap')) $infobox[] = Lang::currency('cap').Lang::nf($_); + // id + $infobox[] = Lang::currency('id') . $this->typeId; + // icon if ($_ = $this->subject->getField('iconId')) { - $infobox[] = Util::ucFirst(lang::game('icon')).Lang::main('colon').'[icondb='.$_.' name=true]'; + $infobox[] = Util::ucFirst(Lang::game('icon')).Lang::main('colon').'[icondb='.$_.' name=true]'; $this->extendGlobalIds(Type::ICON, $_); } + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/emote/emote.php b/endpoints/emote/emote.php index d5e16070..317d0130 100644 --- a/endpoints/emote/emote.php +++ b/endpoints/emote/emote.php @@ -94,6 +94,9 @@ class EmoteBaseResponse extends TemplateResponse implements ICache } } + // id + $infobox[] = Lang::emote('id') . $this->typeId; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/enchantment/enchantment.php b/endpoints/enchantment/enchantment.php index ab874512..b836cbd1 100644 --- a/endpoints/enchantment/enchantment.php +++ b/endpoints/enchantment/enchantment.php @@ -85,6 +85,13 @@ class EnchantmentBaseResponse extends TemplateResponse implements ICache $infobox[] = $foo; } + // id + $infobox[] = Lang::enchantment('id') . $this->typeId; + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/event/event.php b/endpoints/event/event.php index 5e1530b8..71a722e6 100644 --- a/endpoints/event/event.php +++ b/endpoints/event/event.php @@ -88,9 +88,16 @@ class EventBaseResponse extends TemplateResponse implements ICache $infobox[] = Lang::npc('rank', 3).Lang::main('colon').'[npc='.$_.']'; } - // display internal id to staff - if (User::isInGroup(U_GROUP_STAFF)) - $infobox[] = 'Event-Id'.Lang::main('colon').$this->typeId; + // id + $infobox[] = Lang::event('id') . $this->typeId; + + // display holiday id to staff + if ($_holidayId && User::isInGroup(U_GROUP_STAFF)) + $infobox[] = 'Holiday ID'.Lang::main('colon').$_holidayId; + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/faction/faction.php b/endpoints/faction/faction.php index 1279b62b..868b9481 100644 --- a/endpoints/faction/faction.php +++ b/endpoints/faction/faction.php @@ -96,6 +96,26 @@ class FactionBaseResponse extends TemplateResponse implements ICache if ($_ = $this->subject->getField('side')) $infobox[] = Lang::main('side').'[span class=icon-'.($_ == SIDE_ALLIANCE ? 'alliance' : 'horde').']'.Lang::game('si', $_).'[/span]'; + // id + $infobox[] = Lang::faction('id') . $this->typeId; + + // profiler relateed (note that this is part of the cache. I don't think this is important enough to calc for every view) + if (Cfg::get('PROFILER_ENABLE') && !($this->subject->getField('cuFlags') & CUSTOM_EXCLUDE_FOR_LISTVIEW)) + { + $x = DB::Aowow()->selectCell('SELECT COUNT(1) FROM ?_profiler_completion_reputation WHERE `standing` >= ?d AND `factionId` = ?d', 42000, $this->typeId); + $y = DB::Aowow()->selectCell('SELECT COUNT(1) FROM ?_profiler_profiles WHERE `realm` IS NOT NULL AND `realmGUID` IS NOT NULL'); + $infobox[] = Lang::profiler('attainedBy', [round(($x ?: 0) * 100 / ($y ?: 1))]); + + // - js component missing; + // - can't yet assign styles to li element + // if (User::getPinnedCharacter()) + // $infobox[] = Lang::profiler('completion') . '[span class="compact-completion-display"][/span]'; // [li style="display:none"]...[/li] + } + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/guide/changelog.php b/endpoints/guide/changelog.php index 685dfad3..614af6d6 100644 --- a/endpoints/guide/changelog.php +++ b/endpoints/guide/changelog.php @@ -33,7 +33,7 @@ class GuideChangelogResponse extends TemplateResponse if (!$guide->canBeViewed() && !$guide->userCanView()) $this->forward('?guides='.$guide->getField('category')); - $this->h1 = lang::guide('clTitle', [$this->_get['id'], $guide->getField('title')]); + $this->h1 = Lang::guide('clTitle', [$this->_get['id'], $guide->getField('title')]); if (!$this->h1) $this->h1 = $guide->getField('name'); diff --git a/endpoints/item/item.php b/endpoints/item/item.php index f476b5b9..2e5880fe 100644 --- a/endpoints/item/item.php +++ b/endpoints/item/item.php @@ -103,10 +103,13 @@ class ItemBaseResponse extends TemplateResponse implements ICache SIDE_BOTH => Lang::game('si', SIDE_BOTH) }; + // id + $infobox[] = Lang::item('id') . $this->typeId; + // icon if ($_ = $this->subject->getField('iconId')) { - $infobox[] = Util::ucFirst(lang::game('icon')).Lang::main('colon').'[icondb='.$_.' name=true]'; + $infobox[] = Util::ucFirst(Lang::game('icon')).Lang::main('colon').'[icondb='.$_.' name=true]'; $this->extendGlobalIds(Type::ICON, $_); } @@ -316,6 +319,10 @@ class ItemBaseResponse extends TemplateResponse implements ICache if ($_bagFamily & 0x0100) $infobox[] = Lang::item('atKeyring'); + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/itemset/itemset.php b/endpoints/itemset/itemset.php index 398fe55e..2cd46422 100644 --- a/endpoints/itemset/itemset.php +++ b/endpoints/itemset/itemset.php @@ -125,6 +125,13 @@ class ItemsetBaseResponse extends TemplateResponse implements ICache if ($_ta) $infobox[] = Lang::itemset('_tag').'[url=?itemsets&filter=ta='.$_ta.']'.Lang::itemset('notes', $_ta).'[/url]'; + // id + $infobox[] = Lang::itemset('id') . $this->subject->getField('refSetId'); + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/mail/mail.php b/endpoints/mail/mail.php index 705c6aca..5179b6e8 100644 --- a/endpoints/mail/mail.php +++ b/endpoints/mail/mail.php @@ -108,6 +108,9 @@ class MailBaseResponse extends TemplateResponse implements ICache } } + // id + $infobox[] = Lang::mail('id') . $this->typeId; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/npc/npc.php b/endpoints/npc/npc.php index 3d4624e2..25e7cf72 100644 --- a/endpoints/npc/npc.php +++ b/endpoints/npc/npc.php @@ -194,6 +194,13 @@ class NpcBaseResponse extends TemplateResponse implements ICache if ($this->subject->getField('npcflag') & (NPC_FLAG_SPIRIT_HEALER | NPC_FLAG_SPIRIT_GUIDE)) $infobox[] = Lang::npc('extraFlags', CREATURE_FLAG_EXTRA_GHOST_VISIBILITY); + // id + $infobox[] = Lang::npc('id') . $this->typeId; + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if (User::isInGroup(U_GROUP_EMPLOYEE)) { // AI diff --git a/endpoints/object/object.php b/endpoints/object/object.php index 9c6a1ba2..6ebfbe6f 100644 --- a/endpoints/object/object.php +++ b/endpoints/object/object.php @@ -196,6 +196,13 @@ class ObjectBaseResponse extends TemplateResponse implements ICache $infobox[] = $buff; } + // id + $infobox[] = Lang::gameObject('id') . $this->typeId; + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + // AI if (User::isInGroup(U_GROUP_EMPLOYEE)) if ($_ = $this->subject->getField('ScriptOrAI')) diff --git a/endpoints/pet/pet.php b/endpoints/pet/pet.php index f383a0f7..30d0db14 100644 --- a/endpoints/pet/pet.php +++ b/endpoints/pet/pet.php @@ -73,13 +73,20 @@ class PetBaseResponse extends TemplateResponse implements ICache if ($this->subject->getField('exotic')) $infobox[] = '[url=?spell=53270]'.Lang::pet('exotic').'[/url]'; + // id + $infobox[] = Lang::pet('id') . $this->typeId; + // icon if ($_ = $this->subject->getField('iconId')) { - $infobox[] = Util::ucFirst(lang::game('icon')).Lang::main('colon').'[icondb='.$_.' name=true]'; + $infobox[] = Util::ucFirst(Lang::game('icon')).Lang::main('colon').'[icondb='.$_.' name=true]'; $this->extendGlobalIds(Type::ICON, $_); } + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/quest/quest.php b/endpoints/quest/quest.php index 305900d6..daf291f1 100644 --- a/endpoints/quest/quest.php +++ b/endpoints/quest/quest.php @@ -271,6 +271,26 @@ class QuestBaseResponse extends TemplateResponse implements ICache $infobox[] = Lang::game('difficulty').implode('[small]  [/small]', $_); } + // id + $infobox[] = Lang::quest('id') . $this->typeId; + + // profiler relateed (note that this is part of the cache. I don't think this is important enough to calc for every view) + if (Cfg::get('PROFILER_ENABLE') && !($_flags & QUEST_FLAG_UNAVAILABLE || $this->subject->getField('cuFlags') & CUSTOM_EXCLUDE_FOR_LISTVIEW)) + { + $x = DB::Aowow()->selectCell('SELECT COUNT(1) FROM ?_profiler_completion_quests WHERE `questId` = ?d', $this->typeId); + $y = DB::Aowow()->selectCell('SELECT COUNT(1) FROM ?_profiler_profiles WHERE `realm` IS NOT NULL AND `realmGUID` IS NOT NULL'); + $infobox[] = Lang::profiler('attainedBy', [round(($x ?: 0) * 100 / ($y ?: 1))]); + + // - js component missing; + // - can't yet assign styles to li element + // if (User::getPinnedCharacter()) + // $infobox[] = Lang::profiler('completion') . '[span class="compact-completion-display"][/span]'; // [li style="display:none"]...[/li] + } + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/race/race.php b/endpoints/race/race.php index 1bb261c6..75c5cd47 100644 --- a/endpoints/race/race.php +++ b/endpoints/race/race.php @@ -99,6 +99,13 @@ class RaceBaseResponse extends TemplateResponse implements ICache $infobox[] = Lang::race('startZone').Lang::main('colon').'[zone='.$_.']'; } + // id + $infobox[] = Lang::race('id') . $this->typeId; + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/skill/skill.php b/endpoints/skill/skill.php index 2277c66b..18fb8d8e 100644 --- a/endpoints/skill/skill.php +++ b/endpoints/skill/skill.php @@ -70,6 +70,9 @@ class SkillBaseResponse extends TemplateResponse implements ICache $infobox = Lang::getInfoBoxForFlags($this->subject->getField('cuFlags')); + // id + $infobox[] = Lang::skill('id') . $this->typeId; + // icon if ($_ = $this->subject->getField('iconId')) { @@ -77,6 +80,10 @@ class SkillBaseResponse extends TemplateResponse implements ICache $this->extendGlobalIds(Type::ICON, $_); } + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/spell/spell.php b/endpoints/spell/spell.php index 8f1e6645..ad9fd262 100644 --- a/endpoints/spell/spell.php +++ b/endpoints/spell/spell.php @@ -2345,13 +2345,33 @@ class SpellBaseResponse extends TemplateResponse implements ICache if ($cost = $this->subject->getField('trainingCost')) $infobox[] = Lang::spell('trainingCost').'[money='.$cost.']'; + // id + $infobox[] = Lang::spell('id') . $this->typeId; + // icon if ($_ = $this->subject->getField('iconId')) { + $infobox[] = Util::ucFirst(Lang::game('icon')).Lang::main('colon').'[icondb='.$_.' name=true]'; $this->extendGlobalIds(Type::ICON, $_); - $infobox[] = Util::ucFirst(lang::game('icon')).Lang::main('colon').'[icondb='.$_.' name=true]'; } + // profiler relateed (note that this is part of the cache. I don't think this is important enough to calc for every view) + if (Cfg::get('PROFILER_ENABLE') && in_array($this->subject->getField('typeCat'), [-5, -6]) && !($this->subject->getField('cuFlags') & CUSTOM_EXCLUDE_FOR_LISTVIEW)) + { + $x = DB::Aowow()->selectCell('SELECT COUNT(1) FROM ?_profiler_completion_spells WHERE `spellId` = ?d', $this->typeId); + $y = DB::Aowow()->selectCell('SELECT COUNT(1) FROM ?_profiler_profiles WHERE `realm` IS NOT NULL AND `realmGUID` IS NOT NULL'); + $infobox[] = Lang::profiler('attainedBy', [round(($x ?: 0) * 100 / ($y ?: 1))]); + + // - js component missing; + // - can't yet assign styles to li element + // if (User::getPinnedCharacter()) + // $infobox[] = Lang::profiler('completion') . '[span class="compact-completion-display"][/span]'; // [li style="display:none"]...[/li] + } + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + // used in mode foreach ($this->difficulties as $n => $id) if ($id == $this->typeId) diff --git a/endpoints/title/title.php b/endpoints/title/title.php index 84783c94..382ce66b 100644 --- a/endpoints/title/title.php +++ b/endpoints/title/title.php @@ -84,6 +84,26 @@ class TitleBaseResponse extends TemplateResponse implements ICache $infobox[] = Lang::game('eventShort', ['[event='.$eId.']']); } + // id + $infobox[] = Lang::title('id') . $this->typeId; + + // profiler relateed (note that this is part of the cache. I don't think this is important enough to calc for every view) + if (Cfg::get('PROFILER_ENABLE')) + { + $x = DB::Aowow()->selectCell('SELECT COUNT(1) FROM ?_profiler_completion_titles WHERE `titleId` = ?d', $this->typeId); + $y = DB::Aowow()->selectCell('SELECT COUNT(1) FROM ?_profiler_profiles WHERE `realm` IS NOT NULL AND `realmGUID` IS NOT NULL'); + $infobox[] = Lang::profiler('attainedBy', [round(($x ?: 0) * 100 / ($y ?: 1))]); + + // - js component missing; + // - can't yet assign styles to li element + // if (User::getPinnedCharacter()) + // $infobox[] = Lang::profiler('completion') . '[span class="compact-completion-display"][/span]'; // [li style="display:none"]...[/li] + } + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($infobox) $this->infobox = new InfoboxMarkup($infobox, ['allow' => Markup::CLASS_STAFF, 'dbpage' => true], 'infobox-contents0'); diff --git a/endpoints/zone/zone.php b/endpoints/zone/zone.php index 548b4a0d..2039efc9 100644 --- a/endpoints/zone/zone.php +++ b/endpoints/zone/zone.php @@ -188,6 +188,13 @@ class ZoneBaseResponse extends TemplateResponse implements ICache } } + // id + $infobox[] = Lang::zone('id') . $this->typeId; + + // original name + if (Lang::getLocale() != Locale::EN) + $infobox[] = Util::ucFirst(Lang::lang(Locale::EN->value) . Lang::main('colon')) . '[copy button=false]'.$this->subject->getField('name_loc0').'[/copy][/li]'; + if ($botRows = array_filter($quickFactsRows, fn($x) => $x > 0, ARRAY_FILTER_USE_KEY)) $infobox = array_merge($infobox, $botRows); diff --git a/localization/locale_dede.php b/localization/locale_dede.php index af068ae1..1ca2f222 100644 --- a/localization/locale_dede.php +++ b/localization/locale_dede.php @@ -236,6 +236,8 @@ $lang = array( 'atCaptain' => "Teamkapitän", 'atSize' => "Größe: ", 'profiler' => "Charakter-Profiler", + 'completion' => "Vervollständigung: ", + 'attainedBy' => "Erlangt von %d%% der Profile", 'notFound' => array( 'guild' => "Diese Gilde existiert nicht oder wurde noch nicht in die Datenbank übernommen.", 'arenateam' => "Dieses Arena Team existiert nicht oder wurde noch nicht in die Datenbank übernommen.", @@ -1070,6 +1072,7 @@ $lang = array( 'posts' => "Forenbeiträge: " ), 'emote' => array( + 'id' => "Emote-ID: ", 'notFound' => "Dieses Emote existiert nicht.", // 'self' => "An Euch selbst", // 'target' => "An Andere mit Ziel", @@ -1102,9 +1105,10 @@ $lang = array( 'state' => ['Einmalig', 'Stetiger Zustand', 'Stetiges Emote'] ), 'enchantment' => array( + 'id' => "Verzauberungs-ID: ", + 'notFound' => "Diese Verzauberung existiert nicht.", 'details' => "Details", 'activation' => "Aktivierung", - 'notFound' => "Diese Verzauberung existiert nicht.", 'types' => array( 1 => "Zauber (Auslösung)", 3 => "Zauber (Anlegen)", 7 => "Zauber (Benutzen)", 8 => "Prismatischer Sockel", 5 => "Statistik", 2 => "Waffenschaden", 6 => "DPS", 4 => "Verteidigung" @@ -1116,6 +1120,7 @@ $lang = array( 'types' => ['Unbenutzt', 'Gasthaus', 'Teleporter', 'Questziel', 'Smarter Trigger', 'Script'] ), 'gameObject' => array( + 'id' => "Objekt-ID: ", 'notFound' => "Dieses Objekt existiert nicht.", 'cat' => [0 => "Anderes", 3 => "Behälter", 6 => "Fallen", 9 => "Bücher", 25 => "Fischschwärme", -5 => "Truhen", -3 => "Kräuter", -4 => "Erzadern", -2 => "Quest", -6 => "Werkzeuge"], 'type' => [ 3 => "Behälter", 6 => "", 9 => "Buch", 25 => "", -5 => "Truhe", -3 => "Kraut", -4 => "Erzvorkommen", -2 => "Quest", -6 => ""], @@ -1148,6 +1153,7 @@ $lang = array( ) ), 'npc' => array( + 'id' => "NPC-ID: ", 'notFound' => "Dieser NPC existiert nicht.", 'classification'=> "Einstufung: %s", 'petFamily' => "Tierart: ", @@ -1243,6 +1249,7 @@ $lang = array( ) ), 'event' => array( + 'id' => "Weltereignis-ID: ", 'notFound' => "Dieses Weltereignis existiert nicht.", 'start' => "Anfang: ", 'end' => "Ende: ", @@ -1251,6 +1258,7 @@ $lang = array( 'category' => ["Nicht kategorisiert", "Feiertage", "Wiederkehrend", "Spieler vs. Spieler"] ), 'achievement' => array( + 'id' => "Erfolgs-ID: ", 'notFound' => "Dieser Erfolg existiert nicht.", 'criteria' => "Kriterien", 'points' => "Punkte", @@ -1309,9 +1317,11 @@ $lang = array( ) ), 'chrClass' => array( + 'id' => "Klassen-ID: ", 'notFound' => "Diese Klasse existiert nicht." ), 'race' => array( + 'id' => "Volks-ID: ", 'notFound' => "Dieses Volk existiert nicht.", 'racialLeader' => "Volksanführer: ", 'startZone' => "Startgebiet", @@ -1349,6 +1359,7 @@ $lang = array( ) ), 'zone' => array( + 'id' => "Gebiets-ID: ", 'notFound' => "Dieses Gebiet existiert nicht.", 'attunement' => ["Einstimmung: ", "Heroische Einstimmung: "], 'key' => ["Schlüssel: ", "Heroischer Schlüssel: "], @@ -1377,6 +1388,7 @@ $lang = array( ) ), 'quest' => array( + 'id' => "Quest-ID: ", 'notFound' => "Diese Quest existiert nicht.", '_transfer' => 'Dieses Quest wird mit %s vertauscht, wenn Ihr zur %s wechselt.', 'questLevel' => "Stufe %s", @@ -1514,6 +1526,7 @@ $lang = array( 'notFound' => "Dieses Icon existiert nicht." ), 'title' => array( + 'id' => "Titel-ID: ", 'notFound' => "Dieser Titel existiert nicht.", '_transfer' => 'Dieser Titel wird mit %s vertauscht, wenn Ihr zur %s wechselt.', 'cat' => array( @@ -1521,6 +1534,7 @@ $lang = array( ) ), 'skill' => array( + 'id' => "Fertigkeits-ID: ", 'notFound' => "Diese Fertigkeit existiert nicht.", 'cat' => array( -6 => "Haustiere", -5 => "Reittiere", -4 => "Völkerfertigkeiten", 5 => "Attribute", 6 => "Waffenfertigkeiten", 7 => "Klassenfertigkeiten", 8 => "Rüstungssachverstand", @@ -1528,6 +1542,7 @@ $lang = array( ) ), 'currency' => array( + 'id' => "Währungs-ID: ", 'notFound' => "Diese Währung existiert nicht.", 'cap' => "Obergrenze: ", 'cat' => array( @@ -1549,6 +1564,7 @@ $lang = array( ) ), 'mail' => array( + 'id' => "Brief-ID: ", 'notFound' => "Dieser Brief existiert nicht.", 'attachment' => "Anlage", 'mailDelivery' => 'Ihr werdet diesen Brief%s%s erhalten', @@ -1559,12 +1575,14 @@ $lang = array( 'untitled' => "Unbetitelter Brief #%d" ), 'pet' => array( + 'id' => "Tierart-ID: ", 'notFound' => "Diese Tierart existiert nicht.", 'exotic' => "Exotisch", 'cat' => ["Wildheit", "Hartnäckigkeit", "Gerissenheit"], 'food' => ["Fleisch", "Fisch", "Käse", "Brot", "Fungus", "Obst", "Rohes Fleisch", "Roher Fisch"] ), 'faction' => array( + 'id' => "Fraktions-ID: ", 'notFound' => "Diese Fraktion existiert nicht.", 'spillover' => "Reputationsüberlauf", 'spilloverDesc' => "Für diese Fraktion erhaltener Ruf wird zusätzlich mit den unten aufgeführten Fraktionen anteilig verrechnet.", @@ -1580,6 +1598,7 @@ $lang = array( ) ), 'itemset' => array( + 'id' => "Ausrüstungsset-ID: ", 'notFound' => "Dieses Ausrüstungsset existiert nicht.", '_desc' => "%s ist das %s. Es enthält %s Teile.", '_descTagless' => "%s ist ein Ausrüstungsset, das %s Teile enthält.", @@ -1605,6 +1624,7 @@ $lang = array( ) ), 'spell' => array( + 'id' => "Zauber-ID: ", 'notFound' => "Dieser Zauber existiert nicht.", '_spellDetails' => "Zauberdetails", '_cost' => "Kosten", @@ -2168,6 +2188,7 @@ $lang = array( ) ), 'item' => array( + 'id' => "Gegenstands-ID: ", 'notFound' => "Dieser Gegenstand existiert nicht .", 'armor' => "%s Rüstung", 'block' => "%s Blocken", diff --git a/localization/locale_enus.php b/localization/locale_enus.php index 0901c76b..6e1bc7e6 100644 --- a/localization/locale_enus.php +++ b/localization/locale_enus.php @@ -236,6 +236,8 @@ $lang = array( 'atCaptain' => "Arena Team Captain", 'atSize' => "Size: ", 'profiler' => "Character Profiler", + 'completion' => "Completion: ", + 'attainedBy' => "Attained by %d%% of profiles", 'notFound' => array( 'guild' => "This Guild doesn't exist or is not yet in the database.", 'arenateam' => "This Arena Team doesn't exist or is not yet in the database.", @@ -1070,6 +1072,7 @@ $lang = array( 'posts' => "Forum posts: " ), 'emote' => array( + 'id' => "Emote ID: ", 'notFound' => "This Emote doesn't exist.", // 'self' => "To Yourself", // 'target' => "To others with a target", @@ -1102,9 +1105,10 @@ $lang = array( 'state' => ['Oneshot', 'Continuous State', 'Continuous Emote'] ), 'enchantment' => array( + 'id' => "Enchantment ID: ", + 'notFound' => "This enchantment doesn't exist.", 'details' => "Details", 'activation' => "Activation", - 'notFound' => "This enchantment doesn't exist.", 'types' => array( 1 => "Proc Spell", 3 => "Equip Spell", 7 => "Use Spell", 8 => "Prismatic Socket", 5 => "Statistics", 2 => "Weapon Damage", 6 => "DPS", 4 => "Defense" @@ -1116,6 +1120,7 @@ $lang = array( 'types' => ['Unused', 'Tavern', 'Teleporter', 'Quest Objective', 'Smart Trigger', 'Script'] ), 'gameObject' => array( + 'id' => "Object ID: ", 'notFound' => "This object doesn't exist.", 'cat' => [0 => "Other", 3 => "Containers", 6 => "Traps", 9 => "Books", 25 => "Fishing Pools", -5 => "Chests", -3 => "Herbs", -4 => "Mineral Veins", -2 => "Quest", -6 => "Tools"], 'type' => [ 3 => "Container", 6 => "", 9 => "Book", 25 => "", -5 => "Chest", -3 => "Herb", -4 => "Mineral Vein", -2 => "Quest", -6 => ""], // used for tooltip @@ -1148,6 +1153,7 @@ $lang = array( ) ), 'npc' => array( + 'id' => "NPC ID: ", 'notFound' => "This NPC doesn't exist.", 'classification'=> "Classification: %s", 'petFamily' => "Pet familiy: ", @@ -1243,6 +1249,7 @@ $lang = array( ) ), 'event' => array( + 'id' => "World Event ID: ", 'notFound' => "This world event doesn't exist.", 'start' => "Start: ", 'end' => "End: ", @@ -1251,6 +1258,7 @@ $lang = array( 'category' => ["Uncategorized", "Holidays", "Recurring", "Player vs. Player"] ), 'achievement' => array( + 'id' => "Achievement ID: ", 'notFound' => "This achievement doesn't exist.", 'criteria' => "Criteria", 'points' => "Points", @@ -1309,9 +1317,11 @@ $lang = array( ) ), 'chrClass' => array( + 'id' => "Class ID: ", 'notFound' => "This class doesn't exist." ), 'race' => array( + 'id' => "Race ID: ", 'notFound' => "This race doesn't exist.", 'racialLeader' => "Racial leader: ", 'startZone' => "Starting zone", @@ -1349,6 +1359,7 @@ $lang = array( ) ), 'zone' => array( + 'id' => "Zone ID: ", 'notFound' => "This zone doesn't exist.", 'attunement' => ["Attunement: ", "Heroic attunement: "], 'key' => ["Key: ", "Heroic key: "], @@ -1377,6 +1388,7 @@ $lang = array( ) ), 'quest' => array( + 'id' => "Quest ID: ", 'notFound' => "This quest doesn't exist.", '_transfer' => 'This quest will be converted to %s if you transfer to %s.', 'questLevel' => "Level %s", @@ -1514,6 +1526,7 @@ $lang = array( 'notFound' => "This icon doesn't exist." ), 'title' => array( + 'id' => "Title ID: ", 'notFound' => "This title doesn't exist.", '_transfer' => 'This title will be converted to %s if you transfer to %s.', 'cat' => array( @@ -1521,6 +1534,7 @@ $lang = array( ) ), 'skill' => array( + 'id' => "Skill ID: ", 'notFound' => "This skill doesn't exist.", 'cat' => array( -6 => "Companions", -5 => "Mounts", -4 => "Racial Traits", 5 => "Attributes", 6 => "Weapon Skills", 7 => "Class Skills", 8 => "Armor Proficiencies", @@ -1528,6 +1542,7 @@ $lang = array( ) ), 'currency' => array( + 'id' => "Currency ID: ", 'notFound' => "This currency doesn't exist.", 'cap' => "Total cap: ", 'cat' => array( @@ -1549,6 +1564,7 @@ $lang = array( ) ), 'mail' => array( + 'id' => "Mail ID: ", 'notFound' => "This mail doesn't exist.", 'attachment' => "Attachment", 'mailDelivery' => 'You will receive this letter%s%s', @@ -1559,12 +1575,14 @@ $lang = array( 'untitled' => "Untitled Mail #%d" ), 'pet' => array( + 'id' => "Pet family ID: ", 'notFound' => "This pet family doesn't exist.", 'exotic' => "Exotic", 'cat' => ["Ferocity", "Tenacity", "Cunning"], 'food' => ["Meat", "Fish", "Cheese", "Bread", "Fungus", "Fruit", "Raw Meat", "Raw Fish"] // ItemPetFood.dbc ), 'faction' => array( + 'id' => "Faction ID: ", 'notFound' => "This faction doesn't exist.", 'spillover' => "Reputation Spillover", 'spilloverDesc' => "Gaining reputation with this faction also yields a proportional gain with the factions listed below.", @@ -1580,6 +1598,7 @@ $lang = array( ) ), 'itemset' => array( + 'id' => "Item Set ID: ", 'notFound' => "This item set doesn't exist.", '_desc' => "%s is the %s. It contains %s pieces.", '_descTagless' => "%s is an item set that contains %s pieces.", @@ -1605,6 +1624,7 @@ $lang = array( ) ), 'spell' => array( + 'id' => "Spell ID: ", 'notFound' => "This spell doesn't exist.", '_spellDetails' => "Spell Details", '_cost' => "Cost", @@ -2168,6 +2188,7 @@ $lang = array( ) ), 'item' => array( + 'id' => "Item ID: ", 'notFound' => "This item doesn't exist.", 'armor' => "%s Armor", // ARMOR_TEMPLATE 'block' => "%s Block", // SHIELD_BLOCK_TEMPLATE diff --git a/localization/locale_eses.php b/localization/locale_eses.php index 0f75fb34..e1f772ac 100644 --- a/localization/locale_eses.php +++ b/localization/locale_eses.php @@ -236,6 +236,8 @@ $lang = array( 'atCaptain' => "Capitán de equipo de arena", 'atSize' => "Tamaño: ", 'profiler' => "Gestor de Perfiles", // Perfiles de Personaje? (character profiler) + 'completion' => "Terminación: ", + 'attainedBy' => "Obtenido por %d%% de perfiles", 'notFound' => array( 'guild' => "Esta hermandad no existe o aún no está en la base de datos.", 'arenateam' => "Este equipo de arena no existe o aún no está en la base de datos.", @@ -315,7 +317,7 @@ $lang = array( 'achievements' => "Logros", 'title' => "título", 'titles' => "Títulos", - 'event' => "Suceso mundial ", + 'event' => "Suceso mundial", 'events' => "Eventos del mundo", 'class' => "clase", 'classes' => "Clases", @@ -323,7 +325,7 @@ $lang = array( 'races' => "Razas", 'skill' => "habilidad", 'skills' => "Habilidades", - 'currency' => "monedas", + 'currency' => "moneda", 'currencies' => "Monedas", 'sound' => "sonido", 'sounds' => "Sonidos", @@ -1070,6 +1072,7 @@ $lang = array( 'posts' => "Mensajes en los foros: " ), 'emote' => array( + 'id' => "ID de Emoticón: ", 'notFound' => "Este emoticón no existe.", // 'self' => "Para Usted", // 'target' => "Para otros con un objetivo", @@ -1102,9 +1105,10 @@ $lang = array( 'state' => ['Oneshot', 'Estado continuo', 'Emoticono continuo'] ), 'enchantment' => array( + 'id' => "ID de Encantamiento: ", + 'notFound' => "Este encantamiento no existe.", 'details' => "Detalles", 'activation' => "Activación", - 'notFound' => "Este encantamiento no existe.", 'types' => array( 1 => "Prob. Hechizo", 3 => "Equipar Hechizo", 7 => "Usar Hechizo", 8 => "Ranura prismática", 5 => "Atributos", 2 => "Daño de arma", 6 => "DPS", 4 => "Defensa" @@ -1116,6 +1120,7 @@ $lang = array( 'types' => ['Sin usar', 'Taberna', 'Teletransportador', 'Objetivo de misión', 'Activador inteligente', 'Script'] ), 'gameObject' => array( + 'id' => "ID de Entidad: ", 'notFound' => "Esta entidad no existe.", 'cat' => [0 => "Otros", 3 => "Contenedores", 6 => "Trampas", 9 => "Libros", 25 => "Bancos de peces", -5 => "Cofres", -3 => "Hierbas", -4 => "Venas de minerales", -2 => "Misiones", -6 => "Herramientas"], 'type' => [ 3 => "Contenedore", 6 => "", 9 => "Libro", 25 => "", -5 => "Cofre", -3 => "Hierba", -4 => "Filóne de mineral", -2 => "Misión", -6 => ""], @@ -1148,6 +1153,7 @@ $lang = array( ) ), 'npc' => array( + 'id' => "ID de PNJ: ", 'notFound' => "Este PNJ no existe.", 'classification'=> "Clasificación: %s", 'petFamily' => "Familia de mascota: ", @@ -1243,6 +1249,7 @@ $lang = array( ) ), 'event' => array( + 'id' => "ID de Suceso mundial: ", 'notFound' => "Este evento del mundo no existe.", 'start' => "Empieza: ", 'end' => "Termina: ", @@ -1251,6 +1258,7 @@ $lang = array( 'category' => ["Sin categoría", "Vacacionales", "Periódicos", "Jugador contra Jugador"] ), 'achievement' => array( + 'id' => "ID de Logro: ", 'notFound' => "Este logro no existe.", 'criteria' => "Requisitos", 'points' => "Puntos", @@ -1309,9 +1317,11 @@ $lang = array( ) ), 'chrClass' => array( + 'id' => "ID de Clase: ", 'notFound' => "Esta clase no existe." ), 'race' => array( + 'id' => "ID de Raza: ", 'notFound' => "Esta raza no existe.", 'racialLeader' => "Lider racial: ", 'startZone' => "Zona de inicio", @@ -1349,6 +1359,7 @@ $lang = array( ) ), 'zone' => array( + 'id' => "ID de Zona: ", 'notFound' => "Esta zona no existe.", 'attunement' => ["Requisito: ", "Requisito heroica: "], 'key' => ["Llave: ", "Llave heroica: "], @@ -1377,6 +1388,7 @@ $lang = array( ) ), 'quest' => array( + 'id' => "ID de Misión: ", 'notFound' => "Esta misión no existe.", '_transfer' => 'Esta misión será convertido a %s si lo transfieres a la %s.', 'questLevel' => 'Nivel %s', @@ -1514,6 +1526,7 @@ $lang = array( 'notFound' => "Este icono no existe." ), 'title' => array( + 'id' => "ID de Título: ", 'notFound' => "Este título no existe.", '_transfer' => 'Este título será convertido a %s si lo transfieres a la %s.', 'cat' => array( @@ -1521,6 +1534,7 @@ $lang = array( ) ), 'skill' => array( + 'id' => "ID de Habilidad: ", 'notFound' => "Esta habilidad no existe.", 'cat' => array( -6 => "Compañeros", -5 => "Monturas", -4 => "Habilidades de raza", 5 => "Atributos", 6 => "Habilidades con armas", 7 => "Habilidades de clase", 8 => "Armaduras disponibles", @@ -1528,6 +1542,7 @@ $lang = array( ) ), 'currency' => array( + 'id' => "ID de Moneda: ", 'notFound' => "Esta moneda no existe.", 'cap' => "Límite total: ", 'cat' => array( @@ -1549,6 +1564,7 @@ $lang = array( ) ), 'mail' => array( + 'id' => "ID de Correo: ", 'notFound' => "Este correo no existe.", 'attachment' => "Adjunto", 'mailDelivery' => "Usted recibirá esta carta%s%s", @@ -1559,12 +1575,14 @@ $lang = array( 'untitled' => "Correo sin título #%d" ), 'pet' => array( + 'id' => "ID de Familia de mascotas: ", 'notFound' => "Esta familia de mascotas no existe.", 'exotic' => "Exótica", 'cat' => ["Ferocidad", "Tenacidad", "Astucia"], 'food' => ["Carne", "Pescado", "Queso", "Pan", "Hongo", "Fruta", "Carne cruda", "Pescado crudo"] ), 'faction' => array( + 'id' => "ID de Facción: ", 'notFound' => "Esta facción no existe.", 'spillover' => "Excedente de reputación", 'spilloverDesc' => "Ganar reputación con esta facción tambien una proporción ganada con las facciones listadas a continuación.", @@ -1580,6 +1598,7 @@ $lang = array( ) ), 'itemset' => array( + 'id' => "ID de Conjunto de objetos: ", 'notFound' => "Este conjunto de objetos no existe.", '_desc' => "%s es el %s. Contiene %s piezas.", '_descTagless' => "%s es un conjunto de objetos que tiene %s piezas.", @@ -1605,6 +1624,7 @@ $lang = array( ) ), 'spell' => array( + 'id' => "ID de Hechizo: ", 'notFound' => "Este hechizo no existe.", '_spellDetails' => "Detalles de hechizos", '_cost' => "Costo", @@ -2168,6 +2188,7 @@ $lang = array( ) ), 'item' => array( + 'id' => "ID de Objeto: ", 'notFound' => "Este objeto no existe.", 'armor' => "%s armadura", 'block' => "%s bloqueo", diff --git a/localization/locale_frfr.php b/localization/locale_frfr.php index 1a717c01..62f31429 100644 --- a/localization/locale_frfr.php +++ b/localization/locale_frfr.php @@ -236,6 +236,8 @@ $lang = array( 'atCaptain' => "Capitaine d'équipe", 'atSize' => "Type : ", 'profiler' => "Profiler de Personnage", + 'completion' => "Achèvement : ", + 'attainedBy' => "Obtenu par %d%% des profils", 'notFound' => array( 'guild' => "[This Guild doesn't exist or is not yet in the database.]", 'arenateam' => "[This Arena Team doesn't exist or is not yet in the database.]", @@ -323,7 +325,7 @@ $lang = array( 'races' => "Races", 'skill' => "compétence", 'skills' => "Compétences", - 'currency' => "monnaies", + 'currency' => "monnaie", 'currencies' => "Monnaies", 'sound' => "son", 'sounds' => "Sons", @@ -1070,6 +1072,7 @@ $lang = array( 'posts' => "Messages sur le forum : " ), 'emote' => array( + 'id' => "ID Emote : ", 'notFound' => "[This Emote doesn't exist.]", // 'self' => "Vers vous-même", // 'target' => "Vers les autres avec une cible", @@ -1102,9 +1105,10 @@ $lang = array( 'state' => ['[Oneshot]', '[Continuous State]', '[Continuous Emote]'] ), 'enchantment' => array( + 'id' => "ID Enchantement : ", + 'notFound' => "Cet enchantement n'existe pas.", 'details' => "En détail", 'activation' => "Activation", - 'notFound' => "Cet enchantement n'existe pas.", 'types' => array( 1 => "Sort proc", 3 => "Sort équipé", 7 => "Sort utilisé", 8 => "Châsse prismatique", 5 => "Statistiques", 2 => "Dégâts d'arme", 6 => "DPS", 4 => "Défense" @@ -1116,6 +1120,7 @@ $lang = array( 'types' => ['Unused', 'Tavern', 'Teleporter', 'Quest Objective', 'Smart Trigger', 'Script'] ), 'gameObject' => array( + 'id' => "ID Entité: ", 'notFound' => "Cette entité n'existe pas.", 'cat' => [0 => "Autre", 3 => "Conteneurs", 6 => "Pièges", 9 => "Livres", 25 => "Bancs de poissons", -5 => "Coffres", -3 => "Herbes", -4 => "Filons de minerai", -2 => "Quêtes", -6 => "Outils"], 'type' => [ 3 => "Conteneur", 6 => "", 9 => "Livre", 25 => "", -5 => "Coffre", -3 => "Herbe", -4 => "Filon de minerai", -2 => "Quête", -6 => ""], @@ -1148,6 +1153,7 @@ $lang = array( ) ), 'npc' => array( + 'id' => "ID PNJ : ", 'notFound' => "Ce PNJ n'existe pas.", 'classification'=> "Classification : %s", 'petFamily' => "Familier : ", @@ -1243,6 +1249,7 @@ $lang = array( ) ), 'event' => array( + 'id' => "ID Évènement mondial : ", 'notFound' => "Cet évènement mondial n'existe pas.", 'start' => "Début : ", 'end' => "Fin : ", @@ -1251,6 +1258,7 @@ $lang = array( 'category' => ["Non classés", "Vacances", "Récurrent", "Joueur ctr. Joueur"] ), 'achievement' => array( + 'id' => "ID Haut fait : ", 'notFound' => "Ce haut fait n'existe pas.", 'criteria' => "Critères", 'points' => "Points", @@ -1309,9 +1317,11 @@ $lang = array( ) ), 'chrClass' => array( + 'id' => "ID Classe : ", 'notFound' => "Cette classe n'existe pas." ), 'race' => array( + 'id' => "ID Race : ", 'notFound' => "Cette race n'existe pas.", 'racialLeader' => "Leader racial : ", 'startZone' => "Zone initiales", @@ -1349,6 +1359,7 @@ $lang = array( ) ), 'zone' => array( + 'id' => "ID Zone : ", 'notFound' => "Cette zone n'existe pas.", 'attunement' => ["Accès : ", "Accès Héroïque : "], 'key' => ["Clef : ", "Clef Héroïque : "], @@ -1377,6 +1388,7 @@ $lang = array( ) ), 'quest' => array( + 'id' => "ID Quête : ", 'notFound' => "Cette quête n'existe pas.", '_transfer' => 'Cette quête sera converti en %s si vous transférez en %s.', 'questLevel' => "Niveau %s", @@ -1514,6 +1526,7 @@ $lang = array( 'notFound' => "Cette icône n'existe pas." ), 'title' => array( + 'id' => "ID Titre : ", 'notFound' => "Ce titre n'existe pas.", '_transfer' => 'Ce titre sera converti en %s si vous transférez en %s.', 'cat' => array( @@ -1521,6 +1534,7 @@ $lang = array( ) ), 'skill' => array( + 'id' => "ID Compétence : ", 'notFound' => "Cette compétence n'existe pas.", 'cat' => array( -6 => "Compagnons", -5 => "Montures", -4 => "Traits raciaux", 5 => "Caractéristiques", 6 => "Compétences d'armes", 7 => "Compétences de classe", 8 => "Armures utilisables", @@ -1528,6 +1542,7 @@ $lang = array( ) ), 'currency' => array( + 'id' => "ID Monnaie : ", 'notFound' => "Cette monnaie n'existe pas.", 'cap' => "Maximum total : ", 'cat' => array( @@ -1549,22 +1564,25 @@ $lang = array( ) ), 'mail' => array( - 'notFound' => "This mail doesn't exist.", + 'id' => "[Mail ID] : ", + 'notFound' => "[This mail doesn't exist.]", 'attachment' => "[Attachment]", 'mailDelivery' => "Vous recevrez cette lettre%s%s", 'mailBy' => ' de %s', 'mailIn' => " après %s", - 'delay' => "Delay : %s", - 'sender' => "Sender : %s", - 'untitled' => "Untitled Mail #%d" + 'delay' => "[Delay] : %s", + 'sender' => "[Sender] : %s", + 'untitled' => "[Untitled Mail] #%d" ), 'pet' => array( + 'id' => "ID Famille de familiers : ", 'notFound' => "Cette famille de familiers n'existe pas.", 'exotic' => "Exotique", 'cat' => ["Férocité", "Tenacité", "Ruse"], 'food' => ["Viande", "Poisson", "Fromage", "Pain", "Champignon", "Fruit", "Viande crue", "Poisson cru"] ), 'faction' => array( + 'id' => "ID Faction : ", 'notFound' => "Cette faction n'existe pas.", 'spillover' => "Partage de réputations", 'spilloverDesc' => "Gagner de la réputation avec cette faction fourni une réputation proportionnelle avec les factions ci-dessous.", @@ -1580,6 +1598,7 @@ $lang = array( ) ), 'itemset' => array( + 'id' => "ID d'ensemble d'objets : ", 'notFound' => "Cet ensemble d'objets n'existe pas.", '_desc' => "%s est le %s. Il contient %s pièces.", '_descTagless' => "%s est un ensemble d'objet qui contient %s pièces.", @@ -1605,6 +1624,7 @@ $lang = array( ) ), 'spell' => array( + 'id' => "ID Sort: ", 'notFound' => "Ce sort n'existe pas.", '_spellDetails' => "Détails sur le sort", '_cost' => "Coût", @@ -2168,6 +2188,7 @@ $lang = array( ) ), 'item' => array( + 'id' => "ID Objet : ", 'notFound' => "Cet objet n'existe pas.", 'armor' => "Armure : %s", 'block' => "Bloquer : %s", diff --git a/localization/locale_ruru.php b/localization/locale_ruru.php index 81e51b44..e9587064 100644 --- a/localization/locale_ruru.php +++ b/localization/locale_ruru.php @@ -236,6 +236,8 @@ $lang = array( 'atCaptain' => "Капитан команды арены", 'atSize' => "Численности: ", 'profiler' => "Профили персонажей", + 'completion' => "Завершено: ", + 'attainedBy' => "Получено %d%% пользователей с профилями", 'notFound' => array( 'profile' => "Этот персонаж не существует, либо еще не добавлен в базу данных.", 'arenateam' => "[This Arena Team doesn't exist or is not yet in the database.]", @@ -1070,6 +1072,7 @@ $lang = array( 'posts' => "Сообщений на форумах: " ), 'emote' => array( + 'id' => "Эмоция ID: ", 'notFound' => "[This Emote doesn't exist.]", // 'self' => "[To Yourself]", // 'target' => "[To others with a target]", @@ -1102,9 +1105,10 @@ $lang = array( 'state' => ['[Oneshot]', '[Continuous State]', '[Continuous Emote]'] ), 'enchantment' => array( + 'id' => "Улучшение ID: ", + 'notFound' => "Такой улучшение не существует.", 'details' => "Подробности", 'activation' => "Активации", - 'notFound' => "Такой улучшение не существует.", 'types' => array( 1 => "[Proc Spell]", 3 => "[Equip Spell]", 7 => "[Use Spell]", 8 => "Бесцветное гнездо", 5 => "Характеристики", 2 => "Урон оружия", 6 => "УВС", 4 => "Защита" @@ -1116,6 +1120,7 @@ $lang = array( 'types' => ['Unused', 'Tavern', 'Teleporter', 'Quest Objective', 'Smart Trigger', 'Script'] ), 'gameObject' => array( + 'id' => "Объект ID: ", 'notFound' => "Такой объект не существует.", 'cat' => [0 => "Другое", 3 => "Контейнеры", 6 => "Ловушки", 9 => "Книги", 25 => "Рыболовные лунки", -5 => "Сундуки", -3 => "Травы", -4 => "Полезные ископаемые", -2 => "Задания", -6 => "Инструменты"], 'type' => [ 3 => "Контейнер", 6 => "", 9 => "Книга", 25 => "", -5 => "Сундук", -3 => "Растение", -4 => "Полезное ископаемое", -2 => "Задание", -6 => ""], @@ -1148,6 +1153,7 @@ $lang = array( ) ), 'npc' => array( + 'id' => "НИП ID: ", 'notFound' => "Такой НИП не существует.", 'classification'=> "Классификация: %s", 'petFamily' => "Семейство питомца: ", @@ -1243,6 +1249,7 @@ $lang = array( ) ), 'event' => array( + 'id' => "Игровое событие ID: ", 'notFound' => "Это игровое событие не существует.", 'start' => "Начало: ", 'end' => "Конец: ", @@ -1251,6 +1258,7 @@ $lang = array( 'category' => array("Разное", "Праздники", "Периодические", "PvP") ), 'achievement' => array( + 'id' => "Достижение ID: ", 'notFound' => "Такое достижение не существует.", 'criteria' => "Критерий", 'points' => "Очки", @@ -1309,9 +1317,11 @@ $lang = array( ) ), 'chrClass' => array( + 'id' => "Класс ID: ", 'notFound' => "Такой класс не существует." ), 'race' => array( + 'id' => "Раса ID: ", 'notFound' => "Такая раса не существует.", 'racialLeader' => "Лидер расы: ", 'startZone' => "Начальная локация", @@ -1349,6 +1359,7 @@ $lang = array( ) ), 'zone' => array( + 'id' => "Игровая зона ID: ", 'notFound' => "Такая местность не существует.", 'attunement' => ["[Attunement]: ", "[Heroic attunement]: "], 'key' => ["[Key]: ", "[Heroic key]: "], @@ -1377,6 +1388,7 @@ $lang = array( ) ), 'quest' => array( + 'id' => "Задание ID: ", 'notFound' => "Такое задание не существует.", '_transfer' => 'Этот предмет превратится в %s, если вы перейдете за %s.', 'questLevel' => "%s-го уровня", @@ -1514,6 +1526,7 @@ $lang = array( 'notFound' => "Этой иконки не существует" ), 'title' => array( + 'id' => "Звание ID: ", 'notFound' => "Такое звание не существует.", '_transfer' => 'Этот предмет превратится в %s, если вы перейдете за %s.', 'cat' => array( @@ -1521,6 +1534,7 @@ $lang = array( ) ), 'skill' => array( + 'id' => "Навык ID: ", 'notFound' => "Этот навык не существует.", 'cat' => array( -6 => "Спутники", -5 => "Транспорт", -4 => "Классовые навыки", 5 => "Характеристики", 6 => "Оружейные навыки", 7 => "Классовые навыки", 8 => "Доспехи", @@ -1528,6 +1542,7 @@ $lang = array( ) ), 'currency' => array( + 'id' => "Валюта ID: ", 'notFound' => "Такая валюта не существует.", 'cap' => "Максимум всего: ", 'cat' => array( @@ -1549,6 +1564,7 @@ $lang = array( ) ), 'mail' => array( + 'id' => "[Mail ID]: ", 'notFound' => "[This mail doesn't exist].", 'attachment' => "[Attachment]", 'mailDelivery' => "Вы получите это письмо%s%s", @@ -1559,12 +1575,14 @@ $lang = array( 'untitled' => "[Untitled Mail] #%d" ), 'pet' => array( + 'id' => "Питомец ID: ", 'notFound' => "Такой породы питомцев не существует.", 'exotic' => "Экзотический", 'cat' => ["Свирепость", "Упорство", "Хитрость"], 'food' => ["Мясо", "Рыба", "Сыр", "Хлеб", "Грибы", "Фрукты", "Сырое мясо", "Сырая рыба"] ), 'faction' => array( + 'id' => "Фракция ID: ", 'notFound' => "Такая фракция не существует.", 'spillover' => "Распространение репутации", 'spilloverDesc' => "Получение репутации у этой фракции также дает пропорциональный выигрыш по отношению к фракциям, перечисленным ниже.", @@ -1580,6 +1598,7 @@ $lang = array( ) ), 'itemset' => array( + 'id' => "Комплект ID: ", 'notFound' => "Такой комплект не существует.", '_desc' => "%s%s. Он состоит из %s предметов.", '_descTagless' => "%s — набор из %s предметов.", @@ -1605,6 +1624,7 @@ $lang = array( ) ), 'spell' => array( + 'id' => "Заклинание ID: ", 'notFound' => "Такое заклинание не существует.", '_spellDetails' => "Описание заклинания", '_cost' => "Цена", @@ -2168,6 +2188,7 @@ $lang = array( ) ), 'item' => array( + 'id' => "Предмет ID: ", 'notFound' => "Такой предмет не существует.", 'armor' => "Броня: %s", 'block' => "Блок: %s", diff --git a/localization/locale_zhcn.php b/localization/locale_zhcn.php index 05c1d150..7819c9ea 100644 --- a/localization/locale_zhcn.php +++ b/localization/locale_zhcn.php @@ -236,6 +236,8 @@ $lang = array( 'atCaptain' => "竞技场战队队长", 'atSize' => "团队规模:", 'profiler' => "角色概况", + 'completion' => "达成:", + 'attainedBy' => "%d%%角色已完成", 'notFound' => array( 'guild' => "该公会不存在或尚未被收录到数据库中。", 'arenateam' => "该竞技场战队不存在或尚未被收录到数据库中。", @@ -1070,6 +1072,7 @@ $lang = array( 'posts' => "论坛帖子:" ), 'emote' => array( + 'id' => "表情ID:", 'notFound' => "这个表情不存在。", // 'self' => "对你自己", // 'target' => "对别人并且选择了目标", @@ -1102,9 +1105,10 @@ $lang = array( 'state' => ['[Oneshot]', '[Continuous State]', '[Continuous Emote]'] ), 'enchantment' => array( + 'id' => "附魔ID:", + 'notFound' => "这个附魔不存在。", 'details' => "细节", 'activation' => "激活", - 'notFound' => "这个附魔不存在。", 'types' => array( 1 => "触发法术", 3 => "装备法术", 7 => "使用法术", 8 => "棱形插槽", 5 => "统计", 2 => "武器伤害", 6 => "DPS", 4 => "防御" @@ -1116,6 +1120,7 @@ $lang = array( 'types' => ['未使用', '酒馆', '传送门', '任务目标', 'Smart Trigger', '脚本'] ), 'gameObject' => array( + 'id' => "对象ID:", 'notFound' => "这个对象不存在。", 'cat' => [0 => "其他", 3 => "容器", 6 => "陷阱", 9 => "书籍", 25 => "钓鱼点", -5 => "宝箱", -3 => "草药", -4 => "矿脉", -2 => "任务", -6 => "工具"], 'type' => [ 3 => "容器", 6 => "", 9 => "书籍", 25 => "", -5 => "宝箱", -3 => "草药", -4 => "矿脉", -2 => "任务", -6 => ""], @@ -1148,6 +1153,7 @@ $lang = array( ) ), 'npc' => array( + 'id' => "NPC ID:", 'notFound' => "这个NPC不存在。", 'classification'=> "分类:%s", 'petFamily' => "宠物家族:", @@ -1243,6 +1249,7 @@ $lang = array( ) ), 'event' => array( + 'id' => "世界事件ID:", 'notFound' => "这个世界事件不存在。", 'start' => "开始:", 'end' => "结束:", @@ -1251,6 +1258,7 @@ $lang = array( 'category' => ["未分类", "节日", "循环", "PvP"] ), 'achievement' => array( + 'id' => "成就ID:", 'notFound' => "这个成就不存在。", 'criteria' => "达成条件", 'points' => "点数", @@ -1309,9 +1317,11 @@ $lang = array( ) ), 'chrClass' => array( + 'id' => "职业ID:", 'notFound' => "这个职业不存在。" ), 'race' => array( + 'id' => "种族ID:", 'notFound' => "这个种族不存在。", 'racialLeader' => "种族领袖:", 'startZone' => "起始区域" @@ -1349,6 +1359,7 @@ $lang = array( ) ), 'zone' => array( + 'id' => "区域ID:", 'notFound' => "这个区域不存在。", 'attunement' => ["调整:", "英雄调整:"], 'key' => ["钥匙:", "英雄钥匙:"], @@ -1377,6 +1388,7 @@ $lang = array( ) ), 'quest' => array( + 'id' => "任务ID:", 'notFound' => "这个任务不存在。", '_transfer' => '这个任务将被转换到%s,如果你转移到%s。', 'questLevel' => "等级%s", @@ -1514,6 +1526,7 @@ $lang = array( 'notFound' => "这个图标不存在。" ), 'title' => array( + 'id' => "头衔ID:", 'notFound' => "这个头衔不存在。", '_transfer' => '这个头衔将被转换到%s,如果你转移到%s。', 'cat' => array( @@ -1521,6 +1534,7 @@ $lang = array( ) ), 'skill' => array( + 'id' => "技能ID:", 'notFound' => "这个技能不存在。", 'cat' => array( -6 => "伙伴", -5 => "坐骑", -4 => "种族特性", 5 => "属性", 6 => "武器技能", 7 => "职业技能", 8 => "护甲精通", @@ -1528,6 +1542,7 @@ $lang = array( ) ), 'currency' => array( + 'id' => "货币ID:", 'notFound' => "这个货币不存在。", 'cap' => "总共上限:", 'cat' => array( @@ -1549,6 +1564,7 @@ $lang = array( ) ), 'mail' => array( + 'id' => "邮件ID:", 'notFound' => "该邮件不存在。", 'attachment' => "附件", 'mailDelivery' => '你将收到 这封信%s%s', // "你会收到这封信%s%s", @@ -1559,12 +1575,14 @@ $lang = array( 'untitled' => "无标题邮件 #%d" ), 'pet' => array( + 'id' => "猎人宠物ID:", 'notFound' => "这个宠物家族不存在。", 'exotic' => "异域的", 'cat' => ["狂野", "坚韧", "狡诈"], 'food' => ["肉", "鱼", "奶酪", "面包", "蘑菇", "水果", "生肉", "生鱼"] ), 'faction' => array( + 'id' => "阵营ID:", 'notFound' => "这个阵营不存在。", 'spillover' => "声望额外效果", 'spilloverDesc' => "获得这个阵营的声望也将按比例获得下列阵营的声望。", @@ -1580,6 +1598,7 @@ $lang = array( ) ), 'itemset' => array( + 'id' => "套装ID:", 'notFound' => "这个物品套装不存在。", '_desc' => "%s%s。它包含%s件。", '_descTagless' => "%s是物品套装包含%s件。", @@ -1605,6 +1624,7 @@ $lang = array( ) ), 'spell' => array( + 'id' => "法术ID:", 'notFound' => "这个法术不存在。", '_spellDetails' => "法术细节", '_cost' => "花费", @@ -2168,6 +2188,7 @@ $lang = array( ) ), 'item' => array( + 'id' => "物品ID:", 'notFound' => "这个物品不存在。", 'armor' => "%d点护甲", 'block' => "%d格挡", diff --git a/setup/sql/01-db_structure.sql b/setup/sql/01-db_structure.sql index d3709dca..6063d5fb 100644 --- a/setup/sql/01-db_structure.sql +++ b/setup/sql/01-db_structure.sql @@ -1729,6 +1729,7 @@ CREATE TABLE `aowow_profiler_completion_quests` ( `id` int(10) unsigned NOT NULL, `questId` mediumint(8) unsigned NOT NULL, KEY `id` (`id`), + KEY `typeId` (`questId`), CONSTRAINT `FK_pr_completion_quests` FOREIGN KEY (`id`) REFERENCES `aowow_profiler_profiles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1745,6 +1746,7 @@ CREATE TABLE `aowow_profiler_completion_reputation` ( `factionId` smallint(5) unsigned NOT NULL, `standing` mediumint(9) DEFAULT NULL, KEY `id` (`id`), + KEY `typeId` (`factionId`), CONSTRAINT `FK_pr_completion_reputation` FOREIGN KEY (`id`) REFERENCES `aowow_profiler_profiles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1778,6 +1780,7 @@ CREATE TABLE `aowow_profiler_completion_spells` ( `id` int(10) unsigned NOT NULL, `spellId` mediumint(8) unsigned NOT NULL, KEY `id` (`id`), + KEY `typeId` (`spellId`), CONSTRAINT `FK_pr_completion_spells` FOREIGN KEY (`id`) REFERENCES `aowow_profiler_profiles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1811,6 +1814,7 @@ CREATE TABLE `aowow_profiler_completion_titles` ( `id` int(10) unsigned NOT NULL, `titleId` tinyint(3) unsigned NOT NULL, KEY `id` (`id`), + KEY `typeId` (`titleId`), CONSTRAINT `FK_pr_completion_titles` FOREIGN KEY (`id`) REFERENCES `aowow_profiler_profiles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/setup/sql/updates/1759504522_01.sql b/setup/sql/updates/1759504522_01.sql new file mode 100644 index 00000000..12872d0e --- /dev/null +++ b/setup/sql/updates/1759504522_01.sql @@ -0,0 +1,11 @@ +ALTER TABLE aowow_profiler_completion_quests + ADD KEY `typeId` (`questId`); + +ALTER TABLE aowow_profiler_completion_reputation + ADD KEY `typeId` (`factionId`); + +ALTER TABLE aowow_profiler_completion_spells + ADD KEY `typeId` (`spellId`); + +ALTER TABLE aowow_profiler_completion_titles + ADD KEY `typeId` (`titleId`); diff --git a/setup/sql/updates/1759504522_02.sql b/setup/sql/updates/1759504522_02.sql new file mode 100644 index 00000000..03adf418 --- /dev/null +++ b/setup/sql/updates/1759504522_02.sql @@ -0,0 +1 @@ +UPDATE `aowow_dbversion` SET `build` = CONCAT(IFNULL(`build`, ''), ' globaljs'); diff --git a/setup/tools/filegen/templates/global.js/clicktocopy.js b/setup/tools/filegen/templates/global.js/clicktocopy.js index 9225b6f4..d8c20bfd 100644 --- a/setup/tools/filegen/templates/global.js/clicktocopy.js +++ b/setup/tools/filegen/templates/global.js/clicktocopy.js @@ -23,7 +23,7 @@ $WH.clickToCopy = function (el, textOrFn, opt) $WH.clickToCopy.getTooltip.bind(null, false, opt), undefined, // { - /* byCursor: */ !opt.attachToElement, + /* byCursor: ! */ opt.attachToElement, // stopPropagation: opt.overrideOtherTooltips // } ); diff --git a/setup/tools/filegen/templates/global.js/markup.js b/setup/tools/filegen/templates/global.js/markup.js index e72e5dd2..97f2e128 100644 --- a/setup/tools/filegen/templates/global.js/markup.js +++ b/setup/tools/filegen/templates/global.js/markup.js @@ -465,6 +465,90 @@ var Markup = { return [str, '']; } }, + copy: + { + empty: false, + attr: + { + unnamed: { req: false }, + button: { req: false, valid: /^false$/ }, + size: { req: false, valid: /^large$/ } + }, + allowedClass: MARKUP_CLASS_STAFF, + allowedChildren: { '': 1 }, + // invisibleContent: true, + // rawText: true, + toHtml: function(attr) + { + let title = attr.unnamed ? LANG.copy_format.replace('%s', attr.unnamed) : LANG.copy_clipboard; + // let text = attr._contents.textContent; + let text = attr._textContents; + + // aowow - can't access dom nodes from here .. hopefully this does not become relevant + // while (attr._contents.hasChildNodes()) + // attr._contents.removeChild(attr._contents.firstChild); + + if (attr.button === 'false') + { + // aowow - must return string, not node + // let span = $WH.ce('span', { className: 'tip' }, $WH.ct(text)); + // $WH.clickToCopy(span, text); + // return span; + + let rand = Math.random().toString().substr(2); + let html = ''; + setTimeout(() => { + span = $WH.ge('ctc-' + rand); + $WH.clickToCopy(span, span.textContent); + }, 500); + + return [html, '']; + } + + /* aowow - red buttons aren't yet + * let btn = $WH.ce('button', { className: 'btn btn-site fa fa-clipboard', type: 'button' }, $WH.ct(title)); + * + * if (attr.size !== 'large') + * btn.classList.add('btn-small'); + * + * $WH.aE(btn, 'click', () => { + * $WH.copyToClipboard(text); + * btn.classList.remove('fa-clipboard'); + * btn.classList.add('fa-check'); + * setTimeout(() => { + * btn.classList.remove('fa-check'); + * btn.classList.add('fa-clipboard'); + * }, 3 * 1000); + * }); + * + * return btn; + */ + + let rand = Math.random().toString().substr(2); + let btn = RedButton.create(title); + + btn.id = 'ctc-' + rand; + btn.classList.add('fa-clipboard'); + + btn.style.float = 'initial'; + btn.style.display = 'inline-block'; + + setTimeout(() => { + btn = $WH.ge('ctc-' + rand); + $WH.aE(btn, 'click', () => { + $WH.copyToClipboard(text); + btn.classList.remove('fa-clipboard'); + btn.classList.add('fa-check'); + setTimeout(() => { + btn.classList.remove('fa-check'); + btn.classList.add('fa-clipboard'); + }, 3 * 1000); + }, 500); + }); + + return [btn.outerHTML]; + } + }, currency: { empty: true, diff --git a/static/css/aowow.css b/static/css/aowow.css index 7692cdd9..64c3fa45 100644 --- a/static/css/aowow.css +++ b/static/css/aowow.css @@ -4232,6 +4232,17 @@ input.button-copy:hover { background-color: #444; } +/* clicktocopy fa-replacement on redbutton custom */ +a.button-red.fa-check > em > span { + padding-left: 19px; + background: url(../images/icons/tick.png) no-repeat left center / 12px; +} + +a.button-red.fa-clipboard > em > span { + padding-left: 19px; + background: url(../images/icons/pages.gif) no-repeat left center / 12px; +} + /* favicon fa-replacement custom */ .fav-star { cursor:pointer; diff --git a/static/js/locale_dede.js b/static/js/locale_dede.js index 055c8497..1f075acb 100644 --- a/static/js/locale_dede.js +++ b/static/js/locale_dede.js @@ -4904,6 +4904,8 @@ var LANG = { copied: 'Kopiert', clickToCopy: 'Klicke zum Kopieren', nothingToCopy_tip: 'Nichts zu kopieren!', + copy_clipboard: 'Kopieren', + copy_format: 'Kopiere %s', // TC conditions display tab_conditions: 'Konditionen', diff --git a/static/js/locale_enus.js b/static/js/locale_enus.js index 417ee9ab..4f9911a4 100644 --- a/static/js/locale_enus.js +++ b/static/js/locale_enus.js @@ -4952,6 +4952,8 @@ var LANG = { copied: 'Copied', clickToCopy: 'Click to Copy', nothingToCopy_tip: 'Nothing to copy!', + copy_clipboard: 'Copy', + copy_format: 'Copy %s', // TC conditions display tab_conditions: 'Conditions', diff --git a/static/js/locale_eses.js b/static/js/locale_eses.js index ca03d740..53edb97d 100644 --- a/static/js/locale_eses.js +++ b/static/js/locale_eses.js @@ -4906,6 +4906,8 @@ var LANG = { copied: 'Copiado', clickToCopy: 'Click para copiar', nothingToCopy_tip: '[Nothing to copy!]', + copy_clipboard: 'Copiar', + copy_format: 'Copiar %s', // TC conditions display tab_conditions: 'Condiciones', diff --git a/static/js/locale_frfr.js b/static/js/locale_frfr.js index 04be890c..1cf62a7c 100644 --- a/static/js/locale_frfr.js +++ b/static/js/locale_frfr.js @@ -4906,6 +4906,8 @@ var LANG = { copied: 'Copié', clickToCopy: 'Cliquer pour Copier', nothingToCopy_tip: 'Rien à copier !', + copy_clipboard: 'Copier', + copy_format: 'Copier %s', // TC conditions display tab_conditions: '[Conditions]', diff --git a/static/js/locale_ruru.js b/static/js/locale_ruru.js index 117fd9cc..7fb5aa8b 100644 --- a/static/js/locale_ruru.js +++ b/static/js/locale_ruru.js @@ -4908,6 +4908,8 @@ var LANG = { copied: 'Скопировано', clickToCopy: 'Нажмите, чтобы скопировать', nothingToCopy_tip: 'Нет данных для копирования!', + copy_clipboard: 'Скопировать', + copy_format: 'Скопировать %s', // TC conditions display tab_conditions: '[Conditions]', diff --git a/static/js/locale_zhcn.js b/static/js/locale_zhcn.js index 7399cae5..1aee50eb 100644 --- a/static/js/locale_zhcn.js +++ b/static/js/locale_zhcn.js @@ -4932,6 +4932,8 @@ var LANG = { copied: '已复制', clickToCopy: '点击复制', nothingToCopy_tip: '[Nothing to copy!]', + copy_clipboard: '复制', + copy_format: '[Copy %s]', // TC conditions display tab_conditions: '[Conditions]',