【问题标题】:Multilingual WebForms Maintained in SQL ServerSQL Server 中维护的多语言 WebForms
【发布时间】:2011-08-12 17:53:24
【问题描述】:

这个问题是针对希望对我想要完成的工作有经验的人。

目标

我有一个在 ASP.NET 上开发的带有几个英文下拉列表的 Web 表单。

  • 用户 1:选择他们想要的选项,然后将英文值提交到 SQL Server 数据库。
  • 用户 2:然后选择一种语言来查看表单的可打印版本。然后将英语值翻译成所选语言进行打印(可能通过一些 XML 文件进行扩展)。

使用 XML 文件进行翻译是一种好方法,还是更好的解决方案?

  • 如果这是一个好方法,有什么关于如何实施的建议吗?
  • 如果这是一种不好的方法,最好的方法是什么

【问题讨论】:

  • @Jeroen:请查看我的更改。我吐了。不过,要回答您的问题,这是因为我想将数据库完全保持为英文以实现可维护性。我只是认为对于简单的翻译,最好以 XML 格式存储它们。这很糟糕吗?
  • 哇!这些都是很棒的建议。我将很难在这个问题上只选择一个答案。这可能是我认为最有利于发现此问题的其他人的问题。

标签: asp.net sql-server xml forms multilingual


【解决方案1】:

假设每个下拉菜单的项目都是唯一的。我认为你只需要 3 张桌子。

* for the dropdowns (dropdownid, name)
* for the dropdown items (dropdownitemid, dropdownid)
* for the translated items. (id, dropdownitemid, text, culturecode)

至于语言环境,我会使用文化代码而不是单独的表格。每个 HttpRequest 都带有一个设置为用户浏览器语言的文化信息。类似“en-US”的东西。在表格中使用此代码可让您有效地选择正确的语言。

【讨论】:

  • 我实际上正在研究 CultureUI 类。我只想翻译可打印的表格。实际的用户界面应保持英文。这适用于您建议的结构吗?
  • 是的,一页您可以使用文化代码“en-US”提取所有数据,并在打印页面上使用用户的文化代码。 (System.Threading.Thread.CurrentThread.CurrentUICulture)
  • 我终于回到了这个问题上,看来您的解决方案在满足我的需求的同时是最简单的。谢谢 ;) 现在我只需要解决我的 SP 中的错误,以便插入新的列表、项目和翻译,然后就可以设置了。
【解决方案2】:

我建议你这样做:

有 4 张桌子

1) Dropdown (DropdownID, DropdownName, etc)
2) DropdownItems (DropdownItemID, DropDownItemName)
3) Dropdown_DropdownItems (DropdownID, DropdownItemID)
4) Locales (localeID, LocaleName)
5) DropdownItems_Locales(DropdownItemID, LocaleId, LocalText)

这样,每个下拉项 (DropdownItemID) 都有一个唯一的 ID。您加入表 1、2、5 以获取所选语言环境的下拉项目的本地化文本,但所有语言的 dropdownitemid 保持相同。这更易于维护和扩展。

【讨论】:

  • 这是一个很好的答案。我认为它可能比我需要的多一点,但肯定是一个更完整和更强大的答案。谢谢:)
  • 我正在使用这种方法来满足类似的要求,到目前为止还没有投诉:)
猜你喜欢
  • 2014-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-14
  • 2011-01-02
  • 2010-09-16
相关资源
最近更新 更多