Я перевожу компактную форму окна 2.0 в Visual Studio 2005. Для этого я изменяю язык формы на немецкий (целевой язык) и редактирую / изменяю размеры элементов управления в форме. Это создает файл resources.de.resx, содержащий переведенные строки, как и ожидалось.
Однако в форме есть пользовательский элемент управления, который имеет свойство GroupText, которое также необходимо перевести. Однако конструктор форм отказывается использовать файлы ресурсов для этого свойства. Всякий раз, когда я изменяю свойство в редакторе свойств, оно изменяется для всех языков. Я проверил файлы resx - они не содержат свойства GroupText, и сгенерированный программой Designer код также не использует файл resx для этого свойства.
Есть ли способ включить локализацию на основе Resx и Visual Studio для пользовательских элементов управления?
Edit:
В дополнение к принятому ответу, вот что вам нужно сделать, чтобы получить файлы resx для работы пользовательских элементов управления.
Каждое свойство, которое должно входить в файл resx, должно иметь атрибут Localizable
, установленный на true
. Теперь CF не поддерживает этот атрибут через обычный синтаксис скобок. Вы не можете просто написать [Localizable=true]
в исходном файле cs. Вы должны создать отдельный файл с именем DesignTimeAttributes.xmta
в проекте и добавить следующее:
<?xml version="1.0" encoding="utf-16"?>
<Classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd">
<Class Name="MyControl">
<Property Name="MyProperty">
<Localizable>true</Localizable>
</Property>
</Class>
После перекомпоновки сборки, содержащей элемент управления, Visual Studio поместит значения свойств в файлы resx.