У меня есть TextBlock в приложении WPF, где я хотел бы показать пользователю сообщение, подобное:Встроенные гиперссылки в WPF и локализации
Я могу выполнить это, выполнив:
<TextBlock>
<Hyperlink Command="{Binding RetryCommand}">
<Run Text="Retry" />
</Hyperlink>
<Run Text=" or " />
<Hyperlink Command="{Binding GoBackCommand}">
<Run Text="go back." />
</Hyperlink>
</TextBlock>
Однако это решение не очень удобно для локализации; это особенно проблематично в случае, когда предложения требуют перестановки в процессе локализации. Я бы предпочел указать что-то вроде "[Retry]({0}) or [go back.]({1})."
в файле resx и динамически вставлять гиперссылки в локализованную строку. Есть ли простой и простой способ сделать это?
В другом приложении мы использовали удивительно сложное решение, включающее расширение класса TextBlock и динамическое построение свойства Inlines, но оно показалось многим кодом для того, что должно быть общей проблемой.
Похожие вопросы: Is adding strings with placeholders (`{0}`) into resources a good idea?, How to embed links in localized text