Мы разработали решение локализации с использованием пользовательского расширения разметки в VS 2008.
В то время мы использовали это так:
<TextBlock Text={utilsWpf:Intl Key=ObjectName.PropertyName, DefaultText=Default Name} />
(обратите внимание на пробел в тексте по умолчанию). (Обратите также внимание на то, как инструмент для изменения цвета текста в StackOverflow также меняет цвет слов).
Но работает нормально и без проблем компилируется.
В VS 2010, однако, всякий раз, когда вы пытаетесь ввести пробел, используя этот способ реализации расширения разметки, IDE всегда добавляет вам запятую, которая дает:
<TextBlock Text={utilsWpf:Intl Key=ObjectName.PropertyName, DefaultText=Default, Name} />
Конечно, он больше не компилируется ...
Одним из решений этой проблемы является реализация этого расширения разметки другим способом:
<TextBlock>
<TextBlock.Text>
<utilsWpf:Intl Key="ObjectName.PropertyName", DefaultText="Default Name"/>
</TextBlock.Text>
</TextBlock>
Но это добавляет много строк, и у нас нет только одного текстового блока, как вы можете себе представить ...
Другое решение - не вводить пространство, а копировать другое пространство и вставлять его (которое все еще компилируется в VS 2010, но довольно грубое).
На мой взгляд, наше решение не лучшая практика.
Какую наилучшую практику вы бы посоветовали, чтобы иметь возможность печатать пробелы без неудобств?
Спасибо за ваши идеи.