library-ts/browser/i18n/Countries.ts

223 lines
3.8 KiB
TypeScript
Raw Permalink Normal View History

2025-03-08 12:22:18 +00:00
import { Lexer } from "../text/lexer/Lexer";
import { LexerMatcher } from "../text/lexer/LexerMatcher";
import { LexerMatcherLibrary } from "../text/lexer/LexerMatcherLibrary";
import { RegExpUtility } from "../text/RegExpUtitlity";
import { MultiString } from "./MultiString";
export class Country
{
name:MultiString;
flag:string;
}
export class Countries
{
static _countryMap:Map<string,Country>;
static _lexer:Lexer;
static _createLexerAndMap()
{
if ( Countries._lexer != null )
{
return;
}
let lexer = new Lexer();
let countryMap = new Map<string,Country>();
Countries.list.forEach(
( c )=>
{
lexer.addMatcher( new LexerMatcher( c.name.en, RegExpUtility.createMatcher( c.name.en ) ) );
countryMap.set( c.name.en, c );
}
);
lexer.addMatcher( LexerMatcherLibrary.BREAK_MATCHER );
lexer.addMatcher( LexerMatcherLibrary.ANY_SYMBOL_MATCHER );
this._lexer = lexer;
this._countryMap = countryMap;
}
static get lexer()
{
this._createLexerAndMap();
return this._lexer;
}
static get countryNameMap()
{
this._createLexerAndMap();
return this._countryMap;
}
static list:Country[] =
[
{
name:{ en: "Sweden", de: "Schweden" },
flag: "🇸🇪"
},
{
name:{ en: "South Africa", de: "Südafrika" },
flag: "🇿🇦"
},
{
name:{ en: "Netherlands", de: "Niederlande" },
flag: "🇳🇱"
},
{
name:{ en: "Portugal", de: "Portugal" },
flag: "🇵🇹"
},
{
name:{ en: "France", de: "Frankreich" },
flag: "🇫🇷"
},
{
name:{ en: "Jamaica", de: "Jamaika" },
flag: "🇯🇲"
},
{
name:{ en: "Italy", de: "Italien" },
flag: "🇮🇹"
},
{
name:{ en: "Argentina", de: "Argentinien" },
flag: "🇦🇷"
},
{
name:{ en: "Germany", de: "Deutschland" },
flag: "🇩🇪"
},
{
name:{ en: "Morocco", de: "Marokko" },
flag: "🇲🇦"
},
{
name:{ en: "Brasil", de: "Brasilien" },
flag: "🇧🇷"
},
{
name:{ en: "Panama", de: "Panama" },
flag: "🇵🇦"
},
{
name:{ en: "Colombia", de: "Kolumbien" },
flag: "🇨🇴"
},
{
name:{ en: "South Korea", de: "Südkorea" },
flag: "🇰🇷"
},
{
name:{ en: "New Zealand", de: "Neuseeland" },
flag: "🇳🇿"
},
{
name:{ en: "Swiss", de: "Schweiz" },
flag: "🇨🇭"
},
{
name:{ en: "Norway", de: "Norwegen" },
flag: "🇳🇴"
},
{
name:{ en: "Japan", de: "Japan" },
flag: "🇯🇵"
},
{
name:{ en: "Costa Rica", de: "Costa Rica" },
flag: "🇨🇷"
},
{
name:{ en: "Spain", de: "Spanien" },
flag: "🇪🇸"
},
{
name:{ en: "Zambia", de: "Sambia" },
flag: "🇿🇲"
},
{
name:{ en: "Canada", de: "Kanada" },
flag: "🇨🇦"
},
{
name:{ en: "Ireland", de: "Irland" },
flag: "🇮🇪"
},
{
name:{ en: "USA", de: "USA" },
flag: "🇺🇸"
},
{
name:{ en: "Vietnam", de: "Vietnam" },
flag: "🇻🇳"
},
{
name:{ en: "Australia", de: "Australien" },
flag: "🇦🇺"
},
{
name:{ en: "Nigeria", de: "Nigerien" },
flag: "🇳🇬"
},
{
name:{ en: "England", de: "England" },
flag: "🏴󠁧󠁢󠁥󠁮󠁧󠁿"
},
{
name:{ en: "Denmark", de: "Dänemark" },
flag: "🇩🇰"
},
{
name:{ en: "China", de: "China" },
flag: "🇨🇳"
},
{
name:{ en: "Haiti", de: "Haiti" },
flag: "🇭🇹"
},
{
name:{ en: "Philippines", de: "Philippinen" },
flag: "🇵🇭"
}
]
}