vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[

        File containing localized strings
        for English, French, German and Chinese versions, defaults to English

        Processed locales: french (frFR), german (deDE), simplified chinese (zhCN), english (US or GB, default)
]]

if ( GetLocale() == "frFR" ) then
        -- French localized variables
        GATHERER_VERSION_WARNING="Nouvelle version de Gatherer d\195\169tect\195\169e, v\195\169rifiez le zone match.";
        GATHERER_NOTEXT="([-]) pas de texte "

        -- TRADE NAME
        TRADE_HERBALISM="Herboristerie";
        OLD_TRADE_HERBALISM="Herboristerie";
        TRADE_MINING="Minage"
        TRADE_OPENING="Ouverture"
        GATHER_HERBALISM="Cueillette"

        -- strings for gather line in chat
        HERB_GATHER_STRING="Vous ex\195\169cutez Cueillette sur"
        ORE_GATHER_STRING="Vous ex\195\169cutez Minage sur"
        TREASURE_GATHER_STRING="Vous ex\195\169cutez Ouverture sur"

        GATHERER_REQUIRE="N\195\169cessite"
        GATHERER_NOSKILL="Requiert"

        -- Length of the string to keep the gather name
        HERB_GATHER_LENGTH=31
        HERB_GATHER_END=-2
        ORE_GATHER_LENGTH=27
        ORE_GATHER_END=-2
        TREASURE_GATHER_LENGTH=30
        TREASURE_GATHER_END=-2

        -- ore classes
        ORE_CLASS_VEIN   ="veine"
        ORE_CLASS_DEPOSIT="d\195\169p\195\180t"
        ORE_CLASS_LODE   ="filon"
        ORE_CLASS_SEAM   ="gisement"

        -- ore types
        ORE_COPPER     ="cuivre"
        ORE_TIN        ="\195\169tain"
        ORE_IRON       ="fer"
        ORE_SILVER     ="argent"
        ORE_TRUESILVER ="vrai-argent"
        ORE_GOLD       ="or"
        ORE_MITHRIL    ="mithril"
        ORE_THORIUM    ="thorium"
        ORE_RTHORIUM   ="thorium (riche)"
        ORE_DARKIRON   ="sombrefer"

        -- herb types (ingame verified translations)
        HERB_PEACEBLOOM        ="pacifique"
        HERB_SILVERLEAF        ="feuillargent"
        HERB_EARTHROOT         ="terrestrine"
        HERB_MAGEROYAL         ="mage royal"
        HERB_BRIARTHORN        ="eglantine"
        HERB_STRANGLEKELP      ="etouffante"
        HERB_SWIFTTHISTLE      ="chardonnier"
        HERB_BRUISEWEED        ="doulourante"
        HERB_WILDSTEELBLOOM    ="aci\195\169rite sauvage"
        HERB_GRAVEMOSS         ="tombeline"
        HERB_KINGSBLOOD        ="sang-royal"
        HERB_LIFEROOT          ="viet\195\169rule"
        HERB_FADELEAF          ="p\195\162lerette"
        HERB_KHADGARSWHISKER   ="moustache de khadgar"
        HERB_FIREBLOOM         ="fleur de feu"
        HERB_GOLDTHORN         ="dor\195\169pine"
        HERB_PURPLELOTUS       ="lotus pourpre"
        HERB_BLINDWEED         ="aveuglette"
        HERB_SUNGRASS          ="soleillette"
        HERB_GHOSTMUSHROOM     ="champignon fant\195\180me"
        HERB_GOLDENSANSAM      ="sansam dor\195\169"
        HERB_GROMSBLOOD        ="gromsang"
        HERB_WILDVINE          ="sauvageonne"
        HERB_WINTERSBITE       ="hivernale"
        HERB_ARTHASTEAR        ="larmes d'arthas"
        HERB_BLACKLOTUS        ="lotus noir"
        HERB_DREAMFOIL         ="feuiller\195\170ve"
        HERB_ICECAP            ="calot de glace"
        HERB_MOUNTAINSILVERSAGE="sauge\-argent des montagnes"
        HERB_PLAGUEBLOOM       ="fleur de peste"

        -- treasure types
        -- Note: BARREL is a placeholder, chances are it's translated by the one corresponding to CASK.
        TREASURE_BOX        ="bo\195\174te"
        TREASURE_CHEST      ="coffre"
        TREASURE_CLAM       ="palourde"
        TREASURE_CRATE      ="caisse"
        TREASURE_BARREL     ="barrique"
        TREASURE_CASK       ="tonneau"
        TREASURE_SHELLFISHTRAP="casier \195\160 crustac\195\169s"
        TREASURE_FOOTLOCKER   = "cantine"

        TREASURE_BLOODHERO    = "sang des h\195\169ros"

        TREASURE_BLOODPETAL   = "p\195\169tale de sang"
        TREASURE_BLOODPETAL_G = "pousse de p\195\169tale([-])de([-])sang"
        TREASURE_POWERCRYST   = "cristal de puissance"
        TREASURE_UNGOROSOIL_G = "tas de poussi\195\168re"
        TREASURE_UNGOROSOIL   = "humus d'Un'Goro"

        TREASURE_NIGHTDRAGON    = "dragon nocturne"
        TREASURE_WHIPPERROOT    = "navetille"
        TREASURE_WINDBLOSSOM_G  = "fleur([-])de([-])vent"
        TREASURE_WINDBLOSSOM    = "fleur de vent"
        TREASURE_SONGFLOWER_G   = "fleur([-])de([-])chant"
        TREASURE_SONGFLOWER     = "fleur de chant"

        TREASURE_FISHNODE_TRIGGER1      = "Malle";
