////////////////////////////////////////
// WCS - Warcraft:Source              //
// ---------------------------------- //
//  by kRypT0n!Te                     //
//      http://wc3source.de           //
// ---------------------------------- //
// Content of this subscript          //
// - language management              //
////////////////////////////////////////
// script commands:
// wcs_getlanguage <var> <id>
////////////////////////////////////////

block load
{
  es_xset wcs_var 0
  es_xset wcs_lid 0
  es_xset wcs_llang 0
  es_xexists ex command "wcs_getlanguage"
  if (server_var(ex) = 0) then es_xregcmd "wcs_getlanguage" "wcs/WCSlanguage/wcs_getlanguage" "Returns the given ID-text in the current language"
  // load the language DB
  es_xkeygroupload WCSlanguage |wcs/WCSlanguage
  // check the version
  es_xset wcs_lng_set 0
  es_xexists ex variable "wcs_language"
  if (server_var(ex) = 0) then es_xset wcs_language "en"
  es_keygetvalue wcs_lng_set WCSlanguage server_var(wcs_language) wcs_lng_set
  if (server_var(wcs_lng_set) = "1") then wcs_debuglog "Language set to" server_var(wcs_language)
  if (server_var(wcs_lng_set) = "0") then wcs_debuglog "ERROR : Failed loading language" server_var(wcs_language)
  es_keygetvalue wcs_tmp "WCSlanguage" server_var(wcs_language) "wcs_lng_rev"
  if (server_var(wcs_lng_ver) = server_var(wcs_tmp)) then wcs_debuglog "Language file is version" server_var(wcs_lng_ver)
  if (server_var(wcs_lng_ver) != server_var(wcs_tmp)) then wcs_debuglog "ERROR : Loaded old language file !"
  // load often used stuff as a var
  wcs_getlanguage wcs_lng_back wcs_lng_back
  wcs_getlanguage wcs_lng_next wcs_lng_next
  wcs_getlanguage wcs_lng_exit wcs_lng_exit
  wcs_getlanguage wcs_lng_page wcs_lng_page
  wcs_getlanguage wcs_lng_ulti_immunity_a wcs_lng_ulti_immunity_a
  wcs_getlanguage wcs_lng_ulti_immunity_v wcs_lng_ulti_immunity_v
}

block unload
{
  es_xkeygroupdelete WCSlanguage
}

// this block is quick&dirty, so it doesn't waste CPU time
block wcs_getlanguage
{
if (server_var(wcs_debug) = 1) then profile begin getlanguage
  es_xset wcs_lex 0
  es_xgetargv wcs_var 1
  es_xgetargv wcs_lid 2
  es_xgetargv wcs_llang 3
  if (server_var(wcs_llang) = 0) then es_xset wcs_llang "en"
  es_exists wcs_lex key WCSlanguage server_var(wcs_llang)
  if (server_var(wcs_lex) = 1) then es_xif (server_var(wcs_var) != "0") then es_xif (server_var(wcs_lid) != "0") then es_xset wcs_lex 2
  if (server_var(wcs_lex) = 2) do
  {
    es_set server_var(wcs_var) 0
    es_keygetvalue server_var(wcs_var) WCSlanguage server_var(wcs_llang) server_var(wcs_lid)
  }
  if (server_var(wcs_var) = "0") then es_xset wcs_var "n/a"
if (server_var(wcs_debug) = 1) then profile end getlanguage
}
