#include <string>
using std::wstring;
#include <map>
using std::map;

struct LocTasks
{
	wstring play, playDX9, playDX10, help;
	LocTasks() {}
	LocTasks(WCHAR *playTask, WCHAR *playDX9Task, WCHAR *playDX10Task, WCHAR *helpTask) :
	play(playTask), playDX9(playDX9Task), playDX10(playDX10Task), help(helpTask)
	{}
};

struct LanguageMap
{
	std::map<wstring, LocTasks> m_localizedTasks;
	LocTasks defaultLanguage;
	LanguageMap() : defaultLanguage(L"Play", L"PlayDX9", L"PlayDX10", L"Help")
	{
		//************************************language tasks list
		//m_localizedTasks[wstring(L"English")] = LocTasks(L"Play", L"PlayDX9", L"PlayDX10", L"Help");
		m_localizedTasks[wstring(L"German")] = LocTasks(L"Spielen", L"DX9 Version spielen", L"DX10 Version spielen", L"Hilfe");
		m_localizedTasks[wstring(L"French")] = LocTasks(L"Jouer", L"Jouer (DirectX 9)", L"Jouer (DirectX 10)", L"Aide");
		m_localizedTasks[wstring(L"Spanish")] = LocTasks(L"Jugar", L"Jugar con DX9", L"Jugar con DX10", L"Ayuda");
		m_localizedTasks[wstring(L"Polish")] = LocTasks(L"Graj", L"Graj (DX 9)", L"Graj (DX 10)", L"Pomoc");
		m_localizedTasks[wstring(L"Czech")] = LocTasks(L"Hrát", L"Hrát s rozhraním DX9", L"Hrát s rozhraním DX10", L"Nápověda");
		m_localizedTasks[wstring(L"Hungarian")] = LocTasks(L"Játék", L"DX9-es játék", L"DX10-es játék", L"Súgó");
		m_localizedTasks[wstring(L"Italian")] = LocTasks(L"Gioca", L"Gioca (DX9)", L"Gioca (DX10)", L"Guida");
		m_localizedTasks[wstring(L"Turkish")] = LocTasks(L"Oyna", L"DX9 oyna", L"DX10 oyna", L"Yardım");
		m_localizedTasks[wstring(L"Russian")] = LocTasks(L"Запуск", L"Запуск (DX9)", L"Запуск (DX10)", L"Справка");
		m_localizedTasks[wstring(L"Japanese")] = LocTasks(L"プレイ", L"DirectX 9でプレイ", L"DirectX 10でプレイ", L"ヘルプ");
		m_localizedTasks[wstring(L"Korean")] = LocTasks(L"플레이", L"DX9 플레이", L"DX10 플레이", L"도움말");
		m_localizedTasks[wstring(L"Thai")] = LocTasks(L"เล่น", L"เล่น DX9", L"เล่น DX10", L"ช่วยเหลือ");
		m_localizedTasks[wstring(L"Chinese")] = LocTasks(L"進行遊戲", L"以DX9模式進行遊戲", L"以DX10模式進行遊戲", L"幫助");
		//************************************~language tasks list
	}
	LocTasks getTasks(WCHAR *language)
	{
		std::map<wstring, LocTasks>::iterator it = m_localizedTasks.find(wstring(language));
		if(it != m_localizedTasks.end())
			return it->second;
		return defaultLanguage;
	}
};