/*
 * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
 * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2 of the License, or (at your
 * option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */

#include "Common.h"

char const* localeNames[MAX_LOCALES] =
{
  "enUS",
  "koKR",
  "frFR",
  "deDE",
  "zhCN",
  "zhTW",
  "esES",
  "esMX",
  "ruRU",
  "none",
  "ptBR",
  "itIT"
};

LocaleConstant GetLocaleByName(const std::string& name)
{
    for (uint8 i = 0; i < MAX_LOCALES; ++i)
        if (name == localeNames[i])
            return LocaleConstant(i);

    return LOCALE_enUS;                                     // including enGB case
}

LocalizedString::LocalizedString()
{
    for (uint32 i = 0; i < TOTAL_LOCALES; i++)
        Str[i] = "";
}

LocalizedString::LocalizedString(char const* val)
{
    for (uint32 i = 0; i < TOTAL_LOCALES; i++)
        Str[i] = val;
}

char const* LocalizedString::Get(uint32 locale) const
{
    if ((Str[locale] == nullptr || strlen(Str[locale]) == 0) && Str[LOCALE_enUS] != nullptr)
        return Str[LOCALE_enUS];

    if (Str[locale] == nullptr)
        return "";

    return Str[locale];
}

