Если вы используете функцию локализации, встроенную в Visual Studio / .NET Framework, для локализации ваших форм (включая списки со списком), он генерирует код, подобный следующему:
Найдено в Form1.de.resx:
<data name="comboBox1.Items" xml:space="preserve">
<value>Auto</value>
</data>
<data name="comboBox1.Items1" xml:space="preserve">
<value>Bahn</value>
</data>
Найдено в Form1.resx:
<data name="comboBox1.Items" xml:space="preserve">
<value>Car</value>
</data>
<data name="comboBox1.Items1" xml:space="preserve">
<value>Train</value>
</data>
И загружает их вот так (находится в Form1.Designer.cs в Initializecomponent):
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
resources.ApplyResources(this.comboBox1, "comboBox1");
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Items.AddRange(new object[] {
resources.GetString("comboBox1.Items"),
resources.GetString("comboBox1.Items1")});
this.comboBox1.Name = "comboBox1";
Возможно, это не совсем тот ответ, который вы просили, но, поскольку разработчики .NET решили ту же самую проблему, я подозреваю, что она будет интересна.
Если вы хотите использовать собственную локализацию .NET / VS, просто установите свойство Language формы, а затем обновите все строки через IDE. Когда вы вернетесь к (По умолчанию) ваши исходные строки будут восстановлены. Оба языка будут запомнены в языковых файлах resx.