2015-02-23 80 views
0

我搜索了一个方法,使我的多语言系统具有MySQL或文件。 我需要使它在JavaScript中,我想与物体索绪尔名称:在JavaScript中制作多语言系统

var lang = 
{ 
    fr: 
    { 
     welcome  : 'bonjour', 
     good_bye : 'à bientôt' 
    }, 
    en: 
    { 
     welcome  : 'welcome', 
     good_bye : 'good bye' 
    }, 
    es: 
    { 
     welcome  : 'holà', 
     good_bye : 'adios' 
    } 
} 

你有一个更好的主意吗?

+0

不,那可能我会做到这一点。 – Andy 2015-02-23 10:36:06

+1

我的最后一个问题,我怎样才能使一个系统的参数? 欢迎:'欢迎%s',与PHP一样的printf? – JonasGame 2015-02-23 10:37:32

+0

相关:http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference – AeroX 2015-02-23 10:45:27

回答

1

看看http://i18next.com/ - 一个非常方便的图书馆,建于字符串替换等

+0

谢谢。我会看。 – JonasGame 2015-02-23 10:46:56

1

一个简单的方法来询问是JS对象是使用国家和文字作为参数来写一个简单的函数:

function translate(country, word) { 
    return lang[country][word] 
} 

,然后用它这样的,也许:

var name = 'Jonas'; 
var country = 'es'; 
translate(country, 'welcome') + ' ' + name; // "holà Jonas" 

DEMO

UPDATE:

function doWelcome(country, name) { 
    return lang[country].welcome + ', ' + name + '. Good game.'; 
} 

,然后用它这样的,也许:

doWelcome('es', 'Jonas'); // "holà, Jonas. Good game" 

DEMO

+0

是的。我知道,现在我试图用args来制作一个系统。 – JonasGame 2015-02-23 10:46:15

+0

我不知道什么是“带参数的系统”,对不起。 – Andy 2015-02-23 10:47:20

+0

translate(country,'welcome')+''+ name; //“holàJonas”作品,但是,如果它是“Welcome Jonas,好游戏”,在你的系统中,我需要做2 str:“欢迎”和“好游戏”。或者我可以这样做:“欢迎%s,好的游戏!”。 – JonasGame 2015-02-23 10:50:05