From 3318fbd94e577abcd362548ed58bab8a4ef4978d Mon Sep 17 00:00:00 2001
From: Sana <sana.benhassouna@ensi-uma.tn>
Date: Fri, 18 Jun 2021 16:52:36 +0200
Subject: [PATCH 1/4] Add RTL Support

---
 ui/component/app/view.jsx             | 5 +++++
 ui/component/settingLanguage/view.jsx | 8 ++++++++
 ui/constants/languages.js             | 6 +++---
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/ui/component/app/view.jsx b/ui/component/app/view.jsx
index 9b2c64304..02460624b 100644
--- a/ui/component/app/view.jsx
+++ b/ui/component/app/view.jsx
@@ -266,6 +266,11 @@ function App(props: Props) {
   useEffect(() => {
     if (!languages.includes(language)) {
       setLanguage(language);
+      
+      if (LANGUAGES[language].length >= 3) {
+      	document.documentElement.dir = LANGUAGES[value][2]
+      }
+   
     }
     // eslint-disable-next-line react-hooks/exhaustive-deps
   }, [language, languages]);
diff --git a/ui/component/settingLanguage/view.jsx b/ui/component/settingLanguage/view.jsx
index ab9ca6982..17e092808 100644
--- a/ui/component/settingLanguage/view.jsx
+++ b/ui/component/settingLanguage/view.jsx
@@ -4,6 +4,7 @@ import React, { useState } from 'react';
 import { FormField } from 'component/common/form';
 import Spinner from 'component/spinner';
 import SUPPORTED_LANGUAGES from 'constants/supported_languages';
+import LANGUAGES from 'constants/languages';
 import { getDefaultLanguage, sortLanguageMap } from 'util/default-languages';
 
 type Props = {
@@ -25,6 +26,13 @@ function SettingLanguage(props: Props) {
     const { value } = e.target;
     setPreviousLanguage(language || getDefaultLanguage());
     setLanguage(value);
+    if (LANGUAGES[value].length >=3) {
+    	document.documentElement.dir = LANGUAGES[value][2];
+    }
+    else{
+    	document.documentElement.dir = 'ltr';
+    }
+ 
   }
 
   return (
diff --git a/ui/constants/languages.js b/ui/constants/languages.js
index 943851e34..2db85d71a 100644
--- a/ui/constants/languages.js
+++ b/ui/constants/languages.js
@@ -5,7 +5,7 @@ const LANGUAGES = {
   ak: ['Akan', 'Akana'],
   am: ['Amharic', 'አማርኛ'],
   an: ['Aragonese', 'Aragonés'],
-  ar: ['Arabic', 'العربية'],
+  ar: ['Arabic', 'العربية', 'rtl'],
   as: ['Assamese', 'অসমীয়া'],
   av: ['Avar', 'Авар'],
   ay: ['Aymara', 'Aymar'],
@@ -40,7 +40,7 @@ const LANGUAGES = {
   es: ['Spanish', 'Español'],
   et: ['Estonian', 'Eesti'],
   eu: ['Basque', 'Euskara'],
-  fa: ['Persian', 'فارسی'],
+  fa: ['Persian', 'فارسی', 'rtl'],
   ff: ['Peul', 'Fulfulde'],
   fi: ['Finnish', 'Suomi'],
   fil: ['Filipino', 'Filipino'],
@@ -171,7 +171,7 @@ const LANGUAGES = {
   ty: ['Tahitian', 'Reo Mā`ohi'],
   ug: ['Uyghur', 'Uyƣurqə / ئۇيغۇرچە'],
   uk: ['Ukrainian', 'Українська'],
-  ur: ['Urdu', 'اردو'],
+  ur: ['Urdu', 'اردو', 'rtl'],
   uz: ['Uzbek', 'Ўзбек'],
   ve: ['Venda', 'Tshivenḓa'],
   vi: ['Vietnamese', 'Tiếng Việt'],
-- 
2.45.3


From df717bd43b9ed3b0865d55e99e62fc6df6bfab3b Mon Sep 17 00:00:00 2001
From: Sana <sana.benhassouna@ensi-uma.tn>
Date: Fri, 18 Jun 2021 17:03:46 +0200
Subject: [PATCH 2/4] Add Arabic to supportedLanguages

---
 ui/constants/supported_languages.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ui/constants/supported_languages.js b/ui/constants/supported_languages.js
index e038a58bf..0504fbf3e 100644
--- a/ui/constants/supported_languages.js
+++ b/ui/constants/supported_languages.js
@@ -40,6 +40,7 @@ const SUPPORTED_LANGUAGES = {
   kn: LANGUAGES.kn[1],
   uk: LANGUAGES.uk[1],
   vi: LANGUAGES.vi[1],
+  ar: LANGUAGES.ar[1],
 };
 
 // Properties: language code (e.g. 'ja')
-- 
2.45.3


From 701bfbba4789a2af3db2607a80b7da0bb247719b Mon Sep 17 00:00:00 2001
From: Marko Lorentz <66749449+marko-lorentz@users.noreply.github.com>
Date: Wed, 23 Jun 2021 11:04:49 +0200
Subject: [PATCH 3/4] Fixed lint errors

---
 ui/component/app/view.jsx             |  8 ++++----
 ui/component/settingLanguage/view.jsx | 12 ++++++------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/ui/component/app/view.jsx b/ui/component/app/view.jsx
index 02460624b..71361782d 100644
--- a/ui/component/app/view.jsx
+++ b/ui/component/app/view.jsx
@@ -21,6 +21,7 @@ import FileDrop from 'component/fileDrop';
 import NagContinueFirstRun from 'component/nagContinueFirstRun';
 import Spinner from 'component/spinner';
 import SyncFatalError from 'component/syncFatalError';
+import LANGUAGES from 'constants/languages';
 // @if TARGET='app'
 import useZoom from 'effects/use-zoom';
 import useHistoryNav from 'effects/use-history-nav';
@@ -266,11 +267,10 @@ function App(props: Props) {
   useEffect(() => {
     if (!languages.includes(language)) {
       setLanguage(language);
-      
-      if (LANGUAGES[language].length >= 3) {
-      	document.documentElement.dir = LANGUAGES[value][2]
+
+      if (document && document.documentElement && LANGUAGES[language].length >= 3) {
+        document.documentElement.dir = LANGUAGES[language][2];
       }
-   
     }
     // eslint-disable-next-line react-hooks/exhaustive-deps
   }, [language, languages]);
diff --git a/ui/component/settingLanguage/view.jsx b/ui/component/settingLanguage/view.jsx
index 17e092808..cb58a7f19 100644
--- a/ui/component/settingLanguage/view.jsx
+++ b/ui/component/settingLanguage/view.jsx
@@ -26,13 +26,13 @@ function SettingLanguage(props: Props) {
     const { value } = e.target;
     setPreviousLanguage(language || getDefaultLanguage());
     setLanguage(value);
-    if (LANGUAGES[value].length >=3) {
-    	document.documentElement.dir = LANGUAGES[value][2];
+    if (document && document.documentElement) {
+      if (LANGUAGES[value].length >= 3) {
+        document.documentElement.dir = LANGUAGES[value][2];
+      } else {
+        document.documentElement.dir = 'ltr';
+      }
     }
-    else{
-    	document.documentElement.dir = 'ltr';
-    }
- 
   }
 
   return (
-- 
2.45.3


From 2f04e58a7774b0236a9749355268d4f5f61be6e5 Mon Sep 17 00:00:00 2001
From: Marko Lorentz <66749449+marko-lorentz@users.noreply.github.com>
Date: Mon, 28 Jun 2021 21:32:30 +0200
Subject: [PATCH 4/4] Allowed RTL flow for Hebrew

---
 ui/constants/languages.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ui/constants/languages.js b/ui/constants/languages.js
index 2db85d71a..064de445a 100644
--- a/ui/constants/languages.js
+++ b/ui/constants/languages.js
@@ -55,7 +55,7 @@ const LANGUAGES = {
   gu: ['Gujarati', 'ગુજરાતી'],
   gv: ['Manx', 'Gaelg'],
   ha: ['Hausa', 'هَوُسَ'],
-  he: ['Hebrew', 'עברית'],
+  he: ['Hebrew', 'עברית', 'rtl'],
   hi: ['Hindi', 'हिन्दी'],
   ho: ['Hiri Motu', 'Hiri Motu'],
   hr: ['Croatian', 'Hrvatski'],
-- 
2.45.3