当前位置: 首页 > news >正文

wordpress网站如何添加栏目/模拟搜索点击软件

wordpress网站如何添加栏目,模拟搜索点击软件,怎么做网上赌博的网站,正规的h5网站项目中用到多语言的时候最先想到的就是资源文件了,但是这个在开发的时候实在是不方便(反正我是这么觉得的)。 在写代码的同时还要去建资源文件,还要在资源文件中填入内容,当有的翻译不合理修改也是个麻烦事&#xff0c…

 

项目中用到多语言的时候最先想到的就是资源文件了,但是这个在开发的时候实在是不方便(反正我是这么觉得的)。

在写代码的同时还要去建资源文件,还要在资源文件中填入内容,当有的翻译不合理修改也是个麻烦事,这个太耗时间。

数据库和XML其它也差不多,主要是在开发阶段还要顾及语言的存放。

 

 

我的实现方式:提供一种简单的方式,让程序自动记录页面文本内容,并写入资源文件,XML或数据库中,项目发布的时候只要对程序记录的内容进行翻译即可

以数据库为例

比如页面上的Button:  <asp:Button runat="server" ID="Button1" Text=“提交”/>

中文时显示“提交”,如果切换英文则显示成 Submit,

在页面运行时由程序自动将 页面名,控件ID(Button1),文件(“提交”)等信息写入到数据库中。

当项目发布时将数据库中的中文内容翻译成目标语言导入进数据库就可以了。如果要生成资源文件或XML也可以写一段代码将数据库里面的内容自动生成资源文件或XML

 

 

 

 

Asp.net中调用资源文件是这样写的:

<%$ Resources:LocalizedText,text1%>

 

我的方式:

1<%$ Lang:文本%>针对设置了ID的服务器控件

2<%$ Lang:ID,文本%>针对未设置ID的服务器控件

 

1、 首先创建一个空的WEB项目

2、 添加类LanguageExpression继承自ExpressionBuilder

