/*
* "GEDKeeper", the personal genealogical database editor.
* Copyright (C) 2009-2020 by Sergey V. Zhdanovskih.
*
* This file is part of "GEDKeeper".
*
* 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 3 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 .
*/
using System.Collections.Generic;
using GDModel;
using GKCore.Interfaces;
namespace GKCore.Cultures
{
///
///
///
public static class CulturesPool
{
private static readonly Dictionary fCultures = new Dictionary();
public static ICulture DefineCulture(GDMLanguageID langID)
{
ICulture result;
if (!fCultures.TryGetValue(langID, out result)) {
result = CreateCulture(langID);
fCultures.Add(langID, result);
}
return result;
}
private static ICulture CreateCulture(GDMLanguageID langID)
{
ICulture culture;
switch (langID) {
case GDMLanguageID.Russian:
case GDMLanguageID.Ukrainian:
case GDMLanguageID.Kazakh:
culture = new RussianCulture();
break;
case GDMLanguageID.Polish:
culture = new PolishCulture();
break;
case GDMLanguageID.German:
culture = new GermanCulture();
break;
case GDMLanguageID.Swedish:
culture = new SwedishCulture();
break;
case GDMLanguageID.Icelandic:
culture = new IcelandCulture();
break;
case GDMLanguageID.Armenian:
culture = new ArmenianCulture();
break;
case GDMLanguageID.Turkish:
culture = new TurkishCulture();
break;
case GDMLanguageID.French:
culture = new FrenchCulture();
break;
case GDMLanguageID.Italian:
culture = new ItalianCulture();
break;
case GDMLanguageID.Czech:
culture = new CzechCulture();
break;
case GDMLanguageID.Cantonese:
case GDMLanguageID.Mandrin:
culture = new ChineseCulture();
break;
case GDMLanguageID.English:
default:
culture = new BritishCulture();
break;
}
culture.Language = langID;
return culture;
}
}
}