############# Localization Hub
############# Strings and Word Lists specific to supported languages
include file: language_map
# The selected language
language := { languages[set.card_language] or else languages.English }
# The language's name
lang_name := {
if languages[set.card_language].code or else false != false then
set.card_language
else "English"
}
# Get a setting from a language, or use a fallback
lang_setting := {
language()[input] or else languages[language().fallback][input] or else languages.English[input] or else ""
}
# language scripts
spanish_number := {
input := remove_tags(input)
espanol_ones_array := ["cero", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve", "diez", "once", "doce", "trece", "catorce", "quince"]
espanol_tens_array := ["cero", "diec", "viente", "treinta", "cuarenta", "cincuenta", "sesenta", "setenta", "ochenta", "noventa"]
function_map := [
small: {espanol_ones_array[input]},
large: {
ones := input mod 10
tens := (input - ones) / 10
final_answer := espanol_tens_array[tens] + " y " + espanol_ones_array[ones]
final_answer := replace(final_answer, match:" y cero", replace:"") ##remove redundant "and zero"
final_answer := replace(final_answer, match:"(diec|vient)e? y ", replace:"\\1i") ##16-29 are one word
final_answer
},
oversized: {input}
]
if input == "number" then ""
else if input < 16 then function_map["small"]()
else if input < 100 then function_map["large"]()
else function_map["oversized"]()
}
#Number scripts and maps
#portuguese_number := {
# input := remove_tags(input)
# portugues_ones_array := ["zero", "um", "dois", "três", "quatro", "cinco", "seis", "sete", "oito", "nove", "dez", "onze", "doze", "treze", "catorze", "quinze", "dezesseis", "dezessete", "dezoito", "dezenove"]
# portugues_tens_array := ["zero", "deze", "vinte", "trinta", "quarenta", "cinquenta", "sessenta", "setenta", "oitenta", "noventa"]
# function_map := [
# small: {portugues_ones_array[input]},
# large: {
# ones := input mod 10
# tens := (input - ones) / 10
# final_answer := portugues_tens_array[tens] + " e " + portugues_ones_array[ones]
# final_answer := replace(final_answer, match:" e zero", replace:"") ##remove redundant "and zero"
# final_answer
# },
# oversized: {input}
# ]
# if input == "number" then ""
# else if input < 20 then function_map["small"]()
# else if input < 100 then function_map["large"]()
# else function_map["oversized"]()
#}
#french_number := {
# input := remove_tags(input)
# francais_ones_array := ["zéro", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "nuef", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize","dix-sept","dix-huit","dix-neuf"]
# francais_tens_array := ["zéro", "dix", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante-dix", "quatre-vingts", "quatre-vingt-dix"]
# function_map := [
# small: {francais_ones_array[input]},
# large: {
# ones := input mod 10
# tens := (input - ones) / 10
# final_answer := francais_tens_array[tens] + "-" + francais_ones_array[ones]
# final_answer := replace(final_answer, match:"-zéro", replace:"") ##remove redundant "and zero"
# final_answer := replace(final_answer, match:"-un", replace:" et un") ##21, 31 et al. use "et un"
# final_answer
# },
# oversized: {input}
# ]
# if input == "number" then ""
# else if input < 20 then function_map["small"]()
# else if input < 100 then function_map["large"]()
# else function_map["oversized"]()
#}
russian_number :=
{
word := russian_number_map[remove_tags(input)] or else nil
if word == nil then to_string(input) else word
}
italian_number :=
{
word := italian_number_map[remove_tags(input)] or else nil
if word == nil then to_string(input) else word
}
spanish_number :=
{
word := spanish_number_map[remove_tags(input)] or else nil
if word == nil then to_string(input) else word
}
portuguese_number :=
{
word := portuguese_number_map[remove_tags(input)] or else nil
if word == nil then to_string(input) else word
}
french_number :=
{
word := french_number_map[remove_tags(input)] or else nil
if word == nil then to_string(input) else word
}
german_number :=
{
word := german_number_map[remove_tags(input)] or else nil
if word == nil then to_string(input) else word
}
korean_number :=
{
word := korean_native_number_map[remove_tags(input)] or else nil
if word == nil then to_string(input) else word
}
korean_sino_number :=
{
word := korean_sino_number_map[remove_tags(input)] or else nil
if word == nil then to_string(input) else word
}
korean_counter_number :=
{
word := korean_counter_number_map[remove_tags(input)] or else nil
if word == nil then korean_number(input) else word
}
japanese_number :=
{
number := japanese_alternate_number_map[remove_tags(input)] or else nil
if number != nil then input := number
word := chinese_japanese_number_map[remove_tags(input)] or else nil
if word == nil then to_string(input) else word
}
chinese_simplified_number :=
{
word := chinese_japanese_number_map[remove_tags(input)] or else nil
if input == 2 then "两"
else if input == 1000000 then "一百万"
else if word == nil then to_string(input)
else word
}
chinese_traditional_number :=
{
word := chinese_japanese_number_map[remove_tags(input)] or else nil
if input == 2 then "兩"
else if input == 1000000 then "一百萬"
else if word == nil then to_string(input)
else word
}
russian_number_map :=
[
0 : "ноль"
1 : "один"
2 : "два"
3 : "три"
4 : "четыре"
5 : "пять"
6 : "шесть"
7 : "семь"
8 : "восемь"
9 : "девять"
10 : "десять"
11 : "одиннадцать"
12 : "двенадцать"
13 : "тринадцать"
14 : "четырнадцать"
15 : "пятнадцать"
16 : "шестнадцать"
17 : "семнадцать"
18 : "восемнадцать"
19 : "девятнадцать"
20 : "двадцать"
21 : "двадцать один"
22 : "двадцать два"
23 : "двадцать три"
24 : "двадцать четыре"
25 : "двадцать пять"
26 : "двадцать шесть"
27 : "двадцать семь"
28 : "двадцать восемь"
29 : "двадцать девять"
30 : "тридцать"
31 : "тридцать один"
32 : "тридцать два"
33 : "тридцать три"
34 : "тридцать четыре"
35 : "тридцать пять"
36 : "тридцать шесть"
37 : "тридцать семь"
38 : "тридцать восемь"
39 : "тридцать девять"
40 : "сорок"
41 : "сорок один"
42 : "сорок два"
43 : "сорок три"
44 : "сорок четыре"
45 : "сорок пять"
46 : "сорок шесть"
47 : "сорок семь"
48 : "сорок восемь"
49 : "сорок девять"
50 : "пятьдесят"
51 : "пятьдесят один"
52 : "пятьдесят два"
53 : "пятьдесят три"
54 : "пятьдесят четыре"
55 : "пятьдесят пять"
56 : "пятьдесят шесть"
57 : "пятьдесят семь"
58 : "пятьдесят восемь"
59 : "пятьдесят девять"
60 : "шестьдесят"
61 : "шестьдесят один"
62 : "шестьдесят два"
63 : "шестьдесят три"
64 : "шестьдесят четыре"
65 : "шестьдесят пять"
66 : "шестьдесят шесть"
67 : "шестьдесят семь"
68 : "шестьдесят восемь"
69 : "шестьдесят девять"
70 : "семьдесят"
71 : "семьдесят один"
72 : "семьдесят два"
73 : "семьдесят три"
74 : "семьдесят четыре"
75 : "семьдесят пять"
76 : "семьдесят шесть"
77 : "семьдесят семь"
78 : "семьдесят восемь"
79 : "семьдесят девять"
80 : "восемьдесят"
81 : "восемьдесят один"
82 : "восемьдесят два"
83 : "восемьдесят три"
84 : "восемьдесят четыре"
85 : "восемьдесят пять"
86 : "восемьдесят шесть"
87 : "восемьдесят семь"
88 : "восемьдесят восемь"
89 : "восемьдесят девять"
90 : "девяносто"
91 : "девяносто один"
92 : "девяносто два"
93 : "девяносто три"
94 : "девяносто четыре"
95 : "девяносто пять"
96 : "девяносто шесть"
97 : "девяносто семь"
98 : "девяносто восемь"
99 : "девяносто девять"
100 : "сто"
1000 : "одна тысяча"
1000000 : "один миллион"
]
italian_number_map :=
[
0 : "zero"
1 : "uno"
2 : "due"
3 : "tre"
4 : "quattro"
5 : "cinque"
6 : "sei"
7 : "sette"
8 : "otto"
9 : "nove"
10 : "dieci"
11 : "undici"
12 : "dodici"
13 : "tredici"
14 : "quattordici"
15 : "quindici"
16 : "sedici"
17 : "diciassette"
18 : "diciotto"
19 : "diciannove"
20 : "venti"
21 : "ventuno"
22 : "ventidue"
23 : "ventitré"
24 : "ventiquattro"
25 : "venticinque"
26 : "ventisei"
27 : "ventisette"
28 : "ventotto"
29 : "ventinove"
30 : "trenta"
31 : "trentuno"
32 : "trentadue"
33 : "trentatré"
34 : "trentaquattro"
35 : "trentacinque"
36 : "trentasei"
37 : "trentasette"
38 : "trentotto"
39 : "trentanove"
40 : "quaranta"
41 : "quarantuno"
42 : "quarantadue"
43 : "quarantatré"
44 : "quarantaquattro"
45 : "quarantacinque"
46 : "quarantasei"
47 : "quarantasette"
48 : "quarantotto"
49 : "quarantanove"
50 : "cinquanta"
51 : "cinquantuno"
52 : "cinquantadue"
53 : "cinquantatré"
54 : "cinquantaquattro"
55 : "cinquantacinque"
56 : "cinquantasei"
57 : "cinquantasette"
58 : "cinquantotto"
59 : "cinquantanove"
60 : "sessanta"
61 : "sessantuno"
62 : "sessantadue"
63 : "sessantatré"
64 : "sessantaquattro"
65 : "sessantacinque"
66 : "sessantasei"
67 : "sessantasette"
68 : "sessantotto"
69 : "sessantanove"
70 : "settanta"
71 : "settantuno"
72 : "settantadue"
73 : "settantatré"
74 : "settantaquattro"
75 : "settantacinque"
76 : "settantasei"
77 : "settantasette"
78 : "settantotto"
79 : "settantanove"
80 : "ottanta"
81 : "ottantuno"
82 : "ottantadue"
83 : "ottantatré"
84 : "ottantaquattro"
85 : "ottantacinque"
86 : "ottantasei"
87 : "ottantasette"
88 : "ottantotto"
89 : "ottantanove"
90 : "novanta"
91 : "novantuno"
92 : "novantadue"
93 : "novantatré"
94 : "novantaquattro"
95 : "novantacinque"
96 : "novantasei"
97 : "novantasette"
98 : "novantotto"
99 : "novantanove"
100 : "cento"
1000 : "mille"
1000000 : "un milione"
]
spanish_number_map :=
[
0 : "cero"
1 : "uno"
2 : "dos"
3 : "tres"
4 : "cuatro"
5 : "cinco"
6 : "seis"
7 : "siete"
8 : "ocho"
9 : "nueve"
10 : "diez"
11 : "once"
12 : "doce"
13 : "trece"
14 : "catorce"
15 : "quince"
16 : "dieciséis"
17 : "diecisiete"
18 : "dieciocho"
19 : "diecinueve"
20 : "veinte"
21 : "veintiuno"
22 : "veintidós"
23 : "veintitrés"
24 : "veinticuatro"
25 : "veinticinco"
26 : "veintiséis"
27 : "veintisiete"
28 : "veintiocho"
29 : "veintinueve"
30 : "treinta"
31 : "treinta y uno"
32 : "treinta y dos"
33 : "treinta y tres"
34 : "treinta y cuatro"
35 : "treinta y cinco"
36 : "treinta y seis"
37 : "treinta y siete"
38 : "treinta y ocho"
39 : "treinta y nueve"
40 : "cuarenta"
41 : "cuarenta y uno"
42 : "cuarenta y dos"
43 : "cuarenta y tres"
44 : "cuarenta y cuatro"
45 : "cuarenta y cinco"
46 : "cuarenta y seis"
47 : "cuarenta y siete"
48 : "cuarenta y ocho"
49 : "cuarenta y nueve"
50 : "cincuenta"
51 : "cincuenta y uno"
52 : "cincuenta y dos"
53 : "cincuenta y tres"
54 : "cincuenta y cuatro"
55 : "cincuenta y cinco"
56 : "cincuenta y seis"
57 : "cincuenta y siete"
58 : "cincuenta y ocho"
59 : "cincuenta y nueve"
60 : "sesenta"
61 : "sesenta y uno"
62 : "sesenta y dos"
63 : "sesenta y tres"
64 : "sesenta y cuatro"
65 : "sesenta y cinco"
66 : "sesenta y seis"
67 : "sesenta y siete"
68 : "sesenta y ocho"
69 : "sesenta y nueve"
70 : "setenta"
71 : "setenta y uno"
72 : "setenta y dos"
73 : "setenta y tres"
74 : "setenta y cuatro"
75 : "setenta y cinco"
76 : "setenta y seis"
77 : "setenta y siete"
78 : "setenta y ocho"
79 : "setenta y nueve"
80 : "ochenta"
81 : "ochenta y uno"
82 : "ochenta y dos"
83 : "ochenta y tres"
84 : "ochenta y cuatro"
85 : "ochenta y cinco"
86 : "ochenta y seis"
87 : "ochenta y siete"
88 : "ochenta y ocho"
89 : "ochenta y nueve"
90 : "noventa"
91 : "noventa y uno"
92 : "noventa y dos"
93 : "noventa y tres"
94 : "noventa y cuatro"
95 : "noventa y cinco"
96 : "noventa y seis"
97 : "noventa y siete"
98 : "noventa y ocho"
99 : "noventa y nueve"
100 : "cien"
1000 : "mil"
1000000 : "un millón"
]
portuguese_number_map :=
[
0 : "zero"
1 : "um"
2 : "dois"
3 : "três"
4 : "quatro"
5 : "cinco"
6 : "seis"
7 : "sete"
8 : "oito"
9 : "nove"
10 : "dez"
11 : "onze"
12 : "doze"
13 : "treze"
14 : "catorze"
15 : "quinze"
16 : "dezesseis"
17 : "dezessete"
18 : "dezoito"
19 : "dezenove"
20 : "vinte"
21 : "vinte e um"
22 : "vinte e dois"
23 : "vinte e três"
24 : "vinte e quatro"
25 : "vinte e cinco"
26 : "vinte e seis"
27 : "vinte e sete"
28 : "vinte e oito"
29 : "vinte e nove"
30 : "trinta"
31 : "trinta e um"
32 : "trinta e dois"
33 : "trinta e três"
34 : "trinta e quatro"
35 : "trinta e cinco"
36 : "trinta e seis"
37 : "trinta e sete"
38 : "trinta e oito"
39 : "trinta e nove"
40 : "quarenta"
41 : "quarenta e um"
42 : "quarenta e dois"
43 : "quarenta e três"
44 : "quarenta e quatro"
45 : "quarenta e cinco"
46 : "quarenta e seis"
47 : "quarenta e sete"
48 : "quarenta e oito"
49 : "quarenta e nove"
50 : "cinquenta"
51 : "cinquenta e um"
52 : "cinquenta e dois"
53 : "cinquenta e três"
54 : "cinquenta e quatro"
55 : "cinquenta e cinco"
56 : "cinquenta e seis"
57 : "cinquenta e sete"
58 : "cinquenta e oito"
59 : "cinquenta e nove"
60 : "sessenta"
61 : "sessenta e um"
62 : "sessenta e dois"
63 : "sessenta e três"
64 : "sessenta e quatro"
65 : "sessenta e cinco"
66 : "sessenta e seis"
67 : "sessenta e sete"
68 : "sessenta e oito"
69 : "sessenta e nove"
70 : "setenta"
71 : "setenta e um"
72 : "setenta e dois"
73 : "setenta e três"
74 : "setenta e quatro"
75 : "setenta e cinco"
76 : "setenta e seis"
77 : "setenta e sete"
78 : "setenta e oito"
79 : "setenta e nove"
80 : "oitenta"
81 : "oitenta e um"
82 : "oitenta e dois"
83 : "oitenta e três"
84 : "oitenta e quatro"
85 : "oitenta e cinco"
86 : "oitenta e seis"
87 : "oitenta e sete"
88 : "oitenta e oito"
89 : "oitenta e nove"
90 : "noventa"
91 : "noventa e um"
92 : "noventa e dois"
93 : "noventa e três"
94 : "noventa e quatro"
95 : "noventa e cinco"
96 : "noventa e seis"
97 : "noventa e sete"
98 : "noventa e oito"
99 : "noventa e nove"
100 : "cem"
1000 : "mil"
1000000 : "um milhão"
]
french_number_map :=
[
0 : "zéro"
1 : "un"
2 : "deux"
3 : "trois"
4 : "quatre"
5 : "cinq"
6 : "six"
7 : "sept"
8 : "huit"
9 : "neuf"
10 : "dix"
11 : "onze"
12 : "douze"
13 : "treize"
14 : "quatorze"
15 : "quinze"
16 : "seize"
17 : "dix-sept"
18 : "dix-huit"
19 : "dix-neuf"
20 : "vingt"
21 : "vingt et un"
22 : "vingt-deux"
23 : "vingt-trois"
24 : "vingt-quatre"
25 : "vingt-cinq"
26 : "vingt-six"
27 : "vingt-sept"
28 : "vingt-huit"
29 : "vingt-neuf"
30 : "trente"
31 : "trente et un"
32 : "trente-deux"
33 : "trente-trois"
34 : "trente-quatre"
35 : "trente-cinq"
36 : "trente-six"
37 : "trente-sept"
38 : "trente-huit"
39 : "trente-neuf"
40 : "quarante"
41 : "quarante et un"
42 : "quarante-deux"
43 : "quarante-trois"
44 : "quarante-quatre"
45 : "quarante-cinq"
46 : "quarante-six"
47 : "quarante-sept"
48 : "quarante-huit"
49 : "quarante-neuf"
50 : "cinquante"
51 : "cinquante et un"
52 : "cinquante-deux"
53 : "cinquante-trois"
54 : "cinquante-quatre"
55 : "cinquante-cinq"
56 : "cinquante-six"
57 : "cinquante-sept"
58 : "cinquante-huit"
59 : "cinquante-neuf"
60 : "soixante"
61 : "soixante et un"
62 : "soixante-deux"
63 : "soixante-trois"
64 : "soixante-quatre"
65 : "soixante-cinq"
66 : "soixante-six"
67 : "soixante-sept"
68 : "soixante-huit"
69 : "soixante-neuf"
70 : "soixante-dix"
71 : "soixante-et-onze"
72 : "soixante-douze"
73 : "soixante-treize"
74 : "soixante-quatorze"
75 : "soixante-quinze"
76 : "soixante-seize"
77 : "soixante-dix-sept"
78 : "soixante-dix-huit"
79 : "soixante-dix-neuf"
80 : "quatre-vingts"
81 : "quatre-vingt-un"
82 : "quatre-vingt-deux"
83 : "quatre-vingt-trois"
84 : "quatre-vingt-quatre"
85 : "quatre-vingt-cinq"
86 : "quatre-vingt-six"
87 : "quatre-vingt-sept"
88 : "quatre-vingt-huit"
89 : "quatre-vingt-neuf"
90 : "quatre-vingt-dix"
91 : "quatre-vingt-onze"
92 : "quatre-vingt-douze"
93 : "quatre-vingt-treize"
94 : "quatre-vingt-quatorze"
95 : "quatre-vingt-quinze"
96 : "quatre-vingt-seize"
97 : "quatre-vingt-dix-sept"
98 : "quatre-vingt-dix-huit"
99 : "quatre-vingt-dix-neuf"
100 : "cent"
1000 : "mille"
1000000 : "un million"
]
german_number_map :=
[
0 : "null"
1 : "eins"
2 : "zwei"
3 : "drei"
4 : "vier"
5 : "fünf"
6 : "sechs"
7 : "sieben"
8 : "acht"
9 : "neun"
10 : "zehn"
11 : "elf"
12 : "zwölf"
13 : "dreizehn"
14 : "vierzehn"
15 : "fünfzehn"
16 : "sechszehn"
17 : "siebzehn"
18 : "achtzehn"
19 : "neunzehn"
20 : "zwanzig"
21 : "einundzwanzig"
22 : "zweiundzwanzig"
23 : "dreiundzwanzig"
24 : "vierundzwanzig"
25 : "fünfundzwanzig"
26 : "sechsundzwanzig"
27 : "siebenundzwanzig"
28 : "achtundzwanzig"
29 : "neunundzwanzig"
30 : "dreiβig"
31 : "einunddreiβig"
32 : "zweiunddreiβig"
33 : "dreiunddreiβig"
34 : "vierunddreiβig"
35 : "fünfunddreiβig"
36 : "sechsunddreiβig"
37 : "siebenunddreiβig"
38 : "achtunddreiβig"
39 : "neununddreiβig"
40 : "vierzig"
41 : "einundvierzig"
42 : "zweiundvierzig"
43 : "dreiundvierzig"
44 : "vierundvierzig"
45 : "fünfundvierzig"
46 : "sechsundvierzig"
47 : "siebenundvierzig"
48 : "achtundvierzig"
49 : "neunundvierzig"
50 : "fünfzig"
51 : "einundfünfzig"
52 : "zweiundfünfzig"
53 : "dreiundfünfzig"
54 : "vierundfünfzig"
55 : "fünfundfünfzig"
56 : "sechsundfünfzig"
57 : "siebenundfünfzig"
58 : "achtundfünfzig"
59 : "neunundfünfzig"
60 : "sechzig"
61 : "einundsechzig"
62 : "zweiundsechzig"
63 : "dreiundsechzig"
64 : "vierundsechzig"
65 : "fünfundsechzig"
66 : "sechsundsechzig"
67 : "siebenundsechzig"
68 : "achtundsechzig"
69 : "neunundsechzig"
70 : "siebzig"
71 : "einundsiebzig"
72 : "zweiundsiebzig"
73 : "dreiundsiebzig"
74 : "vierundsiebzig"
75 : "fünfundsiebzig"
76 : "sechsundsiebzig"
77 : "siebenundsiebzig"
78 : "achtundsiebzig"
79 : "neunundsiebzig"
80 : "achtzig"
81 : "einundachtzig"
82 : "zweiundachtzig"
83 : "dreiundachtzig"
84 : "vierundachtzig"
85 : "fünfundachtzig"
86 : "sechsundachtzig"
87 : "siebenundachtzig"
88 : "achtundachtzig"
89 : "neunundachtzig"
90 : "neunzig"
91 : "einundneunzig"
92 : "zweiundneunzig"
93 : "dreiundneunzig"
94 : "vierundneunzig"
95 : "fünfundneunzig"
96 : "sechsundneunzig"
97 : "siebenundneunzig"
98 : "achtundneunzig"
99 : "neunundneunzig"
100 : "einhundert"
1000 : "eintausend"
1000000 : "eine Million"
]
korean_sino_number_map :=
[
0 : "영"
1 : "일"
2 : "이"
3 : "삼"
4 : "사"
5 : "오"
6 : "육"
7 : "칠"
8 : "팔"
9 : "구"
10 : "십"
11 : "십일"
12 : "십이"
13 : "십삼"
14 : "십사"
15 : "십오"
16 : "십육"
17 : "십칠"
18 : "십팔"
19 : "십구"
20 : "이십"
21 : "이십일"
22 : "이십이"
23 : "이십삼"
24 : "이십사"
25 : "이십오"
26 : "이십육"
27 : "이십칠"
28 : "이십팔"
29 : "이십구"
30 : "삼십"
31 : "삼십일"
32 : "삼십이"
33 : "삼십삼"
34 : "삼십사"
35 : "삼십오"
36 : "삼십육"
37 : "삼십칠"
38 : "삼십팔"
39 : "삼십구"
40 : "사십"
41 : "사십일"
42 : "사십이"
43 : "사십삼"
44 : "사십사"
45 : "사십오"
46 : "사십육"
47 : "사십칠"
48 : "사십팔"
49 : "사십구"
50 : "오십"
51 : "오십일"
52 : "오십이"
53 : "오십삼"
54 : "오십사"
55 : "오십오"
56 : "오십육"
57 : "오십칠"
58 : "오십팔"
59 : "오십구"
60 : "육십"
61 : "육십일"
62 : "육십이"
63 : "육십삼"
64 : "육십사"
65 : "육십오"
66 : "육십육"
67 : "육십칠"
68 : "육십팔"
69 : "육십구"
70 : "칠십"
71 : "칠십일"
72 : "칠십이"
73 : "칠십삼"
74 : "칠십사"
75 : "칠십오"
76 : "칠십육"
77 : "칠십칠"
78 : "칠십팔"
79 : "칠십구"
80 : "팔십"
81 : "팔십일"
82 : "팔십이"
83 : "팔십삼"
84 : "팔십사"
85 : "팔십오"
86 : "팔십육"
87 : "팔십칠"
88 : "팔십팔"
89 : "팔십구"
90 : "구십"
91 : "구십일"
92 : "구십이"
93 : "구십삼"
94 : "구십사"
95 : "구십오"
96 : "구십육"
97 : "구십칠"
98 : "구십팔"
99 : "구십구"
100 : "백"
1000 : "천"
1000000 : "백만"
]
korean_native_number_map :=
[
0 : "공"
1 : "하나"
2 : "둘"
3 : "셋"
4 : "넷"
5 : "다섯"
6 : "여섯"
7 : "일곱"
8 : "여덟"
9 : "아홉"
10 : "열"
11 : "열하나"
12 : "열둘"
13 : "열셋"
14 : "열넷"
15 : "열다섯"
16 : "열여섯"
17 : "열일곱"
18 : "열여덟"
19 : "열아홉"
20 : "스물"
21 : "스물하나"
22 : "스물둘"
23 : "스물셋"
24 : "스물넷"
25 : "스물다섯"
26 : "스물여섯"
27 : "스물일곱"
28 : "스물여덟"
29 : "스물아홉"
30 : "서른"
31 : "서른하나"
32 : "서른둘"
33 : "서른셋"
34 : "서른넷"
35 : "서른다섯"
36 : "서른여섯"
37 : "서른일곱"
38 : "서른여덟"
39 : "서른아홉"
40 : "마흔"
41 : "마흔하나"
42 : "마흔둘"
43 : "마흔셋"
44 : "마흔넷"
45 : "마흔다섯"
46 : "마흔여섯"
47 : "마흔일곱"
48 : "마흔여덟"
49 : "마흔아홉"
50 : "쉰"
51 : "쉰하나"
52 : "쉰둘"
53 : "쉰셋"
54 : "쉰넷"
55 : "쉰다섯"
56 : "쉰여섯"
57 : "쉰일곱"
58 : "쉰여덟"
59 : "쉰아홉"
60 : "예순"
61 : "예순하나"
62 : "예순둘"
63 : "예순셋"
64 : "예순넷"
65 : "예순다섯"
66 : "예순여섯"
67 : "예순일곱"
68 : "예순여덟"
69 : "예순아홉"
70 : "일흔"
71 : "일흔하나"
72 : "일흔둘"
73 : "일흔셋"
74 : "일흔넷"
75 : "일흔다섯"
76 : "일흔여섯"
77 : "일흔일곱"
78 : "일흔여덟"
79 : "일흔아홉"
80 : "여든"
81 : "여든하나"
82 : "여든둘"
83 : "여든셋"
84 : "여든넷"
85 : "여든다섯"
86 : "여든여섯"
87 : "여든일곱"
88 : "여든여덟"
89 : "여든아홉"
90 : "아흔"
91 : "아흔하나"
92 : "아흔둘"
93 : "아흔셋"
94 : "아흔넷"
95 : "아흔다섯"
96 : "아흔여섯"
97 : "아흔일곱"
98 : "아흔여덟"
99 : "아흔아홉"
100 : "백"
1000 : "천"
1000000 : "백만"
]
korean_counter_number_map :=
[
1 : "한"
2 : "두"
3 : "세"
4 : "네"
]
japanese_alternate_number_map :=
[
"0" : 0
"1" : 1
"2" : 2
"3" : 3
"4" : 4
"5" : 5
"6" : 6
"7" : 7
"8" : 8
"9" : 9
"10" : 10
"11" : 11
"12" : 12
"13" : 13
"14" : 14
"15" : 15
"16" : 16
"17" : 17
"18" : 18
"19" : 19
"20" : 20
"21" : 21
"22" : 22
"23" : 23
"24" : 24
"25" : 25
"26" : 26
"27" : 27
"28" : 28
"29" : 29
"30" : 30
"31" : 31
"32" : 32
"33" : 33
"34" : 34
"35" : 35
"36" : 36
"37" : 37
"38" : 38
"39" : 39
"40" : 40
"41" : 41
"42" : 42
"43" : 43
"44" : 44
"45" : 45
"46" : 46
"47" : 47
"48" : 48
"49" : 49
"50" : 50
"51" : 51
"52" : 52
"53" : 53
"54" : 54
"55" : 55
"56" : 56
"57" : 57
"58" : 58
"59" : 59
"60" : 60
"61" : 61
"62" : 62
"63" : 63
"64" : 64
"65" : 65
"66" : 66
"67" : 67
"68" : 68
"69" : 69
"70" : 70
"71" : 71
"72" : 72
"73" : 73
"74" : 74
"75" : 75
"76" : 76
"77" : 77
"78" : 78
"79" : 79
"80" : 80
"81" : 81
"82" : 82
"83" : 83
"84" : 84
"85" : 85
"86" : 86
"87" : 87
"88" : 88
"89" : 89
"90" : 90
"91" : 91
"92" : 92
"93" : 93
"94" : 94
"95" : 95
"96" : 96
"97" : 97
"98" : 98
"99" : 99
"100" : 100
"1000" : 1000
"1000000" : 1000000
]
chinese_japanese_number_map :=
[
0 : "零"
1 : "一"
2 : "二"
3 : "三"
4 : "四"
5 : "五"
6 : "六"
7 : "七"
8 : "八"
9 : "九"
10 : "十"
11 : "十一"
12 : "十二"
13 : "十三"
14 : "十四"
15 : "十五"
16 : "十六"
17 : "十七"
18 : "十八"
19 : "十九"
20 : "二十"
21 : "二十一"
22 : "二十二"
23 : "二十三"
24 : "二十四"
25 : "二十五"
26 : "二十六"
27 : "二十七"
28 : "二十八"
29 : "二十九"
30 : "三十"
31 : "三十一"
32 : "三十二"
33 : "三十三"
34 : "三十四"
35 : "三十五"
36 : "三十六"
37 : "三十七"
38 : "三十八"
39 : "三十九"
40 : "四十"
41 : "四十一"
42 : "四十二"
43 : "四十三"
44 : "四十四"
45 : "四十五"
46 : "四十六"
47 : "四十七"
48 : "四十八"
49 : "四十九"
50 : "五十"
51 : "五十一"
52 : "五十二"
53 : "五十三"
54 : "五十四"
55 : "五十五"
56 : "五十六"
57 : "五十七"
58 : "五十八"
59 : "五十九"
60 : "六十"
61 : "六十一"
62 : "六十二"
63 : "六十三"
64 : "六十四"
65 : "六十五"
66 : "六十六"
67 : "六十七"
68 : "六十八"
69 : "六十九"
70 : "七十"
71 : "七十一"
72 : "七十二"
73 : "七十三"
74 : "七十四"
75 : "七十五"
76 : "七十六"
77 : "七十七"
78 : "七十八"
79 : "七十九"
80 : "八十"
81 : "八十一"
82 : "八十二"
83 : "八十三"
84 : "八十四"
85 : "八十五"
86 : "八十六"
87 : "八十七"
88 : "八十八"
89 : "八十九"
90 : "九十"
91 : "九十一"
92 : "九十二"
93 : "九十三"
94 : "九十四"
95 : "九十五"
96 : "九十六"
97 : "九十七"
98 : "九十八"
99 : "九十九"
100 : "一百"
1000 : "一千"
1000000 : "100万"
]
# Keyword helper functions. Maybe these belong in the main script file?
make_list_unique :=
{
unique_list := []
count := length(input)-1
for x from 0 to count do (if not contains_element(unique_list, element: input[x]) then unique_list := unique_list + [input[x]];0)
unique_list
}
contains_element :=
{
contained := false
count := length(input)-1
for x from 0 to count do (if input[x] == element then contained := true;0)
contained
}
join_list :=
{
count := length(input)-2
if count < -1 then "" else if count == -1 then input[0] else (
joined_list := for x from 0 to count do (input[x] + glue)
joined_list + input[count+1])
}@(glue: "")
reverse_list :=
{
count := length(input)-1
for x from 0 to count do [input[count-x]]
}
# Keyword functions.
cost_parameter_script :=
{
input := replace(input, match: "?sym>", replace: "")
if contains(input, match: ",") or contains(input, match: ",") then replace(input, match: "^([^,,]+)(,|,)", replace: "\\1\\2")
else ("" + input + "")
}
cost_parameter_dash :=
{
if language().code == "cn" then replace(input, match:"-|―|—", replace:"~")
else replace(input, match:"-|―|~", replace:"—")
}
localized_phy_reminder :=
{
phy_matches := break_text(card.casting_cost, match:"H(/[WUBRGC])*")
if length(phy_matches) < 1 then "" else (
multiple := length(phy_matches) > 1
phy_matches := make_list_unique(reverse_list(sort_list(phy_matches, order_by: length))) #First symbol is used for reminder text. Prefer using hybrid mana.
letters := split_text(phy_matches[0], match:"/")
count := length(letters)
costs := if count == 1 then ["1"]
else for x from 1 to count-1 do [letters[x]]
if input == "de" then german_phy_reminder(costs, phy_matches: phy_matches, multiple: multiple)
else if input == "pt" then portuguese_phy_reminder(costs, phy_matches: phy_matches, multiple: multiple)
else if input == "zhs" then chinese_simplified_phy_reminder(costs, phy_matches: phy_matches, multiple: multiple)
else if input == "it" then italian_phy_reminder(costs, phy_matches: phy_matches, multiple: multiple)
else if input == "fr" then french_phy_reminder(costs, phy_matches: phy_matches, multiple: multiple)
else if input == "es" then spanish_phy_reminder(costs, phy_matches: phy_matches, multiple: multiple)
else if input == "ja" then japanese_phy_reminder(costs, phy_matches: phy_matches, multiple: multiple)
else if input == "ru" then russian_phy_reminder(costs, phy_matches: phy_matches, multiple: multiple)
else if input == "ko" then korean_phy_reminder(costs, phy_matches: phy_matches, multiple: multiple)
else if input == "zht" then chinese_traditional_phy_reminder(costs, phy_matches: phy_matches, multiple: multiple)
else english_phy_reminder(costs, phy_matches: phy_matches, multiple: multiple))
}
english_phy_reminder :=
{
"" + phy_matches[0] + " can be paid with " + join_list(costs, glue: ", ") + " or 2 life. " +
if multiple then "For each " + join_list(phy_matches, glue: " or ") + " paid with life, this planeswalker enters with two fewer loyalty counters."
else "If life was paid, this planeswalker enters with two fewer loyalty counters."
}
german_phy_reminder :=
{
"" + phy_matches[0] + " kann entweder mit " + join_list(costs, glue: ", ") + " oder 2 Lebenspunkten bezahlt werden. " +
if multiple then "Dieser Planeswalker kommt für jedes " + join_list(phy_matches, glue: " oder ") + ", das mit Lebenspunkten bezahlt wurde, mit zwei Loyalitätsmarken weniger ins Spiel."
else "Falls Lebenspunkte bezahlt wurden, kommt dieser Planeswalker mit zwei Loyalitätsmarken weniger ins Spiel."
}
portuguese_phy_reminder :=
{
"" + phy_matches[0] + " pode ser pago com " + join_list(costs, glue: ", ") + " ou 2 pontos de vida. " +
if multiple then "Para cada " + join_list(phy_matches, glue: " ou ") + " pago com vida, este planeswalker entra com dois marcadores de lealdade a menos."
else "Se foram pagos pontos de vida, este planeswalker entrará com dois marcadores de lealdade a menos."
}
chinese_simplified_phy_reminder :=
{
"" + phy_matches[0] + "可用" + join_list(costs, glue: ",") + "或2点生命来支付。" +
if multiple then "每有一点以生命支付的" + join_list(phy_matches, glue: "或") + ",此鹏洛客进战场时上面便少两个忠诚指示物。"
else "如果以生命支付,则此鹏洛客进战场时上面少两个忠诚指示物。"
}
italian_phy_reminder :=
{
"" + phy_matches[0] + " può essere pagato con " + join_list(costs, glue: ", ") + " o con 2 punti vita. " +
if multiple then "Per ogni " + join_list(phy_matches, glue: " o ") + " pagato con punti vita, questo planeswalker entra con due segnalini fedeltà in meno."
else "Se sono stati pagati punti vita, questo planeswalker entra con due segnalini fedeltà in meno."
}
french_phy_reminder :=
{
"" + phy_matches[0] + " peut être payé au choix avec " + join_list(costs, glue: ", ") + " ou 2 points de vie. " +
if multiple then "Pour chaque " + join_list(phy_matches, glue: " ou ") + " payé avec des points de vie, ce planeswalker arrive avec deux marqueurs « loyauté » de moins."
else "Si des points de vie ont été payés, ce planeswalker arrive avec deux marqueurs « loyauté » de moins."
}
spanish_phy_reminder :=
{
"" + phy_matches[0] + " puede pagarse con " + join_list(costs, glue: ", ") + " o 2 vidas. " +
if multiple then "Por cada " + join_list(phy_matches, glue: " o ") + " pagado con vidas, este planeswalker entra con dos contadores de lealtad menos."
else "Si se pagaron vidas, este planeswalker entra con dos contadores de lealtad menos."
}
japanese_phy_reminder :=
{
"" + phy_matches[0] + "は" + join_list(costs, glue: "でも") + "でも2点のライフでも支払うことができる。" +
if multiple then "ライフで支払われた" + join_list(phy_matches, glue: "でも") + "につき、このプレインズウォーカーの上にある忠誠カウンターが2個少ない状態で戦場に出る。"
else "ライフで支払ったなら、このプレインズウォーカーは2個少ない忠誠カウンターで戦場に出る。"
}
russian_phy_reminder :=
{
"За " + phy_matches[0] + " можно заплатить " + join_list(costs, glue: ", ") + " или 2 жизни. " +
"Если были заплачены жизни, то у этого planeswalker'а при выходе на поле битвы будет на два жетона верности меньше."
}
korean_phy_reminder :=
{
"" + phy_matches[0] + "는 " + join_list(costs, glue: ", ") + " 또는 생명 2점으로 지불할 수 있다. " +
"생명점이 지불되었다면, 이 플레인즈워커는 충성 카운터를 두 개 적게 가지고 들어온다."
}
chinese_traditional_phy_reminder :=
{
"" + phy_matches[0] + "可用" + join_list(costs, glue: ",") + "或2點生命來支付。" +
"如果以生命支付,則此鵬洛客進戰場時上面少兩個忠誠指示物。"
}
remove_ein := replace@(match: "eine? ", replace: "")