【发布时间】:2009-02-10 13:14:36
【问题描述】:
我有一个需要支持多种语言的网络应用程序。我们目前在网站上有很多带有文字的图片。我试图找到一种方法来以最少的麻烦本地化这些图像。到目前为止,我想出的是将子文件夹添加到与所需语言相关的当前 /Images 文件夹中。例如,/Images 包含默认图像集,/Images/es-MX 包含西班牙-墨西哥本地化图像。
到目前为止,我认为一切都很标准。现在我遇到的问题是,为了让这个新结构正常工作,我需要在所有 img 标签中添加以下内容:
<img ... src="/images/<%= GetGlobalResourceObject("MyResource","IMAGEPATH").ToString() %>image1.gif" ../>
或者在 asp:ImageButton 的情况下,我需要在代码隐藏中以编程方式设置它们的 ImageURL,并使用实用方法将 /Images/ 替换为 /Images/es-MX 或任何文化。
所有这些都给我留下了混乱的标记和大量的代码隐藏调用,只是为了更正图像路径。请问各位亲爱的读者,有没有更好的办法?
【问题讨论】:
-
所需的语言来自哪里?它在服务器上可用吗?
-
抱歉,我不确定您所说的所需语言是什么意思。它是一个 C# 应用程序,但我认为这个问题并不重要。
-
这是您的术语'所需语言' :-) 我的意思是:服务器如何知道要服务的语言?它是否保存在客户端的cookie中?或者是保存在服务器上的会话中还是怎么做的?
-
目前保存在 cookie 中。在 Global.asax 中,我在 App_BeginRequest 期间根据 cookie 值更改当前线程 ui 文化。
标签: asp.net localization internationalization markup