This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.

58 lines
1.4 KiB
JavaScript
Raw Normal View History

2021-04-02 02:24:13 +03:00
/**
* Copyright (c) Nicolas Gallagher.
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
*/
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';
var doLeftAndRightSwapInRTL = true;
var isPreferredLanguageRTL = false;
var isRTLAllowed = true;
var isRTLForced = false;
var isRTL = function isRTL() {
if (isRTLForced) {
return true;
}
return isRTLAllowed && isPreferredLanguageRTL;
};
var onDirectionChange = function onDirectionChange() {
if (ExecutionEnvironment.canUseDOM) {
if (document.documentElement && document.documentElement.setAttribute) {
document.documentElement.setAttribute('dir', isRTL() ? 'rtl' : 'ltr');
}
}
};
var I18nManager = {
allowRTL: function allowRTL(bool) {
isRTLAllowed = bool;
onDirectionChange();
},
forceRTL: function forceRTL(bool) {
isRTLForced = bool;
onDirectionChange();
},
setPreferredLanguageRTL: function setPreferredLanguageRTL(bool) {
isPreferredLanguageRTL = bool;
onDirectionChange();
},
swapLeftAndRightInRTL: function swapLeftAndRightInRTL(bool) {
doLeftAndRightSwapInRTL = bool;
},
get doLeftAndRightSwapInRTL() {
return doLeftAndRightSwapInRTL;
},
get isRTL() {
return isRTL();
}
};
export default I18nManager;