#pragma once #include "category.h" #include #include #include "util/types.hpp" typedef std::map localized_cat; class Localized : public QObject { Q_OBJECT public: Localized() {} QString GetVerboseTimeByMs(quint64 elapsed_ms, bool show_days = false) const; static std::string GetStringFromU32(const u32& key, const std::map& map, bool combined = false); const struct category // (see PARAM.SFO in psdevwiki.com) TODO: Disc Categories { // PS3 bootable const QString app_music = tr("Music App"); const QString app_photo = tr("Photo App"); const QString app_store = tr("Store App"); const QString app_tv = tr("TV App"); const QString app_video = tr("Video App"); const QString bc_video = tr("Broadcast Video"); const QString disc_game = tr("Disc Game"); const QString hdd_game = tr("HDD Game"); const QString home = tr("Home"); const QString network = tr("Network"); const QString store_fe = tr("Store"); const QString web_tv = tr("Web TV"); const QString os_app = tr("Operating System"); // PS2 bootable const QString ps2_game = tr("PS2 Classics"); const QString ps2_inst = tr("PS2 Game"); // PS1 bootable const QString ps1_game = tr("PS1 Classics"); // PSP bootable const QString psp_game = tr("PSP Game"); const QString psp_mini = tr("PSP Minis"); const QString psp_rema = tr("PSP Remasters"); // Data const QString ps3_data = tr("PS3 Game Data"); const QString ps2_data = tr("PS2 Emulator Data"); // Save const QString ps3_save = tr("PS3 Save Data"); const QString psp_save = tr("PSP Minis Save Data"); // others const QString trophy = tr("Trophy"); const QString unknown = tr("Unknown"); const QString other = tr("Other"); const localized_cat cat_boot = { {cat::cat_app_music, app_music}, // media {cat::cat_app_photo, app_photo}, // media {cat::cat_app_store, app_store}, // media {cat::cat_app_tv, app_tv}, // media {cat::cat_app_video, app_video}, // media {cat::cat_bc_video, bc_video}, // media {cat::cat_web_tv, web_tv}, // media {cat::cat_home, home}, // home {cat::cat_network, network}, // other {cat::cat_store_fe, store_fe}, // other {cat::cat_disc_game, disc_game}, // disc_game {cat::cat_hdd_game, hdd_game}, // hdd_game {cat::cat_ps2_game, ps2_game}, // ps2_games {cat::cat_ps2_inst, ps2_inst}, // ps2_games {cat::cat_ps1_game, ps1_game}, // ps1_game {cat::cat_psp_game, psp_game}, // psp_games {cat::cat_psp_mini, psp_mini}, // psp_games {cat::cat_psp_rema, psp_rema}, // psp_games {cat::cat_ps3_os, os_app}, // other }; const localized_cat cat_data = { {cat::cat_ps3_data, ps3_data}, // data {cat::cat_ps2_data, ps2_data}, // data {cat::cat_ps3_save, ps3_save}, // data {cat::cat_psp_save, psp_save} // data }; } category; const struct parental { // These values are partly generalized. They can vary between country and category // Normally only values 1,2,3,5,7 and 9 are used const std::map level{ {1, tr("0+")}, {2, tr("3+")}, {3, tr("7+")}, {4, tr("10+")}, {5, tr("12+")}, {6, tr("15+")}, {7, tr("16+")}, {8, tr("17+")}, {9, tr("18+")}, {10, tr("Level 10")}, {11, tr("Level 11")}}; } parental; const struct resolution { // there might be different values for other categories resolution(); const std::map mode; } resolution; const struct sound { sound(); const std::map format; } sound; const struct title_t { title_t(); const std::map titles; } title; };