IT WORKS!

Missing only zh_TW to get a manual list, but it technically works for it
This commit is contained in:
Amatsune 2024-06-24 18:57:30 +02:00
parent c470c1e2e2
commit dcf100a11a
12 changed files with 1189 additions and 1171 deletions

View File

@ -51,14 +51,19 @@ export function getPokemonSpeciesForm(species: Species, formIndex: integer): Pok
} }
export function getFusedSpeciesName(speciesA: PokemonSpecies, speciesB: PokemonSpecies): string { export function getFusedSpeciesName(speciesA: PokemonSpecies, speciesB: PokemonSpecies): string {
const prefix = i18next.t(`fusionAffixes:${Species[speciesA.speciesId].toLowerCase()}.fusionPrefix`); let firstKey = "fusionPrefix";
const suffix = i18next.t(`fusionAffixes:${Species[speciesB.speciesId].toLowerCase()}.fusionSuffix`); let secondKey = "fusionSuffix";
if (i18next.t("fusionAffixes:shouldReverse") === "true") {
firstKey = "fusionSuffix";
secondKey = "fusionPrefix";
}
const prefix = i18next.t(`fusionAffixes:${Species[speciesA.speciesId].toLowerCase()}.${firstKey}`);
const suffix = i18next.t(`fusionAffixes:${Species[speciesB.speciesId].toLowerCase()}.${secondKey}`);
return `${prefix}${suffix}`; return `${prefix}${suffix}`;
} }
}
export type PokemonSpeciesFilter = (species: PokemonSpecies) => boolean; export type PokemonSpeciesFilter = (species: PokemonSpecies) => boolean;
export abstract class PokemonSpeciesForm { export abstract class PokemonSpeciesForm {

View File

@ -10,13 +10,14 @@ export interface SimpleTranslationEntries {
} }
export interface FusionTranslationEntries { export interface FusionTranslationEntries {
[key: string]: FusionTranslationEntry, shouldReverse: string,
[key: string]: FusionTranslationEntry | string,
} }
export interface FusionTranslationEntry { export interface FusionTranslationEntry {
fusionPrefix: string, fusionPrefix: string,
fusionSuffix: string, fusionSuffix: string,
} }
export interface MoveTranslationEntry { export interface MoveTranslationEntry {
name: string, name: string,

View File

@ -1,6 +1,7 @@
import { FusionTranslationEntries } from "#app/interfaces/locales"; import { FusionTranslationEntries } from "#app/interfaces/locales";
export const fusionAffixes: FusionTranslationEntries = { export const fusionAffixes: FusionTranslationEntries = {
shouldReverse: "false",
bulbasaur: { bulbasaur: {
fusionPrefix: "Bisas", fusionPrefix: "Bisas",
fusionSuffix: "asam", fusionSuffix: "asam",

View File

@ -1,6 +1,7 @@
import { FusionTranslationEntries } from "#app/interfaces/locales"; import { FusionTranslationEntries } from "#app/interfaces/locales";
export const fusionAffixes: FusionTranslationEntries = { export const fusionAffixes: FusionTranslationEntries = {
shouldReverse: "false",
bulbasaur: { bulbasaur: {
fusionPrefix: "Bul", fusionPrefix: "Bul",
fusionSuffix: "asaur", fusionSuffix: "asaur",

View File

@ -1,6 +1,7 @@
import { FusionTranslationEntries } from "#app/interfaces/locales"; import { FusionTranslationEntries } from "#app/interfaces/locales";
export const fusionAffixes: FusionTranslationEntries = { export const fusionAffixes: FusionTranslationEntries = {
shouldReverse: "false",
bulbasaur: { bulbasaur: {
fusionPrefix: "Bul", fusionPrefix: "Bul",
fusionSuffix: "asaur", fusionSuffix: "asaur",

View File

@ -1,6 +1,7 @@
import { FusionTranslationEntries } from "#app/interfaces/locales"; import { FusionTranslationEntries } from "#app/interfaces/locales";
export const fusionAffixes: FusionTranslationEntries = { export const fusionAffixes: FusionTranslationEntries = {
shouldReverse: "false",
bulbasaur: { bulbasaur: {
fusionPrefix: "Bul", fusionPrefix: "Bul",
fusionSuffix: "ulbizarre", fusionSuffix: "ulbizarre",

View File

@ -2,7 +2,8 @@
# Run it from the folder in which the pokemon.ts file is located, ex. "src\locales\de\" # Run it from the folder in which the pokemon.ts file is located, ex. "src\locales\de\"
# If the language doesn't use roman characters but uses an alphabet, it's possible to include the vowel/consonant characters to the script and use it's functionalities # If the language doesn't use roman characters but uses an alphabet, it's possible to include the vowel/consonant characters to the script and use it's functionalities
# For ideographic languages, a different approach is needed. For now, the "universal-fusion-affixes-generator" is how I made it work (found at the bottom) # For ideographic languages, a different approach is needed. For now, the "universal-fusion-affixes-generator" is how I made it work (found at the bottom)
# The zh affixes have all been manually fixed so replace it with care. In case a new zh file is needed, prefixes and suffixes also need to be swapped due to differences in syntax. For that, use the very last script # The zh affixes have all been manually fixed so replace it with care.
# The very last script is meant to swap prefixes with suffixes in the language in case it's needed (was requested due to misunderstanding, but it exists, so...)
import re import re
import unicodedata import unicodedata
@ -100,6 +101,7 @@ def combine_scripts(file_path):
output = "import { FusionTranslationEntries } from \"#app/interfaces/locales\";\n\n" output = "import { FusionTranslationEntries } from \"#app/interfaces/locales\";\n\n"
output += "export const fusionAffixes: FusionTranslationEntries = {\n" output += "export const fusionAffixes: FusionTranslationEntries = {\n"
output += " shouldReverse: \"true\",\n"
for word, prefix, suffix in zip(pokemon_dict.keys(), prefixes, suffixes): for word, prefix, suffix in zip(pokemon_dict.keys(), prefixes, suffixes):
output += f" {word}: {{\n" output += f" {word}: {{\n"
@ -210,6 +212,7 @@ file_path = r"pokemon.ts"
combine_scripts(file_path)""" combine_scripts(file_path)"""
#change the order of affixes and suffixes (requested for zh translations) #change the order of affixes and suffixes (requested for zh translations)
# TURNED OUT TO BE UNNECESSARY, BUT IT'S HERE IF ANYONE NEEDS IT...
"""import re """import re
def swap_fusion_entries(file_path): def swap_fusion_entries(file_path):

View File

@ -1,6 +1,7 @@
import { FusionTranslationEntries } from "#app/interfaces/locales"; import { FusionTranslationEntries } from "#app/interfaces/locales";
export const fusionAffixes: FusionTranslationEntries = { export const fusionAffixes: FusionTranslationEntries = {
shouldReverse: "false",
bulbasaur: { bulbasaur: {
fusionPrefix: "Bul", fusionPrefix: "Bul",
fusionSuffix: "asaur", fusionSuffix: "asaur",

View File

@ -1,6 +1,7 @@
import { FusionTranslationEntries } from "#app/interfaces/locales"; import { FusionTranslationEntries } from "#app/interfaces/locales";
export const fusionAffixes: FusionTranslationEntries = { export const fusionAffixes: FusionTranslationEntries = {
shouldReverse: "false",
bulbasaur: { bulbasaur: {
fusionPrefix: "이상해씨", fusionPrefix: "이상해씨",
fusionSuffix: "씨", fusionSuffix: "씨",

View File

@ -1,6 +1,7 @@
import { FusionTranslationEntries } from "#app/interfaces/locales"; import { FusionTranslationEntries } from "#app/interfaces/locales";
export const fusionAffixes: FusionTranslationEntries = { export const fusionAffixes: FusionTranslationEntries = {
shouldReverse: "false",
bulbasaur: { bulbasaur: {
fusionPrefix: "Bul", fusionPrefix: "Bul",
fusionSuffix: "asaur", fusionSuffix: "asaur",

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,7 @@
import { FusionTranslationEntries } from "#app/interfaces/locales"; import { FusionTranslationEntries } from "#app/interfaces/locales";
export const fusionAffixes: FusionTranslationEntries = { export const fusionAffixes: FusionTranslationEntries = {
shouldReverse: "true",
bulbasaur: { bulbasaur: {
fusionPrefix: "妙蛙種", fusionPrefix: "妙蛙種",
fusionSuffix: "蛙種子", fusionSuffix: "蛙種子",