页面内容填充及多语言翻译流程演示示例

小说回想:

1:
秋色园QBlog技术原理分析:开篇:全体认识(一)
–介绍全体文件夹和文书的功力

2:
秋色园QBlog技术原理分析:认识整站处理流程(二)
–介绍秋色园业务处理流程

3:
秋色园QBlog技术原理分析:UrlRewrite之无后缀URL原理(三)
–介绍如何落成无后缀URL

4:
秋色园QBlog技术原理分析:UrlRewrite之URL重定向种类(四)
–介绍URL怎么样稳定随地理程序

5:
秋色园QBlog技术原理分析:Module之页面基类设计(五)
–介绍创建基类和自定义生命周期

6: 秋色园QBlog技术原理分析:Module之页面基类-生命周期流程(六) –介绍基类生命周期内部事务

7:
秋色园QBlog技术原理分析:Module之基类生命周期-页面加载(七) –介绍界面html加载原理

8:
秋色园QBlog技术原理分析:Web之页面处理-内容填充(八)
–介绍html的始末是什么样填写

9:
秋色园QBlog技术原理分析:独创的多语言翻译机制(九) –介绍html多语言翻译原理

 

ps:澳门新匍京网址,秋色园QBlog下载地址:http://www.cyqdata.com/download/article-detail-427

 

上节回想:

上一节
秋色园QBlog技术原理分析:独创的多语言翻译机制(九) 中,介绍了秋色园QBlog的多语言翻译机制,

严重的解放了coder的劳力,将翻译的义务分开给美工界。

事隔10来天,本篇接给力,为大家演示一下完完全全的情节填充及页面翻译。

 

发端初始了:

 

一:全部介绍解决方案:

澳门新匍京网址 1

 

从上往下看,比上一个演示多了以下内容:

1:数据库一个:myspace.mdb,采取的是秋色园的的数据库,里面还存有很多数据。

2:Language.ashx:多语言处理程序,用来翻译用的。

3:UrlRewriteEntity:扩充的静态内容项目,放了一条SQL和表枚举

 

OK,扩充的东西并不多,别的的都是上次示范的情节了,不明白的回头看起吧。

 

二:多语言翻译

 

1:正如上节示例中,三遍性的批量翻译代码:

        private void Translate(XmlHelper doc)
        {
            System.Xml.XmlNodeList list = doc.GetList(“*”,
“key”);//获取具有带key标签的节点
            System.Xml.XmlAttribute attr = null;
            if (list != null && list.Count > 0)
            {
                string key = null;
                for (int i = 0; i < list.Count; i++)
                {
                    attr = list[i].Attributes[“key”];
                    key = attr.Value;
                    list[i].InnerXml = _Language.Get(key);//翻译
                    list[i].Attributes.Remove(attr);//移除key属性
                }
            }
            list = doc.GetList(“*”,
“keyvalue”);//获取具有带keyvalue标签的节点
            if (list != null && list.Count > 0)
            {
                string key = null;
                for (int i = 0; i < list.Count; i++)
                {
                    attr = list[i].Attributes[“keyvalue”];
                    key = attr.Value;
                    list[i].Attributes[“value”].InnerXml =
_Language.Get(key);//翻译
                   
list[i].Attributes.Remove(attr);//移除keyvalue属性
                }
            }
        }

 

2:HttpCustom业务流程里,须要扩展调用翻译这么一行

        private void Page_PreLoad()
        {
            if
(_Document.Load(Context.Server.MapPath(“Skin/system_health/index.html”)))
            {
                CssAndImg(_Document);
                Translate(_Document);
            }
        }

 

3:URL重写,将语言切换路径重定向到Lanuage.ashx处理程序中

        public void HttpUrlRewrite(HttpContext context)
        {
            string url = context.Request.Url.ToString();
            if (url.Contains(“.css”) || url.Contains(“.jpg”) ||
url.Contains(“.png”))//放到css和jpg图片
            {
                return;
            }
            if (url.Contains(“lang”))
            {
                context.RewritePath(“~/Language.ashx”, null, “url=” +
url);
            }
            else
            {
                //–那里要做过多Url逻辑处理
                context.RewritePath(“~/Default.ashx”, null, “url=” +
url);
            }
        }

 

4:Language.ashx处理一下,然后回到原来页面

public class Language : HttpCustom
{
    protected override void Page_Load()
    {
        string url = Request[“url”];
        string lanKey = url.Substring(url.LastIndexOf(‘/’)+1);
        Language.SetToCookie(lanKey.Substring(0, 1).ToUpper() +
lanKey.Substring(1));
       
Context.Response.Redirect(Context.Request.UrlReferrer.ToString());

    }
}

 

OK,多语言处理即使了结了,预览效果?不急,等把内容填充也一并成功先吧。

 

三:页面内容填充

 

1:创设类似CMS般的约定语法

示例:

<ul class=”evt_hots_list” name=”catelist” id=”16″ count=”8″>
      <li><a
href=”http://www.cyqdata.com/“>省略内容</a></li>
</ul>

说明:

1:catelist,一个预订的竹签,名称分类列表

2:id,就是归类的id了。

3:count,就是循环多少条

4:Li那一行,装饰用的,因为最终它是被替换掉了。

总表明:任意标签只要加上catelist+id,都足以博得一个分拣的巡回输出,至于count就是可挑选了。

 

2:整理HTML,按约定放好要呈现分类的价签

例如:

<ul class=”evt_plist” name=”catelist” id=”12″ count=”40″>
 <!– 健康·教育 –>
 <li><a target=”_blank” title=”路过夏季”
href=”#”>教育</a></li>
 </ul>
 <ul class=”evt_plist” name=”catelist” id=”13″ count=”40″>
 <!– 健康·和谐 –>
  <li><a target=”_blank” title=”路过夏季”
href=”#”>和谐</a></li>
  </ul>
  <ul class=”evt_plist” name=”catelist” id=”14″ count=”40″>
  <!– 健康·私语 –>
  <li><a target=”_blank” title=”路过秋季”
href=”#”>私语</a></li>
   </ul>

那样稳妥的放几行,结果就是机动取分类id为12,13,14的始末填充列表了。

 

3:后台写一个通用的代码处理

澳门新匍京网址 2

OK,现在就如CMS的自填充作用也写好了,程序员也轻松,美工也轻松。

 

四:最终F5预览看效用

 

1:访问,内容列表出现了

澳门新匍京网址 3

 

2:英文翻译时

澳门新匍京网址 4

 

翻译只是翻译了界面,内容是未曾翻译的,想翻译内容?自己写多一篇英文的篇章吧,哈哈!

 

五:总结

本节做为一基础的总计性文篇,没有太多的底细文字表达,目的在于为大家提供一个整机流程的以身作则代码,重点在源码。

下节,将持续下一个流水线,解析秋色园QBlog的Post提交机制。

 

六:源码下载

 

末段,就是大众希望的源码下载了。

下载地址:澳门新匍京网址 5
秋色园原理分析第十节示例.rar

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注