From f978f297646ab08611797cd9a19991e7967ee573 Mon Sep 17 00:00:00 2001 From: Amin <36745993+4Min4m@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:36:12 +0200 Subject: [PATCH] feat: add Persian (Farsi) translations (#4263) * Add Persian/Farsi (fa) language support This PR adds support for Persian (Farsi) language with ISO 639-1 code `fa`. Translations have been added for all keys in `statCardLocales`, `repoCardLocales`, `langCardLocales`, and `wakatimeCardLocales`. The translations follow the existing style and are compatible with the project's structure. Please test the display of Persian text in the UI to ensure proper rendering. * review * Update src/translations.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/translations.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/translations.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Alexandr Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- backend/readme.md | 1 + backend/src/translations.js | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/backend/readme.md b/backend/readme.md index c7d9c14e..892e39d0 100644 --- a/backend/readme.md +++ b/backend/readme.md @@ -338,6 +338,7 @@ Here is a list of all available locales: | `ru` | Russian | | `uk-ua` | Ukrainian | | `ro` | Romanian | +| `fa` | Persian (Farsi) | diff --git a/backend/src/translations.js b/backend/src/translations.js index 5a877f2f..54786cb8 100644 --- a/backend/src/translations.js +++ b/backend/src/translations.js @@ -25,6 +25,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: `${encodedName}'${apostrophe} GitHub Stats`, bn: `${encodedName} এর GitHub পরিসংখ্যান`, es: `Estadísticas de GitHub de ${encodedName}`, + fa: `آمار گیت‌هاب ${encodedName}`, fi: `${encodedName}:n GitHub-tilastot`, fr: `Statistiques GitHub de ${encodedName}`, hu: `${encodedName} GitHub statisztika`, @@ -61,6 +62,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: `${encodedName}'${apostrophe} GitHub Rank`, bn: `${encodedName} এর GitHub পরিসংখ্যান`, es: `Estadísticas de GitHub de ${encodedName}`, + fa: `رتبه گیت‌هاب ${encodedName}`, fi: `${encodedName}:n GitHub-sijoitus`, fr: `Statistiques GitHub de ${encodedName}`, hu: `${encodedName} GitHub statisztika`, @@ -97,6 +99,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total Stars Earned", bn: "সর্বমোট Star", es: "Estrellas totales", + fa: "مجموع ستاره‌های دریافت‌شده", fi: "Ansaitut tähdet yhteensä", fr: "Total d'étoiles", hu: "Csillagok", @@ -133,6 +136,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total Commits", bn: "সর্বমোট Commit", es: "Commits totales", + fa: "مجموع کامیت‌ها", fi: "Yhteensä committeja", fr: "Total des Commits", hu: "Összes commit", @@ -169,6 +173,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total PRs", bn: "সর্বমোট PR", es: "PRs totales", + fa: "مجموع Pull Request", fi: "Yhteensä PR:t", fr: "Total des PRs", hu: "Összes PR", @@ -205,6 +210,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total Issues", bn: "সর্বমোট Issue", es: "Issues totales", + fa: "مجموع مسائل", fi: "Yhteensä ongelmat", fr: "Nombre total d'incidents", hu: "Összes hibajegy", @@ -241,6 +247,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Contributed to (last year)", bn: "অবদান (গত বছর)", es: "Contribuciones en (el año pasado)", + fa: "مشارکت در (سال گذشته)", fi: "Osallistunut (viime vuonna)", fr: "Contribué à (l'année dernière)", hu: "Hozzájárulások (tavaly)", @@ -277,6 +284,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total PRs Reviewed", bn: "সর্বমোট পুনরালোচনা করা PR", es: "PR totales revisados", + fa: "مجموع درخواست‌های ادغام بررسی‌شده", fi: "Yhteensä tarkastettuja PR:itä", fr: "Nombre total de PR examinés", hu: "Összes ellenőrzött PR", @@ -313,6 +321,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total Discussions Started", bn: "সর্বমোট আলোচনা শুরু", es: "Discusiones totales iniciadas", + fa: "مجموع بحث‌های آغازشده", fi: "Aloitetut keskustelut yhteensä", fr: "Nombre total de discussions lancées", hu: "Összes megkezdett megbeszélés", @@ -349,6 +358,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total Discussions Answered", bn: "সর্বমোট আলোচনা উত্তর", es: "Discusiones totales respondidas", + fa: "مجموع بحث‌های پاسخ‌داده‌شده", fi: "Vastatut keskustelut yhteensä", fr: "Nombre total de discussions répondues", hu: "Összes megválaszolt megbeszélés", @@ -400,6 +410,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Total PRs Merged", bn: "সর্বমোট PR একত্রীকৃত", es: "PR totales fusionados", + fa: "مجموع درخواست‌های ادغام شده", fi: "Yhteensä yhdistetyt PR:t", fr: "Nombre total de PR fusionnés", hu: "Összes egyesített PR", @@ -435,6 +446,7 @@ const statCardLocales = ({ name, apostrophe }) => { en: "Merged PRs Percentage", bn: "PR একত্রীকরণের শতাংশ", es: "Porcentaje de PR fusionados", + fa: "درصد درخواست‌های ادغام‌شده", fi: "Yhdistettyjen PR:ien prosentti", fr: "Pourcentage de PR fusionnés", hu: "Egyesített PR-k százaléka", @@ -474,6 +486,7 @@ const repoCardLocales = { de: "Vorlage", en: "Template", es: "Plantilla", + fa: "الگو", fi: "Malli", fr: "Modèle", hu: "Sablon", @@ -510,6 +523,7 @@ const repoCardLocales = { de: "Archiviert", en: "Archived", es: "Archivados", + fa: "بایگانی‌شده", fi: "Arkistoitu", fr: "Archivé", hu: "Archivált", @@ -564,6 +578,7 @@ const langCardLocales = { bn: "সর্বাধিক ব্যবহৃত ভাষা সমূহ", en: "Most Used Languages", es: "Lenguajes más usados", + fa: "زبان‌های پرکاربرد", fi: "Käytetyimmät kielet", fr: "Langages les plus utilisés", hu: "Leggyakrabban használt nyelvek", @@ -600,6 +615,7 @@ const langCardLocales = { bn: "কোন ভাষার ডেটা নেই।", en: "No languages data.", es: "Sin datos de idiomas.", + fa: "داده‌ای برای زبان‌ها وجود ندارد.", fi: "Ei kielitietoja.", fr: "Aucune donnée sur les langues.", hu: "Nincsenek nyelvi adatok.", @@ -639,6 +655,7 @@ const wakatimeCardLocales = { en: "WakaTime Stats", bn: "WakaTime স্ট্যাটাস", es: "Estadísticas de WakaTime", + fa: "آمار WakaTime", fi: "WakaTime-tilastot", fr: "Statistiques de WakaTime", hu: "WakaTime statisztika", @@ -675,6 +692,7 @@ const wakatimeCardLocales = { en: "last year", bn: "গত বছর", es: "El año pasado", + fa: "سال گذشته", fi: "Viime vuosi", fr: "L'année dernière", hu: "Tavaly", @@ -711,6 +729,7 @@ const wakatimeCardLocales = { en: "last 7 days", bn: "গত ৭ দিন", es: "Últimos 7 días", + fa: "هفت روز گذشته", fi: "Viimeiset 7 päivää", fr: "7 derniers jours", hu: "Elmúlt 7 nap", @@ -747,6 +766,7 @@ const wakatimeCardLocales = { en: "WakaTime user profile not public", bn: "WakaTime ব্যবহারকারীর প্রোফাইল প্রকাশ্য নয়", es: "Perfil de usuario de WakaTime no público", + fa: "پروفایل کاربری WakaTime عمومی نیست", fi: "WakaTime-käyttäjäprofiili ei ole julkinen", fr: "Profil utilisateur WakaTime non public", hu: "A WakaTime felhasználói profilja nem nyilvános", @@ -783,6 +803,7 @@ const wakatimeCardLocales = { en: "User doesn't publicly share detailed code statistics", bn: "ব্যবহারকারী বিস্তারিত কোড পরিসংখ্যান প্রকাশ করেন না", es: "El usuario no comparte públicamente estadísticas detalladas de código", + fa: "کاربر آمار کد تفصیلی را به‌صورت عمومی به اشتراک نمی‌گذارد", fi: "Käyttäjä ei jaa julkisesti tarkkoja kooditilastoja", fr: "L'utilisateur ne partage pas publiquement de statistiques de code détaillées", hu: "A felhasználó nem osztja meg nyilvánosan a részletes kódstatisztikákat", @@ -821,6 +842,7 @@ const wakatimeCardLocales = { en: "No coding activity this week", bn: "এই সপ্তাহে কোন কোডিং অ্যাক্টিভিটি নেই", es: "No hay actividad de codificación esta semana", + fa: "فعالیت کدنویسی در این هفته وجود ندارد", fi: "Ei koodaustoimintaa tällä viikolla", fr: "Aucune activité de codage cette semaine", hu: "Nem volt aktivitás ezen a héten",