Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net SQL Server中维护的多语言WebForms_Asp.net_Sql Server_Xml_Forms_Multilingual - Fatal编程技术网

Asp.net SQL Server中维护的多语言WebForms

Asp.net SQL Server中维护的多语言WebForms,asp.net,sql-server,xml,forms,multilingual,Asp.net,Sql Server,Xml,Forms,Multilingual,这个问题是为有经验的人提出的,希望他能在我努力完成的事情上有经验 目标: 我有一个在ASP.NET上开发的带有几个英文下拉列表的Web表单 用户1:选择所需的选项,然后将英文值提交到SQL Server数据库 用户2:然后选择一种语言来查看表单的可打印版本。然后将英文值转换为所选语言进行打印(可能是通过一些XML文件进行扩展) 使用XML文件进行翻译是一种很好的方法,还是更好的解决方案 如果这是一个好方法,有没有关于如何实施的建议 如果这是一种不好的方法,最好的方法是什么 我建议您这样做:

这个问题是为有经验的人提出的,希望他能在我努力完成的事情上有经验

目标

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

  • 用户1:选择所需的选项,然后将英文值提交到SQL Server数据库
  • 用户2:然后选择一种语言来查看表单的可打印版本。然后将英文值转换为所选语言进行打印(可能是通过一些XML文件进行扩展)
使用XML文件进行翻译是一种很好的方法,还是更好的解决方案

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

    • 我建议您这样做:

      我有四张桌子

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

      这样,每个dropdownitem都有一个唯一的id(DropdownItemID)。您可以联接表1、2、5,以获取所选区域设置的下拉项的本地化文本,但所有语言中的下拉项ID都保持不变。这更易于维护和扩展。

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

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

      至于区域设置,我将使用culturecode而不是单独的表。Eeach HttpRequest附带一个设置为用户浏览器语言的cultureinfo。类似“en-US”的东西。在表中使用此代码可以有效地选择正确的语言。

      @Jeroen:请查看我的更改。我犯了错误。不过,要回答您的问题,这是因为我想让数据库完全用英语维护。我只是认为对于简单的翻译,最好以XML格式存储。这不好吗?哇!这些都是令人惊讶的建议。在这个问题上,我很难只选择一个答案。这可能是我认为对其他发现这个问题的人最有利的一个。我实际上是在调查CultureUI课程。不过我只想翻译可打印的表单。实际的用户界面应该保持英语。这是否适用于您建议的结构?是的,您可以在一页中使用culturecode“en US”提取所有数据,并在打印页面上使用用户的culturecode。(System.Threading.Thread.CurrentThread.CurrentUICulture)我终于回到了这个问题上,您的解决方案似乎是最简单的,同时满足了我的需求。谢谢;)现在我只需要找出SP中插入新列表、项目和翻译的错误,然后我就可以设置了。这是一个很好的答案。我想这可能比我的目的需要的多一点,但肯定是一个更完整、更有力的答案。谢谢:)我使用这种方法来满足类似的要求,到目前为止没有投诉:)