- Добавьте файл ресурсов в свой проект (вы можете назвать его «strings.resx»), выполнив следующие действия:
Щелкните правой кнопкой мыши Свойства в проекте, выберите Добавить - > Новый элемент ... в контекстном меню, затем в списке Элементы Visual C # выберите "Файл ресурсов" и назовите его strings.resx
.
- Добавьте строку resouce в файл resx и дайте ей хорошее имя (пример: назовите ее «Hello» и присвойте ей значение «Hello»)
- Сохранить файл ресурсов ( примечание: это будет файл ресурсов по умолчанию , так как он не имеет двухбуквенного кода языка)
- Добавьте ссылки на вашу программу:
System.Threading
и System.Globalization
Запустите этот код:
Console.WriteLine(Properties.strings.Hello);
Должно быть напечатано «Hello».
Теперь добавьте новый файл ресурсов с именем "strings.fr.resx" (обратите внимание на часть "fr"; она будет содержать ресурсы на французском языке). Добавьте строковый ресурс с тем же именем, что и в strings.resx, но со значением на французском языке (Name = "Hello", Value = "Salut"). Теперь, если вы запустите следующий код, он должен напечатать Salut:
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("fr-FR");
Console.WriteLine(Properties.strings.Hello);
В результате система будет искать ресурс для "fr-FR". Он не найдет его (поскольку мы указали «fr» в вашем файле »). Затем он обратится к проверке« fr », которую он находит (и использует).
Следующий код выведет «Hello»:
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
Console.WriteLine(Properties.strings.Hello);
Это потому, что он не находит никаких ресурсов "en-US", а также нет ресурса "en", поэтому он вернется к значению по умолчанию, которое мы добавили с самого начала.
При необходимости вы можете создавать файлы с более конкретными ресурсами (например, strings.fr-FR.resx и strings.fr-CA.resx для французского во Франции и Канаде соответственно). В каждый такой файл вам нужно будет добавить ресурсы для тех строк, которые отличаются от ресурса, к которому он будет возвращен. Таким образом, если текст одинаков во Франции и Канаде, вы можете поместить его в strings.fr.resx, а строки, отличающиеся на канадском французском языке, могут перейти в strings.fr-CA.resx.