diff options
| author | Michael <[email protected]> | 2017-07-04 17:57:29 -0400 |
|---|---|---|
| committer | Michael <[email protected]> | 2017-07-04 17:57:29 -0400 |
| commit | 2adb8859edb95921e8f6d3cbb41fdc349825d6f8 (patch) | |
| tree | aa1780fe7f8e2c7ab759429aa53717d7a14ca7ef /ShiftOS.Frontend/MonoGameLanguageProvider.cs | |
| parent | 5515881e922de087f4e0f5db51ae681bcd7f70d6 (diff) | |
| download | shiftos_thereturn-2adb8859edb95921e8f6d3cbb41fdc349825d6f8.tar.gz shiftos_thereturn-2adb8859edb95921e8f6d3cbb41fdc349825d6f8.tar.bz2 shiftos_thereturn-2adb8859edb95921e8f6d3cbb41fdc349825d6f8.zip | |
abandon system.drawing for anything other than text
Diffstat (limited to 'ShiftOS.Frontend/MonoGameLanguageProvider.cs')
| -rw-r--r-- | ShiftOS.Frontend/MonoGameLanguageProvider.cs | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/ShiftOS.Frontend/MonoGameLanguageProvider.cs b/ShiftOS.Frontend/MonoGameLanguageProvider.cs new file mode 100644 index 0000000..9010cfa --- /dev/null +++ b/ShiftOS.Frontend/MonoGameLanguageProvider.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; +using ShiftOS.Engine; + +namespace ShiftOS.Frontend +{ + public class MonoGameLanguageProvider : ILanguageProvider + { + private string resourcesPath + { + get + { + return System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "ShiftOS", "languages"); + } + } + + public string[] GetAllLanguages() + { + if (!System.IO.Directory.Exists(resourcesPath)) + { + System.IO.Directory.CreateDirectory(resourcesPath); + } + return System.IO.Directory.GetFiles(resourcesPath).Where(x => x.ToLower().EndsWith(".lang")).ToArray(); + + } + + public string GetCurrentTranscript() + { + string lang = Objects.UserConfig.Get().Language; + if (string.IsNullOrWhiteSpace(lang)) + { + lang = "english"; + var conf = Objects.UserConfig.Get(); + conf.Language = lang; + System.IO.File.WriteAllText("servers.json", JsonConvert.SerializeObject(conf, Formatting.Indented)); + } + string foundPath = GetAllLanguages().FirstOrDefault(x => x.ToLower().EndsWith(lang + ".lang")); + //Update the english file. + System.IO.File.WriteAllText(System.IO.Path.Combine(resourcesPath, "english.lang"), Properties.Resources.strings_en); + //Update the french language pack. + System.IO.File.WriteAllText(System.IO.Path.Combine(resourcesPath, "french.lang"), Properties.Resources.strings_fr); + + if (!System.IO.File.Exists(foundPath)) + { + lang = "english"; + var conf = Objects.UserConfig.Get(); + conf.Language = lang; + System.IO.File.WriteAllText("servers.json", JsonConvert.SerializeObject(conf, Formatting.Indented)); + return Properties.Resources.strings_en; + } + else + { + return System.IO.File.ReadAllText(foundPath); + } + + } + + public string GetLanguagePath() + { + var lang = Objects.UserConfig.Get().Language; + if (string.IsNullOrWhiteSpace(lang) || !System.IO.File.Exists(System.IO.Path.Combine(resourcesPath, lang + ".lang"))) + { + lang = "english"; + var conf = Objects.UserConfig.Get(); + conf.Language = lang; + System.IO.File.WriteAllText("servers.json", JsonConvert.SerializeObject(conf, Formatting.Indented)); + System.IO.File.WriteAllText(System.IO.Path.Combine(resourcesPath, lang + ".lang"), Properties.Resources.strings_en); + } + return GetAllLanguages().FirstOrDefault(x => x.ToLower().EndsWith(lang + ".lang")); + } + + public List<string> GetJSONTranscripts() + { + var strings = new List<string>(); + foreach (var path in GetAllLanguages()) + strings.Add(System.IO.File.ReadAllText(path)); + return strings; + } + + public void WriteDefaultTranscript() + { + if (!System.IO.Directory.Exists(resourcesPath)) + System.IO.Directory.CreateDirectory(resourcesPath); + + //Update the english file. + System.IO.File.WriteAllText(System.IO.Path.Combine(resourcesPath, "english.lang"), Properties.Resources.strings_en); + //Update the french language pack. + System.IO.File.WriteAllText(System.IO.Path.Combine(resourcesPath, "french.lang"), Properties.Resources.strings_fr); + } + + public void WriteTranscript() + { + System.IO.File.WriteAllText(GetLanguagePath(), GetCurrentTranscript()); + } + + private string getDefault() + { + return Properties.Resources.strings_en; + } + + } +} |
