wpf и блок приложения проверки> локализация сообщений> messageTemplateResource Name & Type - PullRequest
0 голосов
/ 28 апреля 2010

Я пытаюсь написать правила проверки для своих объектов данных в WPF-приложении . Я пишу их в файле конфигурации, и пока они работают нормально.

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

<ruleset name="Rule Set">
    <properties>
        <property name="StringValue">
            <validator lowerBound="0" lowerBoundType="Ignore" upperBound="25"
          upperBoundType="Inclusive" negated="false" messageTemplate=""
          messageTemplateResourceName="msg1" messageTemplateResourceType="Resources"
          tag=""  
type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.StringLengthValidator, Microsoft.Practices.EnterpriseLibrary.Validation"
          name="String Length Validator" />
         </property>
    </properties>
</ruleset>

Где находится файл ресурса и какое значение я передаю messageTemplateResourceType? Я попытался записать сообщения в файл ресурсов проекта оболочки, но безуспешно пытался получить значение. Я получаю только встроенное сообщение по умолчанию.

Я пробовал

  • messageTemplateResourceType = "TypeOf (Ресурсы)"
  • messageTemplateResourceType = "Ресурсы"
  • messageTemplateResourceType = "Resources.resx"
  • messageTemplateResourceType = "TypeOf (Shell)"
  • messageTemplateResourceType = "Shell"
  • messageTemplateResourceType = "Shell, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = нуль "

Я также попытался добавить новый файл ресурсов в проект оболочки и добавить файл ресурсов в библиотеку объекта данных. У меня нет идей У кого-нибудь есть предложения? Я даже не женат на идее файлов ресурсов, поэтому, если есть другие способы локализации этих сообщений, я бы хотел знать!

спасибо

1 Ответ

0 голосов
/ 29 апреля 2010

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

<ruleset name="Rule Set">
  ...
  messageTemplateResourceName="msg1"  
  messageTemplateResourceType="My.Fully.Qualified.ResourceType, My.AssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
  ...
</ruleset>

Альтернативный способ сделать это - использовать messageTemplate в качестве ключа и написать собственный код для поиска фактической локализованной строки на основе ключа messageTemplate (либо из файла ресурсов, либо из базы данных, либо где бы вы ни хранили его ).

...