在资源文件中存储格式化文本。这可能吗?

时间:2011-06-14 15:33:11

标签: asp.net-mvc localization

构建一个必须多语言的asp.net mvc网站,并想知道是否可以将格式化文本存储在资源文件中以及是否有意义。

很多页面都是静态的,用户可以编辑它们并添加自己的格式“Bold,italics等......” 并且想知道接近它的最佳方式是什么。

我不想创建一个页面x语言,并且存储在数据库中涉及创建一个结构来处理多种语言的相同信息。难以维护。

你以前做过吗?你是怎么做到的

任何建议 非常感谢

2 个答案:

答案 0 :(得分:0)

如果您的用户可以使用多种语言发布 - 最好使用数据库来存储信息和附带的格式。如果是网站上的标签和其他静态文本 - 资源文件是一个很好的解决方案。资源文件将内容存储为字符串 - 但在那里存储格式化文本会打破“将表示与逻辑分离”的思想。

答案 1 :(得分:0)

有可能吗?

当然可以。

有意义吗?

这取决于。我不建议使用资源文件(通过ResourceWriter)来存储 动态 内容。

您的问题

让我改一下(我不确定我是否理解正确)。您希望为用户提供更改演示文稿样式的功能。用户将能够更改样式,并且该更改将以某种方式传播到内容转换为的任何语言。

在这种情况下,我看到了一些问题:

  1. 如何将英文内容与已翻译的内容相匹配?
    翻译通常具有不同的顺序和可能不同数量的句子。除非......

  2. ,否则无法匹配它们
  3. 将此类信息与可翻译字符串一起存储在资源文件中会导致难以维护的内容。我相信你需要添加格式标签或带有样式信息的内容标签才能实现这一目标。结果将是一团糟;难以理解,难以修改。

  4. 好的,那你能做什么?实际上,我建议的是为CSS文件创建自定义机制。在您的情况下,您需要:

    1. 为每个结构元素(标签,如果您愿意)提供CSS类和唯一标识符(HTML id属性),以便您拥有类似<div id="main" class="main"><p id="p1" class="normal">...的内容。 id会让用户能够准确地定位该元素而不会触及其他元素(通过#p1.normal { // definition here })。
    2. 将CSS存储在数据库中并为用户创建一些编辑器。
    3. 根据网络浏览器的请求,创建一个Handler来从数据库中提供CSS。
    4. 即使有了这样的解决方案,你也无法避免一些问题。一个是你需要在翻译成某些语言时实际改变字体系列,因此你可能需要基于语言的CSS文件。当用户想要在某个单词上添加粗体属性时会弹出另一个问题 - 使用这样的解决方案这是不可能的(但说实话,如果你想允许这个,那么这对于我之前提到过的原因。) BTW。对于某些语言,应避免使用粗体字体。例如,如果您设法用粗体字输出中文字符,则很难阅读。