UNPKG

1.77 kBJavaScriptView Raw
1import { getDocument } from './dom/getDocument';
2import * as localStorage from './localStorage';
3import * as sessionStorage from './sessionStorage';
4// Default to undefined so that we initialize on first read.
5var _language;
6var STORAGE_KEY = 'language';
7/**
8 * Gets the language set for the page.
9 * @param persistenceType - Where to persist the value. Default is `localStorage` if available.
10 * (In version 8, the default will be `sessionStorage`.)
11 */
12export function getLanguage(persistenceType) {
13 if (persistenceType === void 0) { persistenceType = 'localStorage'; }
14 if (_language === undefined) {
15 var doc = getDocument();
16 var savedLanguage = persistenceType === 'localStorage'
17 ? localStorage.getItem(STORAGE_KEY)
18 : persistenceType === 'sessionStorage'
19 ? sessionStorage.getItem(STORAGE_KEY)
20 : undefined;
21 if (savedLanguage) {
22 _language = savedLanguage;
23 }
24 if (_language === undefined && doc) {
25 _language = doc.documentElement.getAttribute('lang');
26 }
27 if (_language === undefined) {
28 _language = 'en';
29 }
30 }
31 return _language;
32}
33export function setLanguage(language, persistenceParam) {
34 var doc = getDocument();
35 if (doc) {
36 doc.documentElement.setAttribute('lang', language);
37 }
38 var persistenceType = persistenceParam === true ? 'none' : !persistenceParam ? 'localStorage' : persistenceParam;
39 if (persistenceType === 'localStorage') {
40 localStorage.setItem(STORAGE_KEY, language);
41 }
42 else if (persistenceType === 'sessionStorage') {
43 sessionStorage.setItem(STORAGE_KEY, language);
44 }
45 _language = language;
46}
47//# sourceMappingURL=language.js.map
\No newline at end of file