You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
16 lines
760 B
16 lines
760 B
4 years ago
|
// Localization utilities
|
||
|
import { RX_STRIP_LOCALE_MODS } from '../constants/regex';
|
||
|
import { arrayIncludes } from './array';
|
||
|
import { toString } from './string'; // Languages that are RTL
|
||
|
|
||
|
var RTL_LANGS = ['ar', 'az', 'ckb', 'fa', 'he', 'ks', 'lrc', 'mzn', 'ps', 'sd', 'te', 'ug', 'ur', 'yi'].map(function (locale) {
|
||
|
return locale.toLowerCase();
|
||
|
}); // Returns true if the locale is RTL
|
||
|
|
||
|
export var isLocaleRTL = function isLocaleRTL(locale) {
|
||
|
// Determines if the locale is RTL (only single locale supported)
|
||
|
var parts = toString(locale).toLowerCase().replace(RX_STRIP_LOCALE_MODS, '').split('-');
|
||
|
var locale1 = parts.slice(0, 2).join('-');
|
||
|
var locale2 = parts[0];
|
||
|
return arrayIncludes(RTL_LANGS, locale1) || arrayIncludes(RTL_LANGS, locale2);
|
||
|
};
|