轻松制作ASPCMS多语言版 中英双语言不在话下

5月 26, 2015 0 条评论 367 次阅读 0 人点赞

 

此方法是我见过目前asp下最完美的双语及多语言的解决方案,aspcms本身就在asp建站中是非常优秀快速的。

此方法的优点

  • 建多国语言,分开管理;
  • 前台各个功能,模版界面什么的都是独立分开;
  • 后台各个功能也是分开管理(什么栏目、广告、文章、站点标题什么的都通通分开);
  • 一个后台,多个语言,切换流畅。

下面来介绍下,制作步骤

下载官方最新版本的ASPCMS,并启用隐藏的多国语言支持

  1. 用ACCESS打开数据库,打开表aspcms_menu,找到 标题为【多语言设置】的想,将其MenuStatus值改为1
  2. 到管理员管理,找到超级管理员组,把【多语言设置】选中
  3. 注销重新登录,就可以看到在“系统设置里”有“多语言设置”的菜单了

后台管理实现快速切换菜单

  1. 打开 css/css_top.asp文件,找到“.Leftnav{”,在上边加上以下代码
    .sitenav #yuyanqh { float: left; width: 80px; color: #555; text-align:center text-decoration: none;
    background-image: url(../images/top_nav_link.jpg); background-repeat: repeat-x; line-height: 20px; display: block; float: left; height: 20px; margin-left: 5px; padding-right: 8px; padding-left: 8px; border: 1px solid #c1d5ed; margin-top: 3px; margin-right: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; position: relative; }
    .sitenav #yuyanqh dt { text-align: center }
    .sitenav #yuyanqh dd { position: absolute; width: 312px; border: #1684BF solid 1px; background: #3CA3DB; padding: 1px 5px 1px 5px; height: 20px; text-align: left; left: -227px; overflow: hidden; display: none; }
    .sitenav #yuyanqh dd ul li { float: right; padding: 0px; padding-right: 10px; margin: 0px; }
    .sitenav #yuyanqh dd ul li a { padding: 1px 3px 1px 3px; text-decoration: none; background-image: url(../images/top_nav_link.jpg); color: #555; border: #ADDEF5 solid 1px; }
    .sitenav #yuyanqh dd ul li a:hover, .sitenav #yuyanqh dd ul li a.cur { color: #fff; text-decoration: none; background-image: url(../images/top_nav_link2.gif); border: 1px solid #1684bf; }
    .sitenav #yuyanqh dd ul li.gl { float: left; }
    .sitenav #yuyanqh.on { float: left; color: #555; color: #fff; text-decoration: none; background-image: url(../images/top_nav_link2.gif); border: 1px solid #1684bf; }
    .sitenav #yuyanqh.on dd { display: block; }
  2. 打开top.asp,找到“<a href="home.asp" target="main">后台导航</a></div>”,在后面加入以下代码
    <%
     '获取当前语种状态
     dim tlanguageid,tlanguagename,tlRs
     tlanguageid=rCookie("languageID")
     '获取当前语言
     set tlrs=conn.exec("select languagename from {prefix}Language where LanguageID="&tlanguageid,"exe")
     if not tlrs.eof then
     tlanguagename=tlrs(0)
     end if
     tlrs.close : set tlrs=nothing
    %>
    <dl id="yuyanqh" onmousemove="this.className='on'" onmouseout="this.className=''">
     <dt><span style="color:#ff0000">[<%=tlanguagename%>]</span>切换</dt>
     <dd id="yuyanqhneirong">
     <ul>
     <li class="gl"><a href="_system/_language/AspCms_Language.asp" target="main">设置</a></li>
     <%
     '循环列出所有语言
     set tlrs=conn.exec("select LanguageID,languagename from {prefix}Language order by LanguageOrder desc,LanguageID desc","exe")
     while not tlrs.eof
     %>
     <li><a href="index.asp?id=<%=tlrs(0)%>" <%if int(tlrs(0))=int(tlanguageid) then response.Write("class=""cur""")%> target="_parent"><%=tlrs(1)%></a></li>
     <%
     tlrs.movenext
     wend
     tlrs.close : set tlrs=nothing
     %>
     </ul>
     </dd>
    </dl>

前台功能实现

前台搞定主要是修改inc/aspcms_settingclass.asp,打开它
找到“dim LanguageAlias : LanguageAlias=""
在后边写(这个方法比较简单,有一些弊端,比如路径不清楚等,建议大家启用静态化页面,分目录使用多语言站点功能

if Trim(getForm("lali","get"))<>"" then '穿过来的参数是我们添加语言时所用的别名
  wCookie "LanguageAlias",Trim(getForm("lali","get"))
end if
if rCookie("LanguageAlias")<>"" then
  LanguageAlias = rCookie("LanguageAlias")
end if

其实到这边,只要在模版那边写上<a href="/?LanguageAlias1=cn">中文版</a><a href="/?LanguageAlias1=en">English</a>已经可以实现中英切换了,但是缺点多多,继续往下走。

完善功能

这里以英文版(en)示例:

  1. 在根目录新建 /en/ 文件夹;
  2. 复制 /about/ /apply/ /content/ /gbook/ /list/ /productbuy/ /index.asp /tags.asp /search.asp /taglist.asp
    到 /en/文件夹
  3. 复制/inc/AspCms_SettingClass.asp 到 /en/inc/AspCms_SettingClass.asp
  4. 修改 /en/inc/AspCms_SettingClass.asp 为
    <!--#include file="../../inc/AspCms_MainClass.asp" -->
    <%
    if siteMode=0 then die "网站已经关闭"
    dim LanguageAlias : LanguageAlias="en"
    dim setting : set setting=new SettingClass
    %>
    <!--#include file="../../inc/AspCms_Language.asp" -->
  5. 登录后台——系统设置——多语言设置——添加新语言(en)——在网站目录那边填上/en/

至此大功告成,在此感谢aspcms社区的暗辰最坏是单飞

 

孑愁

一个Microsoft、Google、Apple的爱好者综合体,喜欢一切和数码科技有关的东西,也希望能及时的把这些分享给关注它们的人。现就职于某互联网公司,担任前端

文章评论(0)