Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS властивість Navigator.language

Загальний опис

Властивість Navigator.language відіграє ключову роль у визначенні мовних переваг користувача веб-додатків. Ця властивість відображає основну мову браузера користувача, яка зазвичай встановлюється відповідно до мови операційної системи або може бути налаштована користувачем у налаштуваннях браузера. Значення Navigator.language є рядком, що представляє мовний тег, відповідно до стандарту IETF BCP 47, наприклад, "en-US" для американської англійської або "fr-CA" для канадської французької.

Використання Navigator.language має вирішальне значення для створення багатомовних веб-додатків, що адаптують свій інтерфейс і контент з урахуванням мовних переваг користувача. Це сприяє підвищенню зручності користувачів, оскільки дозволяє автоматично вибирати мову інтерфейсу без потреби в ручному виборі. Такий підхід не тільки покращує користувацький досвід, але й сприяє ширшому розповсюдженню веб-додатків серед користувачів з різних мовних груп.

Базове отримання мови користувача

Самий простий спосіб використання Navigator.language - отримання мови користувача та відображення відповідного повідомлення:

console.log(`Ваша мова: ${navigator.language}`);

Цей рядок коду виведе мову браузера користувача, що може бути використано для ініціалізації мовних налаштувань веб-додатку.

Адаптація контенту під мову користувача

Далі ми маємо приклад, який демонструє, як можна адаптувати контент веб-сторінки в залежності від мови користувача:

const userLanguage = navigator.language || navigator.userLanguage; // Для забезпечення сумісності

if (userLanguage.startsWith("en")) {
    document.getElementById("greeting").textContent = "Hello!";
} else if (userLanguage.startsWith("es")) {
    document.getElementById("greeting").textContent = "¡Hola!";
} else {
    document.getElementById("greeting").textContent = "Welcome!";
}

В цьому прикладі ми використовуємо Navigator.language для визначення мови користувача та змінюємо текст привітання на веб-сторінці відповідно до виявленої мови.

Розширене використання з бібліотеками локалізації

В реальних проектах для локалізації контенту часто використовуються спеціалізовані бібліотеки, як-от i18next чи React Intl. В цьому контексті Navigator.language може слугувати вихідним пунктом для визначення стандартної мови, яку потім можна налаштувати або змінити в установках користувача:

i18next.init({
    lng: navigator.language,
    // інші опції ініціалізації...
});

Цей код ініціалізує бібліотеку локалізації з мовою за замовчуванням, визначеною через Navigator.language, автоматично адаптуючи інтерфейс до мовних переваг користувача.

У підсумку, Navigator.language є неоціненним інструментом для розробників, які прагнуть створити інклюзивний та доступний веб-досвід. Використання цієї властивості дозволяє автоматично налаштовувати мову веб-додатків, забезпечуючи користувачам зручність та покращуючи загальну якість взаємодії з веб-сайтом.

Нотатка:

Використовуйте властивість Navigator.language для ідентифікації мовних налаштувань користувача, щоб автоматично налаштувати мову веб-сайту або веб-додатку відповідно до переваг користувача. Це значно покращує користувацький досвід, оскільки користувачі отримують контент на знайомій мові без необхідності вручну змінювати мовні налаштування.

Порада:

При розробці міжнародних веб-додатків переконайтеся, що ваш додаток коректно обробляє мовні коди, отримані через Navigator.language. Різні браузери можуть повертати мовні коди у різних форматах (наприклад, "en", "en-US"), тому важливо розробити логіку, що адекватно інтерпретує ці коди для надання локалізованого контенту.

Порада:

Для веб-сайтів, що підтримують кілька мовних версій, рекомендується використовувати Navigator.language в поєднанні з іншими методами визначення мовних переваг, такими як мовні налаштування в профілі користувача або вибір мови, збережений у cookies. Це забезпечить максимально точне визначення мовних переваг користувача.

Порада:

Пам'ятайте, що деякі користувачі можуть використовувати браузери, налаштовані на мову, яка відрізняється від їхньої рідної мови. Тому, надаючи можливість користувачам вручну змінювати мову інтерфейсу вашого веб-сайту або додатку, ви додатково підвищуєте доступність та користувацький досвід, забезпечуючи, що всі користувачі мають змогу легко переглядати контент на бажаній мові.

Синтаксис

Navigator.language

Значення

Return

Переглядачі

Переглядач

1

1

1

4

12

Переглядач

4.4

18

4

1

Переглядач

-

1.27

Приклади


У цьому прикладі, при завантаженні сторінки, мова вітання автоматично встановлюється відповідно до мови браузера користувача. Користувач може вибрати мову зі спадного списку, і вітання зміниться відповідно до вибору.

У цьому коді використовується властивість navigator.language для отримання мовного коду, встановленого в браузері користувача. Результатом виконання коду буде виведення мови користувача у консоль, що може бути використано для подальшої логіки визначення мови інтерфейсу.

console.log("Мова браузера користувача: " + navigator.language);

У цьому прикладі використовується об'єкт translations для зберігання фраз на різних мовах. Функція changeLanguage визначає мову користувача за допомогою navigator.language, обирає відповідний переклад із об'єкта перекладів, і динамічно змінює текст елементу з ідентифікатором greeting на сторінці.

// Об'єкт із перекладами
var translations = {
  en: {
    greeting: "Hello, user!"
  },
  ua: {
    greeting: "Привіт, користувачу!"
  },
  // Додайте більше мов за потреби
};

// Функція для зміни контенту відповідно до мови користувача
function changeLanguage() {
  var userLang = navigator.language || navigator.userLanguage; 
  var langCode = userLang.split('-')[0]; // Відокремлюємо код мови
  document.getElementById('greeting').textContent = translations[langCode].greeting || "Language not supported";
}

// HTML: <div id="greeting"></div>
// Після завантаження сторінки викликаємо функцію
document.addEventListener('DOMContentLoaded', changeLanguage);