implemented generic filters

- what which index does needs to be implemented in the implementation
- differences to wowhead
   * strings in criteria are more lenient and will also work with partial matches
   * the ? and * wildcards are supported
This commit is contained in:
Sarjuuk 2013-03-23 14:50:01 +01:00
parent 58316679bf
commit c045fe1081
22 changed files with 3312 additions and 2072 deletions

254
includes/class.filter.php Normal file
View file

@ -0,0 +1,254 @@
<?php
if(!defined('AOWOW_REVISION'))
die("illegal access");
abstract class Filter
{
private static $pattern = "/[^\p{L}0-9\s\-\'\?\*]/ui";// delete any char not in unicode, number, hyphen, single quote or common wildcard
private static $wildcards = ['*' => '%', '?' => '_'];
private static $criteria = ['cr', 'crs', 'crv']; // [cr]iterium, [cr].[s]ign, [cr].[v]alue
private $fiData = ['c' => [], 'v' =>[]];
private $query = '';
private $form = []; // unsanitized: needed to preselect form-fields
private $setCr = []; // unsanitized: needed to preselect criteria
public $error = false; // erronous search fields
// parse the provided request into a usable format; recall self with GET-params if nessecary
public function init()
{
// prefer POST over GET, translate to url
if (!empty($_POST))
{
foreach ($_POST as $k => $v)
{
if (is_array($v)) // array -> max depths:1
{
if ($k == 'cr' && empty($v[0]))
continue;
$sub = [];
foreach ($v as $sk => $sv)
{
$sv = str_replace("'", "\'", stripslashes($sv));
$sub[$sk] = is_numeric($sv) ? (int)$sv : urlencode($sv);
}
if (!empty($sub) && in_array($k, Filter::$criteria))
$this->fiData['c'][$k] = $sub;
else if (!empty($sub))
$this->fiData['v'][$k] = $sub;
}
else // stings and integer
{
$v = str_replace("'", "\'", stripslashes($v));
if (in_array($k, Filter::$criteria))
$this->fiData['c'][$k] = is_numeric($v) ? (int)$v : urlencode($v);
else
$this->fiData['v'][$k] = is_numeric($v) ? (int)$v : urlencode($v);
}
}
// create get-data
$tmp = [];
foreach (array_merge($this->fiData['c'], $this->fiData['v']) as $k => $v)
{
if ($v == '')
continue;
else if (is_array($v))
$tmp[$k] = $k."=".implode(':', $v);
else
$tmp[$k] = $k."=".$v;
}
// do get request
$this->redirect(implode(';', $tmp));
}
// sanitize input and build sql
else if (!empty($_GET['filter']))
{
$tmp = explode(';', $_GET['filter']);
$cr = $crs = $crv = [];
foreach (Filter::$criteria as $c)
{
foreach ($tmp as $i => $term)
{
if (strpos($term, $c.'=') === 0)
{
$$c = explode(':', explode('=', $term)[1]);
$this->setCr[$c] = json_encode($$c, JSON_NUMERIC_CHECK);
unset($tmp[$i]);
}
}
}
for ($i = 0; $i < max(count($cr), count($crv), count($crs)); $i++)
{
if (!isset($cr[$i]) || !isset($crs[$i]) || !isset($crv[$i]) ||
!intVal($cr[$i]) || $crs[$i] == '' || $crv[$i] == '')
{
$this->error = true;
continue;
}
$this->sanitize($crv[$i]);
if ($crv[$i] != '')
{
$this->fiData['c']['cr'][] = intVal($cr[$i]);
$this->fiData['c']['crs'][] = $crs[$i];
$this->fiData['c']['crv'][] = $crv[$i];
}
else
$this->error = true;
}
foreach ($tmp as $v)
{
$w = explode('=', $v);
if (strstr($w[1], ':'))
{
$tmp2 = explode(':', $w[1]);
$this->form[$w[0]] = $tmp2;
array_walk($tmp2, function(&$v) { $v = intVal($v); });
$this->fiData['v'][$w[0]] = $tmp2;
}
else
{
$this->form[$w[0]] = $w[1];
$this->sanitize($w[1]);
if ($w[1] != '')
$this->fiData['v'][$w[0]] = is_numeric($w[1]) ? (int)$w[1] : $w[1];
else
$this->error = true;
}
}
return $this->fiData;
}
}
public function buildQuery()
{
if (!empty($this->query))
return $this->query;
$parts = [];
// values
$parts = $this->createSQLForValues($this->fiData['v']);
// criteria
$c = &$this->fiData['c'];
if (!empty($c))
{
if (is_array($c['cr']))
{
for ($i = 0; $i < count($c['cr']); $i++)
$parts[] = $this->createSQLForCriterium(array($c['cr'][$i], $c['crs'][$i], $c['crv'][$i]));
}
else
$parts[] = $this->createSQLForCriterium(array($c['cr'], $c['crs'], $c['crv']));
}
$this->query = empty($parts) ? '' : '('.implode(empty($this->fiData['v']['ma']) ? ' AND ' : ' OR ', $parts).')';
return $this->query;
}
public function getQuery()
{
return $this->query;
}
public function getForm()
{
return $this->form;
}
public function getSetCriteria()
{
if (!empty($this->setCr['cr']))
return sprintf(Util::$setCriteriaString, $this->setCr['cr'], $this->setCr['crs'], $this->setCr['crv']);
else
return null;
}
// santas little helper..
protected function int2Op($int)
{
switch ($int)
{
case 1: return '>';
case 2: return '>=';
case 3: return '=';
case 4: return '<=';
case 5: return '<';
default: die('invalid op');
}
}
protected function int2Bool($int)
{
switch ($int)
{
case 1: return true;
case 2: return false;
default: die('invalid op');
}
}
protected function list2Mask($list)
{
$mask = 0x0;
if (is_array($list))
{
foreach ($list as $itm)
$mask += (1 << intVal($itm));
}
else
$mask = (1 << intVal($list));
return $mask;
}
private function sanitize(&$str)
{
$str = preg_replace(Filter::$pattern, '', trim($str));
$str = strtr($str, Filter::$wildcards);
}
// if called with POST-data, convert to GET request and call self
private function redirect($get)
{
header('Location: http://'.$_SERVER['SERVER_NAME'].str_replace('index.php', '', $_SERVER['PHP_SELF']).'?'.$_SERVER['QUERY_STRING'].'='.$get);
}
protected function createSQLForCommunity($cr)
{
switch ($cr[0])
{
case 14: // has Comments [y|n]
return ''; // IN / NOT IN (select Ids FROM aowow_comments ON type = X AND id Y and flags = valid)
case 15: // has Screenshots [y|n]
return ''; // IN / NOT IN (select Ids FROM aowow_screenshots ON type = X AND id Y and flags = valid)
case 16: // has Videos [y|n]
return ''; // IN / NOT IN (select Ids FROM aowow_videos ON type = X AND id Y and flags = valid)
}
}
// apply Util::sqlEscape() and intVal() in the implementation of these
abstract protected function createSQLForCriterium($cr);
abstract protected function createSQLForValues($vl);
}
?>

View file

@ -503,7 +503,7 @@ class ItemList extends BaseType
// required skill
if ($this->curTpl['RequiredSkill'])
{
$skillText = DB::Aowow()->selectRow('SELECT * FROM ?_skill WHERE skillId = ?d', $this->curTpl['RequiredSkill']);
$skillText = DB::Aowow()->selectRow('SELECT * FROM ?_skill WHERE skillID = ?d', $this->curTpl['RequiredSkill']);
$x .= '<br />'.Lang::$game['requires'].' <a class="q1" href="?skill='.$this->curTpl['RequiredSkill'].'">'.Util::localizedString($skillText, 'name').'</a>';
if ($this->curTpl['RequiredSkillRank'])
$x .= ' ('.$this->curTpl['RequiredSkillRank'].')';
@ -832,8 +832,9 @@ class ItemList extends BaseType
{
$eqpSplList = new SpellList(array(['id', $equipSpells]));
$stats = $eqpSplList->getStatGain();
foreach ($stats as $mId => $qty)
if ($qty > 0)
foreach ($stats as $stat)
foreach ($stat as $mId => $qty)
@$this->itemMods[$this->id][$mId] += $qty;
}

View file

@ -8,12 +8,12 @@ class ItemsetList extends BaseType
private $classes = []; // used to build g_classes
public $pieceToSet = []; // used to build g_items and search
protected $setupQuery = 'SELECT *, id AS ARRAY_KEY FROM ?_itemset WHERE [filter] [cond] ORDER BY maxlevel ASC';
protected $setupQuery = 'SELECT *, id AS ARRAY_KEY FROM ?_itemset WHERE [filter] [cond] ORDER BY maxlevel DESC';
protected $matchQuery = 'SELECT COUNT(1) FROM ?_itemset WHERE [filter] [cond]';
public function __construct($data)
public function __construct($data, $applyFilter = false)
{
parent::__construct($data);
parent::__construct($data, $applyFilter);
// post processing
while ($this->iterate())
@ -62,7 +62,8 @@ class ItemsetList extends BaseType
'heroic' => $this->curTpl['heroic'] == 1, // we want to be bool
'reqclass' => $this->curTpl['classMask'],
'classes' => $this->curTpl['classes'],
'pieces' => $this->curTpl['pieces']
'pieces' => $this->curTpl['pieces'],
'heroic' => $this->curTpl['heroic']
);
}
@ -75,7 +76,7 @@ class ItemsetList extends BaseType
(new CharClassList(array(['id', $this->classes])))->addGlobalsToJscript($refs);
if ($this->pieceToSet)
(new ItemList(array(['i.entry', array_keys($this->pieceToSet)])))->addGlobalsToJscript($refs);
(new ItemList(array(['i.entry', array_keys($this->pieceToSet)], 0)))->addGlobalsToJscript($refs);
}
public function addRewardsToJScript(&$ref) { }

View file

