2013-08-29 50 views
0

我有一个支持多语言的ASP.NET MVC3应用程序。几乎每个单词都有多语言支持,并且在每个页面请求中,我从数据库中获取当前所选语言的所有单词到List,并且我将它用于每个Word:我为每个单元保留MeaningID,并打印出匹配的单词,从List 。成本高昂的方法,但比每个Word都要达到数据库要好。Session List Big List

不过,我想知道是否有一个数据结构可以在整个项目中全局使用,只有在用户更改所选语言时才从数据库加载。有没有类似列表结构的会话可以用于这种目的?

编辑:为了使事情更清晰我张贴我的数据库表。

--Word--   --WordBase--   --Language-- 
    ID     ID     ID 
    Text     Text     Name 
    BaseID 
    LanguageID 

,因为它是可见,WordBase s为的是Word S按一个Language取决于含义。示例数据是:

--Word--    --Base--    --Language-- 
1;Hallo;1;1   1;Hello    1-Deutsch 
2;Hello;1;2   2;Good    2-English 
3;Gut; 2;1 
4;Good; 2;2 
+0

我会看看这里:http://www.codeproject.com/Articles/181738/Creating-a-Bilingual-ASP-NET-MVC3-Application-Part –

+0

没有任何限制的话,含义和语言在我的应用程序。用户只应按主屏幕中的语言并以此方式使用它。在整个项目的使用过程中,我会自动添加单词。 –

回答

1

您的网络应用程序就像一本词典?我的意思是......你的“单词”是你的应用程序的数据......或者你在谈论国际化吗?

如果是国际化,我觉得有更好的方法来做到这一点...使用内置的工具检查此:http://afana.me/post/aspnet-mvc-internationalization.aspx

如果翻译的数据是太大......可能是你可以有一种混合方法......在数据库中保存令牌......并在资源文件中进行翻译。然后,缓存将很有用,特别是如果您的数据不会经常更改(您可以将缓存设置为30分钟......并且此时您可以避免SQL查询检索每个请求中的单词)。

+0

我的话有多变的意思。我不能使用简单的国际化。语言计数和含义计数是动态的。我只需要一个我可以在整个项目中使用的数据结构。 –

相关问题