--      TREASURE_FISHNODE_TRIGGER2      = "boursoufl\195\169"; -- no longer found in wreckage in 1.11

        TREASURE_FISHNODE_TRIGGER4      = "banc d";
        TREASURE_FISHNODE_TRIGGER5      = "d\195\169bris flottant";
        TREASURE_FISHNODE_TRIGGER6      = "nappe de p\195\169trole";
        TREASURE_FISHNODE_TRIGGER7      = "remous d'eau \195\169l\195\169mentaire";

        TREASURE_FISHNODE               = "banc";
        TREASURE_FISHWRECK              = TREASURE_FISHNODE_TRIGGER5;
        TREASURE_FISHELEM               = TREASURE_FISHNODE_TRIGGER7;

        GATHERER_ReceivesLoot           = "Vous recevez le butin : (.+)%.";

        TREASURE_REGEX = {
                [1] = " ([^ ]+)$",
                [2] = "^([^ ]+) ",
                [3] = "([^ ]+) ([^ ]+) ",
                [4] = "([^ ]+) ([^ ]+)$",
        };


        function Gatherer_FindOreType(input)
                local i,j, oreType, oreClass, oreArticle;
                local trinput=string.gsub(input, '\'', " ")

                if ( string.find(input, "riche") and string.find(input, "thorium") ) then
                        return ORE_RTHORIUM;
                end;

                if ( string.find(input, ORE_DARKIRON)) then
                        return ORE_DARKIRON;
                end

                i, j, oreClass, oreArticle, oreType = string.find(input, "([^ ]+) ([^ ]+) ([^ ]+)$");
                if (oreClass ~= ORE_CLASS_VEIN and oreClass ~= ORE_CLASS_DEPOSIT and oreClass ~= ORE_CLASS_LODE and oreClass ~= ORE_CLASS_SEAM) then
                        i, j, oreClass, oreArticle, oreType = string.find(trinput, "^([^ ]+) ([^ ]+) ([^ ]+)");
                end
                if (oreType and oreClass and (oreClass == ORE_CLASS_VEIN or oreClass == ORE_CLASS_DEPOSIT or oreClass == ORE_CLASS_LODE or oreClass == ORE_CLASS_SEAM)) then
                        return oreType;
                end
                return;
        end

        function Gatherer_FindTreasureType(in_input)
                local iconName, input;
                input = string.gsub(in_input, GATHERER_NOTEXT, "")

                if ( string.find(input, TREASURE_UNGOROSOIL_G) ) then
                        return TREASURE_UNGOROSOIL, TREASURE_UNGOROSOIL;
                end

                if (string.find(input, TREASURE_POWERCRYST) ) then
                        return TREASURE_POWERCRYST, TREASURE_POWERCRYST;
                end

                if (string.find(input, TREASURE_BLOODPETAL_G) or string.find(input, TREASURE_BLOODPETAL)) then
                        return TREASURE_BLOODPETAL, TREASURE_BLOODPETAL;
                end

                if (string.find(input, TREASURE_BLOODHERO) ) then
                        return TREASURE_BLOODHERO, TREASURE_BLOODHERO;
                end

                if (string.find(input, TREASURE_WINDBLOSSOM_G) or string.find(input, TREASURE_WINDBLOSSOM)) then
                        return TREASURE_WINDBLOSSOM, TREASURE_WINDBLOSSOM;
                end

                if (string.find(input, TREASURE_SONGFLOWER_G) or string.find(input, TREASURE_SONGFLOWER)) then
                        return TREASURE_SONGFLOWER, TREASURE_SONGFLOWER;
                end

                for iconName in Gather_DB_IconIndex[0] do
                        local index, treasure_regex, i, j, treasType;
                        if ( input == iconName ) then
                                return iconName;
                        end

                        if ( string.find(input, iconName) ) then
                                for index, treasure_regex in TREASURE_REGEX do
                                        i,j, treasType = string.find(input, treasure_regex);
                                        if ( treasType and treasType == iconName ) then
                                                return iconName;
                                        end

                                        i,j, _, treasType = string.find(input, treasure_regex);
                                        if ( treasType and treasType == iconName ) then
                                                return iconName;
                                        end
                                end
                        end
                end
                return;
        end
