2013-08-29 52 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

我的話有多變的意思。我不能使用簡單的國際化。語言計數和含義計數是動態的。我只需要一個我可以在整個項目中使用的數據結構。 –

相關問題