/** * 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;