MCPcopy Create free account
hub / github.com/OpenXcom/OpenXcom / loadLanguage

Method loadLanguage

src/Engine/Game.cpp:445–476  ·  view source on GitHub ↗

* Changes the language currently in use by the game. * @param filename Filename of the language file. */

Source from the content-addressed store, hash-verified

443* @param filename Filename of the language file.
444*/
445void Game::loadLanguage(const std::string &filename)
446{
447 std::ostringstream ss;
448 ss << "Language/" << filename << ".yml";
449
450 ExtraStrings *strings = 0;
451 std::map<std::string, ExtraStrings *> extraStrings = _rules->getExtraStrings();
452 if (!extraStrings.empty())
453 {
454 if (extraStrings.find(filename) != extraStrings.end())
455 {
456 strings = extraStrings[filename];
457 }
458 // Fallback
459 else if (extraStrings.find("en-US") != extraStrings.end())
460 {
461 strings = extraStrings["en-US"];
462 }
463 else if (extraStrings.find("en-GB") != extraStrings.end())
464 {
465 strings = extraStrings["en-GB"];
466 }
467 else
468 {
469 strings = extraStrings.begin()->second;
470 }
471 }
472
473 _lang->load(CrossPlatform::getDataFile(ss.str()), strings);
474
475 Options::language = filename;
476}
477
478/**
479 * Returns the resource pack currently in use by the game.

Callers 1

btnOkClickMethod · 0.80

Calls 4

getDataFileFunction · 0.85
getExtraStringsMethod · 0.80
emptyMethod · 0.45
loadMethod · 0.45

Tested by

no test coverage detected