示例#1
0
        public static bool Load()
        {
            var loadedAnything = false;

            LoggingWrapper.Log(LoggingWrapper.LogArea.Hidden, LoggingWrapper.LogType.Message, $"Loading localisations from {LocalisationFilePath}...");

            _localisations.Clear();

            if (Directory.Exists(LocalisationFilePath))
            {
                var potentialLocalisations = Directory.GetFiles(LocalisationFilePath);

                foreach (var potentialLocalisation in potentialLocalisations)
                {
                    var localisation = LoadLocalisation(potentialLocalisation);
                    if (localisation != null)
                    {
                        Save(localisation, potentialLocalisation);
                    }
                }

                loadedAnything = true;
            }
            else
            {
                LoggingWrapper.Log(LoggingWrapper.LogArea.Hidden, LoggingWrapper.LogType.Message, $"Creating base directory at {LocalisationFilePath} because it doesn't already exist.");

                Directory.CreateDirectory(LocalisationFilePath);
            }

            SaveDefault();

            if (_localisations.Count == 0)
            {
                _localisations.Add(new Localisation());
            }

            _currentLocalisation = GetLocalisation(UserModSettings.Settings.Language);

            return(loadedAnything);
        }
示例#2
0
        public static bool Save(Localisation localisation, string path)
        {
            if (localisation != null)
            {
                try
                {
                    using (var saveFile = File.CreateText(path))
                    {
                        var serialiser = Serialiser;
                        serialiser.Serialize(saveFile, localisation);
                    }

                    return(true);
                }
                catch (Exception ex)
                {
                    LoggingWrapper.Log(LoggingWrapper.LogArea.Hidden, LoggingWrapper.LogType.Error, "Couldn't save the default localisation file due to an error!");
                    LoggingWrapper.Log(LoggingWrapper.LogArea.Hidden, ex);
                }
            }

            return(false);
        }
示例#3
0
        public static void ChangeLocalisation(string isoCode)
        {
            LoggingWrapper.Log(LoggingWrapper.LogArea.Hidden, LoggingWrapper.LogType.Message, $"Changing localisation to {isoCode}.");

            _currentLocalisation = GetLocalisation(isoCode);
        }