.NET control локализация - как перевести пользовательскую строку - PullRequest
1 голос
/ 12 октября 2009

Я создаю многоязычное приложение с использованием Windows Forms. Я создал свой многоязычный контент, пометив формы как локализуемые и переключив язык на что-то другое, отличное от значения по умолчанию, и изменив текст формы.

Это прекрасно работает, но есть небольшая проблема с этим. В одной из форм я должен настроить текст для отображения в конструкторе формы. И теперь проблема в том, что если я введу его на языке по умолчанию, он будет отображаться на этом языке, даже если культура будет переключена на что-то другое.

Я хотел бы знать, какой самый простой или эффективный способ локализации такой строки.

Просто пример того, какое сообщение мне нужно локализовать:

class MyForm : Form
{
    public MyForm()
    {
        if (myAdapter.ConnectionStatus == ConnectionStatus.OK)
        {
            statusLabel.Text = "Connected";
        }
        else 
        {
            statusLabel.Text = "Not connected";
        }
    }
}

В этом примере я хотел бы локализовать «Подключен» и «Не подключен» на основе текущей информации о культуре.

1 Ответ

7 голосов
/ 12 октября 2009

Когда вы помечаете форму как локализуемую, вы создаете отдельный файл ресурсов для каждого языка. Вы должны добавить строковый ключ в файл ресурсов для «Подключен» и «Не подключен» и вручную извлекать файл ресурсов вместо жесткого кодирования строки.

ResourceManager resmgr = new ResourceManager("MyResource", Assembly.GetExecutingAssembly());

private CultureInfo englishCulture = new CultureInfo("en-US");
private CultureInfo frenchCulture = new CultureInfo("fr-FR");
private CultureInfo spanishCulture = new CultureInfo("es-ES");

Затем, чтобы получить строку, вызовите GetString () с ключом и культурой

string msg = resmgr.GetString("FormLabel.Connected",frenchCulture);
string msg = resmgr.GetString("FormLabel.NotConnected", frenchCulture);

Вы, вероятно, уже управляете своей культурой, поэтому вы должны использовать это, тогда вам просто нужно указать, какой ключ использовать, чтобы получить правильное значение из файла ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...