gpt4 book ai didi

asp.net-mvc-3 - MVC3 使用 .resx 进行图像本地化

转载 作者:行者123 更新时间:2023-12-03 03:39:38 27 4
gpt4 key购买 nike

我一直在使用.resx我的 MVC3 应用程序中用于文本本地化的文件现在很高兴地遵循这些 instructions ,但现在我也需要对图像进行本地化。

.resx VS2010 中的编辑器可以让您轻松地将图像添加为资源,它只是将其转储到与 .resx 位于同一目录中的名为 Resources 的文件夹中。文件,我可以通过调用 @ResXfileName.ResourceName 以与 View 中的字符串相同的方式引用图像,但这会返回 System.Drawing.BitMap对象,我希望它能给我图像的路径,这样我就可以将它插入图像标签的 src 属性中,但我根本不知道如何获取路径!

最佳答案

解决方案 1:区域设置文件夹结构

最好(也是最简单)的方法是添加一个新的 HtmlHelper 扩展方法,该方法返回区域设置名称(或 LCID),之后您可以将其与任何内容(图像、脚本等)一起使用。最好的方法当然是在这样的文件夹结构中包含本地化文件:

/images
/en-US
image1.png
/en-GB
image1.png
/es-ES

            image1.png

这就是您使用它的方式:

<img src="/images/@Html.Locale/backgrounds/back.png" />

这是此类扩展方法的示例。

public MvcHtmlString Locale(this HtmlHelper helper)
{
// in case you're setting UI culture
return MvcHtmlString.Create(System.Threading.Thread.CurrentThread.CurrentUICulture.Name);
}

如果这种简化在您的情况下不起作用,并且您需要对图像进行特定调用,则创建一个名为 ImageFileUrlHelper 方法> 您向其提供服务器应用程序相对路径以及一些标记,这些标记将替换为您的区域设置名称或 LCID。

解决方案 2:资源文件链接

您还可以将图像路径放入资源文件中,并在 View 中使用这些值来为图像(或与此相关的其他文件)提供正确的路径。

public MvcHtmlString Resource(this UrlHelper helper, string classKey string resourceKey)
{
return MvcHtmlString.Create(helper.ViewContext.HttpContext.GetGlobalResourceObject(classKey, resourceKey));
}

然后在您看来将其用作:

<img src="@Url.Resource("images", "header")" />

关于asp.net-mvc-3 - MVC3 使用 .resx 进行图像本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13531532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com