00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <string.h>
00026
00027 #include "Language.h"
00028
00029 namespace Tanl {
00030
00035 tableItem languageTable[] = {
00036 tableItem("ar", new ArabicLanguage),
00037 tableItem("eu", new BasqueLanguage),
00038 tableItem("bg", new BulgarianLanguage),
00039 tableItem("ca", new CatalanLanguage),
00040 tableItem("zh", new ChineseLanguage),
00041 tableItem("cs", new CzechLanguage),
00042 tableItem("da", new DanishLanguage),
00043 tableItem("nl", new DutchLanguage),
00044 tableItem("en", new EnglishLanguage),
00045
00046 tableItem("de", new GermanLanguage),
00047 tableItem("el", new GreekLanguage),
00048 tableItem("hu", new HungarianLanguage),
00049 tableItem("it", new ItalianLanguage),
00050 tableItem("it-tut", new ItalianTutLanguage),
00051 tableItem("ja", new JapaneseLanguage),
00052 tableItem("nn", new Language),
00053 tableItem("pt", new PortugueseLanguage),
00054 tableItem("sl", new SloveneLanguage),
00055 tableItem("es", new SpanishLanguage),
00056 tableItem("sv", new SwedishLanguage),
00057 tableItem("tr", new TurkishLanguage)
00058 };
00059
00060 char const* Language::DEFAULT_ROOT_LABEL = "ROOT";
00061
00062 Language const* Language::get(char const* code)
00063 {
00064 for (int i = 0; i < sizeof(languageTable)/sizeof(tableItem); i++)
00065 if (!strcmp(code, languageTable[i].first))
00066 return languageTable[i].second;
00067 return 0;
00068 }
00069
00070 char const* Language::code() const
00071 {
00072 for (int i = 0; i < sizeof(languageTable)/sizeof(tableItem); i++)
00073 if (this == languageTable[i].second)
00074 return languageTable[i].first;
00075 return "";
00076 }
00077
00078 void freeLanguageTable()
00079 {
00080 int len = sizeof(languageTable)/sizeof(tableItem);
00081 for (int i = 0; i < len; i++)
00082 delete languageTable[i].second;
00083 }
00084
00085 }