powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Localization
21 сообщений из 21, страница 1 из 1
Localization
    #37278442
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Настроил локализацию с использованием файлов *.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
Localization
    #37278466
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Localization
    #37278509
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pavluha,

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

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

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

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


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

так вы вот эту часть "Retrieving Specific Localized Resources" читали по ссылке?
если этот пункт соблюден, все должно заработать нормально.
...
Рейтинг: 0 / 0
Localization
    #37278947
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Localization
    #37279021
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уТКа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
Localization
    #37279173
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluha,

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

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

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

Написал класс:
Код: 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
Localization
    #37280194
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluha,

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

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


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

уТКаи скажите как тестируете 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
Localization
    #37280269
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluha,

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

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

каков итог?


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

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

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

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



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

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

каков итог?


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

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

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

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


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


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

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


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

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

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


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