From 47747ec8f68eab0d053e709edaecb4c1943a179a Mon Sep 17 00:00:00 2001 From: "rafi.ghanbari" Date: Fri, 19 Dec 2025 15:56:41 +0330 Subject: [PATCH] feat: add Persian language support --- README.md | 2 +- .../translations/fa/constellation_names.csv | 90 ++++ data/raw/translations/fa/dso_names.csv | 153 +++++++ data/raw/translations/fa/other_terms.csv | 43 ++ data/raw/translations/fa/star_names.csv | 427 ++++++++++++++++++ docs/reference-localization.md | 1 + src/starplot/config.py | 2 + src/starplot/data/translations.py | 48 +- tests/test_languages.py | 3 + 9 files changed, 767 insertions(+), 2 deletions(-) create mode 100644 data/raw/translations/fa/constellation_names.csv create mode 100644 data/raw/translations/fa/dso_names.csv create mode 100644 data/raw/translations/fa/other_terms.csv create mode 100644 data/raw/translations/fa/star_names.csv diff --git a/README.md b/README.md index 8bb0aafa..3b29d93d 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ - 📥 **Export** - png, svg, jpeg - 🚀 **Data Backend** - powered by DuckDB + Ibis for fast object lookup - 🧭 **Label Collision Avoidance** - ensuring all labels are readable -- 🌐 **Localization** - label translations for French and Chinese +- 🌐 **Localization** - label translations for French, Chinese, and Persian ## Examples *Zenith chart of the stars from a specific time/location:* diff --git a/data/raw/translations/fa/constellation_names.csv b/data/raw/translations/fa/constellation_names.csv new file mode 100644 index 00000000..a7535025 --- /dev/null +++ b/data/raw/translations/fa/constellation_names.csv @@ -0,0 +1,90 @@ +iau_id,English,fa +and,Andromeda,زن به زنجیر کشیده +ant,Antlia,تلمبه +aps,Apus,پرنده بهشتی +aql,Aquila,عقاب +aqr,Aquarius,دلو +ara,Ara,مذبح +ari,Aries,حمل +aur,Auriga,رانشین +boo,Bootes,گاوران +cae,Caelum,قلم تراش +cam,Camelopardalis,زرافه +cap,Capricornus,جدی +car,Carina,کشتی عرشه +cas,Cassiopeia,ذات‌الکرسی +cen,Centaurus,کنتورس +cep,Cepheus,کیفاوس +cet,Cetus,نهنگ +cha,Chamaeleon,آفتاب‌پرست +cir,Circinus,پرگار +cma,Canis Major,سگ بزرگ +cmi,Canis Minor,سگ کوچک +cnc,Cancer,سرطان +col,Columba,کبوتر +com,Coma Berenices,گیسوان +cra,Corona Australis,تاج جنوبی +crb,Corona Borealis,تاج شمالی +crt,Crater,پیاله +cru,Crux,صلیب جنوبی +crv,Corvus,کلاغ +cvn,Canes Venatici,سگ‌های شکاری +cyg,Cygnus,قوی +del,Delphinus,دلفین +dor,Dorado,ماهی شمشیر +dra,Draco,اژدها +equ,Equuleus,اسب کوچک +eri,Eridanus,رودخانه +for,Fornax,کوره +gem,Gemini,جوزا +gru,Grus,درنا +her,Hercules,هرکول +hor,Horologium,ساعت +hya,Hydra,مار آبی +hyi,Hydrus,مار کوچک آبی +ind,Indus,سرخپوست +lac,Lacerta,مارمولک +leo,Leo,اسد +lep,Lepus,خرگوش +lib,Libra,میزان +lmi,Leo Minor,شیر کوچک +lup,Lupus,گرگ +lyn,Lynx,سیاه‌گوش +lyr,Lyra,چنگ +men,Mensa,کوه میزی +mic,Microscopium,میکروسکوپ +mon,Monoceros,تک‌شاخ +mus,Musca,مگس +nor,Norma,زاویه‌سنج +oct,Octans,هشت‌گوش +oph,Ophiuchus,مارافسا +ori,Orion,جبار +pav,Pavo,طاووس +peg,Pegasus,اسب بالدار +per,Perseus,برساوش +phe,Phoenix,ققنوس +pic,Pictor,نقاش +psa,Piscis Austrinus,ماهی جنوبی +psc,Pisces,حوت +pup,Puppis,عقب کشتی +pyx,Pyxis,قطب‌نما +ret,Reticulum,شبکه +scl,Sculptor,پیکرتراش +sco,Scorpius,عقرب +sct,Scutum,سپر +ser1,Serpens Caput,سر مار +ser2,Serpens Cauda,دم مار +sex,Sextans,شش‌دانگ +sge,Sagitta,پیکان +sgr,Sagittarius,قوس +tau,Taurus,ثور +tel,Telescopium,دوربین +tra,Triangulum Australe,مثلث جنوبی +tri,Triangulum,مثلث +tuc,Tucana,توکان +uma,Ursa Major,خرس بزرگ +umi,Ursa Minor,خرس کوچک +vel,Vela,بادبان +vir,Virgo,سنبله +vol,Volans,ماهی پرنده +vul,Vulpecula,روباه کوچک diff --git a/data/raw/translations/fa/dso_names.csv b/data/raw/translations/fa/dso_names.csv new file mode 100644 index 00000000..959b6a5c --- /dev/null +++ b/data/raw/translations/fa/dso_names.csv @@ -0,0 +1,153 @@ +open_ngc_name,English,fa +IC0348,Omi Per Cloud,ابر اومیکرون برساوش +IC0349,Barnard's Merope Nebula,سحابی مروپ بارنارد +IC0405,Flaming Star Nebula,سحابی ستاره شعله‌ور +IC0434,"Flame Nebula, Orion B",سحابی شعله +IC0443,Gem A,گوزا الف +IC1318,Gamma Cygni Nebula,سحابی گاما قوی +IC2220,Toby Jug Nebula,سحابی توبی جاگ +IC2391,Omicron Velorum Cluster,خوشه اومیکرون بادبان +IC2431 NED02,Browning,براونینگ +IC2574,Coddington's Nebula,سحابی کودینگتون +IC2602,Theta Carinae Cluster,خوشه تتا عرشه +IC2944,lam Cen Nebula,سحابی لاندا قنطورس +IC4604,rho Oph Nebula,سحابی رو مارافسا +IC4703,"Eagle Nebula, Star Queen",سحابی عقاب +IC4715,Small Sagittarius Star Cloud,ابر ستاره‌ای کوچک قوس +IC5070,Pelican Nebula,سحابی پلیکان +IC5146,Cocoon Nebula,سحابی پیله +NGC0040,Bow-Tie nebula,سحابی پاپیون +NGC0104,47 Tucanae,۴۷ توکان +NGC0224,Andromeda Galaxy,کهکشان زن به زنجیر کشیده +NGC0246,Skull Nebula,سحابی جمجمه +NGC0253,Sculptor Galaxy,کهکشان پیکر‌تراش +NGC0292,Small Magellanic Cloud,ابر ماژلانی کوچک +NGC0457,Owl Cluster,خوشه جغد +NGC0598,Triangulum Galaxy,کهکشان مثلث +NGC0650,Barbell Nebula,سحابی دمبل کوچک +NGC0869,h Persei Cluster,خوشه ها برساوش +NGC0884,chi Persei Cluster,خوشه کای برساوش +NGC1049,Fornax Dwarf Cluster 3,خوشه ۳ کوتوله کوره +NGC1275,Perseus A,برساوش الف +NGC1316,Fornax A,کوره الف +NGC1317,Fornax B,کوره ب +NGC1432,Maia Nebula,سحابی مایا +NGC1435,Merope Nebula,سحابی مروپ +NGC1499,California Nebula,سحابی کالیفرنیا +NGC1555,Hind's Variable Nebula,سحابی متغیر هیند +NGC1909,The Witch Head Nebula,سحابی سر جادوگر +NGC1952,Crab Nebula,سحابی خرچنگ +NGC1976,Orion Nebula,سحابی جبار +NGC1977,the Running Man Nebula,سحابی مرد دونده +NGC1980,Lower Sword,شمشیر پایین +NGC1981,Upper Sword,شمشیر بالا +NGC1982,Mairan's Nebula,سحابی میران +NGC1990,Alnilam,النظام +NGC2070,Tarantula Nebula,سحابی رتیل +NGC2174,Monkey Head Nebula,سحابی سر میمون +NGC2237,Rosette A,گل رز الف +NGC2238,Rosette Nebula,سحابی گل رز +NGC2246,Rosette B,گل رز ب +NGC2261,Hubble's Nebula,سحابی هابل +NGC2264,Christmas Tree Cluster,خوشه درخت کریسمس +NGC2301,Great Bird Cluster,خوشه پرنده بزرگ +NGC2360,Caroline's Cluster,خوشه کارولین +NGC2392,Eskimo Nebula,سحابی اسکیمو +NGC2537,"Bear Claw Nebula, Bear-Paw Galaxy",کهکشان پنجه خرس +NGC2573,Polarissima Australis,قطبی‌ترین جنوبی +NGC2632,Beehive,کندو +NGC2685,Helix Galaxy,کهکشان مارپیچی +NGC2736,Pencil Nebula,سحابی مدادی +NGC3031,Bode's Galaxy,کهکشان بوده +NGC3034,Cigar Galaxy,کهکشان سیگار +NGC3115,Spindle Galaxy,کهکشان دوک +NGC3132,Eight-Burst Nebula,سحابی هشت انفجاری +NGC3172,Polarissima Borealis,قطبی‌ترین شمالی +NGC3242,Jupiter's Ghost Nebula,سحابی شبح مشتری +NGC3372,Carina Nebula,سحابی عرشه +NGC3532,Wishing Well Cluster,خوشه چاه آرزوها +NGC3561,The Guitar,گیتار +NGC3587,Owl Nebula,سحابی جغد +NGC3766,Pearl Cluster,خوشه مروارید +NGC3918,Blue Planetary,سیاره‌ای آبی +NGC3928,Miniature Spiral,مارپیچ کوچک +NGC4038,Antennae Galaxies,کهکشان‌های آنتنی +NGC4039,Antennae Galaxies,کهکشان‌های آنتنی +NGC4194,Medusa Galaxy Merger,ادغام کهکشانی مدوسا +NGC4254,Coma Pinwheel,فلک‌افلاک گیسوان +NGC4435,Eyes,چشم‌ها +NGC4438,Eyes,چشم‌ها +NGC4486,Virgo Galaxy,کهکشان سنبله +NGC4565,Needle Galaxy,کهکشان سوزنی +NGC4567,"Butterfly Galaxies, Siamese Twins",کهکشان‌های پروانه‌ای +NGC4568,"Butterfly Galaxies, Siamese Twins",کهکشان‌های پروانه‌ای +NGC4594,Sombrero Galaxy,کهکشان سومبررو +NGC4609,Coalsack Cluster,خوشه کیسه زغال +NGC4631,Whale Galaxy,کهکشان نهنگ +NGC4651,Umbrella Galaxy,کهکشان چتر +NGC4676,Mice Galaxy,کهکشان موش‌ها +NGC4755,"Herschel's Jewel Box, kappa Crucis Cluster",جعبه جواهرات هرشل +NGC4826,"Black Eye Galaxy, Evil Eye Galaxy",کهکشان چشم سیاه +NGC4990,Cocoon Galaxy,کهکشان پیله +NGC5055,Sunflower Galaxy,کهکشان آفتابگردان +NGC5128,Centaurus A,قنطورس الف +NGC5139,Omega Centauri,امگا قنطورس +NGC5194,Whirlpool Galaxy,کهکشان گرداب +NGC5236,Southern Pinwheel Galaxy,کهکشان فلک‌افلاک جنوبی +NGC6087,S Normae Cluster,خوشه اس زاویه‌سنج +NGC6188,Firebird Nebula,سحابی پرنده آتشین +NGC6205,Hercules Globular Cluster,خوشه کروی هرکول +NGC6302,Bug Nebula,سحابی حشره +NGC6309,Box Nebula,سحابی جعبه +NGC6357,the War and Peace Nebula,سحابی جنگ و صلح +NGC6369,Little Ghost Nebula,سحابی شبح کوچک +NGC6405,Butterfly Cluster,خوشه پروانه +NGC6445,Little Gem,گوهر کوچک +NGC6475,Ptolemy's Cluster,خوشه بطلمیوس +NGC6514,Trifid Nebula,سحابی سه‌شاخه +NGC6523,Lagoon Nebula,سحابی مرداب +NGC6537,Red Spider Nebula,سحابی عنکبوت سرخ +NGC6543,Cat's Eye Nebula,سحابی چشم گربه +NGC6611,Eagle Nebula,سحابی عقاب +NGC6618,Swan Nebula,سحابی قو +NGC6705,Wild Duck Cluster,خوشه اردک وحشی +NGC6720,Ring Nebula,سحابی حلقه +NGC6741,Phantom Streak Nebula,سحابی خط شبح +NGC6818,Little Gem Nebula,سحابی گوهر کوچک +NGC6819,Foxhead Cluster,خوشه سر روباه +NGC6822,Barnard's Galaxy,کهکشان بارنارد +NGC6826,Blinking Planetary,سیاره‌ای پلک‌زن +NGC6853,Dumbbell Nebula,سحابی دمبل +NGC6888,Crescent Nebula,سحابی هلال +NGC6905,Blue Flash Nebula,سحابی فلاش آبی +NGC6946,Fireworks Galaxy,کهکشان آتش‌بازی +NGC6960,Veil Nebula,سحابی نقاب +NGC6992,Eastern Veil,نقاب شرقی +NGC6995,Eastern Veil,نقاب شرقی +NGC7000,North America Nebula,سحابی آمریکای شمالی +NGC7009,Saturn Nebula,سحابی زحل +NGC7023,Iris Nebula,سحابی زنبق +NGC7114,Schmidt's Nova Cygni,نوای اشمیت قوی +NGC7293,Helix Nebula,سحابی مارپیچی +NGC7635,Bubble Nebula,سحابی حباب +NGC7662,Copeland's Blue Snowball,گلوله برف آبی کوپلند +B033,Horsehead Nebula,سحابی سر اسب +C009,Cave Nebula,سحابی غار +C014,Double Cluster,خوشه دوتایی +C041,Hyades,ثریا +C099,Coalsack Nebula,سحابی کیسه زغال +Cl399,Brocchi's Cluster,خوشه بروکی +ESO056-115,Large Magellanic Cloud,ابر ماژلانی بزرگ +ESO097-013,Circinus Galaxy,کهکشان پرگار +ESO270-017,Fourcade-Figueroa,فورکید-فیگوئروآ +ESO351-030,Sculptor Dwarf Elliptical,بیضوی کوتوله پیکرتراش +ESO356-004,Fornax Dwarf Spheroidal,کروی کوتوله کوره +HCG079,Seyfert's Sextet,شش‌گانه سیفرت +HCG092,Stephan's Quintet,پنج‌گانه استفان +Mel022,Pleiades,پروین +Mel111,Coma Star Cluster,خوشه ستاره‌ای گیسوان +PGC000143,Wolf-Lundmark-Melotte Galaxy,کهکشان وولف-لوندمارک-ملوت +PGC029653,Sextans A,شش‌دانگ الف +PGC088608,Sextans Dwarf Spheroidal,کروی کوتوله شش‌دانگ +UGC05373,Sextans B,شش‌دانگ ب +UGC05470,Leo I,شیر یک diff --git a/data/raw/translations/fa/other_terms.csv b/data/raw/translations/fa/other_terms.csv new file mode 100644 index 00000000..0db466d1 --- /dev/null +++ b/data/raw/translations/fa/other_terms.csv @@ -0,0 +1,43 @@ +English,fa +star,ستاره +deep sky object,جرم عمیق آسمانی +open cluster,خوشه باز +globular cluster,خوشه کروی +nebula,سحابی +galaxy,کهکشان +dark nebula,سحابی تاریک +association of stars,انجمن ستارگان +double star,ستاره دوتایی +emission nebula,سحابی گسیلی +galaxy pair,جفت کهکشان +galaxy triplet,سه‌گانه کهکشانی +galaxy cluster,خوشه کهکشانی +group of galaxies,گروه کهکشان‌ها +hii ionized region,ناحیه یونیزه هیدروژن +nova star,ستاره نوا +planetary nebula,سحابی سیاره‌ای +reflection nebula,سحابی بازتابی +star cluster nebula,سحابی خوشه ستاره‌ای +supernova remnant,بقایای ابرنواختر +unknown,ناشناخته +Mercury,تیر +Venus,ناهید +Mars,بهرام +Jupiter,مشتری +Saturn,کیوان +Uranus,اورانوس +Neptune,نپتون +Pluto,پلوتون +Sun,خورشید +Moon,ماه +North,شمال +East,شرق +South,جنوب +West,غرب +Ecliptic,دایره البروج +Celestial Equator,استوای آسمانی +N (abbreviation for north),ش +E (abbreviation for east),ق +S (abbreviation for south),ج +W (abbreviation for west),غ +Milky Way,کهکشان راه شیری diff --git a/data/raw/translations/fa/star_names.csv b/data/raw/translations/fa/star_names.csv new file mode 100644 index 00000000..3530abd5 --- /dev/null +++ b/data/raw/translations/fa/star_names.csv @@ -0,0 +1,427 @@ +hip_id,English,fa +13847,Acamar,آخر النهر +7588,Achernar,آخر النهر +3821,Achird,اخیرد +78820,Acrab,عقرب +60718,Acrux,صلیب +44066,Acubens,الزبانی +50335,Adhafera,ذفره +33579,Adhara,عذاری +6411,Adhil,اذیال +20889,Ain,عین +92761,Ainalrami,عین الرامی +94481,Aladfar,الأظفار +90004,Alasia,العاصیه +94141,Albaldah,البلدة +102618,Albali,البالع +95947,Albireo,منقار الدجاجة +59199,Alchiba,الخباء +65477,Alcor,السها +17702,Alcyone,الکیونه +21421,Aldebaran,دبران +105199,Alderamin,الذراع الیمین +108085,Aldhanab,الذنب +83895,Aldhibah,الذئاب +101421,Aldulfin,الدلفین +106032,Alfirk,الفرقد +100064,Algedi,الجدی +1067,Algenib,الجنب +50583,Algieba,الجبهة +14576,Algol,رأس الغول +60965,Algorab,الغراب +31681,Alhena,الهنعه +62956,Alioth,الیات +102488,Aljanah,الجناح +67301,Alkaid,القائد +75411,Alkalurops,العصا +44471,Alkaphrah,الکفرة +115623,Alkarab,العقرب +53740,Alkes,الکأس +23416,Almaaz,الماعز +9640,Almach,العناق +109268,Alnair,النیر +88635,Alnasl,النصل +26311,Alnilam,النظام +26727,Alnitak,النطاق +80112,Alniyat,النیات +46390,Alphard,الفرد +76267,Alphecca,الفکة +677,Alpheratz,سره الفرس +7097,Alpherg,الفرغ +83608,Alrakis,الراقص +9487,Alrescha,الرشا +86782,Alruba,الربع +96100,Alsafi,الساق +41075,Alsciaukat,الساق +42913,Alsephina,السفینة +98036,Alshain,شاهین +100310,Alshat,الشاة +97649,Altair,نسر طائر +94376,Altais,التیس +46750,Alterf,الطرف +35904,Aludra,العذرا +55203,Alula Australis,قفزه جنوبی +55219,Alula Borealis,قفزه شمالی +92946,Alya,الیه +32362,Alzirr,الزر +29550,Amadioha,آمادیوها +110003,Ancha,آنکا +13288,Angetenar,زاویه رودخانه +57820,Aniara,آنیارا +2081,Ankaa,عنقا +95771,Anser,غاز +80763,Antares,قلب العقرب +99473,Antinous,آنتینوس +72845,Arcalís,آرکالیس +69673,Arcturus,سماک رامح +95294,Arkab Posterior,عرقوب پشتی +95241,Arkab Prior,عرقوب پیشین +25985,Arneb,الأرنب +93506,Ascella,زیر بغل +42911,Asellus Australis,خرک جنوبی +42806,Asellus Borealis,خرک شمالی +43109,Ashlesha,اشلشا +45556,Aspidiske,آسپیدیسکه +17579,Asterope,استروپ +80331,Athebyne,اتبین +17448,Atik,عاتق +17847,Atlas,اطلس +82273,Atria,آتریا +41037,Avior,آویور +118319,Axólotl,آکسولوتل +13993,Ayeyarwady,آیه‌یاروادی +107136,Azelfafage,اذرع الفرس +13701,Azha,اذا +38170,Azmidi,اذمیدی +73136,Baekdu,بکدو +87108,Bake-eo (or Bake Eo),بیک‌ائو +87937,Barnard's Star,ستاره بارنارد +8645,Baten Kaitos,بطن قیطس +20535,Beemim,بیمیم +19587,Beid,بید +95124,Belel,بلل +6643,Bélénos,بلنوس +25336,Bellatrix,المرزم +27989,Betelgeuse,ابط الجوزا +13209,Bharani,بهارانی +48711,Bibhā,بیبها +109427,Biham,بیهام +107251,Bosona,بوسونا +14838,Botein,بطین +73714,Brachium,بازو +26380,Bubup,بوبوپ +12191,Buna,بونا +106786,Bunda,بوندا +30438,Canopus,سهیل +24608,Capella,عیوق +746,Caph,کف +36850,Castor,رأس التوأم المقدم +4422,Castula,کاستولا +86742,Cebalrai,کلب الراعی +37284,Ceibo,سیبو +17489,Celaeno,سلائنو +86796,Cervantes,سروانتس +53721,Chalawan,چالاوان +20894,Chamukuy,چاموکوی +61317,Chara,کارا +99894,Chechia,چچیا +54879,Chertan,خرتان +1547,Citadelle,سیتادل +33719,Citalá,سیتالا +3479,Cocibolca,کوسیبولکا +43587,Copernicus,کوپرنیک +63125,Cor Caroli,قلب شارل +80463,Cujam,کوجام +23875,Cursa,الکرسی +100345,Dabih,ذابح +14879,Dalim,دلیم +102098,Deneb,ذنب الدجاجة +107556,Deneb Algedi,ذنب الجدی +57632,Denebola,ذنب الأسد +64241,Diadem,تاج +54158,Dingolay,دینگولای +3419,Diphda,ضفدع ثانی +66047,Dofida,دوفیدا +78401,Dschubba,الجبهة +54061,Dubhe,ظهر الدب الأکبر +86614,Dziban,ذئبان +114322,Ebla,ابلا +75458,Edasich,الذئب +17499,Electra,الکترا +70755,Elgafar,الغفر +29034,Elkurud,الکرود +25428,Elnath,النطح +87833,Eltanin,رأس التنین +5529,Emiw,امیو +107315,Enif,الأنف +116727,Errai,الراعی +90344,Fafnir,فافنیر +78265,Fang,فانگ +97165,Fawaris,فوارس +48615,Felis,گربه +2247,Felixvarela,فلیکس‌وارلا +57370,Flegetonte,فلگتونته +113368,Fomalhaut,فم الحوت +56508,Formosa,فورموزا +2920,Fulu,فولو +113889,Fumalsamakah,فم السمکة +61177,Funi,فونی +30122,Furud,فرود +87261,Fuyue,فویوئه +61084,Gacrux,صلیب گاما +42446,Gakyid,گاکید +107259,Garnet Star,ستاره گارنت +56211,Giausar,گیائوسار +59803,Gienah,جناح +60260,Ginan,گینان +36188,Gomeisa,غمیصاء +87585,Grumium,گرومیوم +77450,Gudja,گودجا +94645,Gumala,گومالا +84405,Guniibuu,گونیبو +68702,Hadar,حضار +23767,Haedus,جدی +9884,Hamal,حمل +23015,Hassaleh,حصاله +26241,Hatysa,هتیسا +113357,Helvetios,هلوتیوس +66249,Heze,هزع +21109,Hoggar,هوگار +112029,Homam,همام +55174,Hunahpú,هوناهپو +80076,Hunor,هونور +78104,Iklil,اکلیل +47087,Illyrian,ایلیریان +59747,Imai,ایمای +84787,Inquill,اینکوئیل +15578,Intan,اینتان +46471,Intercrus,اینترکروس +108375,Itonda,ایتوندا +72105,Izar,ازار +79374,Jabbah,الجبهة +37265,Jishui,جیشوئی +12706,Kaffaljidhma,کف الجذماء +47202,Kalausi,کالاوسی +79219,Kamuy,کاموی +69427,Kang,کانگ +76351,Karaka,کاراکا +90185,Kaus Australis,قوس جنوبی +90496,Kaus Borealis,قوس شمالی +89931,Kaus Media,قوس میانی +92895,Kaveh,کاوه +19849,Keid,قید +69974,Khambalia,خمبالیا +104987,Kitalpha,کیت‌الفا +72607,Kochab,کوکب الشمال +12961,Koeia,کوایا +80816,Kornephoros,کورنفوروس +61359,Kraz,کراز +108917,Kurhah,کورها +62223,La Superba,سوپربا +110130,Lang-Exster,لانگ‌اکستر +82396,Larawag,لاراواگ +68002,Leepwal,لیپوال +85696,Lesath,لسعة +97938,Libertas,لیبرتاس +66192,Liesma,لیسما +13061,Lilii Borea,لیلی بوریا +110813,Lionrock,لاین‌راک +30860,Lucilinburhuc,لوسی‌لینبورهوک +30905,Lusitânia,لوزیتانیا +85693,Maasym,معصم +52521,Macondo,ماکوندو +24003,Mago,ماگو +28380,Mahasim,محاسم +82651,Mahsati,مهستی +17573,Maia,مایا +80883,Marfik,مرفق +113963,Markab,مرکب +45941,Markeb,مرکب +79043,Marsic,مارسیک +112158,Matar,مطر +32246,Mebsuta,المبسوطة +59774,Megrez,مغرز +26207,Meissa,المیسان +34088,Mekbuda,مکبودة +42556,Meleph,ملف +28360,Menkalinan,منکب ذی العنان +14135,Menkar,منخر +68933,Menkent,منکب قنطورس +18614,Menkib,منکب +53910,Merak,مراق +72487,Merga,مرگا +94114,Meridiana,مریدیانا +17608,Merope,مروپ +8832,Mesarthim,مسرتیم +45238,Miaplacidus,میاپلاسیدوس +62434,Mimosa,میموزا +42402,Minchir,منشیر +63090,Minelauva,مینه‌لائووا +25930,Mintaka,منطقه +10826,Mira,میرا +5447,Mirach,میراخ +13268,Miram,میرام +15863,Mirfak,مرفق الثریا +30324,Mirzam,مرزم +14668,Misam,میسم +65378,Mizar,میزر +72339,Mönch,مونش +8796,Mothallah,مثلث +22491,Mouhoun,موهون +34045,Muliphein,مولی‌فین +67927,Muphrid,مفرد الرامح +41704,Muscida,موسیدا +103527,Musica,موزیکا +44946,Nahn,نهن +39429,Naos,ناووس +106985,Nashira,سعد ناشره +40687,Násti,ناستی +48235,Natasha,ناتاشا +73555,Nekkar,نقار +7607,Nembus,نمبوس +5054,Nenque,ننک +32916,Nervia,نرویا +33856,Nganurganity,نگانورگانیتی +25606,Nihal,نهال +74961,Nikawiy,نیکاوی +31895,Nosaxa,نوساکسا +92855,Nunki,النعائم +75695,Nusakan,نسقان +13192,Nushagak,نوشاگاک +80838,Ogma,اوگما +93747,Okab,عقاب +81266,Paikauhale,پایکائوهل +100751,Peacock,طاووس +26634,Phact,فاخته +58001,Phecda,فخذ +75097,Pherkad,فرقد +99711,Phoenicia,فونیشیا +61394,Phyllon Kissinou,فایلون کیسینو +40881,Piautos,پیائوتوس +88414,Pincoya,پینکویا +82545,Pipirima,پیپیریما +31685,Pipit,پیپیت +17851,Pleione,پلیون +116084,Poerava,پوئه‌راوا +11767,Polaris,ستاره قطبی +104382,Polaris Australis,قطبی جنوبی +89341,Polis,پولیس +37826,Pollux,رأس التوأم المؤخر +61941,Porrima,پوریما +53229,Praecipua,پرائه‌سیپوا +20205,Prima Hyadum,نخستین هیاد +37279,Procyon,الشعری الشامیة +29655,Propus,پروپوس +70890,Proxima Centauri,پروکسیما کنتوری +16537,Ran,ران +17378,Rana,رانا +83547,Rapeto,راپتو +48455,Rasalas,رأس الأسد +84345,Rasalgethi,رأس الجاثی +86032,Rasalhague,رأس الحواء +85670,Rastaban,رأس الثعبان +39953,Regor,رگور +49669,Regulus,قلب الأسد +5737,Revati,رواتی +19780,Rhombus,رومبوس +24436,Rigel,رجل الجبار +71683,Rigil Kentaurus,رجل القنطورس +81022,Rosalíadecastro,روزالیاد‌کاسترو +101769,Rotanev,روتانو +6686,Ruchbah,رکبة +95347,Rukbat,رکبة +84012,Sabik,سابق +23453,Saclateni,ساکلاتنی +110395,Sadachbia,سعد الأخبیة +112748,Sadalbari,سعد البارع +109074,Sadalmelik,سعد الملک +106278,Sadalsuud,سعد السعود +100453,Sadr,صدر الدجاجة +56572,Sagarmatha,ساگارماتا +27366,Saiph,سیف الجبار +115250,Salm,سلم +106824,Sāmaya,سامایا +86228,Sargas,سارگاس +84379,Sarin,سارین +21594,Sceptrum,سپتروم +113881,Scheat,ساق +3179,Schedar,صدر +20455,Secunda Hyadum,دومین هیاد +8886,Segin,سگین +71075,Seginus,سگینوس +96757,Sham,سهم +55664,Shama,شاما +51624,Shaomin,شائومین +79431,Sharjah,شارجه +85927,Shaula,شولة +92420,Sheliak,شلیاک +8903,Sheratan,شرطان +95262,Sika,سیکا +32349,Sirius,شعری یمانی +111710,Situla,سیتولا +113136,Skat,ساق +104780,Solaris,سولاریس +65474,Spica,سنبله +111169,Stellio,ستلیو +43674,Stribor,استریبور +101958,Sualocin,سوالوسین +47508,Subra,سوبرا +44816,Suhail,سهیل +93194,Sulafat,سلحفاة +69701,Syrma,سیرما +22449,Tabit,تابیت +57399,Taiyangshou,تایانگشو +63076,Taiyi,تایی +44127,Talitha,طالثه +50801,Tania Australis,قفزه ثانیه جنوبی +50372,Tania Borealis,قفزه ثانیه شمالی +38041,Tapecue,تاپکو +97278,Tarazed,طرزد +40526,Tarf,طرف +17531,Taygeta,تایگتا +40167,Tegmine,تگمینه +30343,Tejat,تجت +113288,Tengshe,تنگشه +98066,Terebellum,تربلوم +21393,Theemin,تیمین +68756,Thuban,ثعبان +112122,Tiaki,تیاکی +98823,Tianfu,تیانفو +26451,Tianguan,تیانگوان +62423,Tianyi,تیانیی +80687,Timir,تیمیر +7513,Titawin,تیتاوین +71681,Toliman,تولیمان +58952,Tonatiuh,توناتیوه +8198,Torcular,تورکولار +17096,Tupi,توپی +39757,Tureis,توریس +47431,Ukdah,عقده +57291,Uklun,اوکلون +77070,Unukalhai,عنق الحیة +33856,Unurgunite,اونورگونیته +71860,Uridim,اوریدیم +96078,Uruk,اوروک +91262,Vega,نسر واقع +116076,Veritate,وریتاته +63608,Vindemiatrix,قاطف العنب +35550,Wasat,وسط +27628,Wazn,وزن +34444,Wezen,وزن +5348,Wurren,وورن +82514,Xamidimura,زامیدیمورا +91852,Xihe,شیهه +69732,Xuange,شوانگه +79882,Yed Posterior,ید خلفی +79593,Yed Prior,ید قدامی +85822,Yildun,یلدون +49637,Yunü,یونو +60129,Zaniah,زاویه +18543,Zaurak,ذوراق +57757,Zavijava,زاویه +48356,Zhang,ژانگ +15197,Zibal,زیبال +54872,Zosma,زسما +72622,Zubenelgenubi,الزبانی الجنوبی +76333,Zubenelhakrabi,زبانه العقرب +74785,Zubeneschamali,الزبانی الشمالی diff --git a/docs/reference-localization.md b/docs/reference-localization.md index 64288fac..23079002 100644 --- a/docs/reference-localization.md +++ b/docs/reference-localization.md @@ -7,6 +7,7 @@ Starplot's labels are available in the following languages: 2. Chinese 3. French 4. Lithuanian +5. Persian (Farsi) **Want to see another language available?** Please help us add it! [Details here](https://github.com/steveberardi/starplot/tree/main/data/raw/translations) diff --git a/src/starplot/config.py b/src/starplot/config.py index 6e9b978d..0538fa32 100644 --- a/src/starplot/config.py +++ b/src/starplot/config.py @@ -81,9 +81,11 @@ class Settings: - `fr` = French - `zh-CN` = Chinese. Make sure you have a good Chinese font installed (such as [Noto Sans SC](https://fonts.google.com/noto/specimen/Noto+Sans+SC)) and you'll also need to set that as the font in your plot's style. - `lt` = Lithuanian + - `fa` = Persian (Farsi). Make sure you have a Persian font installed that supports RTL (such as [Vazir](https://github.com/rastikerdar/vazir-font) or [Noto Sans Arabic](https://fonts.google.com/noto/specimen/Noto+Sans+Arabic)) and set it as the font in your plot's style. **🌐 Want to see another language available? Please help us add it! [Details here](https://github.com/steveberardi/starplot/tree/main/data/raw/translations).** """ + settings = Settings() diff --git a/src/starplot/data/translations.py b/src/starplot/data/translations.py index ccb07fde..616fc8b1 100644 --- a/src/starplot/data/translations.py +++ b/src/starplot/data/translations.py @@ -140,9 +140,55 @@ "w": "西", "milky way": "银河", }, + "fa": { + "legend": "راهنما", + "star magnitude": "قدر ستاره", + "star": "ستاره", + "deep sky object": "جرم عمیق آسمانی", + "open cluster": "خوشه باز", + "globular cluster": "خوشه کروی", + "nebula": "سحابی", + "galaxy": "کهکشان", + "dark nebula": "سحابی تاریک", + "association of stars": "انجمن ستارگان", + "double star": "ستاره دوتایی", + "emission nebula": "سحابی گسیلی", + "galaxy pair": "جفت کهکشان", + "galaxy triplet": "سه‌گانه کهکشانی", + "galaxy cluster": "خوشه کهکشانی", + "group of galaxies": "گروه کهکشان‌ها", + "hii ionized region": "ناحیه یونیزه هیدروژن", + "nova star": "ستاره نوا", + "planetary nebula": "سحابی سیاره‌ای", + "reflection nebula": "سحابی بازتابی", + "star cluster nebula": "سحابی خوشه ستاره‌ای", + "supernova remnant": "بقایای ابرنواختر", + "unknown": "ناشناخته", + "planet": "سیاره", + "mercury": "تیر", + "venus": "ناهید", + "mars": "بهرام", + "jupiter": "مشتری", + "saturn": "کیوان", + "uranus": "اورانوس", + "neptune": "نپتون", + "pluto": "پلوتون", + "sun": "خورشید", + "moon": "ماه", + "north": "شمال", + "east": "شرق", + "south": "جنوب", + "west": "غرب", + "ecliptic": "دایره البروج", + "celestial equator": "استوای آسمانی", + "n": "ش", + "e": "ق", + "s": "ج", + "w": "غ", + "milky way": "کهکشان راه شیری", + }, } - def language_name_column(language: str, column_prefix: str = "name") -> str: language_name = language.replace("-", "_").lower() diff --git a/tests/test_languages.py b/tests/test_languages.py index 220f1f87..2e42b92b 100644 --- a/tests/test_languages.py +++ b/tests/test_languages.py @@ -12,6 +12,7 @@ class TestLanguages: (11767, "fr", "Étoile Polaire"), (11767, "zh-cn", "北极星"), (11767, "lt", "Šiaurinė žvaigždė (Polaris)"), + (11767, "fa", "ستاره قطبی"), ], ) def test_star_name(self, star_hip_id, language, expected_value): @@ -26,6 +27,7 @@ def test_star_name(self, star_hip_id, language, expected_value): ("cma", "fr", "Grand chien"), ("cma", "zh-cn", "大犬"), ("cma", "lt", "Didysis Šuo"), + ("cma", "fa", "سگ بزرگ"), ], ) def test_constellation_name(self, constellation_id, language, expected_value): @@ -40,6 +42,7 @@ def test_constellation_name(self, constellation_id, language, expected_value): ("11", "fr", "Amas du Canard sauvage"), ("11", "zh-cn", "野鸭星团"), ("11", "lt", "Laukinės anties spiečius (M11)"), + ("11", "fa", "خوشه اردک وحشی"), ], ) def test_dso_name(self, messier, language, expected_value):