Локализация службы рабочего процесса Windows Foundation

Я разрабатываю службу рабочих процессов, которая будет содержать (в конце концов) множество различных рабочих процессов, используемых для взаимодействия с пользователями.

Таким образом, эти рабочие процессы должны будут публиковать сообщения для пользователей, и эти сообщения должны быть локализованы.

Я хотел использовать файлы RESX и добавить дополнительный параметр при запуске рабочего процесса для установки требуемой культуры.

Это, однако, оказалось неудачным, поскольку служба WF (особенно когда речь идет о сохранении) создает новые потоки по мере необходимости, и, несмотря на установку текущей культуры в начале (и немного работает), в конце мой рабочий процесс вернется к культура по умолчанию.

Я также пытался установить параметр Culture статических классов, созданных файлами RESX, но это, похоже, меняет культуру по всем направлениям для всех запущенных рабочих процессов (которые, вероятно, должны будут выполняться в разных локалях).

Есть ли способ решить эту проблему?

ИЗМЕНИТЬ:

Я знаю, что мог бы использовать класс ResourceManager, потому что я могу передать язык и региональные параметры, которые я хочу использовать, но тогда вместо использования строго типизированных имен ресурсов, доступных в сгенерированных классах, мне нужно использовать строки - и легко сделать ошибку.

РЕДАКТИРОВАТЬ 2:

Еще одна вещь, которую я забыл упомянуть, но она немного связана с последней правкой о ResourceManager. Поскольку рабочих процессов будет много, я надеюсь, что смогу просто настроить среду и методологию и позволить другим, немного менее разбирающимся в компьютерах людям создавать эти рабочие процессы (или, по крайней мере, помогать их создавать). Поскольку общение с пользователями имеет решающее значение, использование ресурсов должно быть максимально простым.


person Shaamaan    schedule 06.06.2013    source источник


Ответы (2)


Попробуйте настроить переменную рабочего процесса для хранения текущей культуры, и в любое время, когда вам нужно использовать ее для локализации текста, вы можете получить значение из переменной рабочего процесса. Это также устраняет вероятность того, что ваш рабочий процесс может быть приостановлен, а затем возобновлен на другом сервере на другом конце мира, поэтому он сохранил исходную культуру, с которой он был создан.

person ajawad987    schedule 06.06.2013
comment
Как мне установить значение в этой переменной? Использование Assign может раздражать, если сообщений больше, а установка значений по умолчанию для указанных переменных приведет к тому, что все они в любом случае будут в en-US. Кроме того, я забыл упомянуть важный аспект всей проблемы - простоту использования - я отредактировал свой вопрос. - person Shaamaan; 07.06.2013