内容如下,注释写得很详细了

           [ExpressionPrefix("Lang")]

   [ExpressionEditor("LangEditor")]

   publicclassLanguageExpression : ExpressionBuilder

   {

 

 

       ///<summary>

       ///切换多语言

       ///参数在GetCodeExpression中的数据中

       ///</summary>

       ///<param name="expression"></param>

       ///<param name="target"></param>

       ///<param name="entry"></param>

       ///<param name="ControlID"></param>

       ///<returns></returns>

       publicstaticobjectGetEvalData(stringexpression,Type target,string entry,stringControlID)

       {

           // ControlID ID,控件的ID,每个页面唯一就行了。如果是服务器控件程序会获取其ID

           // expression:要显示的文本

 

           stringid = ControlID;

           string text =expression;

           //如果未指定ID

           if(ControlID ==null)

           {

               id = expression.Split(',')[0];

               text = expression.Split(',')[1];

           }

           returnHtmlLang.Lang(id, text);

       }

 

       publicoverrideobjectEvaluateExpression(object target,BoundPropertyEntry entry,objectparsedData,ExpressionBuilderContextcontext)

       {

           //   string id = entry.ControlID;

           //   string text = entry.Expression;

           returnGetEvalData(entry.Expression, target.GetType(), entry.Name, entry.ControlID);

       }

       //重写GetCodeExpression初始化时执行

       publicoverrideCodeExpressionGetCodeExpression(BoundPropertyEntryentry,object parsedData,ExpressionBuilderContext context)

       {

 

 

           Typetype1 = entry.DeclaringType;

           PropertyDescriptordescriptor1 =TypeDescriptor.GetProperties(type1)[entry.PropertyInfo.Name];

           CodeExpression[]expressionArray1 =newCodeExpression[4];

           expressionArray1[0] =newCodePrimitiveExpression(entry.Expression);

           expressionArray1[1] =newCodeTypeOfExpression(type1);

           expressionArray1[2] =newCodePrimitiveExpression(entry.Name);

           expressionArray1[3] =newCodePrimitiveExpression(entry.ControlID);

           returnnewCodeCastExpression(descriptor1.PropertyType,newCodeMethodInvokeExpression(new

          CodeTypeReferenceExpression(base.GetType()),"GetEvalData",expressionArray1));

       }

       publicoverrideboolSupportsEvaluate

       {

           get{returntrue;}

       }

3、 配置WEBCONFIG文件

添加如下节点

 

  <expressionBuilders>

         <addexpressionPrefix="Lang"type="WebApplication1.Code.LanguageExpression"/>

       </expressionBuilders>

expressionPrefix: 自己定义就可以了
type:及刚才定义的LanguageExpression类

 

4、 添加类,用于处理语言配置信息

这个很简单,就不多描述了,代码:

  publicclassSysConfig

   {

       publicenumLanguageType

       {

           zh_cn = 0,

           en_us = 1

       }

       ///<summary>

       ///中英文标识

       /// 中文:zh-cn

       /// 英文:en-us

       ///</summary>

       publicstaticLanguageTypeUserLanguage

       {

           get

           {

               if(HttpContext.Current.Request.Cookies["Language"] == null)

               {

                   UserLanguage =LanguageType.zh_cn;

               }

               return(LanguageType)Enum.Parse(typeof(LanguageType),HttpContext.Current.Request.Cookies["Language"].Value);

           }

           set

           {

 

               HttpCookieUserCookie =newHttpCookie("Language",value.ToString());

               HttpContext.Current.Response.Cookies.Add(UserCookie);

           }

       }

}

 

5、再添加一个类处理你自己要做的事情,比如读写XML,数据库,资源文件等,

如下:

publicclassHtmlLang

   {

       publicstaticstringLang(string id, stringtext)

       {

           //得到页面,唯一ID及文本,然后根据SysConfig.UserLanguage来判断显示中文还是英文

           stringPageName =HttpContext.Current.Request.Path.Split('/').Last();

           switch(SysConfig.UserLanguage)

           {

               caseSysConfig.LanguageType.zh_cn://中文

                   text ="中文";

//添加你自己的操作,读写数据库,XML,资源文件等信息,这个时候就可以把页面上的文本内容写到数据库或XML等文件中,当发布项目时,注释掉写入记录的代码,只保留读取多语言的代码即可

//项目发布时把写入数据库的代码注释掉,只保留读取其它版本语言的代码就行了(如果你将数据库中的内容生成了资源文件,那么在发布的时候将代码改成读取资源文件)。

                   break;

               caseSysConfig.LanguageType.en_us://英文

                   text ="English";

添加你自己的操作

 

                   break;

           }

           returntext;

       }

    }

 

最后就是调用

新建一个页面,在页面中写如下的测试代码

 

<%= WebApplication1.Code.HtmlLang.Lang("text1","中文")%>

 

       <label><%= WebApplication1.Code.HtmlLang.Lang("text2","中文")%></label>

 

       <asp:Buttonrunat="server"ID="Button1"Text="<%$Lang:中文%>"

           OnClick="Button1_Click"></asp:Button>

后台CS文件中,按扭点击事件

  protectedvoidButton1_Click(object sender,EventArgs e)

       {

           Code.SysConfig.UserLanguage= Code.SysConfig.UserLanguage == Code.SysConfig.LanguageType.zh_cn? Code.SysConfig.LanguageType.en_us: Code.SysConfig.LanguageType.zh_cn;

           Response.Redirect(Request.Path);

       }

 

没怎么排版,有点乱,项目结构如下:

 

 

 

转载于:https://www.cnblogs.com/Fady/archive/2012/08/11/2633559.html

http://www.lbrq.cn/news/843301.html

相关文章:

  • 南阳专业做网站公司/百度搜索指数排行
  • 做一个微网站平台/百度推广业务员
  • 有服务器了怎么做网站/apple私人免费网站怎么下载
  • 帝国cms建站实例教程/百度快照客服
  • 分类信息网站做淘客/seo资源网站排名
  • 营销型网站建设制作推广/市场调研方案
  • 在线做漫画网站/上海网络营销有限公司
  • 白帽网站/seo搜索引擎优化推广
  • 成都网站建设公司好做吗/搜索引擎营销的原理
  • 新郑整站优化/免费自己建网站
  • 我做的网站怎么是危险网站/网站seo关键词排名推广
  • 上海网站关键词排名优化报价/长沙百度快速排名
  • 网站建设企业站模板/个人网上卖货的平台
  • 个人博客网站制作教程/seo关键词排优化软件
  • 营销网站/百度seo关键词怎么做
  • 网站商业授权/软文广告经典案例
  • 开发网站需要多少人/百度软文推广怎么做
  • 响应式网站怎么做/俄罗斯搜索引擎入口
  • 没有基础学做网站/sem和seo是什么职业岗位
  • 北京做百度网站建设/中视频自媒体平台注册
  • 动态网站系统的5个组成部分/深圳整站seo
  • 湖南网红网站建设有限公司/最经典的营销案例
  • asp网站免费完整源码/药品销售推广方案
  • wordpress+vps建站/刷赞业务推广网站
  • 深圳网站建设十强/app拉新平台
  • vue.js 可以做网站吗/什么都不懂能去干运营吗
  • 网站开发进阶/专业网页设计和网站制作公司
  • 政府机构网站开发价格/互联网推广有哪些方式
  • 不符合网站外链建设原则的是/最新行业动态
  • 北京网站建设是什么意思/近三天发生的重要新闻
  • 自增主键为什么不是连续的?
  • 【Linux网络】:HTTP(应用层协议)
  • 【C++篇】:告别手动内存管理!——C++智能指针的快速上手指南
  • 15. JVM调优的参数设置
  • 系规备考论文:论IT服务知识管理
  • EWSGAN:自动搜索高性能的GAN生成器架构