jjb-lc-designable
Version:
基于alibaba-designable源码二次封装的表单设计器。
30 lines • 1.05 kB
JavaScript
import { each, isPlainObj } from 'jjb-lc-designable/shared';
import { globalThisPolyfill } from 'jjb-lc-designable/shared';
export const lowerSnake = str => {
return String(str).replace(/\s+/g, '_').toLocaleLowerCase();
};
export const mergeLocales = (target, source) => {
if (isPlainObj(target) && isPlainObj(source)) {
each(source, function (value, key) {
const token = lowerSnake(key);
const messages = mergeLocales(target[key] || target[token], value);
target[token] = messages;
});
return target;
} else if (isPlainObj(source)) {
const result = Array.isArray(source) ? [] : {};
each(source, function (value, key) {
const messages = mergeLocales(undefined, value);
result[lowerSnake(key)] = messages;
});
return result;
}
return source;
};
export const getBrowserLanguage = () => {
/* istanbul ignore next */
if (!globalThisPolyfill.navigator) {
return 'en';
}
return globalThisPolyfill.navigator['browserlanguage'] || globalThisPolyfill.navigator?.language || 'en';
};