Гайд Система локализации для вашего меню

эс-те́т
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
8 Дек 2019
Сообщения
178
Реакции
270
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Привет, сегодня хочу показать пример реализации системы локализации.
Данный метод позволяет добавить не ограниченное количество вариантов локализации.


Credits: нолик
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Привет, сегодня хочу показать мой пример реализации системы локализации.
Данный метод позволяет добавить не ограниченное количество вариантов локализации.
Скрытое содержимое
Персона, ты зачем зхайд поставил

тыж у нолика её спиздив
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Привет, сегодня хочу показать пример реализации системы локализации.
Данный метод позволяет добавить не ограниченное количество вариантов локализации.
Скрытое содержимое

Credits: нолик
типо прикольно как разнообразие ,но обычный макрос по типу нижнего будет куда удобнее
Код:
Expand Collapse Copy
#define lang(e, r) (s_options.lang == 1 ? (e) : (u8##r))
 
Последнее редактирование:
Привет, сегодня хочу показать пример реализации системы локализации.
Данный метод позволяет добавить не ограниченное количество вариантов локализации.
Скрытое содержимое

Credits: нолик
спасибо
 
типо прикольно как разнообразие ,но обычный макрос по типу нижнего будет куда удобнее
Код:
Expand Collapse Copy
#define lang(e, r) (s_options.lang == 1 ? (e) : (u8##r))
Типо прикольно макросы в с++ использовать. Я не против макросов, но этот ваш 'lang' - очень неэлегантное решение. Правильнее было бы вообще не определять всю локализацию в коде, а хранить в отдельном файле в формате, например:
[lang=russian]
AimBot=АимБот
Feature Name=Название функции
etc...


Ну написать простенький парсер этого дела, и подгружать строго нужный язык за раз. Хранить может лучше даже в векторе, написав обёртку-враппер, предоставляющую доступ как к мапе.
struct like_map {
const std::wstring& operator[](const std::wstring& localize_key) {/*iterate through vector*/}
vector<std::wstring> data;
}


Надо тестить на конкретных примерах, офк, но скажу точно - хранить константные значения в мапе - не лучшее решение.
 
фпсу пизда, если ваше меню содержит содержит больше 100 стрингов

печальным ребятам советую почитать про реферренсы и std::string аллокаторы, прежде чем предоставлять свои 'профессиональные' услуги за $$
 
Последнее редактирование:
Лучше всего использовать для этого unordered_map с хешем строки в качестве ключа, за счет этого достигнем сложности алгоритма в О(1)
 
Назад
Сверху Снизу