Прочитал статью https://learn.javascript.ru/es-string
В ней написано, как можно реализовать интернационализацию с помощью функции i18n.
'use strict';
let messages = {
"Hello, {0}!": "Привет, {0}!"
};
function i18n(strings, ...values) {
// По форме строки получим шаблон для поиска в messages
// На месте каждого из значений будет его номер: {0}, {1}, …
let pattern = "";
for(let i = 0; i < values.length; i++) {
pattern += strings[i] + '{' + i + '}';
}
pattern += strings[strings.length - 1];
// Теперь pattern = "Hello, {0}!"
let translated = messages[pattern]; // "Привет, {0}!"
// Заменит в "Привет, {0}" цифры вида {num} на values[num]
return translated.replace(/\{(\d)\}/g, (s, num) => values[num]);
}
// Пример использования
let name = "Вася";
// Перевести строку
alert( i18n`Hello, ${name}!` ); // Привет, Вася!
Не понятно, как можно было бы использовать эту функцию. Приведите, пожалуйста, реальный пример работы этой чудо-функции.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В div contenteditable при наборе текста после первого слова ставится 1 <br> (стандартный) и 1 <br> которым я фиксил один багВопрос как можно заменить...
Всем добраНе могу понять как экранировать вставку переменной в списке атрибутов
В гугл гео чарте чтобы обозначить субконтиненты используются трехзначные индексы, и при наведении курсора на карте соответственно выводится...