1

前端翻译国际化

标签: 网站国际化支持


在网站中加入:

<script>
    var langPackage = {
        "主题": "Title",
        "下一页": "NextPage",
        "末页": "LastPage",
        "首页": " FirstPage ",
        "上一页": " PreviousPage ",
        "待办工作": "MyTasks",
        "中": "Middle",
        "每页": " EachPage ",
        "条": " Record ",
        "共": " Total ",
        "页": " Page ",
        "第": " Current ",
        "工作主题": " ProcTitle"
    };
    /* 
            主调函数
            在 Jquery的 .read方法里调用 ReplaceChildChs($(document));
            或者页面的最后调用
            ReplaceChildChs($(document));
        */
    function ReplaceChildChs(nodeObj) {
        // if($("#hdfUseLang").val()=="CN")return;
        if (nodeObj.children().length > 0) {
            nodeObj.children().each(function() {
                ReplaceChildChs($(this));
                //            if ($(this)[0].nodeName.toUpperCase() == "TD"){
                FindChsAndReplaceIt($(this));
                //            }
            });
        } else {
            FindChsAndReplaceIt(nodeObj);
        }
    }

    // 直接替换html 的一种设想,但总是报错
    function JustReplaceChsDom(nodeObj) {
        var pat = new RegExp("[\u4e00-\u9fa5]+", "g"); // 匹配中文的正则表达式
        var str = $(nodeObj).html();
        while ((arr = pat.exec(str)) != null) {
            if (langPackage[arr[0]]) {
                str = str.replace(arr[0], langPackage[arr[0]]);
            }
        }
        $(nodeObj).html(str);
    }

    function FindChsAndReplaceIt(nodeObj) {
        var pat = new RegExp("[\u4e00-\u9fa5]+", "g");
        if ((nodeObj.text() || nodeObj.val() || nodeObj.attr("title")) &&
            (pat.exec(nodeObj.text()) || pat.exec(nodeObj.val()) || pat.exec(nodeObj.attr("title")))) {
            var str = ""
            if (nodeObj.text()) {
                str = nodeObj.text();
                ReplaceValue(str, nodeObj, "text");
            }
            if (nodeObj.val()) {
                str = nodeObj.val();
                ReplaceValue(str, nodeObj, "val");
            }
            if (nodeObj.attr("title")) {
                str = nodeObj.attr("title");
                ReplaceValue(str, nodeObj, "title");
            }
        }
    }

    function ReplaceValue(str, nodeObj, attrType) {
        var arr;
        var pat = new RegExp("[\u4e00-\u9fa5]+", "g");
        while ((arr = pat.exec(str)) != null) {
            if (langPackage[arr[0]]) {
                str = str.replace(arr[0], langPackage[arr[0]]);

                if (attrType == "text") {
                    nodeObj.text(str);
                } else if (attrType == "val") {
                    nodeObj.val(str);
                } else if (attrType == "title") {
                    nodeObj.attr("title", str);
                }
            }
        }
    }
    ReplaceChildChs($(document));
</script>

上面数组进行单词替换;
文章啥的最好还是有多语言的支持

translate翻译方式-注意关注接口请求是否通

    <div id="google_translate_element"></div>
    <script>
        function googleTranslateElementInit() {
            new google.translate.TranslateElement({
                pageLanguage: 'zh-CN',
                layout: google.translate.TranslateElement.InlineLayout.SIMPLE
            }, 'google_translate_element');
        }
    </script>
    <script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
    <!-- Begin TranslateThis Button -->
    <div id="translate-this"><a href="http://translateth.is/" class="translate-this-button">Translate</a></div>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript" src="http://x.translateth.is/translate-this.js"></script>
    <script type="text/javascript">
        TranslateThis();
    </script>
    <!-- End TranslateThis Button -->

整体项目思路:

国际化

文章同步发布到我的blog: 传送门


做作
79 声望8 粉丝

在折腾和秃头道路上越走越远