-- Common Values, Functions
TYPE_RARE               = "Rare";
elseif ( GetLocale() == "deDE" ) then
        -- German localized variables
        GATHERER_VERSION_WARNING="New zone order detected, check zone match to translate old zones to new order.";
        GATHERER_NOTEXT="([-]) Kein Text "

        -- TRADE NAME
        TRADE_HERBALISM="Kr\195\164uterkunde"
        OLD_TRADE_HERBALISM="Kr\195\164uterkunde"
        TRADE_MINING="Bergbau"
        TRADE_OPENING="\195\150ffnen"
        GATHER_HERBALISM="Kr\195\164utersammeln"

        -- strings for gather line in chat
        HERB_GATHER_STRING="Ihr f\195\188hrt Kr\195\164utersammeln auf" -- "Ihr fuhrt Krautersammeln auf Beulengras aus."
        ORE_GATHER_STRING="Ihr f\195\188hrt Bergbau auf"                -- "Ihr fuhrt Bergbau auf Kupfervorkommen aus."
        TREASURE_GATHER_STRING="Ihr f\195\188hrt \195\150ffnen auf"     -- "Ihr fuhrt Offnen auf Ramponierte Truhe aus."

        -- Length of the string to keep the gather name
        HERB_GATHER_LENGTH=32
        HERB_GATHER_END=-6
        ORE_GATHER_LENGTH=24
        ORE_GATHER_END=-6
        TREASURE_GATHER_LENGTH=24
        TREASURE_GATHER_END=-6

        GATHERER_REQUIRE="Ben\195\182tigt"
        GATHERER_NOSKILL="Erfordert"

        -- ore classes
        ORE_CLASS_VEIN   ="vorkommen"
        ORE_CLASS_DEPOSIT="ablagerung"

        -- ore types
        ORE_COPPER    ="kupfer"
        ORE_TIN       ="zinn"
        ORE_IRON      ="eisen"
        ORE_SILVER    ="silber"
        ORE_TRUESILVER="echtsilber"
        ORE_GOLD      ="gold"
        ORE_MITHRIL   ="mithril"
        ORE_THORIUM   ="thorium"
        ORE_RTHORIUM  ="thorium (reiches)"
        ORE_DARKIRON  ="dunkeleisen"

        -- herb types
        HERB_ARTHASTEAR        ="arthas\226\128\153 tr\195\164nen"
        HERB_BLACKLOTUS        ="schwarzer lotus"
        HERB_BLINDWEED         ="blindkraut"
        HERB_BRIARTHORN        ="wilddornrose"
        HERB_BRUISEWEED        ="beulengras"
        HERB_DREAMFOIL         ="traumblatt"
        HERB_EARTHROOT         ="erdwurzel"
        HERB_FADELEAF          ="blassblatt"
        HERB_FIREBLOOM         ="feuerbl\195\188te"
        HERB_GHOSTMUSHROOM     ="geisterpilz"
        HERB_GOLDENSANSAM      ="goldener sansam"
        HERB_GOLDTHORN         ="golddorn"
        HERB_GRAVEMOSS         ="grabmoos"
        HERB_GROMSBLOOD        ="gromsblut"
        HERB_ICECAP            ="eiskappe"
        HERB_KHADGARSWHISKER   ="khadgars schnurrbart"
        HERB_KINGSBLOOD        ="k\195\182nigsblut"
        HERB_LIFEROOT          ="lebenswurz"
        HERB_MAGEROYAL         ="magusk\195\182nigskraut"
        HERB_MOUNTAINSILVERSAGE="bergsilberweisling"
        HERB_PEACEBLOOM        ="friedensblume"
        HERB_PLAGUEBLOOM       ="pestbl\195\188te"
        HERB_PURPLELOTUS       ="lila lotus"
        HERB_SILVERLEAF        ="silberblatt"
        HERB_STRANGLEKELP      ="w\195\188rgetang"
        HERB_SUNGRASS          ="sonnengras"
        HERB_SWIFTTHISTLE      ="flitzdistel"
        HERB_WILDSTEELBLOOM    ="wildstahlblume"
        HERB_WINTERSBITE       ="winterbiss"
        HERB_WILDVINE          ="wildranke"

        -- treasure types
        TREASURE_BOX        ="kiste"
        TREASURE_CHEST      ="truhe"
        TREASURE_CLAM       ="muschel"
        TREASURE_CRATE      ="kasten"
        TREASURE_BARREL     ="tonne"
        TREASURE_CASK       ="fass"
        TREASURE_SHELLFISHTRAP="schalentierfalle"
        TREASURE_FOOTLOCKER = "schlie\195\159kiste"

        TREASURE_BLOODHERO  = "blut von helden"

        TREASURE_UNGOROSOIL_G = "erdhaufen"
        TREASURE_BLOODPETAL = "blutbl\195\188te"
        TREASURE_BLOODPETAL_G = "blutbl\195\188tenspr\195\182ssling"
        TREASURE_POWERCRYST = "machtkristall"
        TREASURE_UNGOROSOIL = "un'Goro erde"

        TREASURE_NIGHTDRAGON    = "nachtdrache"
        TREASURE_WHIPPERROOT    = "peitscherwurzel"
        TREASURE_WINDBLOSSOM    = "windbl\195\188te"
        TREASURE_SONGFLOWER     = "liedblume"

        TREASURE_FISHNODE_TRIGGER1      = "Geh\195\164use";
--      TREASURE_FISHNODE_TRIGGER2      = "Aufgedunsener"; -- no longer found in wreckage in 1.11

        TREASURE_FISHNODE_TRIGGER4      = "schwarm";
        TREASURE_FISHNODE_TRIGGER5      = "schwimmende tr\195\188mmer";
        TREASURE_FISHNODE_TRIGGER6  = "\195\150lfleck";
        TREASURE_FISHNODE_TRIGGER7      = "stelle mit elementarwasser";

        TREASURE_FISHNODE                       = "schwarm";
        TREASURE_FISHWRECK                      = TREASURE_FISHNODE_TRIGGER5;
        TREASURE_FISHELEM                       = TREASURE_FISHNODE_TRIGGER7;

        GATHERER_ReceivesLoot           = "Ihr bekommt Beute: (.+)%.";

        TREASURE_REGEX = {
                [1] = " ([^ ]+)$",
                [2] = "^([^ ]+) ",
                [3] = "([^ ]+) ([^ ]+) ",
                [4] = "([^ ]+) ([^ ]+)$",
                [5] = "^([^ ]+)$",
        };

        function Gatherer_FindOreType(input)
                local i,j, oreType, oreClass, oreTypeClass;

                if ( string.find(input, "reiches") and string.find(input, "thorium") ) then
                         return ORE_RTHORIUM;
                end;

                -- fix for ooze covered
                oreTypeClass = string.gsub(string.gsub(string.gsub(string.gsub(input, "br\195\188hschlammbedecktes ", ""), "kleines ", ""), "reiches ", "" ), "br\195\188hschlammbedeckte ", "" );

                if (string.find(oreTypeClass, ORE_CLASS_VEIN)) then
                        oreType = strsub(oreTypeClass, 0, string.len(oreTypeClass)-string.len(ORE_CLASS_VEIN));
                        oreClass = ORE_CLASS_VEIN;
                end
                if (string.find(oreTypeClass, ORE_CLASS_DEPOSIT)) then
                        oreType = strsub(oreTypeClass, 0, string.len(oreTypeClass)-string.len(ORE_CLASS_DEPOSIT));
                        oreClass = ORE_CLASS_DEPOSIT;
                end
                if( oreClass == ORE_CLASS_DEPOSIT and oreType == ORE_SILVER ) then
                       oreType = ORE_TRUESILVER;
                end
                if (oreType and oreClass and ((oreClass == ORE_CLASS_VEIN) or (oreClass == ORE_CLASS_DEPOSIT))) then
                        return oreType;
                end
                return;
        end

        function Gatherer_FindTreasureType(in_input)
                local iconName, input;

                -- fix for clams
                input = string.gsub(string.gsub(in_input, GATHERER_NOTEXT, ""), "riesen", "");

                if ( string.find(input, TREASURE_UNGOROSOIL_G) or string.find(input, TREASURE_UNGOROSOIL)) then
                        return TREASURE_UNGOROSOIL, TREASURE_UNGOROSOIL;
                end

                if (string.find(input, TREASURE_POWERCRYST) ) then
                        return TREASURE_POWERCRYST, TREASURE_POWERCRYST;
                end

                if (string.find(input, TREASURE_BLOODPETAL_G) or string.find(input, TREASURE_BLOODPETAL)) then
                        return TREASURE_BLOODPETAL, TREASURE_BLOODPETAL_G;
                end

                if (string.find(input, TREASURE_BLOODHERO) ) then
                        return TREASURE_BLOODHERO, TREASURE_BLOODHERO;
                end

                for iconName in Gather_DB_IconIndex[0] do
                        local index, treasure_regex, i, j, treasType;
                        if ( input == iconName ) then
                                return iconName;
                        end

                        if ( string.find(input, iconName) ) then
                                for index, treasure_regex in TREASURE_REGEX do
                                        i,j, treasType = string.find(input, treasure_regex);
                                        if ( treasType and treasType == iconName ) then
                                                return iconName;
                                        end

                                        i,j, _, treasType = string.find(input, treasure_regex);
                                        if ( treasType and treasType == iconName ) then
                                                return iconName;
                                        end
                                end
                        end

                        if ( string.find(string.lower(input), string.lower(iconName))) then
                                return iconName;
                        end
                end
                return;
        end
