From 65b161fdd8406414adaf1f4c0a14b90bc6f02e37 Mon Sep 17 00:00:00 2001 From: Student Main Date: Sun, 22 Dec 2019 19:23:49 +0800 Subject: [PATCH] Fix IndexOutOfRange when init i18n --- shadowsocks-csharp/Controller/I18N.cs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/shadowsocks-csharp/Controller/I18N.cs b/shadowsocks-csharp/Controller/I18N.cs index 608492cf..99e38cde 100755 --- a/shadowsocks-csharp/Controller/I18N.cs +++ b/shadowsocks-csharp/Controller/I18N.cs @@ -12,7 +12,7 @@ namespace Shadowsocks.Controller public static class I18N { - private static readonly string I18N_FILE = "i18n.csv"; + private const string I18N_FILE = "i18n.csv"; private static Dictionary _strings = new Dictionary(); @@ -45,14 +45,16 @@ namespace Shadowsocks.Controller if (localeNames[i].Split('-')[0] == localeNoRegion) targetIndex = i; } - Logging.Info($"Using {localeNames[targetIndex]} translation for {locale}"); - } - - // Still not found, exit - if (targetIndex == -1 || enIndex == targetIndex) - { - Logging.Info($"Translation for {locale} not found"); - return; + if (targetIndex != -1 && enIndex != targetIndex) + { + Logging.Info($"Using {localeNames[targetIndex]} translation for {locale}"); + } + else + { + // Still not found, exit + Logging.Info($"Translation for {locale} not found"); + return; + } } // read translation lines @@ -75,6 +77,7 @@ namespace Shadowsocks.Controller static I18N() { string i18n; + string locale = CultureInfo.CurrentCulture.Name; if (!File.Exists(I18N_FILE)) { i18n = Resources.i18n_csv; @@ -84,8 +87,8 @@ namespace Shadowsocks.Controller { i18n = File.ReadAllText(I18N_FILE, Encoding.UTF8); } - Logging.Info("Current language is: " + CultureInfo.CurrentCulture.Name); - Init(i18n, CultureInfo.CurrentCulture.Name); + Logging.Info("Current language is: " + locale); + Init(i18n, locale); } public static string GetString(string key, params object[] args)