trunk/language/Serbian (Cyrillic)/strings.po
| r253566 | r253567 | |
| 112 | 112 | |
| 113 | 113 | #: src/emu/ui/mainmenu.cpp:53 |
| 114 | 114 | msgid "Input (general)" |
| 115 | | msgstr "" |
| 115 | msgstr "Улази (генерално)" |
| 116 | 116 | |
| 117 | 117 | #: src/emu/ui/mainmenu.cpp:55 |
| 118 | 118 | msgid "Input (this Machine)" |
| 119 | | msgstr "" |
| 119 | msgstr "Улази (ова машина)" |
| 120 | 120 | |
| 121 | 121 | #: src/emu/ui/mainmenu.cpp:59 |
| 122 | 122 | msgid "Analog Controls" |
| 123 | | msgstr "" |
| 123 | msgstr "Аналогне контроле" |
| 124 | 124 | |
| 125 | 125 | #: src/emu/ui/mainmenu.cpp:61 |
| 126 | 126 | msgid "Dip Switches" |
| r253566 | r253567 | |
| 128 | 128 | |
| 129 | 129 | #: src/emu/ui/mainmenu.cpp:64 |
| 130 | 130 | msgid "Machine Configuration" |
| 131 | | msgstr "" |
| 131 | msgstr "Конфигурација" |
| 132 | 132 | |
| 133 | 133 | #: src/emu/ui/mainmenu.cpp:68 |
| 134 | 134 | msgid "Bookkeeping Info" |
| r253566 | r253567 | |
| 136 | 136 | |
| 137 | 137 | #: src/emu/ui/mainmenu.cpp:71 |
| 138 | 138 | msgid "Machine Information" |
| 139 | | msgstr "" |
| 139 | msgstr "Информације о машини" |
| 140 | 140 | |
| 141 | 141 | #: src/emu/ui/mainmenu.cpp:77 |
| 142 | 142 | msgid "Image Information" |
| 143 | | msgstr "" |
| 143 | msgstr "Информације о датотеци" |
| 144 | 144 | |
| 145 | 145 | #: src/emu/ui/mainmenu.cpp:80 |
| 146 | 146 | msgid "File Manager" |
| 147 | | msgstr "" |
| 147 | msgstr "Менаџер датотека" |
| 148 | 148 | |
| 149 | 149 | #: src/emu/ui/mainmenu.cpp:85 |
| 150 | 150 | msgid "Tape Control" |
| 151 | | msgstr "" |
| 151 | msgstr "Контрола касете" |
| 152 | 152 | |
| 153 | 153 | #: src/emu/ui/mainmenu.cpp:90 |
| 154 | 154 | msgid "Pseudo terminals" |
| 155 | | msgstr "" |
| 155 | msgstr "Псеудо терминал" |
| 156 | 156 | |
| 157 | 157 | #: src/emu/ui/mainmenu.cpp:93 |
| 158 | 158 | msgid "Bios Selection" |
| 159 | | msgstr "" |
| 159 | msgstr "Селекција биоса" |
| 160 | 160 | |
| 161 | 161 | #: src/emu/ui/mainmenu.cpp:99 |
| 162 | 162 | msgid "Slot Devices" |
| 163 | | msgstr "" |
| 163 | msgstr "Слот уређаји" |
| 164 | 164 | |
| 165 | 165 | #: src/emu/ui/mainmenu.cpp:106 |
| 166 | 166 | msgid "Barcode Reader" |
| 167 | | msgstr "" |
| 167 | msgstr "Читач бар кода" |
| 168 | 168 | |
| 169 | 169 | #: src/emu/ui/mainmenu.cpp:113 |
| 170 | 170 | msgid "Network Devices" |
| 171 | | msgstr "" |
| 171 | msgstr "Мрежни уређаји" |
| 172 | 172 | |
| 173 | 173 | #: src/emu/ui/mainmenu.cpp:118 |
| 174 | 174 | msgid "Keyboard Mode" |
| 175 | | msgstr "" |
| 175 | msgstr "Мод тастатуре" |
| 176 | 176 | |
| 177 | 177 | #: src/emu/ui/mainmenu.cpp:121 |
| 178 | 178 | msgid "Slider Controls" |
| 179 | | msgstr "" |
| 179 | msgstr "Клизачи" |
| 180 | 180 | |
| 181 | 181 | #: src/emu/ui/mainmenu.cpp:124 |
| 182 | 182 | msgid "Video Options" |
| 183 | | msgstr "" |
| 183 | msgstr "Видео операције" |
| 184 | 184 | |
| 185 | 185 | #: src/emu/ui/mainmenu.cpp:128 |
| 186 | 186 | msgid "Crosshair Options" |
| r253566 | r253567 | |
| 188 | 188 | |
| 189 | 189 | #: src/emu/ui/mainmenu.cpp:132 |
| 190 | 190 | msgid "Cheat" |
| 191 | | msgstr "" |
| 191 | msgstr "Варања" |
| 192 | 192 | |
| 193 | 193 | #: src/emu/ui/mainmenu.cpp:136 |
| 194 | 194 | msgid "External DAT View" |
| r253566 | r253567 | |
| 196 | 196 | |
| 197 | 197 | #: src/emu/ui/mainmenu.cpp:142 |
| 198 | 198 | msgid "Add To Favorites" |
| 199 | | msgstr "" |
| 199 | msgstr "Додај у омиљене" |
| 200 | 200 | |
| 201 | 201 | #: src/emu/ui/mainmenu.cpp:144 |
| 202 | 202 | msgid "Remove From Favorites" |
| 203 | | msgstr "" |
| 203 | msgstr "Уклони из омиљених" |
| 204 | 204 | |
| 205 | 205 | #: src/emu/ui/mainmenu.cpp:151 |
| 206 | 206 | msgid "Select New Machine" |
| 207 | | msgstr "" |
| 207 | msgstr "Селектуј нову машину" |
trunk/src/emu/clifront.cpp
| r253566 | r253567 | |
| 89 | 89 | m_options.remove_device_options(); |
| 90 | 90 | } |
| 91 | 91 | |
| 92 | const UINT32 MO_MAGIC = 0x950412de; |
| 93 | const UINT32 MO_MAGIC_REVERSED = 0xde120495; |
| 92 | 94 | |
| 95 | inline UINT32 endianchange(UINT32 value) { |
| 96 | UINT32 b0 = (value >> 0) & 0xff; |
| 97 | UINT32 b1 = (value >> 8) & 0xff; |
| 98 | UINT32 b2 = (value >> 16) & 0xff; |
| 99 | UINT32 b3 = (value >> 24) & 0xff; |
| 100 | |
| 101 | return (b0 << 24) | (b1 << 16) |(b2 << 8) | b3; |
| 102 | } |
| 103 | |
| 104 | static std::unordered_map<std::string, std::string> g_translation; |
| 105 | |
| 106 | const char *lang_translate(const char *word) |
| 107 | { |
| 108 | if (g_translation.find(word) == g_translation.end()) |
| 109 | { |
| 110 | return word; |
| 111 | } |
| 112 | return g_translation[word].c_str(); |
| 113 | } |
| 114 | |
| 115 | void cli_frontend::load_translation() |
| 116 | { |
| 117 | g_translation.empty(); |
| 118 | emu_file file(m_options.language_path(), OPEN_FLAG_READ); |
| 119 | if (file.open(m_options.language(), PATH_SEPARATOR "strings.mo") == FILERR_NONE) |
| 120 | { |
| 121 | UINT64 size = file.size(); |
| 122 | UINT32 *buffer = global_alloc_array(UINT32,size / 4 + 1); |
| 123 | file.read(buffer, size); |
| 124 | file.close(); |
| 125 | |
| 126 | if (buffer[0] != MO_MAGIC && buffer[0] != MO_MAGIC_REVERSED) |
| 127 | { |
| 128 | global_free_array(buffer); |
| 129 | return; |
| 130 | } |
| 131 | if (buffer[0] == MO_MAGIC_REVERSED) |
| 132 | { |
| 133 | for (auto i = 0; i < (size / 4)+1; ++i) |
| 134 | { |
| 135 | buffer[i] = endianchange(buffer[i]); |
| 136 | } |
| 137 | } |
| 138 | |
| 139 | UINT32 number_of_strings = buffer[2]; |
| 140 | UINT32 original_table_offset = buffer[3] >> 2; |
| 141 | UINT32 translation_table_offset = buffer[4] >> 2; |
| 142 | |
| 143 | const char *data = reinterpret_cast<const char*>(buffer); |
| 144 | |
| 145 | for (auto i = 1; i < number_of_strings; ++i) |
| 146 | { |
| 147 | std::string original = (const char *)data + buffer[original_table_offset + 2 * i + 1]; |
| 148 | std::string translation= (const char *)data + buffer[translation_table_offset + 2 * i + 1]; |
| 149 | g_translation.insert(std::pair<std::string, std::string>(original, translation)); |
| 150 | } |
| 151 | global_free_array(buffer); |
| 152 | } |
| 153 | } |
| 154 | |
| 93 | 155 | //------------------------------------------------- |
| 94 | 156 | // execute - execute a game via the standard |
| 95 | 157 | // command line interface |
| r253566 | r253567 | |
| 109 | 171 | |
| 110 | 172 | m_options.parse_standard_inis(option_errors); |
| 111 | 173 | |
| 174 | load_translation(); |
| 175 | |
| 112 | 176 | manager->start_luaengine(); |
| 113 | 177 | |
| 114 | 178 | if (*(m_options.software_name()) != 0) |
trunk/src/emu/emuopts.cpp
| r253566 | r253567 | |
| 44 | 44 | { OPTION_CHEATPATH, "cheat", OPTION_STRING, "path to cheat files" }, |
| 45 | 45 | { OPTION_CROSSHAIRPATH, "crosshair", OPTION_STRING, "path to crosshair files" }, |
| 46 | 46 | { OPTION_PLUGINSPATH, "plugins", OPTION_STRING, "path to plugin files" }, |
| 47 | { OPTION_LANGUAGEPATH, "language", OPTION_STRING, "path to language files" }, |
| 47 | 48 | |
| 48 | 49 | // output directory options |
| 49 | 50 | { nullptr, nullptr, OPTION_HEADER, "CORE OUTPUT DIRECTORY OPTIONS" }, |
| r253566 | r253567 | |
| 188 | 189 | { OPTION_AUTOBOOT_DELAY, "2", OPTION_INTEGER, "timer delay in sec to trigger command execution on autoboot" }, |
| 189 | 190 | { OPTION_AUTOBOOT_SCRIPT ";script", nullptr, OPTION_STRING, "lua script to execute after machine boot" }, |
| 190 | 191 | { OPTION_CONSOLE, "0", OPTION_BOOLEAN, "enable emulator LUA console" }, |
| 192 | { OPTION_LANGUAGE ";lang", "English", OPTION_STRING, "display language" }, |
| 191 | 193 | { nullptr } |
| 192 | 194 | }; |
| 193 | 195 | |
trunk/src/emu/emuopts.h
| r253566 | r253567 | |
| 57 | 57 | #define OPTION_CHEATPATH "cheatpath" |
| 58 | 58 | #define OPTION_CROSSHAIRPATH "crosshairpath" |
| 59 | 59 | #define OPTION_PLUGINSPATH "pluginspath" |
| 60 | #define OPTION_LANGUAGEPATH "languagepath" |
| 60 | 61 | |
| 61 | 62 | // core directory options |
| 62 | 63 | #define OPTION_CFG_DIRECTORY "cfg_directory" |
| r253566 | r253567 | |
| 190 | 191 | |
| 191 | 192 | #define OPTION_CONSOLE "console" |
| 192 | 193 | |
| 194 | #define OPTION_LANGUAGE "language" |
| 195 | |
| 193 | 196 | //************************************************************************** |
| 194 | 197 | // TYPE DEFINITIONS |
| 195 | 198 | //************************************************************************** |
| r253566 | r253567 | |
| 233 | 236 | const char *cheat_path() const { return value(OPTION_CHEATPATH); } |
| 234 | 237 | const char *crosshair_path() const { return value(OPTION_CROSSHAIRPATH); } |
| 235 | 238 | const char *plugins_path() const { return value(OPTION_PLUGINSPATH); } |
| 239 | const char *language_path() const { return value(OPTION_LANGUAGEPATH); } |
| 236 | 240 | |
| 237 | 241 | // core directory options |
| 238 | 242 | const char *cfg_directory() const { return value(OPTION_CFG_DIRECTORY); } |
| r253566 | r253567 | |
| 363 | 367 | const char *autoboot_script() const { return value(OPTION_AUTOBOOT_SCRIPT); } |
| 364 | 368 | |
| 365 | 369 | bool console() const { return bool_value(OPTION_CONSOLE); } |
| 370 | |
| 371 | const char *language() const { return value(OPTION_LANGUAGE); } |
| 366 | 372 | |
| 367 | 373 | // FIXME: Couriersud: This should be in image_device_exit |
| 368 | 374 | void remove_device_options(); |