using Utils;

namespace System.Web.Mvc
{
/// <summary>
/// 本地化帮助类
/// </summary>
public static class LocalizationHelpers
{
/// <summary>
/// 在Html中直接使用,对页面元素输出字符串
/// webform中:<%= Html.Lang("String1") %>
/// mvc中:@Html.Lang("TaskType")
/// </summary>
/// <param name="htmlhelper"></param>
/// <param name="key"></param>
/// <returns></returns>
public static string Lang(this HtmlHelper htmlhelper, string key)
{
// 资源文件路径
string FilePath = htmlhelper.ViewContext.HttpContext.Server.MapPath("/") + "Resource\\";
return GetLangString(htmlhelper.ViewContext.HttpContext, key, FilePath);
} /// <summary>
/// 在Html中直接使用,对JS输出字符串
/// JS中:<%= Html.LangOutJsVar("String1")%> || @Html.Lang("String1")
/// JS中:alert(String1)
/// </summary>
/// <param name="htmlhelper"></param>
/// <param name="key"></param>
/// <returns></returns>
public static string LangOutJsVar(this HtmlHelper htmlhelper, string key)
{
// 资源文件路径
string FilePath = htmlhelper.ViewContext.HttpContext.Server.MapPath("/") + "Resource\\";
string langstr = GetLangString(htmlhelper.ViewContext.HttpContext, key, FilePath);
return string.Format("var {0} = '{1}'", key, langstr);
} /// <summary>
/// 在C#中使用,对后台输出字符串
/// ViewData["Message"] = LocalizationHelpers.InnerLang(this.ControllerContext.HttpContext, "String1");
/// </summary>
/// <param name="httpContext"></param>
/// <param name="key"></param>
/// <returns></returns>
public static string InnerLang(HttpContextBase httpContext, string key)
{
string FilePath = httpContext.Server.MapPath("/") + "Resource\\";
return GetLangString(httpContext, key, FilePath);
} /// <summary>
/// 输出字符串
/// </summary>
/// <param name="httpContext"></param>
/// <param name="key"></param>
/// <param name="FilePath"></param>
/// <returns></returns>
private static string GetLangString(HttpContextBase httpContext, string key, string FilePath)
{
int langtype = ;
if (SessionHelper.GetSession("Lang") != null)
{
langtype = (SessionHelper.GetSession("Lang").ToString().Equals("en")) ? : ;
} try
{
System.Resources.ResourceManager rs;
switch (langtype)
{
case : rs = new System.Resources.ResourceManager("Utils.Lang_zh", typeof(Lang_zh).Assembly); break;
case : rs = new System.Resources.ResourceManager("Utils.Lang_en", typeof(Lang_en).Assembly); break;
default: rs = new System.Resources.ResourceManager("Utils.Lang_zh", typeof(Lang_zh).Assembly); break;
} return rs.GetString(key);
}
catch (Exception ex)
{
}
return "";
}
}
}