-- Common Values, Functions
TYPE_RARE               = "Rare";
elseif (  GetLocale() == "zhCN"  ) then

        -- Chinese localized variables
        -- localized by biAji
        GATHERER_VERSION_WARNING="New Gatherer Version detected, check zone match.";
        GATHERER_NOTEXT="([-]) no text "

        -- TRADE NAME
        TRADE_HERBALISM="\232\141\137\232\141\175\229\173\166"
        OLD_TRADE_HERBALISM="\232\141\137\232\141\175\229\173\166"
        TRADE_MINING="\233\135\135\231\159\191"
        TRADE_OPENING="Opening"
        GATHER_HERBALISM="Herb Gathering"

        -- strings for gather line in chat
        HERB_GATHER_STRING="\228\189\191\231\148\168\233\135\135\233\155\134"
        ORE_GATHER_STRING="\228\189\191\231\148\168\233\135\135\231\159\191"
        TREASURE_GATHER_STRING="\228\189\191\231\148\168\230\137\147\229\188\128"

        -- Length of the string to keep the gather name
        HERB_GATHER_LENGTH=5
        HERB_GATHER_END=-20
        ORE_GATHER_LENGTH=5
        ORE_GATHER_END=-15
        TREASURE_GATHER_LENGTH=5
        TREASURE_GATHER_END=-15

        GATHERER_REQUIRE="\233\156\128\232\166\129"
        GATHERER_NOSKILL="\233\156\128\232\166\129\231\173\137\231\186\167"

        -- ore classes
        ORE_CLASS_VEIN   ="\231\159\191"
        ORE_CLASS_DEPOSIT="\231\159\191\231\159\179"

        -- ore types
        ORE_COPPER    ="\233\147\156"
        ORE_TIN       ="\233\148\161"
        ORE_IRON      ="\233\147\129"
        ORE_SILVER    ="\233\147\182"
        ORE_TRUESILVER="\231\156\159\233\147\182"
        ORE_GOLD      ="\233\135\145"
        ORE_MITHRIL   ="\231\167\152\233\147\182"
        ORE_THORIUM   ="\231\145\159\233\147\182"
        ORE_RTHORIUM  ="\229\175\140\231\145\159\233\147\182"
        ORE_DARKIRON  ="\233\187\145\233\147\129"

        -- herb types
        HERB_ARTHASTEAR        ="\233\152\191\229\176\148\232\144\168\230\150\175\228\185\139\230\179\170"
        HERB_BLACKLOTUS        ="\233\187\145\232\142\178\232\138\177"
        HERB_BLINDWEED         ="\231\155\178\231\155\174\232\141\137"
        HERB_BRIARTHORN        ="\231\159\179\229\141\151\232\141\137"
        HERB_BRUISEWEED        ="\232\183\140\230\137\147\232\141\137"
        HERB_DREAMFOIL         ="\230\162\166\229\143\182\232\141\137"
        HERB_EARTHROOT         ="\229\156\176\230\160\185\232\141\137"
        HERB_FADELEAF          ="\230\158\175\229\143\182\232\141\137"
        HERB_FIREBLOOM         ="\231\129\171\231\132\176\232\138\177"
        HERB_GHOSTMUSHROOM     ="\229\185\189\231\129\181\232\143\135"
        HERB_GOLDENSANSAM      ="\233\187\132\233\135\145\229\143\130"
        HERB_GOLDTHORN         ="\233\135\145\230\163\152\232\141\137"
        HERB_GRAVEMOSS         ="\229\162\147\229\156\176\232\139\148"
        HERB_GROMSBLOOD        ="\230\160\188\231\189\151\229\167\134\228\185\139\232\161\128"
        HERB_ICECAP            ="\229\134\176\231\155\150\232\141\137"
        HERB_KHADGARSWHISKER   ="\229\141\161\229\190\183\229\138\160\231\154\132\232\131\161\233\161\187"
        HERB_KINGSBLOOD        ="\231\154\135\232\161\128\232\141\137"
        HERB_LIFEROOT          ="\230\180\187\230\160\185\232\141\137"
        HERB_MAGEROYAL         ="\233\173\148\231\154\135\232\141\137"
        HERB_MOUNTAINSILVERSAGE="\229\177\177\233\188\160\232\141\137"
        HERB_PEACEBLOOM        ="\229\174\129\231\165\158\232\138\177"
        HERB_PLAGUEBLOOM       ="\231\152\159\231\150\171\232\138\177"
        HERB_PURPLELOTUS       ="\231\180\171\232\142\178\232\138\177"
        HERB_SILVERLEAF        ="\233\147\182\229\143\182\232\141\137"
        HERB_STRANGLEKELP      ="\232\141\134\230\163\152\232\151\187"
        HERB_SUNGRASS          ="\229\164\170\233\152\179\232\141\137"
        HERB_SWIFTTHISTLE      ="\233\155\168\231\135\149\232\141\137"
        HERB_WILDSTEELBLOOM    ="\233\135\142\233\146\162\232\138\177"
        HERB_WINTERSBITE       ="\229\134\172\229\136\186\232\141\137"
        HERB_WILDVINE          ="\233\135\142\232\145\161\232\144\132\232\151\164"

        -- treasure types
        TREASURE_BOX            ="\231\160\180\230\141\159\231\154\132\231\155\146\229\173\144"
        TREASURE_CHEST          ="\231\174\177\229\173\144"
        TREASURE_CLAM           ="\229\183\168\229\158\139\232\154\140\229\163\179"
        TREASURE_CRATE          ="\230\157\191\230\157\161\231\174\177"
        TREASURE_BARREL         ="\230\156\168\230\161\182"
        TREASURE_CASK           ="\229\176\143\229\156\134\230\161\182"
        TREASURE_SHELLFISHTRAP  ="shellfish trap"
        TREASURE_FOOTLOCKER     = "footlocker"

        TREASURE_BLOODHERO      = "\232\139\177\233\155\132\228\185\139\232\161\128"

        TREASURE_UNGOROSOIL     = "\229\174\137\230\136\136\230\180\155\231\154\132\230\179\165\229\156\159"
        TREASURE_UNGOROSOIL_G   = "\229\174\137\230\136\136\230\180\155\229\156\159\229\160\134"
        TREASURE_BLOODPETAL     = "\232\161\128\231\147\163\232\138\177"
        TREASURE_BLOODPETAL_G   = "\232\161\128\231\147\163\232\138\177\232\139\151"
        TREASURE_POWERCRYST     = "\232\131\189\233\135\143\230\176\180\230\153\182"

        TREASURE_NIGHTDRAGON    = "night dragon"
        TREASURE_WHIPPERROOT    = "whipper root"
        TREASURE_WINDBLOSSOM    = "windblossom"
        TREASURE_SONGFLOWER     = "songflower"

        TREASURE_FISHNODE_TRIGGER1      = "Trunk";
