Как получить локализованные строки по строковому коду, а не по имени свойства? - PullRequest
0 голосов
/ 09 февраля 2012

В приложении WindowsPhone я могу использовать локализацию следующим образом:

string LocalizedString = LocaleResource.MyPreciousString;

Но можно ли ссылаться на локализованные ресурсы по строковому коду, а не по имени свойства? Я хочу сделать что-то подобное:

string LocalizedString = LocaleResource.GetLocalizedStringByCode("MyPreciousString");

1 Ответ

0 голосов
/ 28 февраля 2012

Хорошо, так что "Используй отражение, Люк"!Этот код должен помочь:

public static string translate(string messageCode)
{
    PropertyInfo info = typeof(Resources.Locale)
        .GetProperty(
            messageCode, 
            BindingFlags.Public | BindingFlags.Static
        )
    ;
    return info != null 
        ? info.GetValue(null, null) as string 
        : messageCode
    ;
}

Итак, мы можем использовать этот метод в некотором классе Translator и получить локализованную строку по ее коду, представленному в виде строки.

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