@ -14,9 +14,9 @@ class SpellList extends BaseType
protected $setupQuery = 'SELECT *, id AS ARRAY_KEY FROM ?_spell WHERE [filter] [cond] GROUP BY Id ORDER BY Id ASC';
protected $matchQuery = 'SELECT COUNT(1) FROM ?_spell WHERE [filter] [cond]';
public function __construct($conditions)
public function __construct($conditions, $applyFilter = false)
{
parent::__construct($conditions);
parent::__construct($conditions, $applyFilter);
if ($this->error)
return;
@ -50,10 +50,12 @@ class SpellList extends BaseType
// required for itemSet-bonuses and socket-bonuses
public function getStatGain()
{
$stats = [];
$data = [];
while ($this->iterate())
{
$stats = [];
for ($i = 1; $i <= 3; $i++)
{
if (!in_array($this->curTpl["effect".$i."AuraId"], [13, 22, 29, 34, 35, 83, 84, 85, 99, 124, 135, 143, 158, 161, 189, 230, 235, 240, 250]))
@ -216,9 +218,11 @@ class SpellList extends BaseType
break;
}
}
$data[$this->id] = $stats;
}
return $stats;
return $data;
}
// description-, buff-parsing component
@ -247,7 +251,7 @@ class SpellList extends BaseType
}
// description-, buff-parsing component
private function resolveVariableString($variable, $level)
private function resolveVariableString($variable, $level, $interactive)
{
$signs = ['+', '-', '/', '*', '%', '^'];
@ -323,7 +327,7 @@ class SpellList extends BaseType
}
// Aura end
if ($rType)
if ($rType && $interactive)
$str .= '<!--rtg'.$rType.'-->'.$base."&nbsp;<small>(".Util::setRatingLevel($level, $rType, $base).")</small>";
else
$str .= $base;
@ -439,7 +443,7 @@ class SpellList extends BaseType
}
// Aura end
if ($rType)
if ($rType && $interactive)
return '<!--rtg'.$rType.'-->'.abs($base)."&nbsp;<small>(".Util::setRatingLevel($level, $rType, abs($base)).")</small>";
else
return $base;
@ -549,7 +553,7 @@ class SpellList extends BaseType
}
// Aura end
if ($rType && $equal)
if ($rType && $equal && $interactive)
return '<!--rtg'.$rType.'-->'.$min."&nbsp;<small>(".Util::setRatingLevel($level, $rType, $min).")</small>";
else
return $min . (!$equal ? Lang::$game['valueDelim'] . $max : null);
@ -603,7 +607,7 @@ class SpellList extends BaseType
}
// description-, buff-parsing component
private function resolveFormulaString($formula, $precision = 0, $level)
private function resolveFormulaString($formula, $precision = 0, $level, $interactive)
{
// step 1: formula unpacking redux
while (($formStartPos = strpos($formula, '${')) !== false)
@ -639,7 +643,7 @@ class SpellList extends BaseType
++$formCurPos; // for some odd reason the precision decimal survives if wo dont increment further..
}
$formOutStr = $this->resolveFormulaString($formOutStr, $formPrecision, $level);
$formOutStr = $this->resolveFormulaString($formOutStr, $formPrecision, $level, $interactive);
$formula = substr_replace($formula, $formOutStr, $formStartPos, ($formCurPos - $formStartPos));
}
@ -663,7 +667,7 @@ class SpellList extends BaseType
continue;
}
$pos += strlen($result[0]);
$str .= $this->resolveVariableString($result, $level);
$str .= $this->resolveVariableString($result, $level, $interactive);
}
$str .= substr($formula, $pos);
$str = str_replace('#', '$', $str); // reset marks
@ -676,7 +680,7 @@ class SpellList extends BaseType
// should probably used only once to create ?_spell. come to think of it, it yields the same results every time.. it absolutely has to!
// although it seems to be pretty fast, even on those pesky test-spells with extra complex tooltips (Ron Test Spell X))
public function parseText($type = 'description', $level = MAX_LEVEL)
public function parseText($type = 'description', $level = MAX_LEVEL, $interactive = false)
{
// oooo..kaaayy.. parsing text in 6 or 7 easy steps
// we don't use the internal iterator here. This func has to be called for the individual template.
@ -902,7 +906,7 @@ class SpellList extends BaseType
++$formCurPos; // for some odd reason the precision decimal survives if wo dont increment further..
}
$formOutStr = $this->resolveFormulaString($formOutStr, $formPrecision, $level);
$formOutStr = $this->resolveFormulaString($formOutStr, $formPrecision, $level, $interactive);
$data = substr_replace($data, $formOutStr, $formStartPos, ($formCurPos - $formStartPos));
}
@ -929,7 +933,7 @@ class SpellList extends BaseType
$pos += strlen($result[0]);
$resolved = $this->resolveVariableString($result, $level);
$resolved = $this->resolveVariableString($result, $level, $interactive);
$str .= intVal($resolved) ? abs($resolved) : $resolved;
}
$str .= substr($data, $pos);

View file

@ -106,6 +106,11 @@ define('ITEMINFO_LOOT', 0x8);
define('MAX_LEVEL', 80);
// Sides
define('SIDE_ALLIANCE', 1);
define('SIDE_HORDE', 2);
define('SIDE_BOTH', 3);
// ClassMask
define('CLASS_WARRIOR', 0x1);
define('CLASS_PALADIN', 0x2);

View file

@ -20,7 +20,7 @@ require 'includes/class.database.php';
// autoload any List-Classes
spl_autoload_register(function ($class) {
if (strpos($class, 'List'))
if (strpos($class, 'List') && !strpos($class, 'Filter'))
require 'includes/class.'.strtr($class, ['List' => '']).'.php';
});

View file

