Skip to content

Commit

Permalink
Add translations
Browse files Browse the repository at this point in the history
  • Loading branch information
majakomel committed Oct 11, 2024
1 parent c5b87a1 commit 07e7199
Show file tree
Hide file tree
Showing 19 changed files with 1,064 additions and 425 deletions.
18 changes: 18 additions & 0 deletions components/LocaleSwitcher.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,24 @@ import { getDirection } from 'pages/_app'
import type { ReactNode } from 'react'
import { useIntl } from 'react-intl'

import '@formatjs/intl-displaynames/polyfill'

import '@formatjs/intl-displaynames/locale-data/ar'
import '@formatjs/intl-displaynames/locale-data/de'
import '@formatjs/intl-displaynames/locale-data/en'
import '@formatjs/intl-displaynames/locale-data/es'
import '@formatjs/intl-displaynames/locale-data/fa'
import '@formatjs/intl-displaynames/locale-data/fr'
import '@formatjs/intl-displaynames/locale-data/my'
import '@formatjs/intl-displaynames/locale-data/pt'
import '@formatjs/intl-displaynames/locale-data/ru'
import '@formatjs/intl-displaynames/locale-data/sw'
import '@formatjs/intl-displaynames/locale-data/th'
import '@formatjs/intl-displaynames/locale-data/tr'
import '@formatjs/intl-displaynames/locale-data/vi'
import '@formatjs/intl-displaynames/locale-data/zh-Hans'
import '@formatjs/intl-displaynames/locale-data/zh-Hant'

export const getLocalisedLanguageName = (
regionCode: string,
locale: string,
Expand Down
4 changes: 2 additions & 2 deletions components/NavBar.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// import LocaleSwitcher from "components/LocaleSwitcher"
import LocaleSwitcher from 'components/LocaleSwitcher'
import useUser from 'hooks/useUser'
import Link from 'next/link'
import { useRouter } from 'next/router'
Expand Down Expand Up @@ -97,7 +97,7 @@ export const NavBar = () => {
</StyledNavItem>
</>
)}
{/* <LocaleSwitcher /> */}
<LocaleSwitcher />
</div>
</div>
</div>
Expand Down
17 changes: 7 additions & 10 deletions pages/404.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import Head from "next/head"
import { useRouter } from "next/router"
import { FormattedMessage, useIntl } from "react-intl"
import Head from 'next/head'
import { useRouter } from 'next/router'
import { FormattedMessage, useIntl } from 'react-intl'

import OONIRunHero from "components/OONIRunHero"
import OONI404 from "public/static/images/OONI_404.svg"
import OONIRunHero from 'components/OONIRunHero'
import OONI404 from 'public/static/images/OONI_404.svg'

