Я согласен с тем, что рекомендации Microsoft по локализации Silverlight (и WPF и Windows Phone) очень элементарны. У него есть несколько проблем. Наиболее важными являются
- Трудно редактировать основной файл поддержки двух отдельных файлов: XAML и RESX
- Большая часть строкового содержимого при перемещении из XAML в RESX
- XAML становится намного труднее читать и поддерживать
Причина этого заключается в том, что инструменты Microsoft, такие как Visual Studio, не обеспечивают какой-либо способ локализации XAML. Здесь легко найти локализованный XAML и включить локализованный XAML вместе с локализованным RESX в файлы сателлитных сборок.
<TextBlock Text="Hello World"/>
гораздо проще просматривать, редактировать и поддерживать, чем
<TextBlock Text="{Binding Path=Resource1.HelloText, Source={StaticResource LocalizedString }}"/>
+
<data name="LocalizedString" xml:space="preserve">
<value>Hello World</value>
</data>
Что вам нужно сделать, это сохранить жесткую строку кодирования в XAML и локализовать сам XAML. Это становится очень сложно без хорошего инструмента. Вот почему я рекомендую вам использовать инструмент локализации, который может найти XAML. Одного этого не достаточно, потому что если вы локализовали XAML, вам все равно нужно скомпилировать их в файл сборки спутника и, наконец, включить спутник в файл XAP.
Вам необходим инструмент, который может локализовать RESX и XAML, а также компилировать локализованные файлы сателлитных сборок. Есть некоторые инструменты, которые могут сделать это (например, Sisulizer).
Если вы хотите использовать только Visual Studio, вам следует придерживаться передового опыта Microsoft.