From 11c725b7ac41fe75b54732b19814cffafdb2e7f9 Mon Sep 17 00:00:00 2001 From: Adrien Hopkins Date: Fri, 29 Jul 2022 15:27:20 -0500 Subject: Documented locale code --- src/lib/i18n.js | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/lib/i18n.js b/src/lib/i18n.js index d3db2454..2d39e292 100644 --- a/src/lib/i18n.js +++ b/src/lib/i18n.js @@ -1,14 +1,25 @@ import { register, init, getLocaleFromNavigator } from 'svelte-i18n'; -// list of locales to load +/** The list of locales to look for */ const localeCodes = ['en', 'fr']; -// load locales +/** The directory where locale files are stored */ +const localeDirectory = "../locales"; + +/** + * Adds a new locale from the appropriate JSON file + * @param {string} localeCode - the code of the locale to add + */ function addLocale(localeCode) { - register(localeCode, () => import(`../locales/${localeCode}.json`)); + register(localeCode, () => import(`${localeDirectory}/${localeCode}.json`)); } -// determine locale +/** + * Determines the default locale. + * @param {string} navigatorLocale - the locale given by the navigator + * @param {array} avalableLocales - a list of the available locales + * @returns {string} chosen default locale + */ function pickLocale(navigatorLocale, availableLocales) { // determine langugage part of locale // (e.g. if navigatorLocale is 'en-US', languageCode is 'en') @@ -30,7 +41,9 @@ function pickLocale(navigatorLocale, availableLocales) { } } -// setup internationalization +/** + * Loads all of the locales, picks a default locale, and sets up internationalization in that locale. + */ export function setupI18n() { localeCodes.forEach(addLocale); let initialLocale = pickLocale(getLocaleFromNavigator(), localeCodes); -- cgit v1.2.3