private static void OnLanguageChange(LocalizedContentManager.LanguageCode code) { if (SpriteTextHelper._characterMap != null) { SpriteTextHelper._characterMap.Clear(); } else { SpriteTextHelper._characterMap = new Dictionary <char, FontChar>(); } if (SpriteTextHelper.fontPages != null) { SpriteTextHelper.fontPages.Clear(); } else { SpriteTextHelper.fontPages = new List <Texture2D>(); } switch (code) { case LocalizedContentManager.LanguageCode.ja: SpriteTextHelper.FontFile = SpriteTextHelper.LoadFont("Fonts\\Japanese"); SpriteText.fontPixelZoom = 1.75f; break; case LocalizedContentManager.LanguageCode.ru: SpriteTextHelper.FontFile = SpriteTextHelper.LoadFont("Fonts\\Russian"); SpriteText.fontPixelZoom = 3f; break; case LocalizedContentManager.LanguageCode.zh: SpriteTextHelper.FontFile = SpriteTextHelper.LoadFont("Fonts\\Chinese"); SpriteText.fontPixelZoom = 1.5f; break; case LocalizedContentManager.LanguageCode.th: SpriteTextHelper.FontFile = SpriteTextHelper.LoadFont("Fonts\\Thai"); SpriteText.fontPixelZoom = 1.5f; break; case LocalizedContentManager.LanguageCode.ko: SpriteTextHelper.FontFile = SpriteTextHelper.LoadFont("Fonts\\Korean"); SpriteText.fontPixelZoom = 1.5f; break; } foreach (FontChar fontChar in SpriteTextHelper.FontFile.Chars) { char id = (char)fontChar.ID; SpriteTextHelper._characterMap.Add(id, fontChar); } foreach (FontPage page in SpriteTextHelper.FontFile.Pages) { SpriteTextHelper.fontPages.Add(Game1.content.Load <Texture2D>("Fonts\\" + page.File)); } }
private static void SetUpCharacterMap() { if (!LocalizedContentManager.CurrentLanguageLatin && SpriteTextHelper._characterMap == null) { SpriteTextHelper._characterMap = new Dictionary <char, FontChar>(); SpriteTextHelper.fontPages = new List <Texture2D>(); switch (LocalizedContentManager.CurrentLanguageCode) { case LocalizedContentManager.LanguageCode.ja: SpriteTextHelper.FontFile = SpriteTextHelper.LoadFont("Fonts\\Japanese"); SpriteText.fontPixelZoom = 1.75f; break; case LocalizedContentManager.LanguageCode.ru: SpriteTextHelper.FontFile = SpriteTextHelper.LoadFont("Fonts\\Russian"); SpriteText.fontPixelZoom = 3f; break; case LocalizedContentManager.LanguageCode.zh: SpriteTextHelper.FontFile = SpriteTextHelper.LoadFont("Fonts\\Chinese"); SpriteText.fontPixelZoom = 1.5f; break; case LocalizedContentManager.LanguageCode.th: SpriteTextHelper.FontFile = SpriteTextHelper.LoadFont("Fonts\\Thai"); SpriteText.fontPixelZoom = 1.5f; break; case LocalizedContentManager.LanguageCode.ko: SpriteTextHelper.FontFile = SpriteTextHelper.LoadFont("Fonts\\Korean"); SpriteText.fontPixelZoom = 1.5f; break; } foreach (FontChar fontChar in SpriteTextHelper.FontFile.Chars) { char id = (char)fontChar.ID; SpriteTextHelper._characterMap.Add(id, fontChar); } foreach (FontPage page in SpriteTextHelper.FontFile.Pages) { SpriteTextHelper.fontPages.Add(Game1.content.Load <Texture2D>("Fonts\\" + page.File)); } LocalizedContentManager.OnLanguageChange += new LocalizedContentManager.LanguageChangedHandler(SpriteTextHelper.OnLanguageChange); } else { if (!LocalizedContentManager.CurrentLanguageLatin || (double)SpriteText.fontPixelZoom >= 3.0) { return; } SpriteText.fontPixelZoom = 3f; } }