There are 1 previous version of this script.
the source is over 100KB, syntax highlighting in the browser is too slow
// ==UserScript==
// @author Risi (edited for 3.5 by Nevam)
// @email userscripts@yahoo.com
// @namespace http://userscripts.org/
// @name Travian Task Queue
// @description Schedule delayed constructions, upgrades and attacks.
// @include http://*.travian.*/*
// @exclude http://forum.travian.*
// @exclude http://www.travian.*
// @version 1.8.0
// ==/UserScript==
/*********************
* Settings
*********************/
var LOG_LEVEL = 0; // 0 - quiet, 1 - nearly quite, 2 - verbose, 3 - detailed
var iCheckEvery = 10000; // How often do we check for tasks to trigger in miliseconds.
// Low value = high accuracy in triggering tasks. To make your browser
// unresponsive, set this to some ridiculously small number. Default is 10000
var iPreloadTime = 20; // How many seconds ahead is the code for building and upgrading prefetched.
// If the code is not available by the time the construction should start, the
// construction will be cancelled. This value must be greater than iCheckEvery
// in seconds (i.e. iCheckEvery/1000). Default is 20.
var bDisplayVillageNames = true; //Display village names instead of numbers. May hit the performance.
var sCurrentServer = ""; // Set this to the server's url to override automatic server detection
// (i.e. s1.travian.net)
// Dont set it if you're playing on multiple servers simultaneously!
var init = initialize();
/*********************
* End of Settings
*********************/
/*********************
* GLOBALS
* do not tamper!
*********************/
if (init) {
var sCurrentVersion = "1.8.0"; //Version number with which we need to run the update fu
var scriptURL = "http://userscripts.org/scripts/source/49694.user.js";
// Your local computer time MUST still be correct (both time and date!).
var bUseServerTime = getOption("USE_SERVER_TIME", false, "boolean"); //IMPORTANT!!! If true, you must be using 24-hour format on your server, otherwise there WILL be errors.
var bLocked = false; // for locking the TTQ_TASKS variables
var bLockedCode = false; // for locking the TTQ_CODE_0 and TTQ_CODE_1 variables
var bLockedHistory = false;
var oIntervalReference = null;
var iSessionRefreshRate = 60; //Amount of minutes after which the session is refreshed by reloading the dorf1 page in the background. If set to 0, refreshing is disabled. Default: 60
var iMaxPlaceNamesVariableLength = 15; //maximum number of names stored in the variables before it is cleared
var iMyRace = getOption("RACE", 0, "integer"); // 0- Romans, 1- Teutons, 2- Gauls. Set via dialogue.
var iHistoryLength = getOption("HISTORY_LENGTH", 7, "integer");
var aLangBuildings = []; //multilang support
var aLangTasks = []; //multilang support
var aLangStrings = []; //multilang support
var aLangTroops = []; //multilang support
var aLangStringt = []; //multilang support
var aLangUpdate = []; //multilang support
var aLangMenuOptions = []; //multilang support
var sLang = detectServer();
// Images
var sCloseBtn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAIAAAAmdTLBAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1gYKECMhBqiEGQAAADJ0RVh0Q29tbWVudABFcnN0ZWxsdCB2b24gRmxvcmlhbiBTY2hyZWllciBtaXQgVGhlIEdJTVCOHcWrAAADLUlEQVR42pWUPYhdRRiG32/OuTdZXTcas0n2ZiVVYBttLFLFQuNPZTQgiIIphGBAtNTC0lZBRRQVEYWoBAyk8ActRFCRLa3SpNH9icm699695+6Z+X5ei7Obtc1UH+/MM+/M9w4jJD0wnNi9czVuZ3iwSlKbQ5ohP3rzn+FGTBvmlqbUgpRgBQDdAbC0AOAepbV2ezI3v/Txd+nuQ0Jy4+3XqsMDqeqYjHxryJJRCiPgRneAMKU7rbBktlNrtoaj0WrvrpMXlxMAH29Kf5/0+6hqqXtS16h7SImpkqqSVCHVkipIQqq6NanuTdZXDs7VNQA2WzEZS12znTJvM2eWQi1UpSnDqQUgtcCVpnRHSqmqACQA1BKToY83oxnPPvz0/BvvR9OwaaKZeDOO8TC2NmP077FPfjzw/CvM23STlKTu3eKV04bbE+a8/8FTAI6+dTG00Aq00DK1LF78HcDs6bNwAwPcSaHjc5TCXKh6/fVz3cTggytwQzjc7vt6uRP/OrOEcGEAAXKHB8DcRm5pCvf1V5/pxGOf/kT64pd/7MBPnoArXEEXUrDLRztFyVCFOSMoXH35TMcsfvFrV6ycXUqJIiFwoUmYROz6mzK30LJ7Nwq5+tITt57a6rP3S6IIk0TqeBrC9/oXVhjOcGGIAAmDD7+/xQ+++jMl7PmHwlXC9vrHkqkFYWSQXHjvSkeun3+oK458tizdFjAJEytpz98KNdMK3Ri+8M43O/CFRwBef/EkALlj7sila4IQBlzFC013+bLjT9WFdy938NqFx0CCBHjj3AOdePjyqoSmDv7f+Qtzy9JS8/SXbwGsnT8NN3b5hzP8xnMnALQ/fI5wmkELzQAIyWun5qsD98jMbNq3X6oaAjAEAYRQJYpYFi+wgtKyFMtlPPWrW3zqatQAVEu020kqiZCqliQIh6CLOoXCi1iBFahRzdTVQh0A6pujaA4OuHkDyqqfUdWAgCFCYQi9gsNVwukqZjQ35UghC8cByDSTG3///MKjo7WVfq+mSEhCRJVEAKFXdAlPDPdAeMUozjh6/PFLv/UPDYRkVuzr3dbfh5sjv3OmmunjP4EhhHJu9NM9AAAAAElFTkSuQmCC";
var sDeleteBtn = "data:image/gif;base64,R0lGODlhDAAMANU2AN4ZCtAgFNAgHdsgA9waCs4cDMwkHPNfHcspJ9oYCsoYDc8pINAYCvg0AORNOeFFPtA7O+c+QNRTU8BMSb4gHN5lTNooGsc1N+g+PuEkJOhOKLlVWOwxD9MlGtUiFMwjFcI7LtcfDPY9ANs5L+JMSOxhJLRDO+YfDdYEAPdvHORZRMkZC9EcDcwXE8ssLtonG9gbG+M8EOEZGdkZDNwVCb0pKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADYALAAAAAAMAAwAQAZJQNNgYisajzZVDHRMBJC2TEvxOY40HNfRsEJGYBKS51gS1aA2gCXVQEApDONDBikuCmgMioV2vC5FMx1GFQchG0g0BDYnAmhFQQA7";
//Styles
var cssStyle = "";
cssStyle += "#ttq_tasklist, #ttq_history {position:absolute; background-color:#90DD43; border:1px solid #000000; color:#000000; padding:5px 10px; z-index:100; -moz-border-radius:5px;}";
cssStyle += "#ttq_history {background-color:#D4D4EC}";
cssStyle += ".ttq_history_row {padding:1px 5px;}";
cssStyle += ".ttq_village_name {font-weight:bold;}";
cssStyle += ".ttq_draghandle {font-size: 120%; font-weight:bold;}";
cssStyle += ".ttq_time_village_wrapper {font-style:italic; font-size:80%; display:block;}";
cssStyle += ".ttq_close_btn {float:right; padding:2px 4px; color:white; margin:-5px -15px 0 0;}";
cssStyle += "#timerForm {padding:10px 20px; }";
cssStyle += "#timerform_wrapper {position:absolute; max-width:900px !important; margin:0; background-color:#FBEC87; color:black; border:1px #000000 solid; z-index:100; -moz-border-radius:5px;}";
cssStyle += "#timerform_wrapper p {}";
cssStyle += "#ttq_message {position:absolute; z-index:100; border:1px solid black; padding:10px 20px; color:black; width:335px}";
cssStyle += ".handle {cursor: move;}";
cssStyle += "a.ttq_sortlink, a#ttq_flush_history {color:#000000;} a.ttq_sortlink:hover, a#ttq_flush_history:hover {color:#F64809} a.ttq_sortlink_active {color:#FDFF3F}";
cssStyle += ".ttq_sort_header {border-bottom:1px dashed #000000}";
cssStyle += ".ttq_research_later {display:block;}";
GM_addStyle(cssStyle);
/***************************************************************************
* Translations
* --------------------
* ------> IMPORTANT! <------
* - If there is no translation available for your language, the script will not work!
* - aLangBuildings must list all names EXACTLY as they are printed on your Travian web site. Names are case-sensitive.
* - aLangStrings[7] (= "level" in English) must read exactly what it is on your website next to building names of higher level.
* - aLangStrings[11] (= "Current production:" in English) must read exactly what it is on your website on the resource site pages.
* -> Please post all translations here: http://userscripts.org/topics/27738
***************************************************************************/
switch(sLang) {
case "ae": //by Fahad
aLangBuildings = ["", "الحطاب", "حفرة الطين", "منجم حديد", "حقل القمح", "معمل النجاره", "مصنع الطوب", "مصنع الحديد", "المطاحن", "المخابز","مخزن", "مخزن الحبوب", "حداد", "مستودع الاسلحة", "ساحة البطولة", "المبنى الرئيسي", "نقطة التجمع", "السوق", "السفارة" ,"ثكنه", "الاسطبل", "المصانع الحربية","الاكاديميه الحربية", "المخبأ", "البلدية", "السكن", "قصر", "الكنز","المكتب التجاري", "الثكنة الكبيرة", "الاسطبل الكبير", "الحاجز","السور الاضي", "سياج الاغريق", "الحجار","مصنع العصير", "الصياد", "قصر الابطال", "المستودعات الكبيرة", "مخازن الحبوب الكبيرة", "معجزة العالم"];
aLangTasks = ["بناء", "تطوير", "هجوم", "فتح قسم", "تدريب", "Party"];
aLangStrings = ["البناء لاحقا", "تطوير لاحقا", "الهجوم لاحقا", "فتح القسم لاحقا", "جدولة هذا العمل لاحقا", "لقد بداءالبناء ", " هذه العملية غير معروفة النتائج.", "المستوى", " لا يمكن ان يبناء.", " لا يمكن ان يطوير", "هذا العمل مجدول","العمل القائم", "لا يمكن ادراج هذه العملية لان.", "المهم المجدولة غير متاحه","المهام المجدولة", "حذف", "ارسال لاحقا", "لم يتم اختيار الجنود.", "الجنود متوجهين الى","جيوشك لا يمكن ارسالها الى", "مساندة", "هجوم", "نهب", "تصويب المقلاع نحو", "عشوائي","عند", "او بعد", "ثانية", "دقيقة", "ساعة", "يوم", "التجسس على الجيوش والموارد","التجسس على الجيوش والتحصينات", "بعيد","لا يمكن جدولة هذا الهجوم لان الهدف غير محدد ", "الموقع غير موجود", "فرز بواسطة:","النوع ", "الوقت ", "الهدف ", "الخيارات ", "القرية ", "مهام محفوظه", "محفوظات حالية","بداية عملية البحث ", " لا تستطيع اعادة البحث" , "تطوير لاحقا" , "تجسس" , "تدريب لاحقا" , "جنود" , "تدريب" , "تم بدء التدريب" , "لا تستطيع التدريب", "Party Later", " but not today.", "We started to "];
aLangTroops[0] = ["جندي أول", "حراس الأمبراطور", "جندي مهاجم", "فرقة تجسس", "سلاح الفرسان", "فرسان قيصر", "كبش", "المقلاع الناري", "حكيم", "مستوطن", "بطل"]; //Romans
aLangTroops[1] = ["مقاتل بهراوة", "مقاتل برمح", "مقاتل بفأس", "الكشاف", "مقاتل القيصر", "فرسان الجرمان", "محطمة الابواب", "المقلاع", "الزعيم", "مستوطن", "بطل"]; //Teutons
aLangTroops[2] = ["الكتيبه", "مبارز", "المستكشف", "رعد الجرمان", "فرسان السلت", "فرسان الهيدوانر", "محطمة الابواب الخشبية", "المقلاع الحربي", "رئيس", "مستوطن", "بطل"]; //Gauls
aLangTransModel= ["MixedModel", "FoodOnly", "ResourceOnly", "FixedModel"];
aLangStringt = ["RecruitHome", "AutoTransport", "AutoTrade", "Businessmen", "From", "To", "TransportBy", "RepeatTime", "minutes", "seconds", "TransportTimes:", "times", "The Time Of Next Transport:", "has been added.", "has been started.", "has not enough businessmen.", "transport error.", "Schedule later after", "Corn Resource: ", "Autotrade has done.", "Autotrade failed.", "Target Resource:", "Wood", "Clay", "Iron", "Crop", "Division Equal", "Division Model:", "WARN: Chang source village is not recommend.", "Keep ZERO if you want to division equal among wood, clay and iron. fill the number otherwise.", "This is the server time.", "This is your local time.","Force Trade On Scheduled Time (no delay check)"];
aLangUpdate = ["Your version is greater then current version: ", "Your current version is up to date: ", "There is an update available", "Do you want to update now? "];
aLangMenuOptions = ["Travian ", "Use server time", "Use local time", "Set your race", "Task History", "Check Updates", "\nHow many past tasks do we keep in history?\n(Type 0 to disable task history.) \nCurrently: ", "\nWhat is your race on this server?\n(Type 0 for Romans, 1 for Teutons, 2 for Gauls.) \nCurrently: "];
break;
case "ar":
aLangBuildings = ["", "DrvosjeÄa", "Rudnik gline", "Rudnik željeza", "Poljoprivredno imanje", "Pilana", "Ciglana", "Ljevaonica željeza", "Mlin", "Pekara", "SkladiÅ¡te", "Silos", "KovaÄnica oružja", "KovaÄnica oklopa", "Mejdan", "Glavna zgrada", "Mjesto okupljanja", "Pijaca", "Ambasada", "Kasarna", "Å tala", "Radionica", "Akademija", "SkloniÅ¡te", "OpÅ¡tina", "Rezidencija", "Dvorac", "Treasury", "TrgovaÄki centar", "Velika kasarna", "Velika Å¡tala", "Gradski bedem", "Zid od zemlje", "Taraba", "Klesar", "Brewery", "PostavljaÄ zamki", "Herojska vila", "Veliko skladiÅ¡te", "Veliki silos", "Svjetsko Äudo"];
aLangTasks = ["Izgradi", "Unaprijedi", "Napad", "Istraži", "ObuÄi", "Party"];
aLangTroops[0] = ["Legionario", "Pretoriano", "Imperano", "Equites Legati", "Equites Imperatoris", "Equites Caesaris", "Ariete Romano", "Catapulta de Fuego", "Senador", "Colono", "Héroe"]; //Romanos
aLangTroops[1] = ["Batinar", "Kopljanik", "Borac sa sikirom", "IzviÄ‘aÄÂ", "Paladin", "Teutonski vitez", "Ovan", "Katapult", "Poglavica", "Naseljenik", "Hero"]; //Teutons
aLangTroops[2] = ["Palanks", "MaÄÂevalac", "IzviÄ‘aÄÂ", "Theutateov Grom", "druidni jahaÄÂ", "Haeduan", "Ovan", "Katapult", "StarjeÅ¡ina", "Naseljenik", "Hero"]; //Gauls
aLangStrings = ["Gradi poslije", "Unaprijedi poslije", "Napadni poslije", "Istraži poslije", "Isplaniraj ovaj zadatak za poslije.", "PoÄela je gradnja ", " pokuÅ¡ano je s nepoznatim rezultatom.", "stepen", " ne može biti izgraÄ‘eno.", " ne može se unaprijediti.", "Isplaniran je zadatak.", "Aktualna produkcija:", "Ne može se isplanirati ovaj zadatak sada.", "Planirani zadatak nije dostupan!", "Planirani zadaci", "izbriÅ¡i", "PoÅ¡alji poslije", "Trupe nisu odabrane.", "VaÅ¡a vojska je poslana na", "VaÅ¡a vojska ne može biti poslana na", "PodrÅ¡ka", "Napad", "PljaÄka", "Katapulti će ruÅ¡iti", "sluÄajno", "u", "ili nakon", "sekundi", "minuta", "sahati", "dana", "Å pijuniraj resourse i trupe", "Å pijuniraj trupe i odbranu", "away", "Napad ne može biti isplaniran jer destinacija nije odreÄ‘ena.", "na stranici br.", "Sort by:", "type ", "time ", "target ", "options ", "village "];
aLangTransModel= ["MixedModel", "FoodOnly", "ResourceOnly", "FixedModel"];
aLangStringt = ["RecruitHome", "AutoTransport", "AutoTrade", "Businessmen", "From", "To", "TransportBy", "RepeatTime", "minutes", "seconds", "TransportTimes:", "times", "The Time Of Next Transport:", "has been added.", "has been started.", "has not enough businessmen.", "transport error.", "Schedule later after", "Corn Resource: ", "Autotrade has done.", "Autotrade failed.", "Target Resource:", "Wood", "Clay", "Iron", "Crop", "Division Equal", "Division Model:", "WARN: Chang source village is not recommend.", "Keep ZERO if you want to division equal among wood, clay and iron. fill the number otherwise.", "This is the server time.", "This is your local time.","Force Trade On Scheduled Time (no delay check)"];
aLangUpdate = ["Your version is greater then current version: ", "Your current version is up to date: ", "There is an update available", "Do you want to update now? "];
aLangMenuOptions = ["Travian ", "Use server time", "Use local time", "Set your race", "Task History", "Check Updates", "\nHow many past tasks do we keep in history?\n(Type 0 to disable task history.) \nCurrently: ", "\nWhat is your race on this server?\n(Type 0 for Romans, 1 for Teutons, 2 for Gauls.) \nCurrently: "];
break;
case "ba": //by bhcrow
aLangBuildings = ["", "DrvosjeÄÂa", "Rudnik gline", "Rudnik željeza", "Poljoprivredno imanje", "Pilana", "Ciglana", "Ljevaonica željeza", "Mlin", "Pekara", "SkladiÅ¡te", "Silos", "KovaÄÂnica oružja", "KovaÄÂnica oklopa", "Mejdan", "Glavna zgrada", "Mjesto okupljanja", "Pijaca", "Ambasada", "Kasarna", "Ã…Â tala", "Radionica", "Akademija", "SkloniÅ¡te", "OpÅ¡tina", "Rezidencija", "Dvorac", "Treasury", "TrgovaÄÂki centar", "Velika kasarna", "Velika Å¡tala", "Gradski bedem", "Zid od zemlje", "Taraba", "Klesar", "Brewery", "PostavljaÄ zamki", "Herojska vila", "Veliko skladiÅ¡te", "Veliki silos", "Svjetsko ÄÂudo"];
aLangTasks = ["Izgradi", "Unaprijedi", "Napad", "Istraži", "ObuÄÂi", "Party"];
aLangStrings = ["Gradi poslije", "Unaprijedi poslije", "Napadni poslije", "Istraži poslije", "Isplaniraj ovaj zadatak za poslije.", "PoÄÂela je gradnja ", " pokuÅ¡ano je s nepoznatim rezultatom.", "stepen", " ne može biti izgraÄ‘eno.", " ne može se unaprijediti.", "Isplaniran je zadatak.", "Aktualna produkcija:", "Ne može se isplanirati ovaj zadatak sada.", "Planirani zadatak nije dostupan!", "Planirani zadaci", "izbriÅ¡i", "PoÅ¡alji poslije", "Trupe nisu odabrane.", "VaÅ¡a vojska je poslana na", "VaÅ¡a vojska ne može biti poslana na", "PodrÅ¡ka", "Napad", "PljaÄÂka", "Katapulti će ruÅ¡iti", "sluÄÂajno", "u", "ili nakon", "sekundi", "minuta", "sahati", "dana", "Ã…Â pijuniraj resourse i trupe", "Ã…Â pijuniraj trupe i odbranu", "away", "Napad ne može biti isplaniran jer destinacija nije odreÄ‘ena.", "na stranici br.", "Sort by:", "type ", "time ", "target ", "options ", "village ", "Party Later", " but not today.", "We started to "];
aLangTroops[0] = ["Legionar", "Preatorijanac", "Imperijanac", "Equites Legati", "Equites Imperatoris", "Equites Caesaris", "Ratni ovan", "Vatreni katapult", "Senator", "Naseljenik", "Hero"]; //Romans
aLangTroops[1] = ["Batinar", "Kopljanik", "Borac sa sikirom", "IzviÄ‘aÄÂ", "Paladin", "Teutonski vitez", "Ovan", "Katapult", "Poglavica", "Naseljenik", "Hero"]; //Teutons
aLangTroops[2] = ["Palanks", "MaÄÂevalac", "IzviÄ‘aÄÂ", "Theutateov Grom", "druidni jahaÄÂ", "Haeduan", "Ovan", "Katapult", "StarjeÅ¡ina", "Naseljenik", "Hero"]; //Gauls
aLangTransModel= ["MixedModel", "FoodOnly", "ResourceOnly", "FixedModel"];
aLangStringt = ["RecruitHome", "AutoTransport", "AutoTrade", "Businessmen", "From", "To", "TransportBy", "RepeatTime", "minutes", "seconds", "TransportTimes:", "times", "The Time Of Next Transport:", "has been added.", "has been started.", "has not enough businessmen.", "transport error.", "Schedule later after", "Corn Resource: ", "Autotrade has done.", "Autotrade failed.", "Target Resource:", "Wood", "Clay", "Iron", "Crop", "Division Equal", "Division Model:", "WARN: Chang source village is not recommend.", "Keep ZERO if you want to division equal among wood, clay and iron. fill the number otherwise.", "This is the server time.", "This is your local time.","Force Trade On Scheduled Time (no delay check)"];
aLangUpdate = ["Your version is greater then current version: ", "Your current version is up to date: ", "There is an update available", "Do you want to update now? "];
aLangMenuOptions = ["Travian ", "Use server time", "Use local time", "Set your race", "Task History", "Check Updates", "\nHow many past tasks do we keep in history?\n(Type 0 to disable task history.) \nCurrently: ", "\nWhat is your race on this server?\n(Type 0 for Romans, 1 for Teutons, 2 for Gauls.) \nCurrently: "];
break;
case "bg": //by penko & pe
aLangBuildings = ["", "Сечище", "Глинена кариера", "Рудник", "Житно поле", "Дъскорезница", "Тухларна", "Леярна", "Мелница", "Пекарна", "Склад", "Хамбар", "Ковачница за брони", "Ковачница за оръжия", "Арена", "Главна сграда", "Сборен пункт", "Пазар", "Посолство", "Казарма", "Конюшня", "Работилница", "Академия", "Скривалище", "Кметство", "Резиденция", "Дворец", "Съкровищница", "Търговска Палата", "Голяма казарма", "Голяма конюшня", "Градска стена", "Земен насип", "Палисада", "Зидарска гилдия", "Пивоварна", "Трапер", "Таверна", "Голям склад", "Голям хамбар", "Чудо", "Treasure Chamber", "Horse Drinking Pool"];
aLangTasks = ["Построяване на", "Надстройка на", "Атака към", "Откриване на", "Трениране на", "Party"];
aLangStrings = ["Постройте по-късно", "Надстройте по-късно", "Атакувайте по-късно", "Открийте по-късно", "Запишете тази задача за по-късно.", "Започна строеж ", " Започна с неясен резултат.", "ниво", " не може да бъде построено.", " не може да бъде надстроено.", "Задачата е планирана.", "Текуща продукция:", "Тази задача не може да бъде планирана сега.", "Планираната задача не е достъпна!", "Планирани задачи", "Изтриване", "Изпрати по-късно", "Атаката не може да бъде планирана, защото не са избрани войници.", "Вашите войници са изпратени към", "Вашите войници не могат да бъдат изпратени към", "Подкрепление към", "Атака към", "Набег към", "Катапултите се целят в", "случайно", "в", "или след", "секунди", "минути", "часа", "дена", "Шпиониране за ресурси и войска", "Шпиониране за войска и защита", "липсва", "Атаката не може да бъде планирана, тъй като не е избрана цел.", "at site no.", "Сортиране по:", "тип ", "време ", "цел ", "опции ", "град ", "История на задачите", "изчистване на историята", "Започна изучаването", " не може да бъде изучен.", "Подобри по-късно", "Шпионаж", "Тренирай по-късно", "войски.", "Тренирай", "Започна тренирането ", " не може да бъде трениран.", "Party Later", " but not today.", "We started to "];
aLangTroops[0] = ["Легионер", "Преторианец", "Империан", "Equites Legati", "Equites Imperatoris", "Equites Caesaris", "Катапулт", "Огнен катапулт", "Сенатор", "Заселник", "Герой"]; //Romans
aLangTroops[1] = ["Боец с боздуган", "Копиеносец", "Боец с брадваn", "Съгледвач", "Паладин", "Тевтонски рицар", "Таран", "Катапулт", "Предводител", "Заселник", "Герой"]; //Teutons
aLangTroops[2] = ["Фаланга", "Мечоносец", "Следотърсач", "Theutates Thunder", "Друид конник", "Хедуан", "Таран", "Требучет", "Вожд", "Заселник", "Герой"]; //Gaul
aLangTransModel= ["Смесена", "Само жито", "Само ресурси", "Фиксирана"];
aLangStringt = ["Завръщане", "Автотранспорт", "Автотърговия", "Търговци", " от", "до", "Вид доставка ", "Следваща доставка след ", " минути ", "секунди", "Брой доставки:", "пъти", "Следващата доставка тръгва в:", "беше добавен.", "тръгна.", "няма достатъчно търговци.", "грешка при транспорта.", "Настройте по-късно", "Жито: ", "Автотърговията завърши.", "Автотърговията се провали.", "Ресурси:", "Дърво", "Глина", "Желязо", "Жито", "Разпределени по равно", "Разпределени по модел:", "ВНИМАНИЕ: Смяната на градът-доставчик не се препоръчва.", "Въведи 0 (нула) ако пращаш по равно дърво, глина и желязо. Ако не, въведи количество.", "Това е сървърното време.", "Това е твоето локално време.","Започни търговията в зададеното време"];
aLangUpdate = ["Твоята версия е по-нова от тази: ", "Твоята версия е последната: ", "Има по-нова версия", "Искаш ли по-нова версия? "];
aLangMenuOptions = ["Travian ", "Use server time", "Use local time", "Set your race", "Task History", "Check Updates", "\nHow many past tasks do we keep in history?\n(Type 0 to disable task history.) \nCurrently: ", "\nWhat is your race on this server?\n(Type 0 for Romans, 1 for Teutons, 2 for Gauls.) \nCurrently: "];
break;
case "br": //by getuliojr
aLangBuildings = ["", "Bosque", "Poço de Barro", "Mina de Ferro", "Campo de Cereais", "Serraria", "Alvenaria", "Fundição", "Moinho", "Padaria", "Armazém", "Celeiro", "Ferreiro", "Fábrica de Armaduras", "Praça de torneios", "Edifício principal", "Ponto de reunião militar", "Mercado", "Embaixada", "Quartel", "Cavalaria", "Oficina", "Academia", "Esconderijo", "Casa do Povo", "Residência", "Palácio", "Tesouraria", "Companhia do Comércio", "Grande Quartel", "Grande Cavalaria", "Muralha", "Muro de Terra", "Paliçada", "Pedreiro", "Cervejaria", "Fábrica de Armadilhas", "Mansão do Herói", "Grande Armazém", "Grande Celeiro", "Maravilha do Mundo"];
aLangTasks = ["Construir", "Melhorar", "Atacar", "Desenvolver", "Treinar", "Party"];
aLangStrings = ["Construir Mais Tarde", "Melhorar Mais Tarde", "Atacar Mais Tarde", "Desenvolver Mais Tarde", "Programar esta tarefa para mais tarde.", "Começamos a construir ", " foi tentada a tarefa mas com resultado desconhecido.", "nível", " não pode ser construído.", " não pode ser melhorado.", "A tarefa foi programada.", "Em construção:", "Não conseguimos programar esta tarefa agora.", "Este agendamento não está disponível!", "Tarefas Programadas", "Apagar", "Enviar Mais Tarde", "Não foram selecionadas tropas.", "As suas tropas foram enviadas para", "Não foi possível enviar as suas tropas para", "Reforços", "Ataque:normal", "Ataque:assalto", "As catapultas irão mirar em", "Aleatório", "em", "ou depois","segundos", "minutos", "horas", "dias","Espiar recursos e tropas", "Espiar defesas e tropas", "Ausente", "O ataque não pode ser programado pois nenhum destino foi escolhido.", "na localização no.", "Ordenar por:", "tipo ", "hora ", "alvo ", "opções ", "aldeia ","Histórico das Tarefas", "apagar histórico", "Começamos a pesquisar ", " não pode ser pesquisado.", "Melhorar mais tarde", "Espiar", "Treinar mais tarde", "tropas.", "Treinar", "Começamos a treinar ", " não pode ser treinado.", "Party Later", " but not today.", "We started to "];
aLangTroops[0] = ["Legionário", "Pretoriano", "Imperiano", "Equites Legati", "Equites Imperatoris", "Equites Caesaris", "Aríete", "Catapulta de Fogo", "Senador", "Colonizador"]; //Romans
aLangTroops[1] = ["Salteador", "Lanceiro", "Bárbaro", "Espião", "Paladino", "Cavaleiro Teutão", "Aríete", "Catapulta", "Chefe", "Colonizador"]; //Teutons
aLangTroops[2] = ["Falange", "Espadachim", "Batedor", "Trovão Theutate", "Cavaleiro Druida", "Haeduano", "Aríete", "Trabuquete", "Chefe de Clã", "Colonizador"];
aLangTransModel= ["MixedModel", "FoodOnly", "ResourceOnly", "FixedModel"];
aLangStringt = ["RecruitHome", "AutoTransport", "AutoTrade", "Mercadores", "De", "Para", "TransportBy", "Repetir a cada", "minutos", "segundos", "Tranportar (x) vezes:", "vezes", "Hora do próximo transporte:", "foi adicionado.", "foi iniciado.", "não possui mercadores suficientes.", "erro de transporte.", "Agendar depois de", "Cereal: ", "Troca automática realizada.", "Troca automática falhou.", "Recursos desejados:", "Madeira", "Barro", "Ferro", "Cereais", "Divisão igual", "Modelo de Divisão:", "AVISO: Trocar aldeia de origem não é recomendado.", "Deixe ZERO se você quiser uma divisão idêntica entre madeira, barro e ferro. Preencha os valores se quiser diferente.","Forçar troca na hora agendada (sem verificação de atraso)"];
aLangUpdate = ["Sua versão é mais atual que a versão atual: ", "Sua versão é a mais nova: ", "Existe uma atualização disponivel", "Você quer atualizar agora? "];
break;
case "cl": //Chilean - by Benjamin F.
aLangBuildings = ["", "LeÅ„ador", "Barrera", "Mina de hierro", "Granja", "SerrerÃa", "Ladrillar", "Fundición de hierro", "Molino", "PanaderÃa", "Almacén", "Granero", "HerrerÃa", "ArmerÃa", "Plaza de torneos", "Edificio Principal", "Plaza de reuniones", "Mercado", "Embajada", "Cuartel", "Establo", "Taller", "Academia", "Escondite", "Centro CÃvico", "Residencia", "Palacio", "Tesoro", "Oficina comercio", "Gran Cuartel", "Gran Establo", "Muralla", "Terraplén", "Empalizada", "Mansión del Arquitecto", "CervecerÃa", "Trampero", "Hogar del héroe", "Gran Almacén", "Gran Granero", "Maravilla"];
aLangTasks = ["Construir", "Mejorar", "Atacar", "Investigar", "Entrenar", "Party"];
aLangStrings = ["Construir más tarde", "Ampliar más tarde", "Atacar más tarde", "Investigar más tarde", "Programar esta tarea para más tarde", "Hemos empezado a construir el edificio ", " fue intentado con resultado desconocido.", "grado", " no puede ser construido.", " no puede ser mejorado.", "La tarea ha quedado programada.", "Producción:", "No se puede programar esa tarea ahora.", "?La programación de tareas no está disponible!", "Tareas programadas", "Eliminar", "Enviar más tarde", "No se selecionaron tropas.", "Tus tropas se enviaron a", "Tus tropas NO han podido ser enviadas", "Refuerzos", "Ataque: normal", "Ataque: asalto", "Catapultas atacarán...", "aleatorio", "a", "o después", "segundos", "minutos", "horas", "dÃas", "Espiar recursos y tropas ", "Espiar defensas y tropas", "fuera(away)", "El ataque no se ha programado porque no se fijo el objetivo.", "al cuadrante ns", "Sort by:", "type ", "time ", "target ", "options ", "village ", "Party Later", " but not today.", "We started to "];
aLangTroops[0] = ["Legionario", "Pretoriano", "Imperano", "Equites Legati", "Equites Imperatoris", "Equites Caesaris", "Ariete Romano", "Catapulta de Fuego", "Senador", "Colono", "Héroe"]; //Romanos
aLangTroops[1] = ["Luchador de Porra", "Lancero", "Luchador de Hacha", "Emisario", "PaladÃn", "Caballero Teutón", "Ariete", "Catapulta", "Cabecilla", "Colono", "Héroe"]; //Germanos
aLangTroops[2] = ["Falange", "Luchador de Espada", "Batidor", "Trueno de Theutates", "Jinete Druida", "Jinete Eduo", "Ariete", "Catapulta de guerra", "Cacique", "Colono", "Héroe"]; //Galos
aLangTransModel= ["MixedModel", "FoodOnly", "ResourceOnly", "FixedModel"];
aLangStringt = ["RecruitHome", "AutoTransport", "AutoTrade", "Businessmen", "From", "To", "TransportBy", "RepeatTime", "minutes", "seconds", "TransportTimes:", "times", "The Time Of Next Transport:", "has been added.", "has been started.", "has not enough businessmen.", "transport error.", "Schedule later after", "Corn Resource: ", "Autotrade has done.", "Autotrade failed.", "Target Resource:", "Wood", "Clay", "Iron", "Crop", "Division Equal", "Division Model:", "WARN: Chang source village is not recommend.", "Keep ZERO if you want to division equal among wood, clay and iron. fill the number otherwise.", "This is the server time.", "This is your local time.","Force Trade On Scheduled Time (no delay check)"];
aLangUpdate = ["Your version is greater then current version: ", "Your current version is up to date: ", "There is an update available", "Do you want to update now? "];
aLangMenuOptions = ["Travian ", "Use server time", "Use local time", "Set your race", "Task History", "Check Updates", "\nHow many past tasks do we keep in history?\n(Type 0 to disable task history.) \nCurrently: ", "\nWhat is your race on this server?\n(Type 0 for Romans, 1 for Teutons, 2 for Gauls.) \nCurrently: "];
break;
case "cn": //by Jacky-Q
aLangBuildings = ["", "伐木场", "黏土矿", "铁矿场", "农场", "木材厂", "砖块厂", "铸造厂", "磨坊", "面包房", "仓库", "粮仓", "铁匠铺", "军械库", "竞技场", "中心大楼", "集结点", "市场", "大使馆", "兵营", "马厩", "工场", "研究所", "山洞", "市政厅", "行宫", "皇宮", "宝库", "交易所", "大兵营", "大马厩", "城墙", "土墙", "木墙", "石匠铺", "酿酒厂", "陷阱机", "英雄园", "大仓库", "大粮仓", "世界奇观"];
aLangTasks = ["建筑", "升级", "攻击", "研发", "训练", "Party"];
aLangStrings = ["预定建筑", "预定升级", "预定攻击", "预定研发", "将此事预定稍后进行.", "建筑开始了", " 已尝试但结果不明", "等级", " 不能建筑.", " 不能升级.", "此事项已预定稍后执行.", "目前生产", "我们暂时不能预定稍后执行.", "不能预定稍后执行!", "已预订稍后执行项目", "删除", "稍后送出", "攻击不能预定执行因为没有选择军队.","你的军队已送出", "你的军队不能送出", "支援", "攻击", "抢夺", "投石车会瞄准", "随机", "于", "或之后", "秒", "分", "时", "日", "侦察物资及军队", "侦察物资及防御","不在", "攻击无法预定执行,因为没有指定目的地.", "at site no.", "分类以:", "类型", "时间", "目标 ", "选项", "村庄", "Party Later", " but not today.", "We started to "];
aLangTroops[0] = ["古罗马步兵", "禁卫兵", "帝国兵", "使节骑士", "帝国骑士", "将军骑士", "冲撞车", "火焰投石器", "参议员", "拓荒者", "英雄"]; //Romans
aLangTroops[1] = ["棍棒兵", "矛兵", "斧头兵", "侦察兵", "圣骑士", "日耳曼骑兵", "冲撞车", "投石器", "执政官", "拓荒者", "英雄"]; //Teutons
aLangTroops[2] = ["方阵兵", "剑士", "探路者", "雷法师", "德鲁伊骑兵", "海顿圣骑士", "冲撞车", "投石器", "首领", "拓荒者", "英雄"]; //Gauls
aLangTransModel= ["混合模式", "只运粮食", "只运资源", "固定模式"];
aLangStringt = ["新兵开发", "自动运输", "自动平仓", "商人", "从", "到", "运输方式", "往返用时", "分", "秒", "运输次数:", "次", "下次运输时间:", "已经设置完成!", "已经开始了!", "没有足够的商人!", "本次运输失败,资源不足或商人未回。", "不必平仓,重新计划延时", "粮食资源: ", "自动平仓成功!", "自动平仓失败!", "平仓目标:", "木", "泥", "铁", "粮", "木泥铁平均分配", "分配方案:", "注意:不要修改运输出发村。过度使用小心封号。", "保持为0表示平均分配,期望分配资源应该比实际的少。", "你正在使用服务器时间.", "你正在使用电脑本机时间.","预定时间强制平仓(无延时检测)"];
aLangUpdate = ["Your version is greater then current version: ", "Your current version is up to date: ", "There is an update available", "Do you want to update now? "];
aLangMenuOptions = ["Travian ", "Use server time", "Use local time", "Set your race", "Task History", "Check Updates", "\nHow many past tasks do we keep in history?\n(Type 0 to disable task history.) \nCurrently: ", "\nWhat is your race on this server?\n(Type 0 for Romans, 1 for Teutons, 2 for Gauls.) \nCurrently: "];
break;
case "cz":
aLangBuildings = ["", "Dřevorubec", "Hliněný důl", "Železný důl", "Obilné pole", "Pila", "Cihelna", "Slévárna", "Mlýn", "Pekárna", "Sklad surovin", "Sýpka", "Kovárna", "Zbrojnice", "Turnajové hřiště", "Hlavní budova", "Shromaždiště", "Tržiště", "Ambasáda", "Kasárny", "Stáje", "Dílna", "Akademie", "Úkryt", "Radnice", "Rezidence", "Palác", "Pokladnice", "Obchodní kancelář", "Velké kasárny", "Velká stáj", "Městská zeď", "Zemní hráz", "Palisáda", "Kameník", "Pivovar", "Pasti", "Hrdinský dvůr", "Velký sklad", "Velká sýpka", "Div světa"];
aLangTasks = ["Postavit", "Rozšířit", "Zaútočit na", "Vyzkoumat", "Trénovat", "Party"];
aLangStrings = ["Postavit později", "Rozšířit později", "Zaútočit později", "Vyzkoumat později", "Naplánujte tuto akci na později.", "Začali jsme stavět ", " - výsledek je neznámý.", "úroveň", " se nedá postavit.", " se nedá rozšířit.", "Úloha byla naplánována.", "Aktuální produkce:", "Tuto akci momentálně není možné naplánovat.", "Momentálně není možné plánovat žádné akce!", "Naplánované akce", "Smazat", "Vyslat později", "Útok není možné naplánovat, protože nebyly vybrány žádné jednotky.", "Jednotky jsou na cestě do", "Nepodařilo se vyslat jednotky do", "Podpořit", "Zaútočit na", "Oloupit", "Katapulty zamířit na", "náhodně", "o", "anebo za", "sekund", "minut", "hodin", "dní", "Prozkoumat jednotky a suroviny", "Prozkoumat jednotky a obranné objekty", "pryč", "Útok není možné naplánovat, protože chybí cíl.", "na místě č.", "Třídit podle:", "druhu ", "času ", "cíle ", "možnosti ", "vesnice ", "Historie", "smazat historii", "Začli jsme vyvíjet ", " se nedá vynajít.", "Vylepšit později", "Vyšpehovat", "Vycvičit později", "jednotky.", "Vycvičit", "Začli jsme cvičit ", " se nedá vycvičit." , "Party Later", " but not today.", "We started to "];
aLangTroops[0] = ["Legionář", "Pretorián", "Imperián", "Equites Legáti", "Equites Imperatoris", "Equites Caesaris", "Římanské beranidlo", "Ohnivý katapult", "Senátor", "Osadník"]; //Romans
aLangTroops[1] = ["Pálkař", "Oštěpař", "Sekerník", "Zvěd", "Rytíř", "Teuton jezdec", "Germánské beranidlo", "Katapult", "Kmenový vůdce", "Osadník"]; //Teutons
aLangTroops[2] = ["Falanx", "Šermíř", "Slídič", "Theutates Blesk", "Druid jezdec", "Haeduan", "Dřevěné beranidlo", "Válečný katapult", "Náčelník", "Osadník"]; //Gauls
aLangTransModel= ["MixedModel", "FoodOnly", "ResourceOnly", "FixedModel"];
aLangStringt = ["RecruitHome", "AutoTransport", "AutoTrade", "Businessmen", "From", "To", "TransportBy", "RepeatTime", "minutes", "seconds", "TransportTimes:", "times", "The Time Of Next Transport:", "has been added.", "has been started.", "has not enough businessmen.", "transport error.", "Schedule later after", "Corn Resource: ", "Autotrade has done.", "Autotrade failed.", "Target Resource:", "Wood", "Clay", "Iron", "Crop", "Division Equal", "Division Model:", "WARN: Chang source village is not recommend.", "Keep ZERO if you want to division equal among wood, clay and iron. fill the number otherwise.", "This is the server time.", "This is your local time.","Force Trade On Scheduled Time (no delay check)"];
aLangUpdate = ["Your version is greater then current version: ", "Your current version is up to date: ", "There is an update available", "Do you want to update now? "];
aLangMenuOptions = ["Travian ", "Use server time", "Use local time", "Set your race", "Task History", "Check Updates", "\nHow many past tasks do we keep in history?\n(Type 0 to disable task history.) \nCurrently: ", "\nWhat is your race on this server?\n(Type 0 for Romans, 1 for Teutons, 2 for Gauls.) \nCurrently: "];
break;
case "de": //by Metador
aLangBuildings = ["", "Holzfäller", "Lehmgrube", "Eisenmine", "Getreidefarm", "Sägewerk", "Lehmbrennerei", "Eisengießerei", "Getreidemühle", "Bäckerei", "Rohsto