如何才能使站点以多种语言可见?

时间:2010-09-16 作者:Travis Northcutt

我知道这个问题What are options are there to implement a multi language site, 但答案集中在后端和前端的多语言支持上。

我只关心提供网站内容的多语言查看,而不是多语言内容创建。

能不能简单到Google Translate Tools 我的网站上的代码?我看到至少有a couple 提供这一功能的插件中,有谁有这方面的经验?

3 个回复
最合适的回答,由SO网友:Chris_O 整理而成

如果你只是想寻找一种方法,让你的网站可以用其他语言浏览,我强烈建议你使用谷歌翻译工具。我只是把它添加到主题中:

<div id="google_translate_element"><span id="trans">Translate: </span></div>
您可以在css中隐藏Google徽标和时髦的颜色:

.goog-logo-link{display:none;} 
我没有调用Google Translate js,而是复制返回脚本并将其添加到我的主js文件中。

Edit

谷歌提供embed code 要在您的网站上使用:

 <div id="google_translate_element"></div><script>
function googleTranslateElementInit() {
  new google.translate.TranslateElement({
    pageLanguage: \'en\',
    layout: google.translate.TranslateElement.InlineLayout.SIMPLE
  }, \'google_translate_element\');
}
</script><script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
第一行:<div id="google_translate_element"></div> 可以放置在要显示“翻译”下拉框的位置:

alt text

第一组<script> 标记是语言和布局选项。最后一组<script> 标记调用更多javascript,在加载dom时,Google会在html中内联插入这些javascript。为了加快这个过程并避免额外的http请求和内联脚本,我删除了最后一个调用,并将Google返回的代码添加到我使用的“master”js文件中,该文件包含所有自定义javascript,并合并到一个文件中。Google返回的代码是:

(function(){var d=window,e=document;function f(b){var a=e.getElementsByTagName("head")[0];a||(a=e.body.parentNode.appendChild(e.createElement("head")));a.appendChild(b)}function _loadJs(b){var a=e.createElement("script");a.type="text/javascript";a.charset="UTF-8";a.src=b;f(a)}function _loadCss(b){var a=e.createElement("link");a.type="text/css";a.rel="stylesheet";a.charset="UTF-8";a.href=b;f(a)}function _isNS(b){b=b.split(".");for(var a=d,c=0;c<b.length;++c)if(!(a=a[b[c]]))return false;return true}
function _setupNS(b){b=b.split(".");for(var a=d,c=0;c<b.length;++c)a=a[b[c]]||(a[b[c]]={});return a}d.addEventListener&&typeof e.readyState=="undefined"&&d.addEventListener("DOMContentLoaded",function(){e.readyState="complete"},false);
if (_isNS(\'google.translate.Element\')){return}var c=_setupNS(\'google.translate._const\');c._cl=\'en\';c._cuc=\'googleTranslateElementInit\';c._cac=\'\';c._cam=\'\';var h=\'translate.googleapis.com\';var b=(window.location.protocol==\'https:\'?\'https://\':\'http://\')+h;c._pah=h;c._pbi=b+\'/translate_static/img/te_banner_bk.gif\';c._pci=b+\'/translate_static/img/te_ctrl.gif\';c._phf=h+\'/translate_static/js/element/hrs.swf\';c._pli=b+\'/translate_static/img/loading.gif\';c._plla=h+\'/translate_a/l\';c._pmi=b+\'/translate_static/img/mini_google.png\';c._ps=b+\'/translate_static/css/translateelement.css\';c._puh=\'translate.google.com\';_loadCss(c._ps);_loadJs(b+\'/translate_static/js/element/main.js\');})();
这主要是出于性能方面的原因,以避免额外的请求,并避免网站必须与Google进行通信,除非从下拉框中选择语言。

可以使用css自定义下拉框。例如,下面是我如何在使用该框的站点上显示该框。

alt text

SO网友:bueltge

请查看此问题Best practices for localizing WordPress content? 也许你能从这些想法中找到解决方案

SO网友:Sergio Soares

我正在为我正在开发的一个项目使用qTranslate插件,我对结果非常满意。。

http://www.qianqin.de/qtranslate/http://wordpress.org/extend/plugins/qtranslate/

干杯

结束

相关推荐