Выводим приветствие на разных языках в зависимости от страны пользователя на JavaScript

Приветствие на разных языках на JavaScript

Реализуем простое приветствие на разных языках в зависимости от того, какой язык (или код страны) передает сервер или API определения местоположения.

Для работы мы будем использовать объект countries, где ключом является название языка, а значением — текст приветствия. Обратите внимание на использование метода hasOwnProperty для проверки наличия ключа, что является «хорошим тоном» в JavaScript.

function greet(language) {
// Список приветствий
const greetings = {
english: 'Welcome',
czech: 'Vitejte',
danish: 'Velkomst',
dutch: 'Welkom',
estonian: 'Tere tulemast',
finnish: 'Tervetuloa',
flemish: 'Welgekomen',
french: 'Bienvenue',
german: 'Willkommen',
irish: 'Failte',
italian: 'Benvenuto',
latvian: 'Gaidits',
lithuanian: 'Laukiamas',
polish: 'Witamy',
spanish: 'Bienvenido',
swedish: 'Valkommen',
welsh: 'Croeso'
};

// Проверяем, есть ли такой язык в нашем объекте
if (greetings.hasOwnProperty(language)) {
return greetings[language];
}

// Если язык не передан, не найден или произошла ошибка IP — возвращаем English по умолчанию
const errorStates = ['IP_ADDRESS_INVALID', 'IP_ADDRESS_NOT_FOUND', 'IP_ADDRESS_REQUIRED'];

if (!language || errorStates.includes(language)) {
return greetings.english;
}

return greetings.english;
}

Как это работает?

Функция greet принимает аргумент language. Если вы получаете данные от стороннего API (например, Sypex Geo или MaxMind), вы просто передаете результат в эту функцию:

console.log(greet('french')); // Выведет: Bienvenue
console.log(greet('IP_ADDRESS_NOT_FOUND')); // Выведет: Welcome

Этот подход гораздо чище, чем нагромождение условий if...else, и позволяет легко расширять список языков, просто добавляя новые строки в объект greetings.

Enjoy! :)

Поделись, если оказалось полезно :)
Нет комментариев

Написать