useGrafikpfad = 'images/ru/grafikpack-full';

var I18N = {
	'wordTable' : {
		'noObjInFrontOfAds' : 'Bitte die das Objekt nicht vor die Werbung schieben - auch DL braucht Werbung :/',
		'tavernTableEmpty' : 'Tisch {0} ist unbesetzt!',
		'tavernTableInfo' : 'Tischinfo',
		'tavernTableWithId' : 'Tisch {0}',
  		'DECIMAL_POINT' : ',',
  		'THOUSANDS_SEP' : '.',
  		'SECOND' : ['Секунда', 'Секунды'],
  		'MINUTE' : ['Минута', 'Минуты'],
  		'HOUR' : ['Час', 'Часа'],
  		'DAY' : ['День', 'Дней'],
  		'ABORT' : 'Отменить',
  		'AREANAME_0' : 'Океан',
  		'AREANAME_7' : 'Шепчущий Лес',
  		'AREANAME_8' : 'Осколочная Равнина',
  		'AREANAME_9' : 'Наг\'рд Нёй',
  		'AREANAME_10' : 'Роща Огней',
  		'AREANAME_11' : 'Изумрудные Долины',
  		'AREANAME_12' : 'Земля Дамагры',
  		'AREANAME_13' : 'Модериа',
  		'AREANAME_14' : 'Пустыня Зинг',
  		'AREANAME_15' : 'Стеклянная Долина',
  		'HIRE_PACK_QUESTION' : 'Действительно нанять группу наемников \'{0}\'?',
  		'JS_NO_MONSTERS_ON_FIELD' : 'Нет монстров',
  		'JS_MONSTER_DISPLAY_DEACTIVATED' : 'Дезактивировать показ монстра',
  		'QUEUE_ENTRY_READY' : 'Выполнено',
		'BUILDING_PLACEMENT_INFO' : 'Двигая мышкой выберите желаемое место для размещения здания в Вашем поселении. Затем нажмите там на левую кнопку мыши, чтобы начать строительство. [color=tomato]Зеленые области удаляются при размещении, красные области не могут быть удалены.[/color]  Если Вы все таки не желаете постройки здания, закройте просто это окно и размещение будет отменено.',
		'INFO_MENU_HH' : 'Здания',
		'INFO_MENU_BIBO' : '<u>Б</u>иблиотека',
		'INFO_MENU_TEMPEL' : 'Храм',
		'INFO_MENU_HEXE' : 'Лаборатория',
		'INFO_MENU_KASERNE' : 'К<u>а</u>зарма',
		'INFO_MENU_FRIEDHOF' : '<u>К</u>ладбище',
		'INFO_MENU_DRACHENHOF' : 'Драконий Двор',
		'INFO_MENU_SCHATTENPORTAL' : 'Портал Теней',
		'INFO_MENU_VERTEIDIGUNG' : '<u>О</u>боронительные Сооружения',
		'INFO_MENU_MARKT' : '<u>Т</u>орговая площадь',
		'INFO_MENU_HANDEL' : 'Торговля',
		'INFO_MENU_WAPPEN' : '<u>Г</u>ербы',
		'INFO_MENU_TRUPPEN' : '<u>О</u>тряды',
		'INFO_MENU_EINHEITEN' : 'Воины',
		'INFO_MENU_KARTE' : '<u>К</u>арта',
		'INFO_MENU_AREA' : 'Области',
		'INFO_MENU_GRUPPE' : '<u>Г</u>ильдия',
		'INFO_MENU_KRIEG' : 'Войны',
		'INFO_MENU_TOPLIST1' : 'Топ-список 1',
		'INFO_MENU_TOPLIST2' : 'Топ-список 2',
		'INFO_MENU_TOPLISTG' : 'Топ-список Гильдий',
		'INFO_MENU_IGM' : '<u>С</u>ообщения',
		'INFO_MENU_HILFE' : '<u>П</u>омощь',
		'INFO_MENU_SONSTIGES' : 'Прочее',
		'INFO_MENU_TAVERN' : 'Таверна',
		'INFO_MENU_COMMITMENT' : 'Опросы',
		'INFO_MENU_TOURNEY' : 'INFO_MENU_TOURNEY',
		'INFO_MENU_SETTLESHOP' : 'INFO_MENU_SETTLESHOP',
		'GTYPE_ANARCHIE_BONUS' : 'При анархии два раза в месяц (1-го и 15-го) все должности в группе распределяются по случайному принципу между всеми участниками. Получивший новую должность получает сообщение с необходимой информацией.',
		'GTYPE_SCHATTENBRUT_BONUS' : 'Среди исчадий тени ежедневно в 4.30 раздаются должности в соответствии с силой игроков (количеству жителей). Самый сильный игрок получает пост предводителя. По убыванию раздаются должности наследника, генерала, министра и мага.',
		'GTYPE_RITUALISTEN_BONUS' : 'У ритуалистов высоко ценятся приносимые жертвы. Должности распределяются между участниками ежедневно в 4.30 согласно количеству жертвенных баллов. По убыванию баллов раздаются должности предводителя гильдии, наследника, генерала, министра и мага.',
		'GTYPE_JAEGER_SAMMLER_BONUS' : 'Среди охотников и собирателей преимущественное право на власть в группе имеет тот, у кого наибольшая продуктивность. По убывающему количество производимого сырья распределяются дальнейшие должности (наследник, генерал, министр, маг) (ежедневно в 4.30).',
		'MAX_TRADE_DIFF_X' : 'Разница в цене может быть максимально {0}%!',
		'TRADE_DIFF_OKAY' : 'Соотношение ресурсов ОК!',
		'ORE' : 'Железная руда',
		'GOLD' : 'Золото',
		'WOOD' : 'Древесина',
		'FOOD' : 'Продовольствие',
		'SILVER' : 'Серебро',
		'DURATION_UNTIL_ENDTIME' : '{0} до {1}',
		'ENTER_TEMPLATE_NAME' : 'Как должен называться шаблон?',
		'YES' : 'Да',
		'NO' : 'Нет',
		'MONSTERFIELD_TYPE_0' : 'Смешанное',
		'MONSTERFIELD_TYPE_1' : 'Ближний бой/врукопашную',
		'MONSTERFIELD_TYPE_2' : 'Дальний бой',
		'MONSTERFIELD_TYPE_3' : 'Боевая магия',
		'MONSTERFIELD_TYPE_4' : 'Магия поддержки',
		'MONSTERFIELD_CHALLENGE' : '(Вызов)',
		'SAVE_NOTES' : 'Сохранить Блокноты',
		'CLOSE_NOTES' : 'Закрыть',
		'ITEM_COSTS_POPUP' : 'Предмет \'{0}\' изменяет мощность единицы на [b]{1} НС[/b] и для оснащения им необходимо следующее количество пунктов жертвоприношения [b]{2} [/b]. Для его приобретения требуется: \n[img]{3}/icons/20x20/erz.gif[/img][b] Руды:[/b] {4} - [img]{3}/icons/20x20/gold.gif[/img][b] Золота:[/b] {5} - [img]{3}/icons/20x20/holz.gif[/img][b] Древесины:[/b] {6} - [img]{3}/icons/20x20/nahrung_{7}.gif[/img][b] Продовольствия:[/b] {8} - [img]{3}/icons/20x20/silber.gif[/img][b] Серебра:[/b] {9}',
		'DO_REPAIR' : 'Ремонтировать',
		'REPAIR_MARKET_RES' : 'Вам не хватает следующих ресурсов для [b]ремонта[/b]:',
		'HEAL_UNITS' : 'Вылечить воинов',
		'HEAL_MARKET_RES' : 'Вам не хватает ресурсов для [b]лечения[/b]:',
		'MISSING_RES' : 'Недостающие ресурсы'
	},
	
	/**
	  * Format number according to the locale
	  *
	  * @param theNumber The number to be formatted
	  * @param decimalDigits The number of decimal digits can be passed to this functions, as it is not locale specific. Defaults to 0 decimal digits.
	  */
	'numberFormat' : function(theNumber, decimalDigits) {
		return(number_format(theNumber, decimalDigits, this.wordTable['DECIMAL_POINT'], this.wordTable['THOUSANDS_SEP']));
	},

	/**
	 * Format a duration according to the locale
	 *
	 * @param duration The duration to format
	 * @param showUnit (optional) If the unit shall be displayed, set this to true (default)
	 */
	 'durationFormat' : function(duration, showUnit) {
		if(duration < 60) {
		  multiplier = 1;
		  unitLangId = 'SECOND';
		} else if(duration < 3600) {
		  multiplier = 60;
		  unitLangId = 'MINUTE';
		} else if(duration < 86400) {
		  multiplier = 3600;
		  unitLangId = 'HOUR';
		} else {
		  multiplier = 86400;
		  unitLangId = 'DAY';
		}
		
		durationString = this.numberFormat(duration / multiplier, 1);
		if(durationString.indexOf(this.wordTable['DECIMAL_POINT']) != -1) { // If we have a fractionated number
			durationString = durationString.replace(/0+$/, '');						// Trim right zeroes
			if(durationString.substr(durationString.length - 1, 1) == this.wordTable['DECIMAL_POINT']) durationString = durationString.substr(0, durationString.length - 1);  // If, after trimming zeroes, the decimal point is the end of the string, remove it as well
		}
		return(durationString + (showUnit ? ' ' + this.pluralize(Math.round(duration / multiplier * 10) / 10, unitLangId) : ''));
	},
	
	/**
	  * Function to pluralize a given language object
	  *
	  * @param theNumber The number that we are seeking the plural form for
	  * @param langObjId The language object ID. This must refer to an array of objects inside this internationalization classes word table
	  */
	'pluralize' : function(theNumber, langObjId) {
		if(theNumber != 1) return(this.wordTable[langObjId][1]); // In german, everything with a count of 2 or more uses the plural
		return(this.wordTable[langObjId][0]);			// Otherwise return the singular
	},
	
	/**
	  * Returns a specific string
	  * In contrast to the PHP I18N function, this function is used rarely, only when JS strings have wildcards that must be replaced. Usually, the variables are accessed directly through the word table.
          *
	  * @param varName The variable name of the string
	  * @param params A number indexed array of values. The wildcard {0} in the string is replaced with the value at index 0 etc. If the array is empty, nothing is changed
	  */
	'getSpecificString' : function(varName, params) {
		var varVal = this.wordTable[varName];
		if(typeof(varVal) == 'undefined') return(varName);
		if(typeof(params) != 'undefined' && typeof(params.length) != 'undefined') {
			for(var i = 0, len = params.length; i < len; ++i) {
				var replacer = new RegExp('\\{' + String(i) + '\\}', 'g');
				varVal = varVal.replace(replacer, params[i]);
			}
		}
		return(varVal);
	}


}