--      TREASURE_FISHNODE_TRIGGER2      = "Bloated"; -- no longer found in wreckage in 1.11

        TREASURE_FISHNODE_TRIGGER4      = "school";
        TREASURE_FISHNODE_TRIGGER5      = "floating wreckage";
        TREASURE_FISHNODE_TRIGGER6      = "oil spill";
        TREASURE_FISHNODE_TRIGGER7      = "patch of elemental water";

        TREASURE_FISHNODE               = "school";
        TREASURE_FISHWRECK              = TREASURE_FISHNODE_TRIGGER5;
        TREASURE_FISHELEM               = TREASURE_FISHNODE_TRIGGER7;

        GATHERER_ReceivesLoot           = "You receive loot: (.+)%.";

        TREASURE_REGEX = {
                [1] = " ([^ ]+)$",
                [2] = "^([^ ]+)",
                [3] = "([^ ]+) ([^ ]+) ",
        };

        function Gatherer_FindOreType(input)
                local i,j, oreType, oreClass, oreTypeClass;

                if ( string.find(input, "\229\175\140") and string.find(input, "\231\145\159\233\147\182") ) then
                        return ORE_RTHORIUM;
                end;


                --i,j, oreType, oreClass = string.find(input, "([^ ]+) ([^ ]+)$");
                oreTypeClass = input;
                if (string.find(oreTypeClass, ORE_CLASS_VEIN)) then
                   oreType = strsub(oreTypeClass, 0, string.len(oreTypeClass)-string.len(ORE_CLASS_VEIN));
                   oreClass = ORE_CLASS_VEIN;
                end
                if (string.find(oreTypeClass, ORE_CLASS_DEPOSIT)) then
                   oreType = strsub(oreTypeClass, 0, string.len(oreTypeClass)-string.len(ORE_CLASS_DEPOSIT));
                   oreClass = ORE_CLASS_DEPOSIT;
                end
                if( oreClass == ORE_CLASS_DEPOSIT and oreType == ORE_SILVER ) then
                   oreType = ORE_TRUESILVER;
                end

                if (oreType and oreClass and ((oreClass == ORE_CLASS_VEIN) or (oreClass == ORE_CLASS_DEPOSIT))) then
                        return oreType;
                end
                return;
        end

        function Gatherer_FindTreasureType(in_input)
                local iconName, input;

                input =string.gsub(in_input, GATHERER_NOTEXT, "")
                if ( string.find(input, TREASURE_UNGOROSOIL_G) or string.find(input, TREASURE_UNGOROSOIL)) then
                        return TREASURE_UNGOROSOIL, TREASURE_UNGOROSOIL;
                end

                if (string.find(input, TREASURE_POWERCRYST) ) then
                        return TREASURE_POWERCRYST, TREASURE_POWERCRYST;
                end

                if (string.find(input, TREASURE_BLOODPETAL_G) or string.find(input, TREASURE_BLOODPETAL)) then
                        return TREASURE_BLOODPETAL, TREASURE_BLOODPETAL_G;
                end

                if (string.find(input, TREASURE_BLOODHERO) ) then
                        return TREASURE_BLOODHERO, TREASURE_BLOODHERO;
                end

                for iconName in Gather_DB_IconIndex[0] do
                        local index, treasure_regex, i, j, treasType;
                        if ( input == iconName ) then
                                return iconName;
                        end

                        if ( string.find(input, iconName) ) then
                                for index, treasure_regex in TREASURE_REGEX do
                                        i,j, treasType = string.find(input, treasure_regex);
                                        if ( treasType and treasType == iconName ) then
                                                return iconName;
                                        end

                                        i,j, _, treasType = string.find(input, treasure_regex);
                                        if ( treasType and treasType == iconName ) then
                                                return iconName;
                                        end
                                end
                        end
                end
                return;
        end
