From 4cd90d74adc2ae4a9f9f881ddd1bb0f3855f036a Mon Sep 17 00:00:00 2001 From: M Sarmad Qadeer Date: Fri, 31 Mar 2023 21:14:20 +0500 Subject: [PATCH] website: add RTL languages compatibility (#2056) * website: add RTL languages compatibility * website: add few changes - update tailwindcss version - add few stylings - move to rtl true false approach * website: set lang:en to rtl:true for testing * website: add arabic key values & textual flag * website: fix strong tag issues in ar translation. * website: flip navbar for rtl languages * disable Arabic --------- Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> --- website/.eleventy.js | 2 +- website/langs/ar.json | 8 ++-- website/package.json | 2 +- website/src/_data/languages.json | 21 ++++++--- website/src/_includes/footer.html | 2 +- website/src/_includes/hero.html | 12 ++--- website/src/_includes/layouts/main.html | 17 ++++--- website/src/_includes/navbar.html | 47 +++++++++++++------ .../src/_includes/sections/join_simplex.html | 6 +-- .../_includes/sections/simplex_unique.html | 23 +++++---- website/src/css/style.css | 21 +++++++++ website/src/index.html | 14 ++++-- 12 files changed, 120 insertions(+), 55 deletions(-) diff --git a/website/.eleventy.js b/website/.eleventy.js index 888bed4f2a..febbd7781a 100644 --- a/website/.eleventy.js +++ b/website/.eleventy.js @@ -31,7 +31,7 @@ const translations = require("./translations.json") module.exports = function (ty) { ty.addShortcode("cfg", (name) => globalConfig[name]) - ty.addShortcode("getlang", (path) => { + ty.addFilter("getlang", (path) => { const lang = path.split("/")[1] if (supportedRoutes.includes(lang)) return "en" else if (supportedLangs.includes(lang)) return lang diff --git a/website/langs/ar.json b/website/langs/ar.json index 9dc3143ded..aaad66a052 100644 --- a/website/langs/ar.json +++ b/website/langs/ar.json @@ -35,7 +35,7 @@ "simplex-chat-protocol": "بروتوكول دردشة SimpleX", "developers": "المطورين", "hero-subheader": "أول نظام مراسلة
بدون معرفات المستخدم", - "hero-p-1": "تحتوي التطبيقات الأخرى على معرّفات مستخدم: Signal ، و Matrix ، و Session ، و Briar ، و Jami ، و Cwtch ، وما إلى ذلك.
SimpleX ليس لديه ، ولا حتى أرقام عشوائية .
وهذا يحسن خصوصيتك بشكل جذري.", + "hero-p-1": "تحتوي التطبيقات الأخرى على معرّفات مستخدم: Signal ، و Matrix ، و Session ، و Briar ، و Jami ، و Cwtch ، وما إلى ذلك.
SimpleX ليس لديه ، ولا حتى أرقام عشوائية .
وهذا يحسن خصوصيتك بشكل جذري.", "features": "الميزات", "hero-2-header": "قم بإجراء اتصال خاص", "hero-overlay-1-title": "كيف يعمل SimpleX؟", @@ -124,10 +124,10 @@ "privacy-matters-overlay-card-3-p-2": "واحدة من أكثر القصص إثارة للصدمة هي تجربة محمدو ولد صلاحي الموصوفة في مذكراته والموضحة في فيلم موريتاني. تم وضعه في معتقل غوانتانامو بدون محاكمة ، وتعرض للتعذيب هناك لمدة 15 عامًا بعد مكالمة هاتفية مع قريبه في أفغانستان ، للاشتباه في تورطه في هجمات 11 سبتمبر ، على الرغم من أنه عاش في ألمانيا طوال السنوات العشر الماضية.", "privacy-matters-overlay-card-3-p-3": "يتم القبض على الأشخاص العاديين بسبب ما يشاركونه عبر الإنترنت ، حتى عبر حساباتهم \"المجهولة\"، وحتى في البلدان الديمقراطية.", "simplex-unique-overlay-card-1-p-1": "على عكس أنظمة المراسلة الأخرى ، لا يحتوي SimpleX على معرفات مخصصة للمستخدمين. لا يعتمد على أرقام الهواتف أو العناوين المستندة إلى النطاقات (مثل البريد الإلكتروني أو XMPP)، أسماء المستخدمين، المفاتيح العامة أو حتى الأرقام العشوائية لتحديد مستخدميها — لا نعرف عدد الأشخاص الذين يستخدمون خوادم SimpleX الخاصة بنا.", - "simplex-unique-overlay-card-1-p-2": "لتسليم الرسائل ، يستخدم SimpleX العناوين المزدوجة المجهولة لقوائم انتظار الرسائل أحادية الاتجاه ، منفصلة عن الرسائل المستلمة والمرسلة ، عادةً عبر خوادم مختلفة . إن استخدام SimpleX يشبه امتلاك بريد إلكتروني أو هاتف مؤقتمختلف لكل جهة اتصال ، ولا توجد متاعب في إدارتها.", - "simplex-unique-overlay-card-3-p-1": "يخزن SimpleX Chat جميع بيانات المستخدم على أجهزة العميل فقط باستخدام تنسيق قاعدة بيانات محمولة مشفرة يمكن تصديرها ونقلها إلى أي جهاز مدعوم.", + "simplex-unique-overlay-card-1-p-2": "لتسليم الرسائل ، يستخدم SimpleX العناوين المزدوجة المجهولة لقوائم انتظار الرسائل أحادية الاتجاه ، منفصلة عن الرسائل المستلمة والمرسلة ، عادةً عبر خوادم مختلفة . إن استخدام SimpleX يشبه امتلاك بريد إلكتروني أو هاتف مؤقتمختلف لكل جهة اتصال ، ولا توجد متاعب في إدارتها.", + "simplex-unique-overlay-card-3-p-1": "يخزن SimpleX Chat جميع بيانات المستخدم على أجهزة العميل فقط باستخدام تنسيق قاعدة بيانات محمولة مشفرة يمكن تصديرها ونقلها إلى أي جهاز مدعوم.", "simplex-unique-overlay-card-3-p-3": "على عكس خوادم الشبكات الموحدة (البريد الإلكتروني أو XMPP أو Matrix) ، لا تقوم خوادم SimpleX بتخزين حسابات المستخدمين ، فهي تقوم فقط بترحيل الرسائل ، مما يحمي خصوصية كلا الطرفين.", - "simplex-unique-overlay-card-4-p-1": "يمكنك استخدام SimpleX مع الخوادم الخاصة بك والاستمرار في التواصل مع الأشخاص الذين يستخدمون الخوادم المهيأة مسبقًا التي نقدمها.", + "simplex-unique-overlay-card-4-p-1": "يمكنك استخدام SimpleX مع الخوادم الخاصة بك والاستمرار في التواصل مع الأشخاص الذين يستخدمون الخوادم المهيأة مسبقًا التي نقدمها.", "simplex-unique-overlay-card-4-p-3": "إذا كنت تفكر في التطوير لمنصة SimpleX ، على سبيل المثال ، بوت الدردشة لمستخدمي تطبيق SimpleX ، أو دمج مكتبة SimpleX Chat في تطبيقات الأجهزة المحمولة ، من فضلك تواصل معي لأي نصيحة والدعم.", "donate-here-to-help-us": "تبرع هنا لمساعدتنا", "sign-up-to-receive-our-updates": "اشترك للحصول على آخر مستجداتنا", diff --git a/website/package.json b/website/package.json index 13d18821d4..4afc721086 100644 --- a/website/package.json +++ b/website/package.json @@ -24,7 +24,7 @@ "markdown-it-replace-link": "^1.1.0", "qrcode": "^1.5.1", "slugify": "^1.6.5", - "tailwindcss": "^3.0.24" + "tailwindcss": "^3.2.7" }, "dependencies": { "eleventy-plugin-i18n": "^0.1.3" diff --git a/website/src/_data/languages.json b/website/src/_data/languages.json index 980dce6b41..e87b0f0667 100644 --- a/website/src/_data/languages.json +++ b/website/src/_data/languages.json @@ -6,6 +6,21 @@ "flag": "/img/flags/en.svg", "enabled": true }, + { + "label": "ar", + "name": "العربية", + "iconText": "العربية", + "textColor": "white", + "iconBg": "green", + "enabled": false, + "rtl": true + }, + { + "label": "cs", + "name": "Čeština", + "flag": "/img/flags/cs.svg", + "enabled": true + }, { "label": "de", "name": "Deutsch", @@ -18,12 +33,6 @@ "flag": "/img/flags/fr.svg", "enabled": true }, - { - "label": "cs", - "name": "Čeština", - "flag": "/img/flags/cs.svg", - "enabled": true - }, { "label": "it", "name": "Italiano", diff --git a/website/src/_includes/footer.html b/website/src/_includes/footer.html index 2a1353b13a..302888633e 100644 --- a/website/src/_includes/footer.html +++ b/website/src/_includes/footer.html @@ -66,6 +66,6 @@ - {{ "copyright-label" | i18n({}, lang ) | safe }} + {{ "copyright-label" | i18n({}, lang ) | safe }} diff --git a/website/src/_includes/hero.html b/website/src/_includes/hero.html index 79ad9865d5..8b3fff748d 100644 --- a/website/src/_includes/hero.html +++ b/website/src/_includes/hero.html @@ -7,18 +7,18 @@
-

{{ "hero-header" | i18n({}, lang ) | safe }}

-

{{ "hero-subheader" | i18n({}, lang ) | safe }}

+

{{ "hero-header" | i18n({}, lang ) | safe }}

+

{{ "hero-subheader" | i18n({}, lang ) | safe }}

{{ "hero-p-1" | i18n({}, lang ) | safe }}

- {{ "hero-overlay-1-textlink" | i18n({}, lang ) | safe }} + {{ "hero-overlay-1-textlink" | i18n({}, lang ) | safe }} {{ overlay(hero_overlays.sections[1], lang) }} - {{ "hero-overlay-2-textlink" | i18n({}, lang ) | safe }} + {{ "hero-overlay-2-textlink" | i18n({}, lang ) | safe }} {{ overlay(hero_overlays.sections[0], lang) }}
- +
@@ -62,7 +62,7 @@
-

+

{{ "hero-2-header" | i18n({}, lang ) | safe }}

diff --git a/website/src/_includes/layouts/main.html b/website/src/_includes/layouts/main.html index 5e7c808afe..69cb359c57 100644 --- a/website/src/_includes/layouts/main.html +++ b/website/src/_includes/layouts/main.html @@ -1,5 +1,10 @@ - + @@ -8,11 +13,11 @@ {% if path %} - - + + {% else %} - - + + {% endif %} @@ -20,7 +25,7 @@ - + diff --git a/website/src/_includes/navbar.html b/website/src/_includes/navbar.html index 7e0f6549dc..90b0991528 100644 --- a/website/src/_includes/navbar.html +++ b/website/src/_includes/navbar.html @@ -1,12 +1,12 @@

-
- - - - +
+ + + +