Html 使用CSS文件进行站点本地化
我正在用ASP.NETMVC2.0创建一个网站,它使用两种不同的语言(英语和波斯语)。我想对这些语言有两种不同的布局,英语有从左到右的布局,波斯语有从右到左的布局 我想到的是,如果我可以有两个不同的css文件,比如当你用字符串或图像本地化来做网站的工作时,问题是我需要知道如何做到这一点Html 使用CSS文件进行站点本地化,html,css,asp.net-mvc-2,localization,globalization,Html,Css,Asp.net Mvc 2,Localization,Globalization,我正在用ASP.NETMVC2.0创建一个网站,它使用两种不同的语言(英语和波斯语)。我想对这些语言有两种不同的布局,英语有从左到右的布局,波斯语有从右到左的布局 我想到的是,如果我可以有两个不同的css文件,比如当你用字符串或图像本地化来做网站的工作时,问题是我需要知道如何做到这一点 关于如何执行此操作的任何其他建议都会很有帮助。这是可用于在客户端获取区域设置的代码。一旦定义了区域设置,就可以在标题中动态地包含样式表 if ( navigator ) { if ( navigator.
关于如何执行此操作的任何其他建议都会很有帮助。这是可用于在客户端获取区域设置的代码。一旦定义了区域设置,就可以在标题中动态地包含样式表
if ( navigator ) {
if ( navigator.language ) {
return navigator.language;
}
else if ( navigator.browserLanguage ) {
return navigator.browserLanguage;
}
else if ( navigator.systemLanguage ) {
return navigator.systemLanguage;
}
else if ( navigator.userLanguage ) {
return navigator.userLanguage;
}
}
您可以阅读以下内容:
- ,
- ,
- 每个带有文本的图像都应该翻译(图像和
);每个具有方向性的图像都应该反转(例如:箭头)alt
- 如果您不想将来遇到麻烦,请尽量避免类命名,如
。顶部、底部、之前或之后都可以,但不是左/右(编辑:class=“left”
和开始
现在在CSS3中使用,以避免ltr和rtl的确切问题。可能比已经用于冒号的伪字符的结束
和*-before
要好)*-after
- 您必须检查有关
,文本对齐
,背景位置
,浮动
的每个CSS指令,显然清除
和左
与右
位置:绝对/相对代码>。新的CSS3指令也需要审查(动画等)
- 不同的字体需要不同的字体大小(尽管这个问题主要涉及亚洲字体)
- 对于任何其他受支持的语言,模板中的许多文本都应该翻译
dir=“rtl”
。您还需要一个类(在body
上)或一些包含div
的类来充当满足您设计需求的巨大开关
.en .yourclass { background: url(images/en/bg.jpg) }
.ar .yourclass { background: url(images/ar/bg.jpg) }
属性选择器也执行相同的操作,因为包含IE8
:lang(ar) .yourclass { background: url(images/ar/bg.jpg) }
or
[lang|="ar"] .yourclass { background: url(images/ar/bg.jpg) }
我不确定这是否是你的目的,但我在几年前用VBScript完成了这项工作。不理想,但它适合我: 找出语言:
<%
Dim sLanguage
sLanguage = Request.QueryString("lang")
Dim userLocale
userLocale=Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
Dim sDomain
sDomain = Request.ServerVariables("HTTP_HOST")
Dim languages
languages = Split(userLocale, ",", -1)
...
你的问题到底是什么-如何根据语言嵌入不同的样式表?如果@Pekka的问题的答案是肯定的,那么你需要回答的下一个问题是应用程序中所选的语言是如何处理的?是的,我需要根据语言更改样式表。我宁愿使用服务器端语言e(本例中为ASP.NET)基于HTTP请求头。我不使用ASP.NET,但与其他任何自尊心强的视图技术一样,它确实必须有一种方法来确定该头并有条件地将
输出到CSS。我如何更改头中的样式表?我所寻找的不是这种情况,我一直试图在一个资源文件中这样做ich更为常规。:lang(ar)。为了完成这项工作,我们需要设置html属性lang=“en”
或lang=“ar”
。
<% select case MasterLanguage
case "PORTUGUESE"%>
<style media="screen" type="text/css">@import "/Includes/css/a_formatting.css";</style>
<style media="screen" type="text/css">@import "/includes/langs/br/languageSpecific.css";</style>
<link type="text/css" media="print" rel="stylesheet" href="/Includes/css/print.css" />
<%
case "SIMPCHINESE"
%>
<style media="screen" type="text/css">@import "/Includes/css/a_formatting_zh-cn.css";</style>
<style media="screen" type="text/css">@import "/includes/langs/zh-cn/languageSpecific.css";</style>
<link type="text/css" media="print" rel="stylesheet" href="/Includes/css/print_zh-cn.css" />
<%