@ -35,20 +35,20 @@ abstract class BaseType
* results in
* WHERE id = 45 OR name NOT LIKE %test% LIMIT 5;
*/
public function __construct($conditions = [])
public function __construct($conditions = [], $applyFilter = false)
{
global $AoWoWconf; // yes i hate myself..
$sql = [];
$linking = ' AND ';
$limit = ' LIMIT '.$AoWoWconf['sqlLimit'];
$className = strtr(get_class($this), ['List' => '']);
$className = get_class($this);
if (!$this->setupQuery || !$this->matchQuery)
return;
// may be called without filtering
if (class_exists($className.'Filter'))
if ($applyFilter && class_exists($className.'Filter'))
{
$fiName = $className.'Filter';
$this->filter = new $fiName();
@ -78,20 +78,29 @@ abstract class BaseType
if (is_array($c[1]))
{
$val = implode(',', Util::sqlEscape($c[1]));
if (!$val)
continue;
$op = (isset($c[2]) && $c[2] == '!') ? 'NOT IN' : 'IN';
$val = '('.implode(',', Util::sqlEscape($c[1])).')';
$val = '('.$val.')';
}
else if (is_string($c[1]))
{
$op = (isset($c[2]) && $c[2] == '!') ? 'NOT LIKE' : 'LIKE';
$val = '"%'.Util::sqlEscape($c[1]).'%"';
$val = Util::sqlEscape($c[1]);
if (!$val)
continue;
$op = (isset($c[2]) && $c[2] == '!') ? 'NOT LIKE' : 'LIKE';
$val = '"%'.$val.'%"';
}
else if (is_int($c[1]))
{
$op = (isset($c[2]) && $c[2] == '!') ? '<>' : '=';
$val = Util::sqlEscape($c[1]);
}
else // null for example
continue;
if (isset($c[2]) && $c[2] != '!')
$op = $c[2];
@ -104,16 +113,15 @@ abstract class BaseType
$limit = $c > 0 ? ' LIMIT '.$c : '';
else
continue; // ignore other possibilities
}
// todo: add strings propperly without them being escaped by simpleDB..?
$this->setupQuery = str_replace('[filter]', $this->filter && $this->filter->buildFilterQuery() ? $this->filter->query.' AND ' : NULL, $this->setupQuery);
$this->setupQuery = str_replace('[cond]', empty($sql) ? '1' : '('.implode($linking, $sql).')', $this->setupQuery);
$this->setupQuery = str_replace('[filter]', $this->filter && $this->filter->buildQuery() ? $this->filter->getQuery().' AND ' : NULL, $this->setupQuery);
$this->setupQuery = str_replace('[cond]', empty($sql) ? '1' : '('.implode($linking, $sql).')', $this->setupQuery);
$this->setupQuery .= $limit;
$this->matchQuery = str_replace('[filter]', $this->filter && $this->filter->buildFilterQuery() ? $this->filter->query.' AND ' : NULL, $this->matchQuery);
$this->matchQuery = str_replace('[cond]', empty($sql) ? '1' : '('.implode($linking, $sql).')', $this->matchQuery);
$this->matchQuery = str_replace('[filter]', $this->filter && $this->filter->buildQuery() ? $this->filter->getQuery().' AND ' : NULL, $this->matchQuery);
$this->matchQuery = str_replace('[cond]', empty($sql) ? '1' : '('.implode($linking, $sql).')', $this->matchQuery);
$rows = DB::Aowow()->Select($this->setupQuery);
if (!$rows)
@ -162,10 +170,10 @@ abstract class BaseType
return $this->curTpl[$field];
}
public function filterGetJs()
public function filterGetSetCriteria()
{
if ($this->filter && isset($this->filter->fiData['c']['cr']))
return "fi_setCriteria([".@implode(',',$this->filter->fiData['c']['cr'])."], [".@implode(',',$this->filter->fiData['c']['crs'])."], ['".@implode('\', \'',$this->filter->fiData['c']['crv'])."']);";
if ($this->filter)
return $this->filter->getSetCriteria();
else
return null;
}
@ -173,11 +181,19 @@ abstract class BaseType
public function filterGetForm()
{
if ($this->filter)
return $this->filter->form;
return $this->filter->getForm();
else
return [];
}
public function filterGetError()
{
if ($this->filter)
return $this->filter->error;
else
return false;
}
// should return data required to display a listview of any kind
// this is a rudimentary example, that will not suffice for most Types
abstract public function getListviewData();
@ -233,14 +249,15 @@ class Lang
public static $main;
public static $search;
public static $game;
public static $filter;
public static $error;
public static $account;
public static $achievement;
public static $compare;
public static $currency;
public static $event;
public static $item;
public static $itemset;
public static $maps;
public static $spell;
public static $talent;
@ -411,7 +428,7 @@ class SmartyAoWoW extends Smarty
$this->left_delimiter = '{';
$this->right_delimiter = '}';
$this->caching = false; // Total Cache, this site does not work
$this->assign('app_name', $config['page']['name']);
$this->assign('appName', $config['page']['name']);
$this->assign('AOWOW_REVISION', AOWOW_REVISION);
$this->_tpl_vars['page'] = array(
'reqJS' => [], // <[string]> path to required JSFile
@ -438,18 +455,14 @@ class SmartyAoWoW extends Smarty
public function display($tpl)
{
// since it's the same for every page, except index..
if (!$this->_tpl_vars['query'][0])
return;
if ($this->_tpl_vars['query'][0] && !preg_match('/[^a-z]/i', $this->_tpl_vars['query'][0]))
{
$ann = DB::Aowow()->Select('SELECT * FROM ?_announcements WHERE flags & 0x10 AND (page = ?s OR page = "*")', $this->_tpl_vars['query'][0]);
foreach ($ann as $k => $v)
$ann[$k]['text'] = Util::localizedString($v, 'text');
// sanitize
if (preg_match('/[^a-z]/i', $this->_tpl_vars['query'][0]))
return;
$ann = DB::Aowow()->Select('SELECT * FROM ?_announcements WHERE flags & 0x10 AND (page = ?s OR page = "*")', $this->_tpl_vars['query'][0]);
foreach ($ann as $k => $v)
$ann[$k]['text'] = Util::localizedString($v, 'text');
$this->_tpl_vars['announcements'] = $ann;
$this->_tpl_vars['announcements'] = $ann;
}
parent::display($tpl);
}
@ -597,6 +610,7 @@ class Util
public static $filterResultString = 'sprintf(%s, %s, %s) + LANG.dash + LANG.lvnote_tryfiltering.replace(\'<a>\', \'<a href="javascript:;" onclick="fi_toggle()">\')';
public static $narrowResultString = 'sprintf(%s, %s, %s) + LANG.dash + LANG.lvnote_trynarrowing';
public static $setCriteriaString = "fi_setCriteria(%s, %s, %s);\n";
public static $expansionString = array( // 3 & 4 unused .. obviously
null, 'bc', 'wotlk', 'cata', 'mop'
@ -1232,18 +1246,14 @@ class Util
return 0;
}
private static function db_conform_array_callback(&$item, $key)
public static function sqlEscape($data)
{
$item = Util::sqlEscape($item);
}
if (!is_array($data))
return mysql_real_escape_string(trim($data));
public static function sqlEscape($string)
{
if (!is_array($string))
return mysql_real_escape_string(trim($string));
array_walk($data, function(&$item, $key) { $item = Util::sqlEscape($item); });
array_walk($string, 'Util::db_conform_array_callback');
return $string;
return $data;
}
public static function jsEscape($string)
@ -1260,16 +1270,26 @@ class Util
public static function localizedString($data, $field)
{
$sqlLocales = ['EN', 2 => 'FR', 3 => 'DE', 6 => 'ES', 8 => 'RU'];
// default back to enUS if localization unavailable
// default case: selected locale available
if (!empty($data[$field.'_loc'.User::$localeId]))
return $data[$field.'_loc'.User::$localeId];
// dbc-case
else if (!empty($data[$field.$sqlLocales[User::$localeId]]))
return $data[$field.$sqlLocales[User::$localeId]];
// locale not enUS; aowow-type localization available; add brackets
else if (User::$localeId != LOCALE_EN && isset($data[$field.'_loc0']) && !empty($data[$field.'_loc0']))
return '['.$data[$field.'_loc0'].']';
// dbc-case
else if (User::$localeId != LOCALE_EN && isset($data[$field.$sqlLocales[0]]) && !empty($data[$field.$sqlLocales[0]]))
return '['.$data[$field.$sqlLocales[0]].']';
// locale not enUS; TC localization; add brackets
else if (User::$localeId != LOCALE_EN && isset($data[$field]) && !empty($data[$field]))
return '['.$data[$field].']';
@ -1367,11 +1387,12 @@ class Util
break;
case 3:
case 7:
$spl = new SpellList(array(['id', (int)$enchant['object'.$h]]));
$gain = $spl->getStatGain();
$spl = new SpellList(array(['id', (int)$enchant['object'.$h]]));
$gains = $spl->getStatGain();
foreach ($gain as $k => $v) // array_merge screws up somehow...
@$jsonStats[$k] += $v;
foreach ($gains as $gain)
foreach ($gain as $k => $v) // array_merge screws up somehow...
@$jsonStats[$k] += $v;
break;
case 4:
switch ($enchant['object'.$h])

View file

@ -18,7 +18,6 @@ $lang = array(
'profiles' => "Deine Charaktere",
'links' => "Links",
'pageNotFound' => "Diese|Dieser|Dieses %s existiert nicht.", // todo: dämliche Fälle...
'both' => "Beide",
'gender' => "Geschlecht",
'sex' => [null, 'Mann', 'Frau'],
'quickFacts' => "Kurzübersicht",
@ -50,61 +49,20 @@ $lang = array(
// pwd_err = Gib bitte dein Passwort ein
// signin_msg = Gib bitte deinen Accountnamen ein
// c_pwd = Passwort wiederholen
// create_filter = Filter erstellen
// loading = Lädt ...
// soldby = Verkauft von
// droppedby = Gedroppt von
// containedinobject = Enthalten in
// containedinitem = Enthalten in Item
// contain = Enthält
// objectiveof = Ziel von
// rewardof = Belohnung von
// facts = Übersicht
// pickpocketingloot = Gestohlen von
// prospectedfrom = Sondiert aus
// canbeplacedin = Kann abgelegt werden in
// minedfromobject = Abgebaut aus
// gatheredfromobject = Gesammelt von
// items = Gegenstände
// objects = Objekte
// quests = Quests
// npcs = NPCs
// drop = Drop
// starts = Startet
// ends = Beendet
// skinning = Kürschnerei
// pickpocketing = Taschendiebstahl
// sells = Verkauft
// reputationwith = Ruf mit der Fraktion
// experience = Erfahrung
// uponcompletionofthisquestyouwillgain = Bei Abschluss dieser Quest erhaltet Ihr
// reagentfor = Reagenz für
// skinnedfrom = Gekürschnert von
// disenchanting = Entzaubern
// This_Object_cant_be_found = Der Standort dieses Objekts ist nicht bekannt.
// itemsets = Sets
// Spells = Zauber
// Items = Gegenstände
// Quests = Quests
// Factions = Fraktionen
// Item_Sets = Sets
// Compare = Gegenstandsvergleichswerkzeug
// NPCs = NPCs
// Objects = Objekte
// My_account = Mein Account
// Comments = Kommentare
// Latest_Comments = Neuste Kommentare
// day = Tag.
// hr = Std.
// min = Min.
// sec = Sek.
// Respawn = Respawn
// Class = Klasse
// class = Klasse
// race = Volk
// Race = Volk
// Races = Völker
// filter
'extSearch' => "Erweiterte Suche",
'addFilter' => "Weiteren Filter hinzufügen",
'match' => "Verwendete Filter",
'allFilter' => "Alle Filters",
'oneFilter' => "Mindestens einer",
'applyFilter' => "Filter anwenden",
'resetForm' => "Formular zurücksetzen",
'refineSearch' => "Tipp: Präzisiere deine Suche mit Durchsuchen einer <a href=\"javascript:;\" id=\"fi_subcat\">Unterkategorie</a>.",
// infobox
'disabled' => "Deaktiviert",
'disabledHint' => "Kann nicht erhalten oder abgeschlossen werden.",
'serverside' => "Serverseitig",
@ -117,10 +75,10 @@ $lang = array(
'tryAgain' => "Bitte versucht es mit anderen Suchbegriffen oder überprüft deren Schreibweise.",
),
'game' => array(
'alliance' => "Allianz",
'horde' => "Horde",
'class' => "Klasse",
'classes' => "Klassen",
'currency' => "Währung",
'currencies' => "Währungen",
'races' => "Völker",
'title' => "Titel",
'titles' => "Titel",
@ -128,15 +86,18 @@ $lang = array(
'event' => "Weltereigniss",
'events' => "Weltereignisse",
'cooldown' => "%s Abklingzeit",
'itemset' => "Ausrüstungsset",
'itemsets' => "Ausrüstungssets",
'requires' => "Benötigt",
'reqLevel' => "Benötigt Stufe %s",
'reqLevelHlm' => "Benötigt Stufe %s",
'valueDelim' => " - ", // " bis "
'si' => array(-2 => "Nur für Horde", -1 => "Nur für Allianz", null, "Allianz", "Horde", "Beide"),
'resistances' => array(null, 'Heiligwiderstand', 'Feuerwiderstand', 'Naturwiderstand', 'Frostwiderstand', 'Schattenwiderstand', 'Arkanwiderstand'),
'sc' => array("Körperlich", "Heilig", "Feuer", "Natur", "Frost", "Schatten", "Arkan"),
'di' => array(null, "Magie", "Fluch", "Krankheit", "Gift", "Verstohlenheit", "Unsichtbarkeit", null, null, "Wut"),
'cl' => array("UNK_CL0", "Krieger", "Paladin", "Jäger", "Schurke", "Priester", "Todesritter", "Schamane", "Magier", "Hexenmeister", 'UNK_CL10', "Druide"),
'ra' => array(-2 => "Horde", -1 => "Allianz", "Beide", "Mensch", "Orc", "Zwerg", "Nachtelf", "Untoter", "Taure", "Gnom", "Troll", 'UNK_RA9', "Blutelf", "Draenei"),
'cl' => array(null, "Krieger", "Paladin", "Jäger", "Schurke", "Priester", "Todesritter", "Schamane", "Magier", "Hexenmeister", null, "Druide"),
'ra' => array(-2 => "Horde", -1 => "Allianz", "Beide", "Mensch", "Orc", "Zwerg", "Nachtelf", "Untoter", "Taure", "Gnom", "Troll", null, "Blutelf", "Draenei"),
'rep' => array("Hasserfüllt", "Feindselig", "Unfreundlich", "Neutral", "Freundlich", "Wohlwollend", "Respektvoll", "Ehrfürchtig"),
'st' => array(
null, "Katzengestalt", "Baum des Lebens", "Reisegestalt", "Wassergestalt",
@ -155,18 +116,6 @@ $lang = array(
"Marschall / Kriegsherr", "Feldmarschall / Kriegsfürst", "Großmarschall / Oberster Kriegsfürst"
),
),
'filter' => array(
'extSearch' => "Erweiterte Suche",
'onlyAlliance' => "Nur für Allianz",
'onlyHorde' => "Nur für Horde",
'addFilter' => "Weiteren Filter hinzufügen",
'match' => "Verwendete Filter",
'allFilter' => "Alle Filters",
'oneFilter' => "Mindestens einer",
'applyFilter' => "Filter anwenden",
'resetForm' => "Formular zurücksetzen",
'refineSearch' => "Tipp: Präzisiere deine Suche mit Durchsuchen einer <a href=\"javascript:;\" id=\"fi_subcat\">Unterkategorie</a>.",
),
'error' => array(
'errNotFound' => "Seite nicht gefunden",
'errPage' => "Was? Wie hast du... vergesst es!\n<br>\n<br>\nAnscheinend konnte die von Euch angeforderte Seite nicht gefunden werden. Wenigstens nicht in dieser Dimension.\n<br>\n<br>\nVielleicht lassen einige Justierungen an der\n<span class=\"q4\">\n<ins>[WH-799 Großkonfabulierungsmaschine]</ins>\n</span>\ndie Seite plötzlich wieder auftauchen!\n<div class=\"pad\"></div>\n<div class=\"pad\"></div>\nOder, Ihr könnt es auch \n<a href=\"/?aboutus#contact\">uns melden</a>\n- die Stabilität des WH-799 ist umstritten, und wir möchten gern noch so ein Problem vermeiden...",
@ -264,6 +213,27 @@ $lang = array(
'Allgemein', 'Spieler gegen Spieler', 'Ruf', 'Dungeon & Schlachtzug', 'Quests', 'Berufe', 'Weltereignisse'
)
),
'currency' => array(
'cat' => array(
1 => "Verschiedenes", 2 => "Spieler gegen Spieler", 4 => "Classic", 21 => "Wrath of the Lich King", 22 => "Dungeon und Schlachtzug", 23 => "Burning Crusade", 41 => "Test", 3 => "Unbenutzt"
)
),
'itemset' => array(
'notes' => array(
null, "Dungeon-Set 1", "Dungeon-Set 2", "Tier 1 Raid-Set",
"Tier 2 Raid-Set", "Tier 3 Raid-Set", "Level 60 PvP-Set (Rar)", "Level 60 PvP-Set (Rar, alt)",
"Level 60 PvP-Set (Episch)", "Set der Ruinen von Ahn'Qiraj", "Set des Tempels von Ahn'Qiraj", "Set von Zul'Gurub",
"Tier 4 Raid-Set", "Tier 5 Raid-Set", "Dungeon-Set 3", "Set des Arathibeckens",
"Level 70 PvP-Set (Rar)", "Arena-Set Saison 1", "Tier 6 Raid-Set", "Arena-Set Saison 2",
"Arena-Set Saison 3", "Level 70 PvP-Set 2 (Rar)", "Arena-Set Saison 4", "Tier 7 Raid-Set",
"Arena-Set Saison 5", "Tier 8 Raid-Set", "Arena-Set Saison 6", "Tier 9 Raid-Set",
"Arena-Set Saison 7", "Tier 10 Raid-Set", "Arena-Set Saison 8"
),
'types' => array(
null, "Stoff", "Leder", "Schwere R\u00fcstung", "Platte", "Dolch", "Ring",
"Faustwaffe", "Einhandaxt", "Einhandstreitkolben", "Einhandschwert", "Schmuck", "Amulett"
)
),
'spell' => array(
'remaining' => "Noch %s",
'untilCanceled' => "bis Abbruch",
@ -317,6 +287,10 @@ $lang = array(
'socket' => array (
"Metasockel", "Roter Sockel", "Gelber Sockel", "Blauer Sockel", -1 => "Prismatischer Sockel"
),
'quality' => array (
"Schlecht", "Verbreitet", "Selten", "Rar",
"Episch", "Legendär", "Artefakt", "Erbstücke",
),
'trigger' => array (
"Benutzen: ", "Anlegen: ", "Chance bei Treffer: ", null, null,
null, null

View file

@ -18,7 +18,6 @@ $lang = array(
'profiles' => "Your Characters",
'links' => "Links",
'pageNotFound' => "This %s doesn't exist.",
'both' => "Both",
'gender' => "Gender",
'sex' => [null, 'Male', 'Female'],
'quickFacts' => "Quick Facts",
@ -49,63 +48,20 @@ $lang = array(
// pwd_err = Enter your password
// signin_msg = Enter your game account
// c_pwd = Repeat password
// create_filter = Create a filter
// loading = Loading ...
// soldby = Sold by
// droppedby = Dropped by
// containedinobject = Contained in
// containedinitem = Contained in item
// contain = Contains
// objectiveof = Objective of
// rewardof = Reward of
// facts = Facts
// pickpocketingloot = Pickpocketing
// prospectedfrom = Prospect from
// canbeplacedin = Can be placed in
// minedfromobject = Mined from
// gatheredfromobject = Gathered from
// items = Items
// objects = Objects
// quests = Quests
// npcs = NPCs
// drop = Drop
// starts = Starts
// ends = Ends
// skinning = Skinning
// pickpocketing = Pickpocketing
// sells = Sells
// reputationwith = Reputation with
// experience = experience
// uponcompletionofthisquestyouwillgain = Upon completion of quests, get
// reagentfor = Reagent for
// skinnedfrom = Skinned from
// disenchanting = Disenchanting
// This_Object_cant_be_found = Object map not available, Object may be spawned via a script
// itemsets = Item Sets
// Spells = Spells
// Items = Items
// Quests = Quests
// Factions = Factions
// Item_Sets = Item sets
// NPCs = NPCs
// Objects = Objects
// Compare = Item Comparison Tool
// My_account = My account
// Comments = Comments
// Latest_Comments = Latest comments
// day = days
// hr = hr
// min = min
// sec = sec
// Respawn = Respawn
// Class = Class
// class = class
// race = race
// Race = Race
// Races = Races
// name = name
// Name = Name
// slain = slain
// filter
'extSearch' => "Extended search",
'addFilter' => "Add another Filter",
'match' => "Match",
'allFilter' => "All filters",
'oneFilter' => "At least one",
'applyFilter' => "Apply filter",
'resetForm' => "Reset Form",
'refineSearch' => "Tip: Refine your search by browsing a <a href=\"javascript:;\" id=\"fi_subcat\">subcategory</a>.",
// infobox
'name' => "Name",
'disabled' => "Disabled",
'disabledHint' => "Cannot be attained or completed",
@ -119,10 +75,10 @@ $lang = array(
'tryAgain' => "Please try some different keywords or check your spelling.",
),
'game' => array(
'alliance' => "Alliance",
'horde' => "Horde",
'class' => "class",
'classes' => "Classes",
'currency' => "currency",
'currencies' => "Currencies",
'races' => "Races",
'title' => "title",
'titles' => "Titles",
@ -130,15 +86,18 @@ $lang = array(
'event' => "World Event",
'events' => "World Events",
'cooldown' => "%s cooldown",
'itemset' => "item Set",
'itemsets' => "Item Sets",
'requires' => "Requires",
'reqLevel' => "Requires Level %s",
'reqLevelHlm' => "Requires Level %s",
'valueDelim' => " to ",
'si' => array(-2 => "Horde only", -1 => "Alliance only", null, "Alliance", "Horde", "Both"),
'resistances' => array(null, 'Holy Resistance', 'Fire Resistance', 'Nature Resistance', 'Frost Resistance', 'Shadow Resistance', 'Arcane Resistance'),
'di' => array(null, "Magic", "Curse", "Disease", "Poison", "Stealth", "Invisibility", null, null, "Enrage"),
'sc' => array("Physical", "Holy", "Fire", "Nature", "Frost", "Shadow", "Arcane"),
'cl' => array("UNK_CL0", "Warrior", "Paladin", "Hunter", "Rogue", "Priest", "Death Knight", "Shaman", "Mage", "Warlock", 'UNK_CL10', "Druid"),
'ra' => array(-2 => "Horde", -1 => "Alliance", "Both", "Human", "Orc", "Dwarf", "Night Elf", "Undead", "Tauren", "Gnome", "Troll", 'UNK_RA9', "Blood Elf", "Draenei"),
'cl' => array(null, "Warrior", "Paladin", "Hunter", "Rogue", "Priest", "Death Knight", "Shaman", "Mage", "Warlock", null, "Druid"),
'ra' => array(-2 => "Horde", -1 => "Alliance", "Both", "Human", "Orc", "Dwarf", "Night Elf", "Undead", "Tauren", "Gnome", "Troll", null, "Blood Elf", "Draenei"),
'rep' => array("Hated", "Hostile", "Unfriendly", "Neutral", "Friendly", "Honored", "Revered", "Exalted"),
'st' => array(
null, "Cat Form", "Tree of Life", "Travel Form", "Aquatic Form",
@ -157,18 +116,6 @@ $lang = array(
"Marshal / General", "Field Marshal / Warlord", "Grand Marshal / High Warlord"
),
),
'filter' => array(
'extSearch' => "Extended search",
'onlyAlliance' => "Alliance only",
'onlyHorde' => "Horde only",
'addFilter' => "Add another Filter",
'match' => "Match",
'allFilter' => "All filters",
'oneFilter' => "At least one",
'applyFilter' => "Apply filter",
'resetForm' => "Reset Form",
'refineSearch' => "Tip: Refine your search by browsing a <a href=\"javascript:;\" id=\"fi_subcat\">subcategory</a>.",
),
'error' => array(
'errNotFound' => "Page not found",
'errPage' => "What? How did you... nevermind that!\n<br>\n<br>\nIt appears that the page you have requested cannot be found. At least, not in this dimension.\n<br>\n<br>\nPerhaps a few tweaks to the <span class=\"q4\">[WH-799 Major Confabulation Engine]</span> may result in the page suddenly making an appearance!\n<div class=\"pad\"></div>\n<div class=\"pad\"></div>\nOr, you can try \n<a href=\"http://www.wowhead.com/?aboutus#contact\">contacting us</a>\n- the stability of the WH-799 is debatable, and we wouldn't want another accident...",
@ -266,6 +213,27 @@ $lang = array(
'General', 'Player vs. Player', 'Reputation', 'Dungeons & Raids', 'Quests', 'Professions', 'World Events'
)
),
'currency' => array(
'cat' => array(
1 => "Miscellaneous", 2 => "Player vs. Player", 4 => "Classic", 21 => "Wrath of the Lich King", 22 => "Dungeon and Raid", 23 => "Burning Crusade", 41 => "Test", 3 => "Unused"
)
),
'itemset' => array(
'notes' => array(
null, "Dungeon Set 1", "Dungeon Set 2", "Tier 1 Raid Set",
"Tier 2 Raid Set", "Tier 3 Raid Set", "Level 60 PvP Rare Set", "Level 60 PvP Rare Set (Old)",
"Level 60 PvP Epic Set", "Ruins of Ahn'Qiraj Set", "Temple of Ahn'Qiraj Set", "Zul'Gurub Set",
"Tier 4 Raid Set", "Tier 5 Raid Set", "Dungeon Set 3", "Arathi Basin Set",
"Level 70 PvP Rare Set", "Arena Season 1 Set", "Tier 6 Raid Set", "Arena Season 2 Set",
"Arena Season 3 Set", "Level 70 PvP Rare Set 2", "Arena Season 4 Set", "Tier 7 Raid Set",
"Arena Season 5 Set", "Tier 8 Raid Set", "Arena Season 6 Set", "Tier 9 Raid Set",
"Arena Season 7 Set", "Tier 10 Raid Set", "Arena Season 8 Set"
),
'types' => array(
null, "Cloth", "Leather", "Mail", "Plate", "Dagger", "Ring",
"Fist Weapon", "One-Handed Axe", "One-Handed Mace", "One-Handed Sword", "Trinket", "Amulet"
)
),
'spell' => array(
'remaining' => "%s remaining",
'untilCanceled' => "until canceled",
@ -319,6 +287,10 @@ $lang = array(
'socket' => array(
"Meta Socket", "Red Socket", "Yellow Socket", "Blue Socket", -1 => "Prismatic Socket"
),
'quality' => array (
"Poor", "Common", "Uncommon", "Rare",
"Epic", "Legendary", "Artifact", "Heirloom"
),
'trigger' => array (
"Use: ", "Equip: ", "Chance on hit: ", null, null,
null, null

View file

@ -18,7 +18,6 @@ $lang = array(
'profiles' => "Tus personajes", // translate.google :x
'links' => "Enlaces",
'pageNotFound' => "Este %s no existe.",
'both' => "Ambos",
'gender' => "Género",
'sex' => [null, 'Hombre', 'Mujer'],
'quickFacts' => "Notas rápidas",
@ -46,6 +45,17 @@ $lang = array(
'millisecsAbbr' => "[ms]",
'name' => "Nombre",
// filter
'extSearch' => "Extender búsqueda",
'addFilter' => "Añadir otro filtro",
'match' => "Aplicar",
'allFilter' => "Todos los filtros",
'oneFilter' => "Por lo menos uno",
'applyFilter' => "Aplicar filtro",
'resetForm' => "Reiniciar formulario",
'refineSearch' => "Sugerencia: Refina tu búsqueda llendo a una <a href=\"javascript:;\" id=\"fi_subcat\">subcategoría</a>.",
// infobox
'disabled' => "[Disabled]",
'disabledHint' => "[Cannot be attained or completed]",
'serverside' => "[Serverside]",
@ -58,10 +68,10 @@ $lang = array(
'tryAgain' => "Por favor, introduzca otras palabras claves o verifique el término ingresado.",
),
'game' => array(
'alliance' => "Alianza",
'horde' => "Horda",
'class' => "clase",
'classes' => "Clases",
'currency' => "monedas",
'currencies' => "Monedas",
'races' => "Razas",
'title' => "título",
'titles' => "Títulos",
@ -69,15 +79,18 @@ $lang = array(
'event' => "Suceso mundial ",
'events' => "Eventos del mundo",
'cooldown' => "%s de reutilización",
'itemset' => "conjunto de objetos",
'itemsets' => "Conjuntos de objetos",
'requires' => "Requiere",
'reqLevel' => "Necesitas ser de nivel %s",
'reqLevelHlm' => "Necesitas ser de nivel %s",
'valueDelim' => " - ",
'si' => array(-2 => "Horda solamente", -1 => "Alianza solamente", null, "Alianza", "Horda", "Ambos"),
'resistances' => array(null, 'Resistencia a lo Sagrado', 'v', 'Resistencia a la Naturaleza', 'Resistencia a la Escarcha', 'Resistencia a las Sombras', 'Resistencia a lo Arcano'),
'sc' => array("Física", "Sagrado", "Fuego", "Naturaleza", "Escarcha", "Sombras", "Arcano"),
'di' => array(null, "Magia", "Maldición", "Enfermedad", "Veneno", "Sigilo", "Invisibilidad", null, null, "Enfurecer"),
'cl' => array("UNK_CL0", "Guerrero", "Paladín", "Cazador", "Pícaro", "Sacerdote", "Caballero de la Muerte", "Chamán", "Mago", "Brujo", 'UNK_CL10', "Druida"),
'ra' => array(-2 => "Horda", -1 => "Alianza", "Ambos", "Humano", "Orco", "Enano", "Elfo de la noche", "No-muerto", "Tauren", "Gnomo", "Trol ", 'UNK_RA9', "Blood Elf", "Elfo de sangre"),
'cl' => array(null, "Guerrero", "Paladín", "Cazador", "Pícaro", "Sacerdote", "Caballero de la Muerte", "Chamán", "Mago", "Brujo", null, "Druida"),
'ra' => array(-2 => "Horda", -1 => "Alianza", "Ambos", "Humano", "Orco", "Enano", "Elfo de la noche", "No-muerto", "Tauren", "Gnomo", "Trol ", null, "Blood Elf", "Elfo de sangre"),
'rep' => array("Odiado", "Hostil", "Adverso", "Neutral", "Amistoso", "Honorable", "Reverenciado", "Exaltado"),
'st' => array(
null, "Forma felina", "Árbol de vida", "Forma de viaje", "Forma acuática",
@ -96,18 +109,6 @@ $lang = array(
"Marshal / General", "Field Marshal / Warlord", "Grand Marshal / High Warlord"
),
),
'filter' => array(
'extSearch' => "Extender búsqueda",
'onlyAlliance' => "Alianza solamente",
'onlyHorde' => "Horda solamente",
'addFilter' => "Añadir otro filtro",
'match' => "Aplicar",
'allFilter' => "Todos los filtros",
'oneFilter' => "Por lo menos uno",
'applyFilter' => "Aplicar filtro",
'resetForm' => "Reiniciar formulario",
'refineSearch' => "Sugerencia: Refina tu búsqueda llendo a una <a href=\"javascript:;\" id=\"fi_subcat\">subcategoría</a>.",
),
'error' => array(
'errNotFound' => "Page not found",
'errPage' => "What? How did you... nevermind that!\n<br>\n<br>\nIt appears that the page you have requested cannot be found. At least, not in this dimension.\n<br>\n<br>\nPerhaps a few tweaks to the <span class=\"q4\">[WH-799 Major Confabulation Engine]</span> may result in the page suddenly making an appearance!\n<div class=\"pad\"></div>\n<div class=\"pad\"></div>\nOr, you can try \n<a href=\"http://www.wowhead.com/?aboutus#contact\">contacting us</a>\n- the stability of the WH-799 is debatable, and we wouldn't want another accident...",
@ -165,6 +166,27 @@ $lang = array(
'General', 'Jugador contra Jugador', 'Reputación', 'Mazmorras y bandas', 'Misiones', 'Profesiones', 'Eventos del mundo'
)
),
'currency' => array(
'cat' => array(
1 => "Miscelánea", 2 => "Jugador contra Jugador", 4 => "Clásico", 21 => "Wrath of the Lich King", 22 => "Mazmorra y banda", 23 => "Burning Crusade", 41 => "Prueba", 3 => "No las uso"
)
),
'itemset' => array(
'notes' => array(
null, "Set de mazmorra 1", "Set de mazmorra 2", "Set de banda tier 1",
"Set de banda tier 2", "Set de banda tier 3", "Set JcJ nivel 60 superior", "Set JcJ nivel 60 superior (obsoleto)",
"Set JcJ nivel 60 épico", "Set de las Ruinas de Ahn'Qiraj", "Set del Templo de Ahn'Qiraj", "Set de Zul'Gurub",
"Set de banda tier 4", "Set de banda tier 5", "Set de mazmorra 3", "Set de la Cuenca de Arathi",
"Set JcJ nivel 70 superior", "Set de la Temporada de Arenas 1", "Set de banda tier 6", "Set de la Temporada de Arenas 2",
"Set de la Temporada de Arenas 3", "Set JcJ nivel 70 superior 2", "Set de la Temporada de Arenas 4", "Set de banda tier 7",
"Set de la Temporada de Arenas 5", "Set de banda tier 8", "Set de la Temporada de Arenas 6", "Set de banda tier 9",
"Set de la Temporada de Arenas 7", "Set de banda tier 10", "Set de la Temporada de Arenas 8"
),
'types' => array(
null, "Tela", "Cuero", "Malla", "Placas", "Daga", "Anillo",
"Arma de puño", "Hacha de uno mano", "Maza de uno mano", "Espada de uno mano", "Abalorio", "Amuleto"
)
),
'spell' => array(
'remaining' => "%s restantes",
'untilCanceled' => "hasta que se cancela",
@ -218,6 +240,10 @@ $lang = array(
'socket' => array(
"Ranura meta", "Ranura roja", "Ranura amarilla", "Ranura azul", -1 => "Ranura prismática "
),
'quality' => array (
"Pobre", "Común", "Poco Común", "Raro",
"Épica", "Legendaria", "Artefacto", "Reliquia"
),
'trigger' => array (
"Uso: ", "Equipar: ", "Probabilidad al acertar: ", null, null,
null, null

View file

@ -18,7 +18,6 @@ $lang = array(
'profiles' => "Vos personnages", // translate.google :x
'links' => "Liens",
'pageNotFound' => "Ce %s n'existe pas.",
'both' => "Les deux",
'gender' => "Genre",
'sex' => [null, 'Homme', 'Femme'],
'quickFacts' => "En bref",
@ -46,6 +45,17 @@ $lang = array(
'millisecsAbbr' => "[ms]",
'name' => "Nom",
// filter
'extSearch' => "Recherche avancée",
'addFilter' => "Ajouter un autre filtre",
'match' => "Critère",
'allFilter' => "Tous les filtres",
'oneFilter' => "Au moins un",
'applyFilter' => "Appliquer le filtre",
'resetForm' => "Rétablir",
'refineSearch' => "Astuce : Affinez votre recherche en utilisant une <a href=\"javascript:;\" id=\"fi_subcat\">sous-catégorie</a>.",
// infobox
'disabled' => "[Disabled]",
'disabledHint' => "[Cannot be attained or completed]",
'serverside' => "[Serverside]",
@ -58,10 +68,10 @@ $lang = array(
'tryAgain' => "Veuillez essayer d'autres mots ou vérifiez l'orthographe des termes de recherche.",
),
'game' => array (
'alliance' => "Alliance",
'horde' => "Horde",
'class' => "classe",
'classes' => "Classes",
'currency' => "monnaies",
'currencies' => "Monnaies",
'races' => "Races",
'title' => "titre",
'titles' => "Titres",
@ -69,15 +79,18 @@ $lang = array(
'event' => "Évènement mondial",
'events' => "Évènements mondiaux",
'cooldown' => "%s de recharge",
'itemset' => "ensemble d'objets",
'itemsets' => "Ensembles d'objets",
'requires' => "Requiert",
'reqLevel' => "Niveau %s requis",
'reqLevelHlm' => "Requiert Niveau %s",
'valueDelim' => " - ",
'si' => array(-2 => "Horde seulement", -1 => "Alliance seulement", null, "Alliance", "Horde", "Les deux"),
'resistances' => array(null, 'Résistance au Sacré', 'Résistance au Feu', 'Résistance à la Nature', 'Résistance au Givre', 'Résistance à l\'Ombre', 'Résistance aux Arcanes'),
'di' => array(null, "Magie", "Malédiction", "Maladie", "Poison", "Camouflage", "Invisibilité", null, null, "Enrager"),
'sc' => array("Physique", "Sacré", "Feu", "Nature", "Givre", "Ombre", "Arcane"),
'cl' => array("UNK_CL0", "Guerrier", "Paladin", "Chasseur", "Voleur", "Prêtre", "DeathChevalier de la mort", "Chaman", "Mage", "Démoniste", 'UNK_CL10', "Druide"),
'ra' => array(-2 => "Horde", -1 => "Alliance", "Les deux", "Humain", "Orc", "Nain", "Elfe de la nuit", "Mort-vivant", "Tauren", "Gnome", "Troll", 'UNK_RA9', "Elfe de sang", "Draeneï"),
'cl' => array(null, "Guerrier", "Paladin", "Chasseur", "Voleur", "Prêtre", "DeathChevalier de la mort", "Chaman", "Mage", "Démoniste", null, "Druide"),
'ra' => array(-2 => "Horde", -1 => "Alliance", "Les deux", "Humain", "Orc", "Nain", "Elfe de la nuit", "Mort-vivant", "Tauren", "Gnome", "Troll", null, "Elfe de sang", "Draeneï"),
'rep' => array("Détesté", "Hostile", "Inamical", "Neutre", "Amical", "Honoré", "Révéré", "Exalté"),
'st' => array(
null, "Forme de félin", "Arbre de vie", "Forme de voyage", "Aquatic Form",
@ -96,18 +109,6 @@ $lang = array(
"Marshal / General", "Field Marshal / Warlord", "Grand Marshal / High Warlord"
),
),
'filter' => array(
'extSearch' => "Recherche avancée",
'onlyAlliance' => "Alliance seulement",
'onlyHorde' => "Horde seulement",
'addFilter' => "Ajouter un autre filtre",
'match' => "Critère",
'allFilter' => "Tous les filtres",
'oneFilter' => "Au moins un",
'applyFilter' => "Appliquer le filtre",
'resetForm' => "Rétablir",
'refineSearch' => "Astuce : Affinez votre recherche en utilisant une <a href=\"javascript:;\" id=\"fi_subcat\">sous-catégorie</a>.",
),
'error' => array(
'errNotFound' => "Page not found",
'errPage' => "What? How did you... nevermind that!\n<br>\n<br>\nIt appears that the page you have requested cannot be found. At least, not in this dimension.\n<br>\n<br>\nPerhaps a few tweaks to the <span class=\"q4\">[WH-799 Major Confabulation Engine]</span> may result in the page suddenly making an appearance!\n<div class=\"pad\"></div>\n<div class=\"pad\"></div>\nOr, you can try \n<a href=\"http://www.wowhead.com/?aboutus#contact\">contacting us</a>\n- the stability of the WH-799 is debatable, and we wouldn't want another accident...",
@ -165,6 +166,27 @@ $lang = array(
'Général', 'Joueur ctr. Joueur', 'Réputation', 'Donjons & raids', 'Quêtes', 'Métiers', 'Évènements mondiaux'
)
),
'currency' => array(
'cat' => array(
1 => "Divers", 2 => "JcJ", 4 => "Classique", 21 => "Wrath of the Lich King", 22 => "Raid", 23 => "Burning Crusade", 41 => "Test", 3 => "Inutilisées"
)
),
'itemset' => array(
'notes' => array(
null, "Ensemble de donjon 1", "Ensemble de donjon 2", "Ensemble de raid palier 1",
"Ensemble de raid palier 2", "Ensemble de raid palier 3", "Ensemble JcJ niveau 60 supérieur", "Ensemble JcJ niveau 60 supérieur (désuet)",
"Ensemble JcJ niveau 60 épique", "Ensemble des ruines d'Ahn'Qiraj", "Ensemble d'Ahn'Qiraj", "Ensemble de Zul'Gurub",
"Ensemble de raid palier 4", "Ensemble de raid palier 5", "Ensemble de donjon 3", "Ensemble du bassin d'Arathi",
"Ensemble JcJ niveau 70 supérieur", "Ensemble d'arène saison 1", "Ensemble de raid palier 6", "Ensemble d'arène saison 2",
"Ensemble d'arène saison 3", "Ensemble JcJ niveau 70 supérieur 2", "Ensemble d'arène saison 4", "Ensemble de raid palier 7",
"Ensemble d'arène saison 5", "Ensemble de raid palier 8", "Ensemble d'arène saison 6", "Ensemble de raid palier 9",
"Ensemble d'arène saison 7", "Ensemble de raid palier 10", "Set d'Arena de la Saison 8"
),
'types' => array(
null, "Tissu", "Cuir", "Mailles", "Plaques", "Dague", "Anneau",
"Arme de pugilat", "Hache à une main", "Masse à une main", "Épée à une main", "Bijou", "Amulette"
)
),
'spell' => array(
'remaining' => "%s restantes",
'untilCanceled' => "jusquà annulation",
@ -218,6 +240,10 @@ $lang = array(
'socket' => array(
"Méta-châsse", "Châsse rouge", "Châsse jaune", "Châsse bleue", -1 => "Châsse prismatique"
),
'quality' => array (
"Médiocre", "Classique", "Bonne", "Rare",
"Épique", "Légendaire", "Artefact", "Héritage"
),
'trigger' => array (
"Utilise: ", "Équipé : ", "Chances quand vous touchez : ", null, null,
null, null

View file

@ -18,7 +18,6 @@ $lang = array(
'profiles' => "Ваши персонажи", // translate.google :x
'links' => "Ссылки",
'pageNotFound' => "Такое %s не существует.",
'both' => "Обе",
'gender' => "Пол",
'sex' => [null, 'Мужчина', 'Женщина'],
'quickFacts' => "Краткая информация",
@ -46,6 +45,17 @@ $lang = array(
'millisecsAbbr' => "[ms]",
'name' => "Название",
// filter
'extSearch' => "Расширенный поиск",
'addFilter' => "Добавить другой фильтр",
'match' => "Совпадение",
'allFilter' => "Все фильтры",
'oneFilter' => "Любое совпадение",
'applyFilter' => "Применить фильтр",
'resetForm' => "Очистить форму",
'refineSearch' => "Совет: Уточните поиск, добавив <a href=\"javascript:;\" id=\"fi_subcat\">подкатегорию</a>.",
// infobox
'disabled' => "[Disabled]",
'disabledHint' => "[Cannot be attained or completed]",
'serverside' => "[Serverside]",
@ -58,10 +68,10 @@ $lang = array(
'tryAgain' => "Пожалуйста, попробуйте другие ключевые слова или проверьте правильность запроса.",
),
'game' => array(
'alliance' => "Альянс",
'horde' => "Орда",
'class' => "класс",
'classes' => "Классы",
'currency' => "валюта",
'currencies' => "Валюта",
'races' => "Расы",
'title' => "звание",
'titles' => "Звания",
@ -69,15 +79,18 @@ $lang = array(
'event' => "Событие",
'events' => "Игровые события",
'cooldown' => "Восстановление: %s",
'itemset' => "комплект",
'itemsets' => "Комплекты",
'requires' => "Требует:",
'reqLevel' => "Требуется уровень: %s",
'reqLevelHlm' => "Требуется уровень: %s",
'valueDelim' => " - ",
'si' => array(-2 => "Орда только", -1 => "Альянс только", null, "Альянс", "Орда", "Обе"),
'resistances' => array(null, 'Сопротивление светлой магии', 'Сопротивление огню', 'Сопротивление силам природы', 'Сопротивление магии льда', 'Сопротивление темной магии', 'Сопротивление тайной магии'),
'di' => array(null, "Magic", "Curse", "Disease", "Poison", "Stealth", "Invisibility", null, null, "Enrage"),
'sc' => array("Физический урон", "Свет", "Огонь", "природа", "Лед", "Тьма", "Тайная магия"),
'cl' => array("UNK_CL0", "Воин", "Паладин", "Охотник", "Разбойник", "Жрец", "Рыцарь смерти", "Шаман", "Маг", "Чернокнижник", 'UNK_CL10', "Друид"),
'ra' => array(-2 => "Орда", -1 => "Альянс", "Обе", "Человек", "Орк", "Дворф", "Ночной эльф", "Нежить", "Таурен", "Гном", "Тролль", 'UNK_RA9', "Эльф крови", "Дреней"),
'cl' => array(null, "Воин", "Паладин", "Охотник", "Разбойник", "Жрец", "Рыцарь смерти", "Шаман", "Маг", "Чернокнижник", null, "Друид"),
'ra' => array(-2 => "Орда", -1 => "Альянс", "Обе", "Человек", "Орк", "Дворф", "Ночной эльф", "Нежить", "Таурен", "Гном", "Тролль", null, "Эльф крови", "Дреней"),
'rep' => array("Ненависть", "Враждебность", "Неприязнь", "Равнодушие", "Дружелюбие", "Уважение", "Почтение", "Превознесение"),
'st' => array(
null, "Облик кошки", "TОблик Древа жизни", "Походный облик", "Водный облик",
@ -96,18 +109,6 @@ $lang = array(
"Marshal / General", "Field Marshal / Warlord", "Grand Marshal / High Warlord"
),
),
'filter' => array(
'extSearch' => "Расширенный поиск",
'onlyAlliance' => "Альянс только",
'onlyHorde' => "Орда только",
'addFilter' => "Добавить другой фильтр",
'match' => "Совпадение",
'allFilter' => "Все фильтры",
'oneFilter' => "Любое совпадение",
'applyFilter' => "Применить фильтр",
'resetForm' => "Очистить форму",
'refineSearch' => "Совет: Уточните поиск, добавив <a href=\"javascript:;\" id=\"fi_subcat\">подкатегорию</a>.",
),
'error' => array(
'errNotFound' => "Page not found",
'errPage' => "What? How did you... nevermind that!\n<br>\n<br>\nIt appears that the page you have requested cannot be found. At least, not in this dimension.\n<br>\n<br>\nPerhaps a few tweaks to the <span class=\"q4\">[WH-799 Major Confabulation Engine]</span> may result in the page suddenly making an appearance!\n<div class=\"pad\"></div>\n<div class=\"pad\"></div>\nOr, you can try \n<a href=\"http://www.wowhead.com/?aboutus#contact\">contacting us</a>\n- the stability of the WH-799 is debatable, and we wouldn't want another accident...",
@ -165,6 +166,27 @@ $lang = array(
'Общее', 'PvP', 'Репутация', 'Подземелья и рейды', 'Задания', 'Профессии', 'Игровые события'
)
),
'currency' => array(
'cat' => array(
1 => "Разное", 2 => "PvP", 4 => "World of Warcraft", 21 => "Wrath of the Lich King", 22 => "Подземелья и рейды", 23 => "Burning Crusade", 41 => "Test", 3 => "Неактивно"
)
),
'itemset' => array(
'notes' => array(
null, "Комплект подземелий 1", "Комплект подземелий 2", "Рейдовый комплект Tier 1",
"Рейдовый комплект Tier 2", "Рейдовый комплект Tier 3", "PvP Комплект для 60 уровня", "PvP Комплект для 60 уровня (старая версия)",
"Эпический PvP Комплект для 60 уровня", "Комплект из Руин Ан'Киража", "Комплект из Храма Ан'Киража", "Комплект Зул'Гуруба",
"Рейдовый комплект Tier 4", "Рейдовый комплект Tier 5", "Комплект подземелий 3", "Комплект Низин Арати",
"Редкий PvP Комплект для 70 уровня", "Комплект Арены 1 сезона", "Рейдовый комплект Tier 6", "Комплект Арены 2 сезона",
"Комплект Арены 3 сезона", "PvP Комплект для 70 уровня 2", "Комплект Арены 4 сезона", "Рейдовый комплект Tier 7",
"Комплект Арены 5 сезона", "Рейдовый комплект Tier 8", "Комплект Арены 6 сезона", "Рейдовый комплект Tier 9",
"Комплект Арены 7 сезона", "Рейдовый комплект Tier 10", "Комплект Арены 8 сезона"
),
'types' => array(
null, "Ткань", "Кожа", "Кольчуга", "Латы", "Кинжал", "Кольцо",
"Кистевое оружие", "Одноручный топор", "Одноручное дробящее", "Одноручный меч", "Аксессуар", "Амулет"
)
),
'spell' => array(
'remaining' => "Осталось: %s",
'untilCanceled' => "до отмены",
@ -218,6 +240,10 @@ $lang = array(
'socket' => array(
"Особое гнездо", "Красное гнездо", "Желтое гнездо", "Синее гнездо", -1 => "Бесцветное гнездо"
),
'quality' => array (
"Низкий", "Обычный", "Необычный", "Редкий",
"Эпический", "Легендарный", "Артефакт", "Фамильная черта"
),
'trigger' => array (
"Использование: ", "Если на персонаже: ", "Возможный эффект при попадании: ", null,
null, null, null

View file

@ -48,7 +48,7 @@ if ($compareString)
$pageData['summary'] = json_encode($outSet, JSON_NUMERIC_CHECK);
$iList = new ItemList(array(['i.entry', $items]));
$data = $iList->getListviewData(ITEMINFO_SUBITEMS | ITEMINFO_JSON);
$data = $iList->getListviewData(ITEMINFO_SUBITEMS | ITEMINFO_JSON);
foreach ($data as $id => $item)
{
while ($iList->id != $id)

View file

@ -22,12 +22,12 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
$infobox = [];
$colon = User::$localeId == LOCALE_FR ? ' : ' : ': '; // Je suis un prick! <_<
if ($title->getField('side') == 1)
$infobox[] = Lang::$main['side'].$colon.'[span class=alliance-icon]'.Lang::$game['alliance'].'[/span]';
else if ($title->getField('side') == 2)
$infobox[] = Lang::$main['side'].$colon.'[span class=horde-icon]'.Lang::$game['horde'].'[/span]';
if ($title->getField('side') == SIDE_ALLIANCE)
$infobox[] = Lang::$main['side'].$colon.'[span class=alliance-icon]'.Lang::$game['si'][SIDE_ALLIANCE].'[/span]';
else if ($title->getField('side') == SIDE_HORDE)
$infobox[] = Lang::$main['side'].$colon.'[span class=horde-icon]'.Lang::$game['si'][SIDE_HORDE].'[/span]';
else
$infobox[] = Lang::$main['side'].$colon.Lang::$main['both'];
$infobox[] = Lang::$main['side'].$colon.Lang::$game['si'][SIDE_BOTH];
if ($g = $title->getField('gender'))
$infobox[] = Lang::$main['gender'].$colon.'[span class='.($g == 2 ? 'female' : 'male').'-icon]'.Lang::$main['sex'][$g].'[/span]';

View file

@ -232,7 +232,7 @@ if ($searchMask & 0x10)
if ($data = $money->getListviewData())
{
while ($money->iterate())
$data[$money->id]['param1'] = strToLower($money->getField('iconString'));
$data[$money->id]['param1'] = '"'.strToLower($money->getField('iconString')).'"';
$found['currency'] = array(
'type' => TYPE_CURRENCY,
@ -249,7 +249,7 @@ if ($searchMask & 0x10)
// 6 Itemsets
if ($searchMask & 0x20)
{
$sets = new ItemsetList(array($maxResults, ['name_loc'.User::$localeId, $query]));
$sets = new ItemsetList(array($maxResults, ['item1', 0, '!'], ['name_loc'.User::$localeId, $query])); // remove empty sets from search
$sets->addGlobalsToJscript($jsGlobals);
if ($data = $sets->getListviewData())
@ -274,19 +274,21 @@ if ($searchMask & 0x20)
if ($searchMask & 0x40)
{
if (($searchMask & SEARCH_TYPE_JSON) && $type == TYPE_ITEMSET && isset($found['itemset']))
$conditions = [['i.entry', array_keys($found['itemset']['pcsToSet'])]];
$conditions = [['i.entry', array_keys($found['itemset']['pcsToSet'])], 0];
else if (($searchMask & SEARCH_TYPE_JSON) && $type == TYPE_ITEM)
$conditions = [['i.class', [2, 4]], [User::$localeId ? 'name_loc'.User::$localeId : 'name', $query], $AoWoWconf['sqlLimit']];
else
$conditions = [[User::$localeId ? 'name_loc'.User::$localeId : 'name', $query], $maxResults];
$items = new ItemList($conditions, @$found['itemset']['pcsToSet']);
$items->addGlobalsToJscript($jsGlobals);
if ($data = $items->getListviewData($searchMask & SEARCH_TYPE_JSON ? (ITEMINFO_SUBITEMS | ITEMINFO_JSON) : 0))
{
while ($items->iterate())
{
$data[$items->id]['name'] = substr($data[$items->id]['name'], 1);
$data[$items->id]['param1'] = '"'.$items->getField('icon').'"';
$data[$items->id]['param2'] = $items->getField('Quality');
}

File diff suppressed because it is too large Load diff

View file

@ -4461,6 +4461,24 @@ Listview.prototype = {
ae(m, b);
ae(m, ct(")"))
}
if (this._errors) {
var
sp = ce('small'),
b = ce('b');
b.className = 'q10 report-icon';
if (m.innerHTML) {
b.style.marginLeft = '10px';
}
g_addTooltip(sp, LANG.lvnote_witherrors, 'q')
st(b, LANG.error);
ae(sp, b);
ae(m, sp);
}
if (!m.firstChild && this.mode != Listview.MODE_CHECKBOX) {
ae(m, ct(String.fromCharCode(160)))
}

View file

@ -1125,52 +1125,55 @@ var g_item_subsubclasses = {
}
}
};
var g_itemset_types = {
1:"Stoff",
2:"Leder",
3:"Schwere R\u00fcstung",
4:"Platte",
5:"Dolch",
6:"Ring",
7:"Faustwaffe",
8:"Einhandaxt",
9:"Einhandstreitkolben",
10:"Einhandschwert",
11:"Schmuck",
12:"Amulett"
1: "Stoff",
2: "Leder",
3: "Schwere R\u00fcstung",
4: "Platte",
5: "Dolch",
6: "Ring",
7: "Faustwaffe",
8: "Einhandaxt",
9: "Einhandstreitkolben",
10: "Einhandschwert",
11: "Schmuck",
12: "Amulett"
};
var g_itemset_notes = {
1:"Dungeon-Set 1",
2:"Dungeon-Set 2",
14:"Dungeon-Set 3",
3:"Tier 1 Raid-Set",
4:"Tier 2 Raid-Set",
5:"Tier 3 Raid-Set",
12:"Tier 4 Raid-Set",
13:"Tier 5 Raid-Set",
18:"Tier 6 Raid-Set",
23:"Tier 7 Raid-Set",
25:"Tier 8 Raid-Set",
27:"Tier 9 Raid-Set",
29:"Tier 10 Raid-Set",
6:"Level 60 PvP-Set (Rar)",
7:"Level 60 PvP-Set (Rar, alt)",
8:"Level 60 PvP-Set (Episch)",
16:"Level 70 PvP-Set (Rar)",
21:"Level 70 PvP-Set 2 (Rar)",
17:"Arena-Set Saison 1",
19:"Arena-Set Saison 2",
20:"Arena-Set Saison 3",
22:"Arena-Set Saison 4",
24:"Arena-Set Saison 5",
26:"Arena-Set Saison 6",
28:"Arena-Set Saison 7",
30:"Arena-Set Saison 8",
15:"Set des Arathibeckens",
9:"Set der Ruinen von Ahn'Qiraj",
10:"Set des Tempels von Ahn'Qiraj",
11:"Set von Zul'Gurub"
1: "Dungeon-Set 1",
2: "Dungeon-Set 2",
14: "Dungeon-Set 3",
3: "Tier 1 Raid-Set",
4: "Tier 2 Raid-Set",
5: "Tier 3 Raid-Set",
12: "Tier 4 Raid-Set",
13: "Tier 5 Raid-Set",
18: "Tier 6 Raid-Set",
23: "Tier 7 Raid-Set",
25: "Tier 8 Raid-Set",
27: "Tier 9 Raid-Set",
29: "Tier 10 Raid-Set",
6: "Level 60 PvP-Set (Rar)",
7: "Level 60 PvP-Set (Rar, alt)",
8: "Level 60 PvP-Set (Episch)",
16: "Level 70 PvP-Set (Rar)",
21: "Level 70 PvP-Set 2 (Rar)",
17: "Arena-Set Saison 1",
19: "Arena-Set Saison 2",
20: "Arena-Set Saison 3",
22: "Arena-Set Saison 4",
24: "Arena-Set Saison 5",
26: "Arena-Set Saison 6",
28: "Arena-Set Saison 7",
30: "Arena-Set Saison 8",
15: "Set des Arathibeckens",
9: "Set der Ruinen von Ahn'Qiraj",
10: "Set des Tempels von Ahn'Qiraj",
11: "Set von Zul'Gurub"
};
var g_npc_classifications = {
0:"Normal",
1:"Elite",
@ -2096,6 +2099,7 @@ var LANG = {
hyphen: " - ",
colon: ": ",
qty: " ($1)",
error: "Fehler",
date: "Datum",
date_colon: "Datum: ",
@ -2294,6 +2298,7 @@ var LANG = {
lvnote_tryfiltering: "Versucht es mit <a>gefilterten</a> Suchergebnissen.",
lvnote_trynarrowing: "Versucht, Eure Suche weiter einzugrenzen",
lvnote_upgradesfor: 'Sucht nach Verbesserungen f\u00fcr <a href="?item=$1" class="q$2"><b>$3</b></a>.',
lvnote_witherrors: "Einige Filter in Eurer Suche waren nicht gültig und wurden ignoriert.",
lvnote_itemsfound: "$1 Gegenst\u00e4nde gefunden ($2 angezeigt)",
lvnote_itemsetsfound: "$1 Sets gefunden ($2 angezeigt)",
@ -2730,37 +2735,51 @@ var LANG = {
myaccount_purged: "Gel\u00f6scht",
myaccount_purgefailed: "L\u00f6schen fehlgeschlagen :(",
myaccount_purgesuccess: "Bekanntmachungsdaten wurden erfolgreich gel\u00f6scht!",
types: {
1: ["NPC", "NPC", "NPCs", "NPCs"],
2: ["Objekt", "Objekt", "Objekte", "Objekte"],
3: ["Gegenstand", "Gegenstand", "Gegenst\u00e4nde", "Gegenst\u00e4nde"],
4: ["Set", "Set", "Sets", "Sets"],
5: ["Quest", "Quest", "Quests", "Quests"],
6: ["Zauber", "Zauber", "Zauber", "Zauber"],
7: ["Zone", "Zone", "Gebiete", "Gebiete"],
8: ["Fraktion", "fraktion", "Fraktionen", "Fraktionen"],
9: ["Begleiter", "Begleiter", "Begleiter", "Begleiter"],
10: ["Erfolg", "Erfolg", "Erfolge", "Erfolge"],
11: ["Titel", "Titel", "Titel", "Titel"],
12: ["Weltereignis", "Weltereignis", "Weltereignisse", "Weltereignisse"],
13: ["Klasse", "Klasse", "Klassen", "Klassen"],
14: ["Volk", "Volk", "V\u00f6lker", "V\u00f6lker"],
15: ["Fertigkeit", "Fertigkeit", "Fertigkeiten", "Fertigkeiten"],
16: ["Statistik", "Statistik", "Statistiken", "Statistiken"]
},
timeunitssg: ["Jahr", "Monat", "Woche", "Tag", "Stunde", "Minute", "Sekunde"],
timeunitspl: ["Jahre", "Monate", "Wochen", "Tagen", "Stunden", "Minuten", "Sekunden"],
types: {
1: ["NPC", "NPC" , "NPCs", "NPCs"],
2: ["Objekt", "Objekt", "Objekte", "Objekte"],
3: ["Gegenstand", "Gegenstand", "Gegenstände", "Gegenstände"],
4: ["Ausrüstungsset", "Ausrüstungsset", "Ausrüstungssets", "Ausrüstungssets"],
5: ["Quest", "Quest", "Quests", "Quests"],
6: ["Zauber", "Zauber", "Zauber", "Zauber"],
7: ["Zone", "Zone", "Gebiete", "Gebiete"],
8: ["Fraktion", "Fraktion", "Fraktionen", "Fraktionen"],
9: ["Begleiter", "Begleiter", "Begleiter", "Begleiter"],
10: ["Erfolg", "Erfolg", "Erfolge", "Erfolge"],
11: ["Titel", "Titel", "Titel", "Titel"],
12: ["Weltereignis", "Weltereignis", "Weltereignisse", "Weltereignisse"],
13: ["Klasse", "Klasse", "Klassen", "Klassen"],
14: ["Volk", "Volk", "Völker", "Völker"],
15: ["Fertigkeit", "Fertigkeit", "Fertigkeiten", "Fertigkeiten"],
16: ["Statistik", "Statistik", "Statistiken", "Statistiken"],
17: ["Währung", "Währung", "Währungen", "Währungen"]
},
timeunitssg: ["Jahr", "Monat", "Woche", "Tag", "Stunde", "Minute", "Sekunde"],
timeunitspl: ["Jahre", "Monate", "Wochen", "Tagen", "Stunden", "Minuten", "Sekunden"],
timeunitsab: ["J.", "M.", "W.", "Tag", "Std.", "Min", "Sek."],
fishow: "Filter erstellen",
fihide: "Filteroptionen ausblenden",
fiany: "Beliebig",
finone: "Nichts",
firemove: "entfernen",
ficlear: "leeren",
fishowdetails: "Details anzeigen",
fihidedetails: "Details ausblenden",
message_fillsomecriteria: "Bitte gebt einige Kriterien ein.",
tooltip_jconlygems: "Wenn aktiviert, werden auch spezielle<br />\nJuwelenschleifer-Edelsteine für die<br />\nGewichtung von Werten in Betracht gezogen.",
fishow: "Filter erstellen",
fihide: "Filteroptionen ausblenden",
fiany: "Beliebig",
finone: "Nichts",
firemove: "entfernen",
ficlear: "leeren",
ficustom: "Individuell",
fishowdetails: "Details anzeigen",
fihidedetails: "Details ausblenden",
fisavescale: "Speichern",
fideletescale: "Löschen",
message_fillsomecriteria: "Bitte gebt einige Kriterien ein.",
tooltip_jconlygems: "Wenn aktiviert, werden auch spezielle<br />\nJuwelenschleifer-Edelsteine für die<br />\nGewichtung von Werten in Betracht gezogen.",
tooltip_genericrating: "<span class=\"q2\">Anlegen: Erhöht Eure $1 um <!--rtg$2-->$3&nbsp;<small>(<!--rtg%$2-->0&nbsp;@&nbsp;L<!--lvl-->0)</small>.</span><br />",
fidropdowns: {
yn: [[1, "Ja"], [2, "Nein"]],
num: [[1, ">"], [2, ">="], [3, "="], [4, "<="], [5, "<"]],

File diff suppressed because one or more lines are too long

View file

@ -1125,52 +1125,55 @@ var g_item_subsubclasses = {
}
}
};
var g_itemset_types = {
1:"Tela",
2:"Cuero",
3:"Malla",
4:"Placas",
5:"Daga",
6:"Anillo",
7:"Arma de puño",
8:"Hacha de uno mano",
9:"Maza de uno mano",
10:"Espada de uno mano",
11:"Abalorio",
12:"Amuleto"
1: "Tela",
2: "Cuero",
3: "Malla",
4: "Placas",
5: "Daga",
6: "Anillo",
7: "Arma de puño",
8: "Hacha de uno mano",
9: "Maza de uno mano",
10: "Espada de uno mano",
11: "Abalorio",
12: "Amuleto"
};
var g_itemset_notes = {
1:"Set de mazmorra 1",
2:"Set de mazmorra 2",
14:"Set de mazmorra 3",
3:"Set de banda tier 1",
4:"Set de banda tier 2",
5:"Set de banda tier 3",
12:"Set de banda tier 4",
13:"Set de banda tier 5",
18:"Set de banda tier 6",
23:"Set de banda tier 7",
25:"Set de banda tier 8",
27:"Set de banda tier 9",
29:"Set de banda tier 10",
6:"Set JcJ nivel 60 superior",
7:"Set JcJ nivel 60 superior (obsoleto)",
8:"Set JcJ nivel 60 épico",
16:"Set JcJ nivel 70 superior",
21:"Set JcJ nivel 70 superior 2",
17:"Set de la Temporada de Arenas 1",
19:"Set de la Temporada de Arenas 2",
20:"Set de la Temporada de Arenas 3",
22:"Set de la Temporada de Arenas 4",
24:"Set de la Temporada de Arenas 5",
26:"Set de la Temporada de Arenas 6",
28:"Set de la Temporada de Arenas 7",
30:"Set de la Temporada de Arenas 8",
15:"Set de la Cuenca de Arathi",
9:"Set de las Ruinas de Ahn'Qiraj",
10:"Set del Templo de Ahn'Qiraj",
11:"Set de Zul'Gurub"
1: "Set de mazmorra 1",
2: "Set de mazmorra 2",
14: "Set de mazmorra 3",
3: "Set de banda tier 1",
4: "Set de banda tier 2",
5: "Set de banda tier 3",
12: "Set de banda tier 4",
13: "Set de banda tier 5",
18: "Set de banda tier 6",
23: "Set de banda tier 7",
25: "Set de banda tier 8",
27: "Set de banda tier 9",
29: "Set de banda tier 10",
6: "Set JcJ nivel 60 superior",
7: "Set JcJ nivel 60 superior (obsoleto)",
8: "Set JcJ nivel 60 épico",
16: "Set JcJ nivel 70 superior",
21: "Set JcJ nivel 70 superior 2",
17: "Set de la Temporada de Arenas 1",
19: "Set de la Temporada de Arenas 2",
20: "Set de la Temporada de Arenas 3",
22: "Set de la Temporada de Arenas 4",
24: "Set de la Temporada de Arenas 5",
26: "Set de la Temporada de Arenas 6",
28: "Set de la Temporada de Arenas 7",
30: "Set de la Temporada de Arenas 8",
15: "Set de la Cuenca de Arathi",
9: "Set de las Ruinas de Ahn'Qiraj",
10: "Set del Templo de Ahn'Qiraj",
11: "Set de Zul'Gurub"
};
var g_npc_classifications = {
0:"Normal",
1:"Élite",
@ -2088,13 +2091,15 @@ var g_socket_names = {
8:"Ranura azul",
14:"Ranura prismática"
};
var LANG = {and:" y ",
comma:", ",
ellipsis:"…",
dash:" ",
hyphen:" - ",
colon:": ",
qty:" ($1)",
var LANG = {
and: " y ",
comma: ", ",
ellipsis: "…",
dash: " ",
hyphen: " - ",
colon: ": ",
qty: " ($1)",
error: "Error",
date: "Fecha",
date_colon: "Fecha: ",
@ -2294,9 +2299,10 @@ var LANG = {and:" y ",
lvnodata_vi2:"¡Sé el primero en <a>sugerir un vídeo</a> para esta página!",
lvnodata_vi3:"Por favor <a>inicia sesión</a> para sugerir un vídeo, o <a>crea tu cuenta</a> si aun no tienes una.",
lvnote_tryfiltering: "Trata de filtrar tus resultados",
lvnote_tryfiltering: "Trata de <a>filtrar</a> tus resultados",
lvnote_trynarrowing: "Trata de ser más específica(o) en tu búsqueda",
lvnote_upgradesfor: 'Buscando mejoras para <a href="?item=$1" class="q$2"><b>$3</b></a>.',
lvnote_witherrors: "Algunos filtros en tus búsquedas eran inválidos y han sido ignorados.",
lvnote_itemsfound: "$1 objetos encontrados (mostrando $2)",
lvnote_itemsetsfound: "$1 conjuntos de objetos encontrados (mostrando $2)",
@ -2802,23 +2808,27 @@ var LANG = {and:" y ",
myaccount_purged:"Purgado",
myaccount_purgefailed:"La purga ha fallado :(",
myaccount_purgesuccess:"¡Se han purgado los datos de los anuncios correctamente!",
types:{
1:["PNJ","PNJ","PNJs","PNJs"],
2:["Entidad","entidad","Entidades","entidades"],
3:["Objeto","objeto","Objetos","objetos"],
4:["Conjunto de objetos","conjunto de objetos","Conjuntos de objetos","conjuntos de objetos"],
5:["Misión","misión","Misiones","misiones"],
6:["Hechizo","hechizo","Hechizos","hechizos"],
7:["Zona","zona","Zonas","zonas"],
8:["Facción","facción","Facciones","facciones"],
9:["Mascota","mascota","Mascotas","mascotas"],
10:["Logro","logro","Logros","logros"],
11:["Título","título","Títulos","títulos"],
12:["Suceso mundial","evento del mundo","Eventos del mundo","eventos del mundo"],
13:["Clase","Clase","Clases","Clases"],
14:["Raza","raza","Razas","razas"],
15:["Habilidad","habilidad","Habilidades","habilidades"]
types:{
1: ["PNJ", "PNJ" , "PNJs", "PNJs"],
2: ["Entidad", "entidad", "Entidades", "entidades"],
3: ["Objeto", "objeto", "Objetos", "objetos"],
4: ["Conjunto de objetos", "conjunto de objetos", "Conjuntos de objetos", "conjuntos de objetos"],
5: ["Misión", "misión", "Misiones", "misiones"],
6: ["Hechizo", "hechizo", "Hechizos", "hechizos"],
7: ["Zona", "zona", "Zonas", "zonas"],
8: ["Facción", "facción", "Facciones", "facciones"],
9: ["Mascota", "mascota", "Mascotas", "mascotas"],
10: ["Logro", "logro", "Logros", "logros"],
11: ["Título", "título", "Títulos", "títulos"],
12: ["Suceso mundial", "evento del mundo", "Eventos del mundo", "eventos del mundo"],
13: ["Clase", "Clase", "Clases", "Clases"],
14: ["Raza", "raza", "Razas", "razas"],
15: ["Habilidad", "habilidad", "Habilidades", "habilidades"],
16: ["Atributo", "atributo", "Atributos", "atributos"],
17: ["Monedas", "monedas", "Monedas", "monedas"]
},
timeunitssg:["año","mes","semana","día","hora","minuto","segundo"],
timeunitspl:["años","meses","semanas","dias","horas","minutos","segundos"],
timeunitsab:["año","mes","sem","","h","min","seg"],
@ -2942,16 +2952,27 @@ var LANG = {and:" y ",
sta:["Aguante","Agu","Agu"],
str:["Fuerza","Fue","Fue"]
},
fishow:"Crear un filtro",
fihide:"Esconder opciones de filtros",
fiany:"Cualquiera",
finone:"Ninguno",
firemove:"remover",
ficlear:"borrar",
fishowdetails:"mostrar detalles",
fihidedetails:"ocultar detalles",
message_fillsomecriteria:"Por favor ingrese algún criterio.",
tooltip_jconlygems:"Si está marcado, las gemas exclusivas de<br />\njoyero, se usarán para determinar las posibles<br/>\nmejores gemas para una puntuación de objeto.",
fishow: "Crear un filtro",
fihide: "Esconder opciones de filtros",
fiany: "Cualquiera",
finone: "Ninguno",
firemove: "remover",
ficlear: "borrar",
ficustom: "Personalizado",
fishowdetails: "Mostrar detalles",
fihidedetails: "Ocultar detalles",
fisavescale: "Guardar",
fideletescale: "Borrar",
message_fillsomecriteria: "Por favor ingrese algún criterio.",
tooltip_jconlygems: "Si está marcado, las gemas exclusivas de<br />\njoyero, se usarán para determinar las posibles<br/>\nmejores gemas para una puntuación de objeto.",
tooltip_genericrating: "<span class=\"q2\">Equipar: Aumenta tu $1 en <!--rtg$2-->$3&nbsp;<small>(<!--rtg%$2-->0&nbsp;@&nbsp;L<!--lvl-->0)</small>.</span><br />",
fidropdowns:{
yn:[[1,"Sí"],[2,"No"]],
num:[[1,">"],[2,">="],[3,"="],[4,"<="],[5,"<"]],

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long