办法:多语言版本Web系统中对应多种字体(Font Family)。

呆成都这半年下来,发现这边用户的需求真的是取之不竭。

为了不耽误日程,俺们必然要竭尽所能。

这次用户提出:切换至外文时 使用 MS Gothic 字体。

 

解析一下:

中文界面 ---> 默认字体

外文界面 ---> MS Gothic

 

一些背景:

双语是用DOTNET的资源文件解决的。

90%的页面有使用母版页。

项目组每个人都很疲惫,这次我只求快速简便够用。

区分CultureInfo中的语种[Culture_LanguageKey]保存在Session中

 

办法思路:

1、清除所有CSS文件中的 字体 属性。

2、写俩全局CSS文件,一个为默认的中文式样,一个是外文的式样。

3、在母版页用JS根据语种选择加载CSS文件。

 

石马:

 

中文CSS文件:fontFamilyStyle_CN.css

 

*{    font-family:新宋体;}///想要的默认字体

 

外文CSS文件:fontFamilyStyle_FN.css

*{    font-family:MS Gothic;}


MasterPage.Page

    <script type="text/javascript">     
        ///根据语言初始化Font Family 强兼容性
        function initFontFamily() {
            var language = '<%=Session["Culture_LanguageKey"]%>';///脚本获取Session变量
            var cssFileName;

            ///根据语言设置css文件路径

            ///FN:外文 --  CN:中文

            if (language == "FN") {
                cssFileName = "../CSS/fontFamilyStyle_FN.css";
            } else {
                cssFileName = "../CSS/fontFamilyStyle_CN.css";
            }       
            if (document.createStyleSheet) {//IE浏览器插入样式文件
                document.createStyleSheet(cssFileName, 1);
            }
            else { //其他浏览器插入样式文件

                var css_link = document.createElement("link");
                css_link.setAttribute("type", "text/css");
                css_link.setAttribute("rel", "stylesheet");
                css_link.setAttribute("href", cssFileName);
                document.getElementsByTagName("head")[0].appendChild(css_link);
            }
        }

 

        ///随意调用下就OK,无需指定到body的onload

        initFontFamily();
    </script>

 

 结束。

 简单测试了下,没有问题。

 没有更多要说的了。

 

 

 

 

 

 

posted @ 2012-06-12 16:02  雷池  阅读(2156)  评论(9编辑  收藏  举报