ghTvNath
ghTvNath

Reputation: 357

Use method in ResourceBundle Javascript object for internationalization

I have following resourceBundle Javascript object.

var resourceBundle = {
  en : {
        "MSG1" : "Message 1",
        "MSG2" : "Message 2"
  }
}

As you see, this is for english. Then I can create another brance for, say, French(fr). No problem to get 'Message 1' , 'Message 2' as all I have to do is get resourceBundle['en'][key]. But what I can do if I want a message to be created using paramaters. Can I use methods, if so, how.

What I mean is something like this, I want to add MSG3 as;

"MSG3" : "welcome "+userName;

not exact way, a workaround

Upvotes: 0

Views: 794

Answers (1)

Manse
Manse

Reputation: 38147

Try the following :

resourceBundle['fr'] = []; // create new
resourceBundle['fr']['MSG1'] = "test"; // add value

alert(resourceBundle['fr']['MSG1']); // test

or using @David's answer as a base :

function createMessage(key, value, locale) {
    if (resourceBundle[locale] == undefined) {
        resourceBundle[locale] = [];
    }
    resourceBundle[locale][key] = value;
}

createMessage('Pardon my french', 'MSG1', 'FR');

Upvotes: 1

Related Questions