Как принудительно задать определенный язык и региональные параметры в строке c#

Я работаю над локализацией жестко закодированных строковых сообщений в решении, которое имеет более 30 проектов.
Все сообщения пользователя должны быть локализованы, за исключением сообщений журнала, так как они будут прочитаны разработчиками США, поэтому они должны оставаться на американском английском языке.Во всех проектах решения в каждом файле была создана строка с одним и тем же сообщением (с разным именем переменной в каждом), которая также входит в сообщения пользователя и журнала.

String s = "Unable to populate list: "
Log.Warning(LogCategory.NameLookupDialog, s + ex.Message + ex.StackTrace);
TXMessageBox.Show(s);

Строка в TXMessageBox будет извлечена из файлов ресурсов,но та, которая входит в сообщение журнала, должна оставаться US English.

Есть ли способ заставить американскую английскую культуру в строке s, когда она входит в сообщение журнала ?Другими словами, если язык и региональные параметры приложения изменились, например, на индийский, сообщение журнала должно оставаться на американском английском языке.
Вот то, что я пробовал до сих пор :
Я изменил культуру приложения на индийскую , затем я попытался установить культуру текста метки только на US English ,но это не сработало :

public void SwitchCulture()
        {
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-IN");
            Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
            this.lblLogMessage.Text = string.Format(new CultureInfo("en-US"), this.lblLogMessage.Text);
        }

Когда я запускаю это, я все еще вижу все этикетки на индийском языке .
Итак, есть идеи, как заставить культуру на струне ?

2 ответа

  1. Возможно, шрифт, который вы используете на этикетке, не принимает латинские символы. Смотрите этот предыдущий ответ: Как получить текст хинди (Unicode) из Textbox?

    Если это не работает, попробуйте установить CultureInfo в текущем потоке в EN-US перед установкой текста метки. Затем установите его обратно на хинди, когда вы закончите.

  2. Ресурсы.ResourceManager.GetString («ResourceKey», new CultureInfo («ru-US»))

    где AppResources-имя файла и имя класса ресурсов, а ResourceKey-имя ключа ресурса внутри файла resx.