* Changes the language currently in use by the game. * @param filename Filename of the language file. */
| 443 | * @param filename Filename of the language file. |
| 444 | */ |
| 445 | void 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. |
no test coverage detected