-- Common Values, Functions
TYPE_RARE               = "Rare";

elseif ( GetLocale() == "ruRU" ) then
        -- Russian localized variables (Maus and fix by CFM)
        GATHERER_VERSION_WARNING="Обнаружена новая версия Gatherer, проверь zone match.";
        GATHERER_NOTEXT="([-]) no text "

        TRADE_HERBALISM="Травничество"
        OLD_TRADE_HERBALISM="Травничество"
        TRADE_MINING="Горное дело"
        TRADE_OPENING="Открытие"
        GATHER_HERBALISM="Сбор трав"

        HERB_GATHER_STRING="Вы применяете Сбор трав на"
        ORE_GATHER_STRING="Вы применяете Горное дело на"
        TREASURE_GATHER_STRING="Вы применяете Открытие на"

        HERB_GATHER_LENGTH=31
        HERB_GATHER_END=-2
        ORE_GATHER_LENGTH=31
        ORE_GATHER_END=-2
        TREASURE_GATHER_LENGTH=31
        TREASURE_GATHER_END=-2

        GATHERER_REQUIRE="Требуется:"
        GATHERER_NOSKILL="быть не менее"

        -- ore types
        ORE_COPPER    ="Медная жила"
        ORE_TIN       ="Оловянная жила"
        ORE_IRON      ="Залежи железа"
        ORE_SILVER    ="Серебряная жила"
        ORE_TRUESILVER="Залежи истинного серебра"
        ORE_GOLD      ="Золотая жила"
        ORE_MITHRIL   ="Мифриловые залежи"
        ORE_THORIUM   ="Ториевая жила"
        ORE_RTHORIUM  ="Богатая ториевая жила"
        ORE_DARKIRON  ="Залежи черного железа"

        -- herb types
        HERB_ARTHASTEAR        ="Слезы артаса"
        HERB_BLACKLOTUS        ="Черный лотос"
        HERB_BLINDWEED         ="Пастушья сумка"
        HERB_BRIARTHORN        ="Остротерн"
        HERB_BRUISEWEED        ="Синячник"
        HERB_DREAMFOIL         ="Снолист"
        HERB_EARTHROOT         ="Земляной корень"
        HERB_FADELEAF          ="Бледнолист"
        HERB_FIREBLOOM         ="Огнецвет"
        HERB_GHOSTMUSHROOM     ="Призрачная поганка"
        HERB_GOLDENSANSAM      ="Золотой сансам"
        HERB_GOLDTHORN         ="Златошип"
        HERB_GRAVEMOSS         ="Могильный мох"
        HERB_GROMSBLOOD        ="Кровь Грома"
        HERB_ICECAP            ="Ледяной зев"
        HERB_KHADGARSWHISKER   ="Кадгаров ус"
        HERB_KINGSBLOOD        ="Королевская кровь"
        HERB_LIFEROOT          ="Корень жизни"
        HERB_MAGEROYAL         ="Магороза"
        HERB_MOUNTAINSILVERSAGE="Горный серебряный шалфей"
        HERB_PEACEBLOOM        ="Мироцвет"
        HERB_PLAGUEBLOOM       ="Чумоцвет"
        HERB_PURPLELOTUS       ="Лиловый лотос"
        HERB_SILVERLEAF        ="Сребролист"
        HERB_STRANGLEKELP      ="Удавник"
        HERB_SUNGRASS          ="Солнечник"
        HERB_SWIFTTHISTLE      ="Скорополох"
        HERB_WILDSTEELBLOOM    ="Дикий сталецвет"
        HERB_WINTERSBITE       ="Морозник"
        HERB_WILDVINE          ="Дикая лоза"

        -- treasure types
        TREASURE_BOX            ="Коробка"
        TREASURE_CHEST          ="Сундук"
        TREASURE_CLAM           ="Гигантский моллюск"
        TREASURE_CRATE          ="Ящик"
        TREASURE_BARREL         ="Бочонок"
        TREASURE_CASK           ="Бочка"
        TREASURE_SHELLFISHTRAP  ="Ловушка на моллюска"
        TREASURE_FOOTLOCKER     = "Сундучки"

        TREASURE_BLOODHERO      = "Кровь героев"

        TREASURE_UNGOROSOIL     = "Почва ун'Горо"
        TREASURE_UNGOROSOIL_G   = "Куча земли"
        TREASURE_BLOODPETAL     = "Побег кровоцвета"
        TREASURE_BLOODPETAL_G   = "Росток кровоцвета"
        TREASURE_POWERCRYST     = "Кристалл силы"

        TREASURE_NIGHTDRAGON    = "Ночной дракон"
        TREASURE_WHIPPERROOT    = "Гнилой кнутокорень"
        TREASURE_WINDBLOSSOM    = "Оскверненный ветроцвет"
        TREASURE_SONGFLOWER     = "Оскверненный песнецвет"

        TREASURE_FISHNODE_TRIGGER1      = "Сундучок";
        TREASURE_FISHNODE_TRIGGER3      = "Стая";
        TREASURE_FISHNODE_TRIGGER4      = "Косяк";
        TREASURE_FISHNODE_TRIGGER5      = "Плавающие обломки";
        TREASURE_FISHNODE_TRIGGER6      = "Нефтяное пятно";
        TREASURE_FISHNODE_TRIGGER7      = "Пятно элементарной воды";

        TREASURE_FISHNODE               = "Стая рыбы";
        TREASURE_FISHWRECK              = TREASURE_FISHNODE_TRIGGER5;
        TREASURE_FISHELEM               = TREASURE_FISHNODE_TRIGGER7;

        GATHERER_ReceivesLoot           = "Ваша добыча: (.+)%.";

        function Gatherer_FindOreType(input)
                if ( string.find(input, "едная") and string.find(input, "жила") ) then --cooper
                        return ORE_COPPER;
                elseif ( string.find(input, "ловянная") and string.find(input, "жила") ) then --tin
                        return ORE_TIN;
                elseif ( string.find(input, "алежи") and string.find(input, "железа") ) then -- iron
                        return ORE_IRON;
                elseif ( string.find(input, "еребряная") and string.find(input, "жила") ) then -- silver
                        return ORE_SILVER;
                elseif ( string.find(input, "истинного") and string.find(input, "серебра") ) then -- truesilver
                        return ORE_TRUESILVER;
                elseif ( string.find(input, "олотая") and string.find(input, "жила") ) then  -- gold
                        return ORE_GOLD;
                elseif ( string.find(input, "ифриловые") and string.find(input, "залежи") ) then -- mithril
                        return ORE_MITHRIL;
                elseif ( string.find(input, "огатая") and string.find(input, "ториевая") ) then --rich thorium
                        return ORE_RTHORIUM;
                elseif ( string.find(input, "черного") and string.find(input, "железа") ) then --darkiron
            return ORE_DARKIRON;
                elseif ( string.find(input, "ориевая") and string.find(input, "жила") ) then  --thorium
                        return ORE_THORIUM;
                end
                
                return;
        end

        function Gatherer_FindTreasureType(input)
                if string.find(input, "Гигантский моллюск") then
                        return TREASURE_CLAM;
                elseif string.find(input, "Добротный сундук") or string.find(input, "Сундук") or string.find(input, "сундук") then
                        return TREASURE_CHEST;
                elseif string.find(input, "Ящик") or string.find(input, "ящик") then
                        return TREASURE_CRATE;
                elseif string.find(input, "Кровь героев") then
                        return TREASURE_BLOODHERO;
                elseif string.find(input, "Почва Ун'Горо") or string.find(input, "Куча земли Ун'Горо") then
                        return TREASURE_UNGOROSOIL;
                elseif string.find(input, "Побег кровоцвета") then
                        return TREASURE_BLOODPETAL;
                elseif string.find(input, "кристалл силы") or string.find(input, "Кристалл силы") then
                        return TREASURE_POWERCRYST;
                elseif string.find(input, "Ночной дракон") then
                        return TREASURE_NIGHTDRAGON;
                elseif string.find(input, "Гнилой кнутокорень") then
                        return TREASURE_WHIPPERROOT;
                elseif string.find(input, "Оскверненный ветроцвет") then
                        return TREASURE_WINDBLOSSOM;
                elseif string.find(input, "Оскверненный песнецвет") then
                        return TREASURE_SONGFLOWER;
                end

                return;
        end

