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