C# LocalizationHelpers (搬运)的更多相关文章

  1. 关于codeblock中一些常用的快捷键(搬运)

    关于codeblock中一些常用的快捷键(搬运) codeblock作为一个常用的C/C++编译器,是我最常用的一款编译器,但也因为常用,所以有时为了更加快速的操作难免会用到一些快捷键,但是因为我本身 ...

  2. 搬运:Python for Windows——监控Windows某个目录下文件的变化

    https://win32com.goermezer.de/content/view/286/285/ 这个网站真是给力,不多说,代码直接搬运过来,还有我的测试结果,拿走不谢! import os i ...

  3. BizTalk开发系列(二) "Hello World" 程序搬运文件

    我们在<QuickLearn BizTalk系列之"Hello World">里讲到了如何快速的开发第一个BizTalk 应用程序.现在我们来讲一下如何把这个程序改成用 ...

  4. [置顶] 《算法导论》习题解答搬运&&学习笔记 索引目录

    开始学习<算法导论>了,虽然是本大部头,可能很难一下子看完,我还是会慢慢地研究的. 课后的习题和思考有些是很有挑战性的题目,我等蒻菜很难独立解决. 然后发现了Google上有挺全的algo ...

  5. (搬运)《算法导论》习题解答 Chapter 22.1-1(入度和出度)

    (搬运)<算法导论>习题解答 Chapter 22.1-1(入度和出度) 思路:遍历邻接列表即可; 伪代码: for u 属于 Vertex for v属于 Adj[u] outdegre ...

  6. 货物搬运(move)

    货物搬运(move) 题目描述 天地无情人有情,一方有难八方支援!汶川大地震发生后,灾区最紧缺的是救灾帐篷,全国各地支援的帐篷正紧急向灾区运送.假设围绕纹川县有环行排列的n个救灾帐篷的存储点,每个存储 ...

  7. stm32 DMA数据搬运 [操作寄存器+库函数](转)

    源:stm32 DMA数据搬运 [操作寄存器+库函数]        DMA(Direct Memory Access)常译为“存储器直接存取”.早在Intel的8086平台上就有了DMA应用了.   ...

  8. 用于NLP的CNN架构搬运:from keras0.x to keras2.x

    本文亮点: 将用于自然语言处理的CNN架构,从keras0.3.3搬运到了keras2.x,强行练习了Sequential+Model的混合使用,具体来说,是Model里嵌套了Sequential. ...

  9. 如何在CentOS 7上部署Google BBR【搬运、机翻】

    如何在CentOS 7上部署Google BBR 本文章搬运自 https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7 [注:文 ...

随机推荐

  1. 查询select

    --------------select查询-------------------查询所有信息(方法一)select * from stuinfo --*号代表所有列--查询所有信息(方法二)sele ...

  2. DTD

    DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块. 它使用一系列的合法元素来定义文档结构. DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. 内部的 DOCTYPE 声明 ...

  3. iOS基础 - 类扩展

    一.类扩展(class extension,匿名分类) 1.格式 @interface 类名 () { // 成员变量... } // 方法声明... @end 2.作用 1> 写在.m文件中 ...

  4. storm搭建(1)zookeeper搭建

    storm集群的安装我用了三台的虚拟机,ip分别是192.168.9.202和203和204,其中主机是202,两台分机的ip是203和204,之前两台机器的搭建已经完成,这次安装的环境是在204机器 ...

  5. 取xml文件转成List<T>对象的两种方法

    读取xml文件转成List<T>对象的两种方法(附源码)   读取xml文件转成List<T>对象的两种方法(附源码) 读取xml文件,是项目中经常要用到的,所以就总结一下,最 ...

  6. 事件聚合IEventAggregator和 Ihandle<T>

    -事件聚合IEventAggregator和 Ihandle<T>   今天 说一下Caliburn.Micro的IEventAggregator和IHandle<T>分成两篇 ...

  7. WinDBG中加载SOS和CLR

    WinDBG中加载SOS和CLR 最近产品环境出现了部分服务器当机情况,虽然重启之后问题就不出现了.但本着彻底解决问题的态度,想要找到root cause.多次尝试Visual Studio失败(可能 ...

  8. CSS:CSS学习总结

    CSS:CSS学习总结 背景 CSS是一种声明式的语言,学好CSS的难度甚至大于学好一门服务器语言(我个人的感觉),这周在学习CSS,就记录一下学习经验. 1.规则声明顺序 因为CSS的样式具备层叠性 ...

  9. Socket的粘包处理

    Socket的粘包处理 当socket接收到数据后,会根据buffer的大小一点一点的接收数据,比如: 对方发来了1M的数据量过来,但是,本地的buffer只有1024字节,那就代表socket需要重 ...

  10. TOGAF架构内容框架之内容元模型(上)

    TOGAF架构内容框架之内容元模型(上) 2. 内容元模型(Content Metamodel) 在TOGAF的眼中,企业架构是以一系列架构构建块为基础的,并将目录.矩阵和图形作为其具体展现方式.如果 ...