TYPE_RARE               = "Редкое";

else
        -- English localized variables (default)
        GATHERER_VERSION_WARNING="New Gatherer Version detected, check zone match.";
        GATHERER_NOTEXT="([-]) no text "

        -- TRADE NAME
        TRADE_HERBALISM="Herbalism"
        OLD_TRADE_HERBALISM="Herbalism"
        TRADE_MINING="Mining"
        TRADE_OPENING="Opening"
        GATHER_HERBALISM="Herb Gathering"

        -- strings for gather line in chat
        HERB_GATHER_STRING="You perform Herb Gathering on"
        ORE_GATHER_STRING="You perform Mining on"
        TREASURE_GATHER_STRING="You perform Opening on"

        -- Length of the string to keep the gather name
        HERB_GATHER_LENGTH=31
        HERB_GATHER_END=-2
        ORE_GATHER_LENGTH=23
        ORE_GATHER_END=-2
        TREASURE_GATHER_LENGTH=24
        TREASURE_GATHER_END=-2

        GATHERER_REQUIRE="Requires"
        GATHERER_NOSKILL="Requires"

        -- ore classes
        ORE_CLASS_VEIN   ="vein"
        ORE_CLASS_DEPOSIT="deposit"

        -- ore types
        ORE_COPPER    ="copper"
        ORE_TIN       ="tin"
        ORE_IRON      ="iron"
        ORE_SILVER    ="silver"
        ORE_TRUESILVER="truesilver"
        ORE_GOLD      ="gold"
        ORE_MITHRIL   ="mithril"
        ORE_THORIUM   ="thorium"
        ORE_RTHORIUM  ="thorium (rich)"
        ORE_DARKIRON  ="dark iron"

        -- herb types
        HERB_ARTHASTEAR        ="arthas' tears"
        HERB_BLACKLOTUS        ="black lotus"
        HERB_BLINDWEED         ="blindweed"
        HERB_BRIARTHORN        ="briarthorn"
        HERB_BRUISEWEED        ="bruiseweed"
        HERB_DREAMFOIL         ="dreamfoil"
        HERB_EARTHROOT         ="earthroot"
        HERB_FADELEAF          ="fadeleaf"
        HERB_FIREBLOOM         ="firebloom"
        HERB_GHOSTMUSHROOM     ="ghost mushroom"
        HERB_GOLDENSANSAM      ="golden sansam"
        HERB_GOLDTHORN         ="goldthorn"
        HERB_GRAVEMOSS         ="grave moss"
        HERB_GROMSBLOOD        ="gromsblood"
        HERB_ICECAP            ="icecap"
        HERB_KHADGARSWHISKER   ="khadgar's whisker"
        HERB_KINGSBLOOD        ="kingsblood"
        HERB_LIFEROOT          ="liferoot"
        HERB_MAGEROYAL         ="mageroyal"
        HERB_MOUNTAINSILVERSAGE="mountain silversage"
        HERB_PEACEBLOOM        ="peacebloom"
        HERB_PLAGUEBLOOM       ="plaguebloom"
        HERB_PURPLELOTUS       ="purple lotus"
        HERB_SILVERLEAF        ="silverleaf"
        HERB_STRANGLEKELP      ="stranglekelp"
        HERB_SUNGRASS          ="sungrass"
        HERB_SWIFTTHISTLE      ="swiftthistle"
        HERB_WILDSTEELBLOOM    ="wild steelbloom"
        HERB_WINTERSBITE       ="wintersbite"
        HERB_WILDVINE          ="wildvine"

        -- treasure types
        TREASURE_BOX            ="box"
        TREASURE_CHEST          ="chest"
        TREASURE_CLAM           ="giant clam"
        TREASURE_CRATE          ="crate"
        TREASURE_BARREL         ="barrel"
        TREASURE_CASK           ="cask"
        TREASURE_SHELLFISHTRAP  ="shellfish trap"
        TREASURE_FOOTLOCKER     = "footlocker"

        TREASURE_BLOODHERO      = "blood of heroes"

        TREASURE_UNGOROSOIL     = "un'goro soil"
        TREASURE_UNGOROSOIL_G   = "dirt pile"
        TREASURE_BLOODPETAL     = "bloodpetal"
        TREASURE_BLOODPETAL_G   = "bloodpetal sprout"
        TREASURE_POWERCRYST     = "power crystal"

        TREASURE_NIGHTDRAGON    = "night dragon"
        TREASURE_WHIPPERROOT    = "whipper root"
        TREASURE_WINDBLOSSOM    = "windblossom"
        TREASURE_SONGFLOWER     = "songflower"

        TREASURE_FISHNODE_TRIGGER1      = "Trunk";
