ASP.NET:使用混合HTML格式本地化内容

ste*_*ann 14 html asp.net localization resx

在我的应用程序中,我有段落与混合静态文本和HTML格式和链接.我正在寻找一个良好的本地化解决方案,以保持资源与标记分离.假设我们有以下段落:

<p>Let's have a <a href="someURL">cup of coffee</a> and get <b>energized</b>.</p>
Run Code Online (Sandbox Code Playgroud)

使用标准的resx解决方案迫使我在resx字符串中嵌入HTML标记和链接目标.这很糟糕,因为它将标记/ CSS/app结构与资源结合在一起.

下一个最好的事情是拆分段落,使本地化内容永远不会包含标记.在上面的例子中,我将有4个段片段:1)"让我们有一个"作为纯文本2)"杯咖啡"作为链接3)"并得到"作为纯文本4)"充满活力"作为粗体文本

这个解决方案的问题在于,碎片使得资源维护成为一个完整的噩梦,而且它会强制段落片段的某个顺序,这可能不符合所有文化的语法.例如,在翻译的语言中,正确的翻译可能是

<p>Let's get <b>energized</b> with a <a href="someURL">cup of coffee</a>.</p>
Run Code Online (Sandbox Code Playgroud)

我不认为我可以完全没有将标记嵌入资源中,这可能不是什么大不了的事.使用适当的标记/ CSS(span,div,id,class),我可以创建可以减少耦合影响的抽象.

我怎么处理链接URL?谢谢,

斯特凡

Rah*_*hul 3

不要将 HTML 视为“格式化”,而是将其视为结构,并将其全部保存到资源数据存储(例如 resx、数据库、xml 文件或其他内容)。然后您就可以不再担心段落内的小文本了。相反,您将根据区域设置对名为“paragraph_energized_with_coffee”或其他内容的资源进行一些引用,并且您用来编辑资源的任何软件将决定编辑器在构建每个资源内的 html 时具有何种灵活性。