Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Localization / 21 сообщений из 21, страница 1 из 1
25.05.2011, 13:40
    #37278442
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
Настроил локализацию с использованием файлов *.resx
При смене страны все данные в файлах xaml отображаются на нужном языке, но
данные установленные в code-behind берутся из ресурса, который используется по-умолчанию
Код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
class UserSaveValidator : AbstractValidator<UserData>
	{
		public UserSaveValidator()
		{

			RuleFor(x => x.UserName).NotEmpty().WithMessage(Properties.Resources.Account_MustSpecifyUsername);
		}
	}

И еще одна проблема. Как обновить Page так, чтобы заново инициализировались все контролы?
При смене языка все изменения происходят только при переходе на следующую страницу.
...
Рейтинг: 0 / 0
25.05.2011, 13:55
    #37278466
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
...
Рейтинг: 0 / 0
25.05.2011, 14:16
    #37278509
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
Pavluha,

Проверил, что выводится из кода контрола.
Все хорошо выводится. Видимо, дело именно в классе UserSaveValidator : AbstractValidator<UserData>

Мб есть у кого-нибудь идее, что не так?
...
Рейтинг: 0 / 0
25.05.2011, 16:02
    #37278760
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
Pavluha,

так если выводится не та локализация, значит локализация не цепляется.
...
Рейтинг: 0 / 0
25.05.2011, 16:27
    #37278825
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
уТКаPavluha,

так если выводится не та локализация, значит локализация не цепляется.


Это я понял, а вот почему нет ((
...
Рейтинг: 0 / 0
25.05.2011, 16:58
    #37278923
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
Pavluha,

так вы вот эту часть "Retrieving Specific Localized Resources" читали по ссылке?
если этот пункт соблюден, все должно заработать нормально.
...
Рейтинг: 0 / 0
25.05.2011, 17:06
    #37278947
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
Pavluha,

у себя в проге локализованные строки я достаю так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
public static class ResourceWrapper
{
  private static ApplicationStrings applicationStrings = new ApplicationStrings();
  ...
  public static string GetAppStringByName(string name)
  {
    return applicationStrings.ResourceManager.GetString(name, applicationStrings.Culture);
  }
}
используем так
Код: plaintext
1.
myButton.Content = ResourceWrapper.GetAppStringByName("login_button");
...
Рейтинг: 0 / 0
25.05.2011, 17:46
    #37279021
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
уТКаPavluha,

так вы вот эту часть "Retrieving Specific Localized Resources" читали по ссылке?
если этот пункт соблюден, все должно заработать нормально.


Этот вариант попробовал, но все также.
Почему-то класс берет настройки системы, а не приложения
Код:
Код: plaintext
1.
2.
3.
ResourceManager rm = new ResourceManager("Monitoring.Properties.Resources", System.Reflection.Assembly.GetExecutingAssembly());
CultureInfo ci = Thread.CurrentThread.CurrentCulture;
String str = rm.GetString("Account_MustSpecifyUsername", ci);
...
Рейтинг: 0 / 0
25.05.2011, 18:58
    #37279173
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
Pavluha,

посмотрите именование Русерсов файлов, возможно там собака порылась.

да, если это OOB, возможно там нужны дополнительные настройки.
...
Рейтинг: 0 / 0
26.05.2011, 11:13
    #37280030
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
уТКа,

Если бы проблема была в именовании, но из основного когда класса также все криво бы работало.

Написал класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
public class ResourceWrapper
	{
		protected ResourceWrapper() { }
		private sealed class SingletonCreator
		{
			private static readonly ResourceWrapper instance = new ResourceWrapper();
			public static ResourceWrapper Instance { get { return instance; } }
		}

		private ResourceManager _rm;
		public static ResourceWrapper Instance
		{
			get { return SingletonCreator.Instance; }
		}

		public void Init(ResourceManager RM)
		{
			_rm = RM;
		}

		public void SelectCulture(string culture)
		{
			if (string.IsNullOrEmpty(culture)) culture = "ru";

			// Inform the threads of the new culture      
			Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
			Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
		}

		public string GetStringByName(string name)
		{
			return _rm.GetString(name, Thread.CurrentThread.CurrentCulture);
		}
	}

Я забыл упомянуть о том, как проверка назначается методу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
class UserSaveValidator : AbstractValidator<UserData>
	{
		public UserSaveValidator()
		{

			RuleFor(x => x.UserName).NotEmpty().WithMessage(Properties.Resources.Account_MustSpecifyUsername);
		}
	}

[ValidateParameter("model", typeof(UserSaveValidator))]
		public ActionResult Submit(UserData model)
		{}

Из класса UserSaveValidator всегда культура России
...
Рейтинг: 0 / 0
26.05.2011, 12:10
    #37280194
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
Pavluha,

авторИз класса UserSaveValidator всегда культура России
так может код нужно подправить?
Код: plaintext
1.
2.
3.
4.
public UserSaveValidator()
{
  RuleFor(x => x.UserName).NotEmpty().WithMessage(ResourceWrapper.GetStringByName("Account_MustSpecifyUsername"));
}

и скажите как тестируете RU/EN локали, точнее как заставляете их включиться ?
...
Рейтинг: 0 / 0
26.05.2011, 12:19
    #37280221
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
уТКатак может код нужно подправить?


Все подправил и проверил.

уТКаи скажите как тестируете RU/EN локали, точнее как заставляете их включиться ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
			<TextBlock>
				<Hyperlink Click="Hyperlink_Click" CommandParameter="ru">
					<Image Height="12" Source="/Monitoring;component/Images/Flag/ru.png" Margin="5"/>
				</Hyperlink>
				<Hyperlink Click="Hyperlink_Click" CommandParameter="en">
					<Image Height="12" Source="/Monitoring;component/Images/Flag/gb.png" Margin="5"/>
				</Hyperlink>
			</TextBlock>


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
private void Hyperlink_Click(object sender, RoutedEventArgs e)
		{
			MessageBox.Show(ResourceWrapper.Instance.GetStringByName("Account_MustSpecifyUsername"));
			Hyperlink hl = sender as Hyperlink;

			ResourceWrapper.Instance.SelectCulture(hl.CommandParameter.ToString());
		}
...
Рейтинг: 0 / 0
26.05.2011, 12:39
    #37280269
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
Pavluha,

каков итог?
...
Рейтинг: 0 / 0
26.05.2011, 12:44
    #37280281
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
Pavluha,

у вас английская локаль отобразится при повторном нажатии hyperlink с английским параметром, и обратно пропорционально русская аналогично.
...
Рейтинг: 0 / 0
26.05.2011, 13:53
    #37280505
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
уТКаPavluha,

каков итог?


Отложил в долгий ящик. Стал делать другую часть.
Я же Magellan.Framework юзаю. Мб из-за него беда.

И еще, при нажатии на линк ничего не происходит, только при переходе на др Page меняется язык.
Видимо рендерить весь Page надо заново.
...
Рейтинг: 0 / 0
26.05.2011, 15:42
    #37280838
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
Pavluha,

косяк у вас в коде, вы выводите сообщение, перед тем, как назначаете локаль :)
...
Рейтинг: 0 / 0
26.05.2011, 15:51
    #37280862
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
уТКаPavluha,

косяк у вас в коде, вы выводите сообщение, перед тем, как назначаете локаль :)



