* Loads the most appropriate language * given current system and game options. */
| 591 | * given current system and game options. |
| 592 | */ |
| 593 | void Game::defaultLanguage() |
| 594 | { |
| 595 | std::string defaultLang = "en-US"; |
| 596 | // No language set, detect based on system |
| 597 | if (Options::language.empty()) |
| 598 | { |
| 599 | std::string locale = CrossPlatform::getLocale(); |
| 600 | std::string lang = locale.substr(0, locale.find_first_of('-')); |
| 601 | // Try to load full locale |
| 602 | try |
| 603 | { |
| 604 | loadLanguage(locale); |
| 605 | } |
| 606 | catch (std::exception) |
| 607 | { |
| 608 | // Try to load language locale |
| 609 | try |
| 610 | { |
| 611 | loadLanguage(lang); |
| 612 | } |
| 613 | // Give up, use default |
| 614 | catch (std::exception) |
| 615 | { |
| 616 | loadLanguage(defaultLang); |
| 617 | } |
| 618 | } |
| 619 | } |
| 620 | else |
| 621 | { |
| 622 | // Use options language |
| 623 | try |
| 624 | { |
| 625 | loadLanguage(Options::language); |
| 626 | } |
| 627 | // Language not found, use default |
| 628 | catch (std::exception) |
| 629 | { |
| 630 | loadLanguage(defaultLang); |
| 631 | } |
| 632 | } |
| 633 | } |
| 634 | |
| 635 | /** |
| 636 | * Initializes the audio subsystem. |
no test coverage detected