protected override void Awake() { base.Awake(); _currentLanguage = new Language(); #if HOURAI_EVENTS _eventManager = Mediator.Global; #endif _storageDirectory = Path.Combine(Application.streamingAssetsPath, localizationDirectory); var languages = Directory.GetFiles(_storageDirectory); _languages = new HashSet <string>(from file in languages where file.EndsWith(FileExtension) select Path.GetFileNameWithoutExtension(file)); SystemLanguage systemLang = Application.systemLanguage; string currentLang = Storage.GetStoredLangaugeId(systemLang.ToIdentifier()); if (!_languages.Contains(currentLang) || systemLang == SystemLanguage.Unknown) { log.Info("No language data for \"{0}\" found. Loading default language: {1}", _defaultLanguage, currentLang); currentLang = _defaultLanguage; } LoadLanguage(currentLang); Storage.SetStoredLanguageId(currentLang); if (_dontDestroyOnLoad) { DontDestroyOnLoad(this); } }
/// <summary> Converts a SystemLanugage value into a CultureInfo. </summary> /// <param name="systemLanguage"> the SystemLanugage value to map </param> /// <returns> the corresponding CultureInfo </returns> public static CultureInfo ToCultureInfo(this SystemLanguage systemLanguage) { if (systemLanguage == SystemLanguage.Unknown) { return(CultureInfo.InvariantCulture); } return(new CultureInfo(systemLanguage.ToIdentifier())); }