Используйте метод в объекте ResourceBundle Javascript для интернационализации - PullRequest
0 голосов
/ 26 января 2012

У меня есть следующий объект Javascript resourceBundle.

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

Как видите, это для английского языка.Затем я могу создать еще один бранс, скажем, для французского (франц.).Нет проблем, чтобы получить «Сообщение 1», «Сообщение 2», так как все, что мне нужно сделать, это получить resourceBundle ['en'] [ключ].Но что я могу сделать, если я хочу, чтобы сообщение создавалось с использованием параметров.Могу ли я использовать методы, если да, то как.

Я имею в виду что-то вроде этого, я хочу добавить MSG3 как;

"MSG3" : "welcome "+userName;

не точный путь, обходной путь

1 Ответ

1 голос
/ 26 января 2012

Попробуйте следующее:

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

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

или используйте ответ @ David в качестве основы:

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

createMessage('Pardon my french', 'MSG1', 'FR');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...