@uifabric/utilities
Version:
Fluent UI React utilities for building components.
50 lines • 2.14 kB
JavaScript
define(["require", "exports", "./dom/getDocument", "./localStorage", "./sessionStorage"], function (require, exports, getDocument_1, localStorage, sessionStorage) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// Default to undefined so that we initialize on first read.
var _language;
var STORAGE_KEY = 'language';
/**
* Gets the language set for the page.
* @param persistenceType - Where to persist the value. Default is `localStorage` if available.
* (In version 8, the default will be `sessionStorage`.)
*/
function getLanguage(persistenceType) {
if (persistenceType === void 0) { persistenceType = 'localStorage'; }
if (_language === undefined) {
var doc = getDocument_1.getDocument();
var savedLanguage = persistenceType === 'localStorage'
? localStorage.getItem(STORAGE_KEY)
: persistenceType === 'sessionStorage'
? sessionStorage.getItem(STORAGE_KEY)
: undefined;
if (savedLanguage) {
_language = savedLanguage;
}
if (_language === undefined && doc) {
_language = doc.documentElement.getAttribute('lang');
}
if (_language === undefined) {
_language = 'en';
}
}
return _language;
}
exports.getLanguage = getLanguage;
function setLanguage(language, persistenceParam) {
var doc = getDocument_1.getDocument();
if (doc) {
doc.documentElement.setAttribute('lang', language);
}
var persistenceType = persistenceParam === true ? 'none' : !persistenceParam ? 'localStorage' : persistenceParam;
if (persistenceType === 'localStorage') {
localStorage.setItem(STORAGE_KEY, language);
}
else if (persistenceType === 'sessionStorage') {
sessionStorage.setItem(STORAGE_KEY, language);
}
_language = language;
}
exports.setLanguage = setLanguage;
});
//# sourceMappingURL=language.js.map