about summary refs log tree commit diff stats
path: root/ranger/gui/displayable.py
diff options
context:
space:
mode:
authorAviv <avivnt@gmail.com>2021-08-18 22:52:39 +0300
committerAviv <avivnt@gmail.com>2021-08-18 22:52:39 +0300
commit57a026b1493499599366c342a083bd2845f253af (patch)
tree5f5d6f18c672ad2d0a0679e1372a51d88d9e4c5a /ranger/gui/displayable.py
parent209b8a81d77a001f4a4cca2ce9ff1d5bd51ebc2a (diff)
downloadranger-57a026b1493499599366c342a083bd2845f253af.tar.gz
Bidi Fix
Diffstat (limited to 'ranger/gui/displayable.py')
-rw-r--r--ranger/gui/displayable.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/ranger/gui/displayable.py b/ranger/gui/displayable.py
index 23ac43c7..67128f30 100644
--- a/ranger/gui/displayable.py
+++ b/ranger/gui/displayable.py
@@ -8,6 +8,12 @@ import curses
 from ranger.core.shared import FileManagerAware
 from ranger.gui.curses_shortcuts import CursesShortcuts
 
+try:
+    from bidi.algorithm import get_display  # pylint: disable=import-error
+    HAVE_BIDI = True
+except ImportError:
+    HAVE_BIDI = False
+
 
 class Displayable(  # pylint: disable=too-many-instance-attributes
         FileManagerAware, CursesShortcuts):
@@ -209,6 +215,11 @@ class Displayable(  # pylint: disable=too-many-instance-attributes
     def __str__(self):
         return self.__class__.__name__
 
+    def bidi_transpose(self, text):
+        if self.settings.bidi_support and HAVE_BIDI:
+            return get_display(text)
+        return text
+
 
 class DisplayableContainer(Displayable):
     """DisplayableContainers are Displayables which contain other Displayables.