файлы стандартных ресурсов
В нашем примере будет три локализации с нейтральной культурой: русская (ru), французская (fr) и по умолчанию (en), если например у пользователя установлена немецкая культура и отсутствует русская и английская, тогда у него все надписи будут отображаться на английском языке.
Создание локализации по умолчанию с нейтральной культурой.
Создайте проект. В свойствах формы выберите Localizable и присвойте значение true. Language пусть остается по умолчанию Default.
Создайте проект. В свойствах формы выберите Localizable и присвойте значение true. Language пусть остается по умолчанию Default.
Перетащите элементы управления на форму и присвойте свойству Text значения на английском языке.
Создание русской локализации с нейтральной культурой.
Свойству формы Language присвойте значение ru и нажмите Enter. Компилятор сам напишет полное название. В каждом элементе управления измените название на русское.
Свойству формы Language присвойте значение ru и нажмите Enter. Компилятор сам напишет полное название. В каждом элементе управления измените название на русское.
Создание французской локализации с нейтральной культурой.
Свойству формы Language присвойте значение fr и нажмите Enter. Компилятор сам напишет полное название. В каждом элементе управления измените название на французское.
Свойству формы Language присвойте значение fr и нажмите Enter. Компилятор сам напишет полное название. В каждом элементе управления измените название на французское.
Visual Studio сгенерировала файлы.
По умолчанию.
Русский.
Французский.
Form1.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace _0081 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if(textBox1.Text == "sergey" & textBox2.Text == "123456") { MessageBox.Show("Welcome!"); } else { MessageBox.Show("Excuse me, try again."); } } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace _0081 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if(textBox1.Text == "sergey" & textBox2.Text == "123456") { MessageBox.Show("Welcome!"); } else { MessageBox.Show("Excuse me, try again."); } } } }
файлы собственных ресурсов
В этом примере будет три кнопки с названиями языков, по умолчанию будет английский язык. Если пользователь выбрал язык и правильно или не правильно ввел данные, то названия на форме и диалоговое окно будет на языке, который он выбрал.
EN.resx
FR.resx
RU.resx
Form1.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Resources; namespace _0082 { public partial class Form1 : Form { ResourceManager rs = null; string language = string.Empty; public Form1() { InitializeComponent(); rs = new ResourceManager("_0082.EN", typeof(Form1).Assembly); this.Text = rs.GetString("Form1.Text"); groupBox1.Text = rs.GetString("groupBox1.Text"); label1.Text = rs.GetString("label1.Text"); label2.Text = rs.GetString("label2.Text"); button1.Text = rs.GetString("button1.Text"); language = "English"; } //EN private void toolStripButton1_Click(object sender, EventArgs e) { rs = new ResourceManager("_0082.EN", typeof(Form1).Assembly); this.Text = rs.GetString("Form1.Text"); groupBox1.Text = rs.GetString("groupBox1.Text"); label1.Text = rs.GetString("label1.Text"); label2.Text = rs.GetString("label2.Text"); button1.Text = rs.GetString("button1.Text"); language = "French"; } //FR private void toolStripButton2_Click(object sender, EventArgs e) { rs = new ResourceManager("_0082.FR", typeof(Form1).Assembly); this.Text = rs.GetString("Form1.Text"); groupBox1.Text = rs.GetString("groupBox1.Text"); label1.Text = rs.GetString("label1.Text"); label2.Text = rs.GetString("label2.Text"); button1.Text = rs.GetString("button1.Text"); } //RU private void toolStripButton3_Click(object sender, EventArgs e) { rs = new ResourceManager("_0082.RU", typeof(Form1).Assembly); this.Text = rs.GetString("Form1.Text"); groupBox1.Text = rs.GetString("groupBox1.Text"); label1.Text = rs.GetString("label1.Text"); label2.Text = rs.GetString("label2.Text"); button1.Text = rs.GetString("button1.Text"); language = "Russian"; } //Perform Effectuer Выполнить private void button1_Click(object sender, EventArgs e) { if(language == "English") { if(textBox1.Text == "sergey" & textBox2.Text == "123456") { MessageBox.Show(rs.GetString("text1")); } else { MessageBox.Show(rs.GetString("text2")); } } else if(language == "French") { if(textBox1.Text == "sergey" & textBox2.Text == "123456") { MessageBox.Show(rs.GetString("text1")); } else { MessageBox.Show(rs.GetString("text2")); } } else if(language == "Russian") { if(textBox1.Text == "sergey" & textBox2.Text == "123456") { MessageBox.Show(rs.GetString("text1")); } else { MessageBox.Show(rs.GetString("text2")); } } } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Resources; namespace _0082 { public partial class Form1 : Form { ResourceManager rs = null; string language = string.Empty; public Form1() { InitializeComponent(); rs = new ResourceManager("_0082.EN", typeof(Form1).Assembly); this.Text = rs.GetString("Form1.Text"); groupBox1.Text = rs.GetString("groupBox1.Text"); label1.Text = rs.GetString("label1.Text"); label2.Text = rs.GetString("label2.Text"); button1.Text = rs.GetString("button1.Text"); language = "English"; } //EN private void toolStripButton1_Click(object sender, EventArgs e) { rs = new ResourceManager("_0082.EN", typeof(Form1).Assembly); this.Text = rs.GetString("Form1.Text"); groupBox1.Text = rs.GetString("groupBox1.Text"); label1.Text = rs.GetString("label1.Text"); label2.Text = rs.GetString("label2.Text"); button1.Text = rs.GetString("button1.Text"); language = "French"; } //FR private void toolStripButton2_Click(object sender, EventArgs e) { rs = new ResourceManager("_0082.FR", typeof(Form1).Assembly); this.Text = rs.GetString("Form1.Text"); groupBox1.Text = rs.GetString("groupBox1.Text"); label1.Text = rs.GetString("label1.Text"); label2.Text = rs.GetString("label2.Text"); button1.Text = rs.GetString("button1.Text"); } //RU private void toolStripButton3_Click(object sender, EventArgs e) { rs = new ResourceManager("_0082.RU", typeof(Form1).Assembly); this.Text = rs.GetString("Form1.Text"); groupBox1.Text = rs.GetString("groupBox1.Text"); label1.Text = rs.GetString("label1.Text"); label2.Text = rs.GetString("label2.Text"); button1.Text = rs.GetString("button1.Text"); language = "Russian"; } //Perform Effectuer Выполнить private void button1_Click(object sender, EventArgs e) { if(language == "English") { if(textBox1.Text == "sergey" & textBox2.Text == "123456") { MessageBox.Show(rs.GetString("text1")); } else { MessageBox.Show(rs.GetString("text2")); } } else if(language == "French") { if(textBox1.Text == "sergey" & textBox2.Text == "123456") { MessageBox.Show(rs.GetString("text1")); } else { MessageBox.Show(rs.GetString("text2")); } } else if(language == "Russian") { if(textBox1.Text == "sergey" & textBox2.Text == "123456") { MessageBox.Show(rs.GetString("text1")); } else { MessageBox.Show(rs.GetString("text2")); } } } } }