language.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright 2019 yuzu emulator team
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <optional>
  6. #include <string>
  7. #include "common/common_types.h"
  8. namespace Service::Set {
  9. enum class LanguageCode : u64;
  10. }
  11. namespace Service::NS {
  12. /// This is nn::ns::detail::ApplicationLanguage
  13. enum class ApplicationLanguage : u8 {
  14. AmericanEnglish = 0,
  15. BritishEnglish,
  16. Japanese,
  17. French,
  18. German,
  19. LatinAmericanSpanish,
  20. Spanish,
  21. Italian,
  22. Dutch,
  23. CanadianFrench,
  24. Portuguese,
  25. Russian,
  26. Korean,
  27. TraditionalChinese,
  28. SimplifiedChinese,
  29. Count
  30. };
  31. using ApplicationLanguagePriorityList =
  32. const std::array<ApplicationLanguage, static_cast<std::size_t>(ApplicationLanguage::Count)>;
  33. constexpr u32 GetSupportedLanguageFlag(const ApplicationLanguage lang) {
  34. return 1U << static_cast<u32>(lang);
  35. }
  36. const ApplicationLanguagePriorityList* GetApplicationLanguagePriorityList(ApplicationLanguage lang);
  37. std::optional<ApplicationLanguage> ConvertToApplicationLanguage(Set::LanguageCode language_code);
  38. std::optional<Set::LanguageCode> ConvertToLanguageCode(ApplicationLanguage lang);
  39. } // namespace Service::NS