Это я для себя вывел :-)))))
Проверить, что из кода работает

У меня в куске класса UserSaveValidator не работает.
...
Рейтинг: 0 / 0
26.05.2011, 20:54
    #37281434
i
i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
PavluhaуТКаPavluha,

каков итог?


Отложил в долгий ящик. Стал делать другую часть.
Я же Magellan.Framework юзаю. Мб из-за него беда.

И еще, при нажатии на линк ничего не происходит, только при переходе на др Page меняется язык.
Видимо рендерить весь Page надо заново.

А с чего вы взяли, что валидатор будет самостоятельно реагировать на изменение локали?
Или делать рефреш, или с помощью хаков отслеживать смену языка
...
Рейтинг: 0 / 0
26.05.2011, 22:03
    #37281507
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
PavluhaMagellan.Framework
Ужас. Порнот ы пионеры понадыдумывают всякой, а потом хоть кол в зад. Магеллан фреймворк, круто ёпт...
...
Рейтинг: 0 / 0
26.05.2011, 23:03
    #37281589
i
i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
МСУPavluhaMagellan.Framework
Ужас. Порнот ы пионеры понадыдумывают всякой, а потом хоть кол в зад. Магеллан фреймворк, круто ёпт...
И не говори, кума! ПОра тебе очередным админом нас осчастливить.

ЗЫ Ты его хотя бы смотрел? Не читал, но осуждаю!!!
ЗЫЫ И при чем там старая калоша?
...
Рейтинг: 0 / 0
27.05.2011, 09:27
    #37281824
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Localization
iА с чего вы взяли, что валидатор будет самостоятельно реагировать на изменение локали?
Или делать рефреш, или с помощью хаков отслеживать смену языка


Ни с чего я это не брал. Поэтому и написал, что бы узнать, как можно решить эту проблему.


В примерах, которые были в проекте Магеллана, реализован этот способ валидации данных.

МСУУжас. Порноты пионеры понадыдумывают всякой, а потом хоть кол в зад. Магеллан фреймворк, круто ёпт...


Вы его сами юзали, Магеллан фреймворк?

Сам пишу на ASP, больше на MVC, вот и решил поковыряться с Магеланном

А на WPF у меня столько же опыта, как у вас на Магеллан фреймворк, видимо
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Localization / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]