0

我正在开发我的第一个多语言 C# 站点,除了一个关键方面,一切都很好。我不是 100% 确定存储字符串(通常是单个单词)的最佳选择是什么,这些字符串将由我的页面代码中的代码翻译。

在网站的前端,我将使用 asp.net 资源文件作为页面上的文字。这部分很好。但是,该站点将进行 XML 调用,并且 XML 响应始终只有英文。我收到了一张 Excel 表格,其中包含将由 XML 返回的所有单词,这些单词被分解成不同的语言,但我不确定如何最好地存储/访问这些信息。大约有 80 个单词 x 7 种语言。

我正在考虑为我的 global.asax 文件在应用程序运行时创建的每种语言创建一个字典对象,并将其存储在内存中。这样做的好处是字典对象只需创建一次(直到 IIS 重新启动),任何用户都可以访问而无需重建,但缺点是我有 7 个字典对象不断存储在内存中。服务器是 Win 2008 64 位 4GB 内存所以我什至应该关心使用这种方法占用的内存吗?

你们认为存储/检索所有用户将使用的不同语言单词的最佳方法是什么?

感谢您的输入。

富有的

4

2 回答 2

1

根据您所说,您正在查看 560 个单词,这些单词需要根据语言环境而有所不同。这是沧海一粟。您考虑的资源文件方法适合目的,我建议使用它们。它们与控件集成,因此您将充分利用它们。

如果它确实给您带来麻烦,您可以将它们放在滑动缓存上,例如 20 分钟的滑动缓存,但我认为您在此解决方案中的选择没有任何问题。

公开市场营销

干杯,

安德鲁

Ps 通读了这篇文章,了解如何在不同的资源文件中找到值并将其绑定到控件和文字并以编程方式使用。

http://msdn.microsoft.com/en-us/magazine/cc163566.aspx

于 2009-08-24T16:33:57.513 回答
0

只要您知道这样做的影响,那么可以,将这些数据存储在内存中就可以了(只要您有足够的能力这样做)。一旦您知道什么适合当前用户,然后将其扔到内存中就可以了。您可能会查看 MemCached Win32 或 Velocity 之类的东西,但可以将存储卸载到另一个应用服务器。暂时在您的本地应用程序上使用它,当需要将其推送到另一台服务器或扩展您的应用程序时,您在缓存层定义了明确的关注点分离。请记住,您支持的语言越多,您在内存中存储的内容就越多。密切注意存储在您的单独应用服务器上的内存中的数据量,因为这可能会随着时间的推移而变得不堪重负。此外,请确保您使用的键是特定于语言的。

于 2009-08-24T16:35:09.180 回答