出现的文字取决于网站上的语言(js)

时间:2012-10-18 07:54:27

标签: javascript joomla internationalization multilingual

在我的网站http://www.incognito.preart.grandhost.pl/上,当您进入任何页面时,会有一个返回主菜单的链接(当您悬停标题时)。网站有5种语言版本。但文字只有英文版。需要在每种语言中都有“返回菜单”文本。

.js代码:

var j = jQuery.noConflict();

j(document).ready(function() {
    j("body").css("display", "none");
    j("body").fadeIn(1000);
    j("a.transition").click(function(event){
        event.preventDefault();
        linkLocation = this.href;
        j("body").fadeOut(1000, redirectPage);      
    });     
    function redirectPage() {
        window.location = linkLocation;
    }

    var prevText = j('div#lContent h2 a').text();
    j('div#lContent h2 a').hover(function(){

        j(this).text('Back to menu');
    }, function(){
        j(this).text(prevText);
    });
});

我想我需要这样的事情:

  • 如果在网址中有/en/显示“返回菜单”
  • 如果在网址中有/fr/显示“retour au菜单” 等等。

有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:0)

正如BenM所说,在JS上进行本地化并不是最好的想法。

虽然如果你真的坚持,你可以这样做。在你的后端,PHP代码 - 创建一个保存语言的全局js变量。 让我们说,

var LANG = "EN"; // or you might want to add that as an attribute to an object

在JS代码中,创建一个查找对象

var BACK_TXT = {
  "EN" : "Back to Menu",
  "PL" : "I don't speak Polish : (",
  "GR" : "Pisw re"
};

当你设置文本而不是做 j(this).text('返回菜单');

j(this).text( BACK_TXT[ LANG ] );

添加对有效语言的检查也是理智的

if( !parent_obj.LANG )
     parent_obj.LANG = "EN";

请谨慎对待您的代码并将其记录得很好,因为这样的事情很容易在将来难以维护。

答案 1 :(得分:0)

使用Javascript控制语言是一个非常糟糕的主意。如果用户关闭了javascript,您认为会发生什么?即使认为这是一个被认为是愚蠢的东西,优秀的Web开发人员总是会考虑到这一点。

我认为JoomFish可能是您正在寻找的。

希望这有帮助