31 [[nodiscard]] std::string_view
Translate(
size_t pId)
const;
32 [[nodiscard]] std::string_view
Translate(
auto lang,
size_t pId)
const {
33 return mTranslations.at(
static_cast<size_t>(lang)).at(pId);
37 requires std::is_enum_v<E>
38 [[nodiscard]] std::string_view
Translate(E pId)
const {
39 return Translate(std::to_underlying(pId));
42 requires std::is_enum_v<E>
43 [[nodiscard]] std::string_view
Translate(
auto lang, E pId)
const {
44 return Translate(lang, std::to_underlying(pId));
47 template<
typename Num>
48 requires std::is_integral_v<Num> && (!std::same_as<Num, size_t>)
49 [[nodiscard]] std::string_view
Translate(Num pId)
const {
50 return Translate(
static_cast<size_t>(pId));
52 template<
typename Num>
53 requires std::is_integral_v<Num> && (!std::same_as<Num, size_t>)
54 [[nodiscard]] std::string_view
Translate(
auto lang, Num pId)
const {
55 return Translate(lang,
static_cast<size_t>(pId));
62 template<
typename... Args>
63 [[nodiscard]]
static std::string_view
STranslate(Args... args) {
71 template<
typename... Args>
73 auto& translation = mTranslations.at(pLang);
74 translation.emplace_back(std::forward<Args>(args)...);
78 for (
const auto& value : pRange) {
86 template<
typename... Args>
88 mTranslations.at(pLanguage).at(pTranslation) = std::move(std::string(std::forward<Args...>(args...)));
91 template<
typename E,
typename... Args>
92 requires std::is_enum_v<E>
94 OverrideTranslation(pLanguage,
static_cast<std::underlying_type_t<E>
>(pTranslation), std::forward<Args...>(args...));
97 template<
typename Num,
typename... Args>
98 requires std::is_integral_v<Num> && (!std::same_as<Num, size_t>)
100 OverrideTranslation(pLanguage,
static_cast<size_t>(pTranslation), std::forward<Args...>(args...));
104 std::array<std::vector<std::string>, 6> mTranslations;
106 std::vector<std::string>* mCurrentTranslation;
std::string_view to_string(ArcdpsExtension::LanguageSetting pLang)
Definition Localization.cpp:28
gwlanguage
Definition arcdps_structs_slim.h:162
@ GWL_ENG
Definition arcdps_structs_slim.h:163
Definition Localization.h:27
std::string_view Translate(auto lang, size_t pId) const
Definition Localization.h:32
static std::string_view STranslate(Args... args)
Definition Localization.h:63
void OverrideTranslation(gwlanguage pLanguage, size_t pTranslation, Args &&... args)
Definition Localization.h:87
Localization()
Definition Localization.cpp:5
std::string_view Translate(Num pId) const
Definition Localization.h:49
std::string_view Translate(auto lang, Num pId) const
Definition Localization.h:54
void ChangeLanguage(gwlanguage pLang)
Definition Localization.cpp:19
std::string_view Translate(E pId) const
Definition Localization.h:38
void OverrideTranslation(gwlanguage pLanguage, Num pTranslation, Args &&... args)
Definition Localization.h:99
void AddTranslation(gwlanguage pLang, Args &&... args)
Definition Localization.h:72
void OverrideTranslation(gwlanguage pLanguage, E pTranslation, Args &&... args)
Definition Localization.h:93
void AddTranslation(gwlanguage pLang, const char8_t *pText)
Definition Localization.h:67
std::string_view Translate(auto lang, E pId) const
Definition Localization.h:43
static void SChangeLanguage(gwlanguage pLang)
Definition Localization.cpp:24
void Load(gwlanguage pLang, const std::ranges::common_range auto &pRange)
Definition Localization.h:77
std::string_view Translate(size_t pId) const
Definition Localization.cpp:15
Definition Singleton.h:48
static T2 & instance()
Definition Singleton.h:52
Definition ArcdpsExtension.h:10
LanguageSetting
Definition Localization.h:111