166 lines
5.9 KiB
TypeScript
166 lines
5.9 KiB
TypeScript
// Persian labels + IA metadata for the dashboard's category tree.
|
|
// The backend /api/tree returns raw English group names; we present them in
|
|
// Persian and frame them under the "بازار جهانی" domain.
|
|
|
|
export const GROUP_LABELS: Record<string, string> = {
|
|
"Base Metals": "فلزات پایه",
|
|
"Carbon Steel": "فولاد کربنی",
|
|
Ferroalloys: "فروآلیاژها",
|
|
"Minor Metals": "فلزات جزئی",
|
|
"Rare Earths": "عناصر کمیاب خاکی",
|
|
Refractories: "نسوزها",
|
|
"Stainless & Special": "استیل و فولاد خاص",
|
|
"Steel Raw Materials": "مواد اولیه فولاد",
|
|
};
|
|
|
|
export function groupLabel(group: string): string {
|
|
return GROUP_LABELS[group] ?? group;
|
|
}
|
|
|
|
export type DomainKey = "global" | "domestic" | "live";
|
|
|
|
export const DOMAINS: { key: DomainKey; label: string; hint: string }[] = [
|
|
{ key: "global", label: "بازار جهانی", hint: "فلزات و کامودیتی با تاریخچه و مقایسه" },
|
|
{ key: "domestic", label: "بازار داخلی", hint: "ارز، سکه و طلا — زنده" },
|
|
{ key: "live", label: "زنده", hint: "کامودیتی و بازارهای جهانی" },
|
|
];
|
|
|
|
// Category (sub-group) names from /api/tree, translated to Persian.
|
|
export const CATEGORY_LABELS: Record<string, string> = {
|
|
// Base Metals
|
|
Copper: "مس",
|
|
Lead: "سرب",
|
|
Nickel: "نیکل",
|
|
Tin: "قلع",
|
|
Zinc: "روی",
|
|
// Carbon Steel
|
|
Coated: "پوششدار",
|
|
"Cold Rolled Coil": "کلاف نورد سرد",
|
|
"Hot Rolled Coil": "کلاف نورد گرم",
|
|
Pipe: "لوله",
|
|
Plate: "ورق ضخیم",
|
|
Rebar: "میلگرد",
|
|
Sections: "مقاطع",
|
|
Strip: "تسمه",
|
|
"Wire Rod": "مفتول",
|
|
// Ferroalloys
|
|
"Calcium Silicon": "کلسیم سیلیسیم",
|
|
"Chrome Ore": "سنگ کروم",
|
|
"Chromium Silicon": "کروم سیلیسیم",
|
|
Ferroboron: "فروبور",
|
|
Ferrochrome: "فروکروم",
|
|
Ferromanganese: "فرومنگنز",
|
|
Ferromolybdenum: "فرومولیبدن",
|
|
Ferronickel: "فرونیکل",
|
|
Ferroniobium: "فرونیوبیم",
|
|
Ferrophosphorus: "فروفسفر",
|
|
Ferrosilicon: "فروسیلیس",
|
|
Ferrotitanium: "فروتیتانیم",
|
|
Ferrotungsten: "فروتنگستن",
|
|
Ferrovanadium: "فرووانادیم",
|
|
"Manganese Ore": "سنگ منگنز",
|
|
Silicomanganese: "سیلیکومنگنز",
|
|
// Minor Metals
|
|
Antimony: "آنتیموان",
|
|
Arsenic: "آرسنیک",
|
|
Bismuth: "بیسموت",
|
|
Cadmium: "کادمیم",
|
|
Calcium: "کلسیم",
|
|
Chromium: "کروم",
|
|
Cobalt: "کبالت",
|
|
Gallium: "گالیم",
|
|
Germanium: "ژرمانیم",
|
|
Indium: "ایندیم",
|
|
Lithium: "لیتیم",
|
|
Magnesium: "منیزیم",
|
|
Manganese: "منگنز",
|
|
Mercury: "جیوه",
|
|
Molybdenum: "مولیبدن",
|
|
Niobium: "نیوبیم",
|
|
Rhenium: "رنیم",
|
|
Selenium: "سلنیم",
|
|
Silicon: "سیلیسیم",
|
|
Strontium: "استرانسیم",
|
|
Tantalum: "تانتالیم",
|
|
Tellurium: "تلوریم",
|
|
Titanium: "تیتانیم",
|
|
Tungsten: "تنگستن",
|
|
Vanadium: "وانادیم",
|
|
Zirconium: "زیرکونیم",
|
|
// Rare Earths
|
|
Lutetium: "لوتتیم",
|
|
Neodymium: "نئودیمیم",
|
|
Praseodymium: "پرازئودیمیم",
|
|
Samarium: "ساماریم",
|
|
Scandium: "اسکاندیم",
|
|
Terbium: "تربیم",
|
|
Ytterbium: "ایتربیم",
|
|
Yttrium: "ایتریم",
|
|
// Refractories
|
|
"Calcined Bauxite": "بوکسیت کلسینه",
|
|
Carbon: "کربن",
|
|
"Fused Alumina": "آلومینای ذوبی",
|
|
Graphite: "گرافیت",
|
|
Magnesia: "منیزیا",
|
|
"Silicon Carbide": "کاربید سیلیسیم",
|
|
// Stainless & Special
|
|
"Bearing Steel": "فولاد بلبرینگ",
|
|
"Stainless Bar": "میلگرد استیل",
|
|
"Stainless Pipe": "لوله استیل",
|
|
"Stainless Scrap": "ضایعات استیل",
|
|
"Structural Steel": "فولاد ساختمانی",
|
|
// Steel Raw Materials
|
|
Coal: "زغالسنگ",
|
|
Coke: "کک",
|
|
Iron: "آهن",
|
|
"Iron Ore": "سنگ آهن",
|
|
"Steel Billet": "بیلت فولادی",
|
|
"Steel Scrap": "ضایعات فولاد",
|
|
};
|
|
|
|
export function categoryLabel(category: string): string {
|
|
return CATEGORY_LABELS[category] ?? category;
|
|
}
|
|
|
|
// Yahoo Finance commodities — Persian names + grouping (keyed by symbol).
|
|
export type CommodityGroup = "energy" | "metals" | "agri";
|
|
|
|
export const COMMODITY_GROUP_LABELS: Record<CommodityGroup, string> = {
|
|
energy: "انرژی",
|
|
metals: "فلزات",
|
|
agri: "کشاورزی",
|
|
};
|
|
|
|
export const COMMODITY_GROUP_ORDER: CommodityGroup[] = ["energy", "metals", "agri"];
|
|
|
|
export const COMMODITIES: Record<string, { fa: string; group: CommodityGroup }> = {
|
|
"CL=F": { fa: "نفت خام WTI", group: "energy" },
|
|
"BZ=F": { fa: "نفت برنت", group: "energy" },
|
|
"NG=F": { fa: "گاز طبیعی", group: "energy" },
|
|
"RB=F": { fa: "بنزین", group: "energy" },
|
|
"HO=F": { fa: "نفت گرمایشی", group: "energy" },
|
|
"GC=F": { fa: "طلا", group: "metals" },
|
|
"SI=F": { fa: "نقره", group: "metals" },
|
|
"HG=F": { fa: "مس", group: "metals" },
|
|
"PL=F": { fa: "پلاتین", group: "metals" },
|
|
"PA=F": { fa: "پالادیوم", group: "metals" },
|
|
"ALI=F": { fa: "آلومینیوم", group: "metals" },
|
|
"NI=F": { fa: "نیکل", group: "metals" },
|
|
"ZC=F": { fa: "ذرت", group: "agri" },
|
|
"ZW=F": { fa: "گندم", group: "agri" },
|
|
"ZS=F": { fa: "سویا", group: "agri" },
|
|
"KC=F": { fa: "قهوه", group: "agri" },
|
|
"CT=F": { fa: "پنبه", group: "agri" },
|
|
"CC=F": { fa: "کاکائو", group: "agri" },
|
|
"SB=F": { fa: "شکر", group: "agri" },
|
|
"OJ=F": { fa: "آب پرتقال", group: "agri" },
|
|
};
|
|
|
|
export function commodityLabel(symbol: string, fallback: string): string {
|
|
return COMMODITIES[symbol]?.fa ?? fallback;
|
|
}
|
|
|
|
export function commodityGroup(symbol: string): CommodityGroup {
|
|
return COMMODITIES[symbol]?.group ?? "metals";
|
|
}
|