--      TREASURE_FISHNODE_TRIGGER2      = "Bloated"; -- no longer found in wreckage in 1.11
        TREASURE_FISHNODE_TRIGGER3      = "swarm";
        TREASURE_FISHNODE_TRIGGER4      = "school";
        TREASURE_FISHNODE_TRIGGER5      = "floating wreckage";
        TREASURE_FISHNODE_TRIGGER6      = "oil spill";
        TREASURE_FISHNODE_TRIGGER7      = "patch of elemental water";

        TREASURE_FISHNODE               = "school";
        TREASURE_FISHWRECK              = TREASURE_FISHNODE_TRIGGER5;
        TREASURE_FISHELEM               = TREASURE_FISHNODE_TRIGGER7;

        GATHERER_ReceivesLoot           = "You receive loot: (.+)%.";

        TREASURE_REGEX = {
                [1] = " ([^ ]+)$",
                [2] = "^([^ ]+)",
                [3] = "([^ ]+) ([^ ]+) ",
        };

        function Gatherer_FindOreType(input)
                local i,j, oreType, oreClass, oreTypeClass;

                if ( string.find(input, "rich") and string.find(input, "thorium") ) then
                        return ORE_RTHORIUM;
                end;

                if ( string.find(input, "dark") and string.find(input, "iron") ) then
                        return ORE_DARKIRON;
                end

                i,j, oreType, oreClass = string.find(input, "([^ ]+) ([^ ]+)$");
                if (oreType and oreClass and ((oreClass == ORE_CLASS_VEIN) or (oreClass == ORE_CLASS_DEPOSIT))) then
                        return oreType;
                end
                return;
        end

        function Gatherer_FindTreasureType(in_input)
                local iconName, input;

                input = string.gsub(in_input, GATHERER_NOTEXT, "")

                if ( string.find(input, TREASURE_UNGOROSOIL_G) or string.find(input, TREASURE_UNGOROSOIL)) then
                        return TREASURE_UNGOROSOIL, TREASURE_UNGOROSOIL;
                end

                if (string.find(input, TREASURE_POWERCRYST) ) then
                        return TREASURE_POWERCRYST, TREASURE_POWERCRYST;
                end

                if (string.find(input, TREASURE_BLOODPETAL_G) or string.find(input, TREASURE_BLOODPETAL)) then
                        return TREASURE_BLOODPETAL, TREASURE_BLOODPETAL_G;
                end

                if (string.find(input, TREASURE_BLOODHERO) ) then
                        return TREASURE_BLOODHERO, TREASURE_BLOODHERO;
                end

                for iconName in Gather_DB_IconIndex[0] do
                        local index, treasure_regex, i, j, treasType;
                        if ( input == iconName ) then
                                return iconName;
                        end

                        if ( string.find(input, iconName) ) then
                                for index, treasure_regex in TREASURE_REGEX do
                                        i,j, treasType = string.find(input, treasure_regex);
                                        if ( treasType and treasType == iconName ) then
                                                return iconName;
                                        end

                                        i,j, _, treasType = string.find(input, treasure_regex);
                                        if ( treasType and treasType == iconName ) then
                                                return iconName;
                                        end
                                end
                        end
                end
                return;
        end
-- Common Values, Functions
TYPE_RARE               = "Rare";
end

-- ************************************************************************************************

function Gatherer_ExtractItemFromTooltip()
        local extractedString = GameTooltipTextLeft1:GetText()
        if ( extractedString ) then
                return string.lower(GameTooltipTextLeft1:GetText());
        else
                return "";
        end
end

function Gatherer_FindFishType(fishItem, fishTooltip)
                if ( fishItem  and (strfind(fishItem, TREASURE_FISHNODE_TRIGGER1) ))
                then
                        return TREASURE_FISHWRECK;
                -- Fish School
                elseif ( fishTooltip and (strfind(fishTooltip, TREASURE_FISHNODE_TRIGGER4) or
                                        (TREASURE_FISHNODE_TRIGGER3 and strfind(fishTooltip, TREASURE_FISHNODE_TRIGGER3))))
                then
                        return TREASURE_FISHNODE;
                -- Floating Wreckage and Oil Spill
                elseif ( fishTooltip and
                                 (strfind(fishTooltip, TREASURE_FISHNODE_TRIGGER5) or
                                  strfind(fishTooltip, TREASURE_FISHNODE_TRIGGER6)))
                then
                        return TREASURE_FISHWRECK;
                -- Elemental Water
                elseif ( fishTooltip and strfind(fishTooltip, TREASURE_FISHNODE_TRIGGER7) )
                then
                        return TREASURE_FISHELEM;
                end
        return nil;
end

function Gatherer_FindHerbType(gather)
        local herbType, herbFound = "", false;
        for herbType in Gather_DB_IconIndex[1] do
                if (herbType and gather and herbType == gather) then herbFound = true; break; end
        end

        if ( herbFound ) then
                return gather;
        else
                return nil;
        end
end