Files
magic-set-editor-fork/data/magic.mse-game/language
Sebastian Lundegård Kylander 3965b06a84 [required] WUBRG -> WUBRGO
2026-03-29 23:10:15 +02:00

1405 lines
36 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
############# 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 ""
}
spaced_sub_type_regex :=
replace@(match: "'", replace: "") + ### standardize apostrophes
regex_escape + ### preemptive escape
replace@(match: ",", replace: "|") + ### match any sub type
replace@(match: "(^|\\|)[^ ]+(?=\\|)", replace: "") + ### eliminate sub types that don't contain spaces
replace@(match: "^\\|", replace: "") + ### eliminate starting |
replace@(match: "\\|$", replace: "") + ### eliminate trailing |
{ "^(" + input + ")" } ### only match start of string
complete_sub_type_list :=
{
input.word_list_artifact + "," +
input.word_list_battle + "," +
input.word_list_dungeon + "," +
input.word_list_land + "," +
(for each submenu in input.word_lists_basic do submenu + ",") +
input.word_list_enchantment + "," +
input.word_list_spell + "," +
input.word_list_planeswalker + "," +
(for each submenu in input.word_lists_race do submenu + ",") +
(for each submenu in input.word_lists_class do submenu + ",") +
(for each submenu in input.word_lists_plane do submenu + ",")
}
replace_spaced_sub_type_map :=
[
"de": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["Deutsch"])))
"en": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["English"])))
"es": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["Español"])))
"fr": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["Français"])))
"it": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["Italiano"])))
"ja": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["日本語"])))
"ko": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["한국어"])))
"pt-br": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["Português do Brasil"])))
"ru": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["Русский"])))
"zhs": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["汉语"])))
"zht": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["漢語"])))
"en_GB": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["English"])))
"en_CA": replace@(replace: "", match: spaced_sub_type_regex(complete_sub_type_list(languages["English"])))
]
# 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
}
french_ordinal_number :=
{
input := remove_tags(input)
if input == "1" then "premier"
else
(
number := french_number(input)
number := replace(number, match: "f$", replace: "v")
number := replace(number, match: "q$", replace: "qu")
number := replace(number, match: "e$", replace: "")
number + "ième"
)
}
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
"" : 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
]
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 := remove_tag(input, tag:"<sym-auto>")
replace(input, match:"\\b([HSVECTQXYZI0-9WUBRGO/|]+)\\b(|,|<|$)", replace:"<sym-auto>\\1</sym-auto>\\2")
}
cost_parameter_script_nonspace :=
{
input := remove_tag(input, tag:"<sym-auto>")
replace(input, match:"(?<!<)([HSVECTQXYZI0-9WUBRGO/|]+)", replace:"<sym-auto>\\1</sym-auto>")
}
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(/[WUBRGOC])*")
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 :=
{
"<sym>" + phy_matches[0] + "</sym> can be paid with <sym>" + join_list(costs, glue: "</sym>, <sym>") + "</sym> or 2 life. " +
if multiple then "For each <sym>" + join_list(phy_matches, glue: "</sym> or <sym>") + "</sym> 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 :=
{
"<sym>" + phy_matches[0] + "</sym> kann entweder mit <sym>" + join_list(costs, glue: "</sym>, <sym>") + "</sym> oder 2 Lebenspunkten bezahlt werden. " +
if multiple then "Dieser Planeswalker kommt für jedes <sym>" + join_list(phy_matches, glue: "</sym> oder <sym>") + "</sym>, 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 :=
{
"<sym>" + phy_matches[0] + "</sym> pode ser pago com <sym>" + join_list(costs, glue: "</sym>, <sym>") + "</sym> ou 2 pontos de vida. " +
if multiple then "Para cada <sym>" + join_list(phy_matches, glue: "</sym> ou <sym>") + "</sym> 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 :=
{
"<sym>" + phy_matches[0] + "</sym>可用<sym>" + join_list(costs, glue: "</sym><sym>") + "</sym>或2点生命来支付。" +
if multiple then "每有一点以生命支付的<sym>" + join_list(phy_matches, glue: "</sym>或<sym>") + "</sym>,此鹏洛客进战场时上面便少两个忠诚指示物。"
else "如果以生命支付,则此鹏洛客进战场时上面少两个忠诚指示物。"
}
italian_phy_reminder :=
{
"<sym>" + phy_matches[0] + "</sym> può essere pagato con <sym>" + join_list(costs, glue: "</sym>, <sym>") + "</sym> o con 2 punti vita. " +
if multiple then "Per ogni <sym>" + join_list(phy_matches, glue: "</sym> o <sym>") + "</sym> 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 :=
{
"<sym>" + phy_matches[0] + "</sym> peut être payé au choix avec <sym>" + join_list(costs, glue: "</sym>, <sym>") + "</sym> ou 2 points de vie. " +
if multiple then "Pour chaque <sym>" + join_list(phy_matches, glue: "</sym> ou <sym>") + "</sym> 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 :=
{
"<sym>" + phy_matches[0] + "</sym> puede pagarse con <sym>" + join_list(costs, glue: "</sym>, <sym>") + "</sym> o 2 vidas. " +
if multiple then "Por cada <sym>" + join_list(phy_matches, glue: "</sym> o <sym>") + "</sym> 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 :=
{
"<sym>" + phy_matches[0] + "</sym>は<sym>" + join_list(costs, glue: "</sym>でも<sym>") + "</sym>でも2点のライフでも支払うことができる。" +
if multiple then "ライフで支払われた<sym>" + join_list(phy_matches, glue: "</sym>でも<sym>") + "</sym>につき、このプレインズウォーカーの上にある忠誠カウンターが2個少ない状態で戦場に出る。"
else "ライフで支払ったなら、このプレインズウォーカーは2個少ない忠誠カウンターで戦場に出る。"
}
russian_phy_reminder :=
{
"За <sym>" + phy_matches[0] + "</sym> можно заплатить <sym>" + join_list(costs, glue: "</sym>, <sym>") + "</sym> или 2 жизни. " +
"Если были заплачены жизни, то у этого planeswalker'а при выходе на поле битвы будет на два жетона верности меньше."
}
korean_phy_reminder :=
{
"<sym>" + phy_matches[0] + "</sym>는 <sym>" + join_list(costs, glue: "</sym>, <sym>") + "</sym> 또는 생명 2점으로 지불할 수 있다. " +
"생명점이 지불되었다면, 이 플레인즈워커는 충성 카운터를 두 개 적게 가지고 들어온다."
}
chinese_traditional_phy_reminder :=
{
"<sym>" + phy_matches[0] + "</sym>可用<sym>" + join_list(costs, glue: "</sym><sym>") + "</sym>或2點生命來支付。" +
"如果以生命支付,則此鵬洛客進戰場時上面少兩個忠誠指示物。"
}
remove_ein := replace@(match: "eine? ", replace: "")