diff --git a/CMakeLists.txt b/CMakeLists.txt index cbf373e57..6bb22db33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1091,6 +1091,7 @@ set(IMGUI src/imgui/imgui_config.h src/imgui/imgui_layer.h src/imgui/imgui_std.h src/imgui/imgui_texture.h + src/imgui/imgui_translations.h src/imgui/renderer/imgui_core.cpp src/imgui/renderer/imgui_core.h src/imgui/renderer/imgui_impl_sdl3.cpp diff --git a/src/imgui/imgui_translations.h b/src/imgui/imgui_translations.h new file mode 100644 index 000000000..83f60f187 --- /dev/null +++ b/src/imgui/imgui_translations.h @@ -0,0 +1,184 @@ +// SPDX-FileCopyrightText: Copyright 2026 shadPS4 Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include + +#include "core/emulator_settings.h" + +///////////// ImGui Translation Tables + +// disable clang line limits for ease of translation +// clang-format off + +const std::map JapaneseMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map FrenchMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map FrenchCanadaMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map SpanishMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map SpanishLatinAmericanMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map GermanMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map ItalianMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map DutchMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map PortugesePtMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map PortugeseBrMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map RussianMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map KoreanMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map ChineseTraditionalMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map ChineseSimplifiedMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map FinnishMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map SwedishMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map DanishMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map NorwegianMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map PolishMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map TurkishMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map ArabicMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map CzechMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map HungarianMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map GreekMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map RomanianMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map ThaiMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map VietnameseMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map IndonesianMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +const std::map UkranianMap = { + {"Trophy Earned", "Trophy Earned"}, +}; + +// clang-format on + +///////////// End ImGui Translation Tables + +const std::map> langMap = { + {0, JapaneseMap}, + // {1, EnglishUsMap}, - not used + {2, FrenchMap}, + {3, SpanishMap}, + {4, GermanMap}, + {5, ItalianMap}, + {6, DutchMap}, + {7, PortugesePtMap}, + {8, RussianMap}, + {9, KoreanMap}, + {10, ChineseTraditionalMap}, + {11, ChineseSimplifiedMap}, + {12, FinnishMap}, + {13, SwedishMap}, + {14, DanishMap}, + {15, NorwegianMap}, + {16, PolishMap}, + {17, PortugeseBrMap}, + // {18, "English (UK)"}, - not used + {19, TurkishMap}, + {20, SpanishLatinAmericanMap}, + {21, ArabicMap}, + {22, FrenchCanadaMap}, + {23, CzechMap}, + {24, HungarianMap}, + {25, GreekMap}, + {26, RomanianMap}, + {27, ThaiMap}, + {28, VietnameseMap}, + {29, IndonesianMap}, + {30, UkranianMap}, +}; + +namespace ImguiTranslate { + +std::string tr(std::string input) { + // since we're coding in English + if (EmulatorSettings.GetConsoleLanguage() == 1 || EmulatorSettings.GetConsoleLanguage() == 18) + return input; + + const std::map translationTable = + langMap.at(EmulatorSettings.GetConsoleLanguage()); + + if (!translationTable.contains(input)) { + return input; + } + + return translationTable.at(input); +} + +} // namespace ImguiTranslate