Стандартные средства - есть. Если нужно локализовать форму, просто ставь Localizable=true и меняй Culture на другой язык - автоматически создадутся ресурсные файлы (.resx) и всё что поменяется на форме, будет сохранено в resx-файл для текущей культуры. Если нужно локализовать строки - добавляем в проект Add new item / Resource File, забиваем туда строки (можно напрямую редактировать resx или в виде таблицы, в студии), добавляем ещё один Resource File с тем же именем и суффиксом перед .resx (например Resource1.ru.resx) переводим строки на другой язык.
Программно получить строку для текущей культуры можно через статические свойства одноимённого класса (имя ресурсного файла = имя класса, а имя строки в ресурсе = имени свойства класса, например Resource1.myString).
Наконец, изменить во время выполнения приложения текущую культуру можно через свойство Thread.CurrentThread.CurrentUICulture или установив свойство Culture класса ресурса:
| Код | Resource1.Culture = CultureInfo.GetCultureInfo("ru");
//или
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("ru"); |
.resx это обычный XML-файл вида:
| Код | <?xml version="1.0" encoding="utf-8"?> <root> <!-- ... тут объявление схемы и прочая фигня ... --> <data name="String1" xml:space="preserve"> <value>asdasd</value> </data> </root>
|
|