Fix multi-word subtypes (#31)

This commit is contained in:
GenevensiS
2024-01-28 15:03:12 +01:00
committed by GitHub
parent d3984b48bd
commit cd3c0887a6
2 changed files with 96 additions and 29 deletions

View File

@@ -14,6 +14,46 @@ lang_name := {
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)