const Custom404 = () => {
const router = useRouter()
const intl = useIntl()
return (
<>
<Head>
<title>{intl.formatMessage({ id: "Error.404.PageNotFound" })}</title>
<title>{intl.formatMessage({ id: 'Error.404.PageNotFound' })}</title>
</Head>
<OONIRunHero />
<div className="container">
Expand All @@ -21,10 +21,7 @@ const Custom404 = () => {
<FormattedMessage id="Error.404.Heading" />
</h4>
<div className="mb-3">
<FormattedMessage
id="Error.404.Message"
defaultMessage="We could not find the content you were looking for."
/>
<FormattedMessage id="Error.404.Message" />
</div>
</div>
<div className="p-32">
Expand Down
143 changes: 143 additions & 0 deletions public/static/lang/ar.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
{
"Hero.SubTitle": "تواصل مع معارفك لاكتشاف المواقع المحجوبة",
"Button.Generate": "إنشاء رابط",
"Button.Update": "تحديث",
"Share.Twitter.Button": "تغريد",
"Share.Twitter.Tweet": "تشغيل OONI Probe لمعرفة المواقع المحجوبة!",
"Home.Heading.TestName": "اسم الاختبار",
"Modal.Button.Link": "فتح الرابط في OONI Probe",
"Modal.Heading.ShareThisURL": "مشاركة هذا الرابط",
"Nettest.Heading.HaveMobileApp": "هل تم تثبيت OONI Probe Mobile؟",
"Nettest.Text.HaveMobileApp": "اضغط على الزرر في الأسفل لتثبيت رابط OONI Run في OONI Probe.",
"Nettest.Button.Run": "تشغيل في التطبيق",
"Nettest.Heading.InstallApp": "ليس لديك تطبيق OONI Probe؟",
"Nettest.Text.InstallApp": "قم بتثبيت OONI Probe Mobile من متجر التطبيقات واضغط على رابط OONI Run مرة أخرى.",
"Nettest.Button.Install": "تثبيت",
"Nettest.DownloadAndroid": "تثبيت OONI Probe على الأندرويد",
"Nettest.DownloadIOS": "تثبيت OONI Probe على iOS",
"Nettest.DownloadFdroid": "تثبيت OONI Probe من F-Droid",
"Notice.Paste": "ملحوظة: بإمكانك نسخ ولصق الروابط في أحد الصناديق بالأسفل إذا كنت تريد إضافة قائمة كبيرة من الروابط.",
"WhatCanYouDoText.WebCensorship": "يمكنك إضافة رابط بالأسفل لمشاركته مع معارفك لمعرفة المواقع المحجوبة.\n\nقم بإضافة المواقع بالأسفل التي تريد اختبار حجبها لإنشاء الرابط الخاص بك. قم بإضافة عنوان وتوضيح تخصيصي للرابط الخاص بك لتشجيع معارفك على عمل الاختبار. عندما تنتهي من ذلك، اضغط على زرر \"إنشاء رابط\" وشارك الرابط الذى تم انشاؤه مع مستخدمي [OONI Probe mobile تطبيق](https://ooni.org/install/mobile) لكي يختبروا المواقع التي اخترتها!",
"Error.Empty": "لا يمكن أن يكون فارغا",
"Error.UrlFormat": "قم بإضافة عنوان صالح من فضلك مثل \"https://ooni.org/post/\"",
"Home.About": "OONI Run يدعم الجهود الجماعية التي تستهدف معرفة المواقع المحجوبة. قم بإنشاء رابط OONI Run لاختبار المواقع التي تختارها!",
"Home.Box1.Title": "الاستجابة السريعة",
"Home.Box1.Description": "هل بلدك فيها انتخابات قريبة؟ حالات الحجب والرقابة [تظهر](https://ooni.org/reports/) عادة حول العالم أثناء الانتخابات، المظاهرات، وغيرها من الأحداث السياسية. إذا شككت أن مواقع بعينها تصبح محجوبة أثناء أحداث سياسية معينة فاستخدم هذه المنصة لانشاء رابط OONI Run لاختبار هذه المواقع. قم بمشاركة هذا الرابط مع مستخدمي [OONI Probe](https://ooni.org/install/mobile) لجمع الأدلة على الحجب!",
"Home.Box2.Title": "أبحاث الرقابة",
"Home.Box2.Description": "هل أنت مهتم بإجراء الأبحاث على حجب مواقع معينة؟ استخدم هذه المنصة لإنشاء رابط OONI Run لاختبار المواقع التي تهتم بها. قم بمشاركة هذا الرابط مع مستخدمي [OONI Probe](https://ooni.org/install/mobile) في البلاد المختلفة! تعلم [كيف استخدم أعضاء المجتمع المحلي OONI Run كجزء من مجهوداتهم البحثية](https://ooni.org/support/ooni-censorship-measurement-campaigns).",
"Home.Box3.Title": "مراقبة موقعك",
"Home.Box3.Description": "هل أنت مهتم بمراقبة حجب موقعك حول العالم؟ إذا تم اختبار موقعك عن طريق مستخدمي [OONI Probe](https://ooni.org/install/) فإنك سوف تحصل على [بيانات فورية مفتوحة المصدر](https://ooni.org/data/) والتي تظهر كيف يتم الحجب تقنيا وفي أي شبكة يتم الحجب. استخدم هذه المنصة لإنشاء رابط OONI Run لإجراء الاختبارات على موقعك!",
"Home.Button.CreateRunLink": "إنشاء رابط OONI Run",
"Home.Button.Login": "قم بتسجيل الدخول لإنشاء رابط OONI Run",
"Nettest.DeprecationWarning": "هذا الإصدار من روابط OONI Run لن يكون صالحا في الأول من يناير 2025.\nللتحويل إلى الإصدار الأخير (OONI Run v2)، قم <login>بتسجيل الدخول</login> وأنشأ روابط جديدة.",
"List.Title": "روابط OONI Run الخاصة بي",
"List.Empty": "ليس لديك أي روابط OONI Run",
"List.Button.Create": "إنشاء أول رابط خاص بك",
"LinkView.Error.DoesNotExist": "رابط OONI Run غير موجود",
"LinkView.Error.ServerError": "لقد حدث خطأ.",
"TestListForm.Validation.Required": "حقل ضروري",
"TestListForm.Validation.Min2": "يجب أن يكون حرفين على الأقل",
"TestListForm.Validation.Max50": "يفضل أن يكون أفل من 50 حرفا.",
"TestListForm.Validation.FutureDate": "يجب أن يكون تاريخ الانتهاء في المستقبل.",
"TestListForm.Validation.Min1Url": "يلزم وجود رابط واحد على الأقل.",
"TestListForm.MigrationModalLink": "هل لديك روابط OONI Run قديمة من الإصدار الأول؟ اضغط هنا لإضافة المواقع من هذه الروابط.",
"TestListForm.Label.Color": "اللون",
"TestListForm.Label.TestListName": "عنوان رابط OONI Run الخاص بك",
"TestListForm.Label.ShortDescription": "وصف مختصر",
"TestListForm.Label.Description": "الوصف",
"TestListForm.Label.Email": "ايميل منشأ الرابط",
"TestListForm.Label.ExpirationDate": "تأريخ الأنتهاء",
"TestListForm.Label.Icon": "أيقونة",
"TestListForm.OptionsFields.Key": "مفتاح",
"TestListForm.OptionsFields.Value": "‮القيمة",
"TestListForm.OptionsFields.AddOption": "أضف خيار",
"TestListForm.NettestFields.Urls": "روابط",
"TestListForm.Intl.Language": "لغة",
"TestListForm.Intl.Translation": "الترجمة",
"TestListForm.Intl.AddTranslation": "إضافة ترجمة",
"TestListForm.Inputs.AddInput": "إضافة رابط",
"TestListForm.Icon.Select": "اختيار أيقونة",
"TestListForm.Icon.Replace": "استبدال الأيقونة",
"TestListForm.AdminNettests.Tests": "الاختبارات",
"TestListForm.AdminNettests.AddTest": "إضافة اختبار",
"TestListForm.AdminNettests.DeleteTest": "حذف الاختبار",
"TestListForm.AdminNettests.EnableManualRun": "تفعيل التشغيل اليدوي",
"TestListForm.AdminNettests.EnableBackgroundRun": "تفعيل التشغيل في الخلفية",
"TestListForm.AdminNettests.BackendOptions": "اختيارات الطرف الخلفي",
"TestListForm.AdminNettests.Options": "‮خيارات",
"MigrationModal.RunLink": "رابط OONI Run",
"MigrationModal.AddUrls": "إضافة عناوين",
"General.Cancel": "إلغاء ",
"General.Edit": "تعديل",
"RevisionView.TopNotice": "هذه مراجعة بتاريخ {date}. العودة إلى <link>الرابط الحالي</link>.",
"RevisionView.LinkInfo": "معلومات الرابط",
"DescriptorDetails.CreatedByOn": "تم الإنشاء بواسطة {author} في {date}.",
"DescriptorDetails.CreatedOn": "تم الإنشاء في {date}.",
"DescriptorDetails.LastUpdated": "آخر تحديث {date}.",
"DescriptorDetails.ExpirationDate": "تاريخ الإنتهاء {date}.",
"DescriptorDetails.ExpirationNotice": "الرابط الخاص بك ينتهي في {date}",
"DescriptorDetails.UpdateButton": "تحديث الآن",
"DescriptorView.LinkContent": "محتوى الرابط",
"Revisions.Title": "المراجعات السابقة",
"ArchivedTag.Expired": "منتهي الصلاحية",
"DescriptorCard.CreatedBy": "تم الإنشاء بواسطة {author}",
"DescriptorCard.Updated": "تم التحديث {date}",
"DescriptorCard.Expired": "انتهى في {date}",
"DescriptorCard.Expiring": "يتم الانتهاء {date}",
"Navbar.Login": "تسجيل الدخول",
"Navbar.Logout": "تسجيل الخروج",
"Navbar.List": "روابط OONI Run الخاصة بي",
"Navbar.Create": "أنشء رابط تشغيل OONI",
"Login.Title": "من فضلك سجّل دخولك كي تتكمن من المتابعة",
"Login.EnterEmail": "أضف إيميلك واضغط على الرابط المرسل إلى إيميلك لتسجيل الدخول.\n\nعندما تقوم بإنشاء رابط OONI Run فإننا سنسجل الايميل الخاص بك. هذا يعطي الثقة في رابط OONI Run الخاص بك لمستخدمي OONI Probe الذين يستلمون الرابط.",
"Login.Submitted": "لقد تم استلام طلبك بتسجيل الدخول. رجاءً تحقق من وصول الرابط لبريدك الإلكتروني لتفعيله وتسجيل الدخول إلى حسابك.",
"Login.LoggingIn": "يجري تسجيل الدخول...",
"Login.Failure": "حاول تسجيل الدخول مجدداً",
"Login.Button": "ارسال الرابط إلىّ",
"Login.Success": "لقد تم تسجيل دخولك بنجاح. تجري إعادة التوجيه...",
"Footer.Text.Slogan": "يقيس المجتمع العالمي الرقابة على الانترنت في جميع أنحاء العالم.",
"Footer.Heading.About": "عن",
"Footer.Heading.OONIProbe": "مسبار OONI",
"Footer.Heading.Updates": "التحديثات ",
"Footer.Link.About": "OONI",
"Footer.Link.DataPolicy": "سياسة البيانات",
"Footer.Link.DataLicense": "ترخيص البيانات",
"Footer.Link.Contact": "اتصل بنا",
"Footer.Link.Probe": "تثبيت",
"Footer.Link.Tests": "الاختبارات",
"Footer.Link.Code": "الكود المصدري",
"Footer.Link.API": "واجهة برمجة التطبيقات",
"Footer.Link.Blog": "المدونة",
"Footer.Link.Twitter": "تويتر",
"Footer.Link.MailingList": "قائمة بريدية",
"Footer.Link.Slack": "تطبيق سلاك (Slack)",
"Footer.Text.Copyright": "‫© {currentYear} المرصد المفتوح لتداخل الشبكات (OONI)",
"Footer.Text.CCommons": "المحتوى المتاح بموجب ترخيص المشاع الإبداعي.",
"Tests.WebConnectivity.Name": "اختبار الاتصال بالشبكة",
"Tests.Telegram.Name": "اختبار Telegram ",
"Tests.Facebook.Name": "اختبار Facebook Messenger",
"Tests.WhatsApp.Name": "اختبار WhatsApp",
"Tests.Signal.Name": "اختبار Signal ",
"Tests.HTTPInvalidReqLine.Name": "اختبار عدم صلاحية طلب HTTP",
"Tests.HTTPHeaderManipulation.Name": "اختبار التلاعب بخانة رأس صفحة HTTP",
"Tests.NDT.Name": "اختبار السرعة NDT",
"Tests.Dash.Name": "اختبار البث الحي بالفيديو بصيغة DASH",
"Tests.TorVanilla.Name": "اختبار تطبيق تور (Vanilla)",
"Tests.BridgeReachability.Name": "اختبار قابلية الوصول لجسر تور",
"Tests.TCPConnect.Name": "اختبار الاتصال بـ TCP",
"Tests.DNSConsistency.Name": "اختبار اتساق‫ خادم أسماء النطاقات (DNS)‬",
"Tests.HTTPRequests.Name": "اختبار طلبات HTTP",
"Tests.Psiphon.Name": "اختبار Psiphon",
"Tests.Tor.Name": "اختبار تور",
"Tests.RiseupVPN.Name": "اختبار RiseupVPN ",
"Tests.TorSnowflake.Name": "اختبار Snowflake لِتور",
"Tests.DNSCheck.Name": "التحقق من ‫خادم أسماء النطاقات (DNS)‬",
"Tests.StunReachability.Name": "قابلية وصول بروتوكول خدمات تخطي جلسة ترجمة عنوان الشبكة (STUN)",
"Tests.URLGetter.Name": "الأداة URL Getter",
"Tests.ProbeWeb.Name": "مسبار OONI",
"DateRange.OneWeek": "أسبوع واحد",
"DateRange.OneMonth": "شهر واحد",
"DateRange.SixMonths": "ستة شهور",
"DateRange.Apply": "التطبيق",
"DateRange.Cancel": "إلغاء "
}
Loading

0 comments on commit 07e7199

Please sign in to comment.