Initial import: Majd Trading website

Next.js 15 site for گروه بازرگانی بین المللی آریو مجد آسیا, rebuilt from
majdtrading.com. Persian, English and Arabic; RTL and LTR.

- Pages: home, about, contact, six product categories, blog index and detail
- i18n: prose in per-locale JSON, structure in TypeScript, drift checked by
  `npm run i18n:check`. Blog stays single-language by design
- Meshkee backend: blog content, tenant resolution, session via the customer
  portal, and /meshkee/sitemap-config.json
- Live market data from livedata.ir, cached server-side once a minute
- Self-hosted fonts: IRANYekan (fa), IBM Plex Sans Arabic (ar), Space Grotesk
  and BBH Bartle (Latin)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Alireza Hassani
2026-08-29 19:16:32 +03:30
co-authored by Claude Opus 5
commit 02aaf61bb6
95 changed files with 7050 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
import type { InstrumentId } from "./instruments";
/**
* THE ONE LIST TO EDIT.
*
* Which figures appear in the market frame, in this order. Empty means the frame
* is not rendered at all — no gap, no placeholder.
*
* Add ids from `instruments.ts`, and a label for each under `market.labels` in
* every `src/i18n/locales/*.json`; without a translation the upstream Persian
* label is used as a fallback.
*
* The gold table and the session list have their own parsers and are always
* included. Note the gold table's last row is the world ounce (id 300106), so
* listing that id here too would print the same figure twice.
*/
export const displayed: InstrumentId[] = [
"400106", // نفت برنت
"200103", // دلار تتر
"200101", // دلار - صرافی
"200201", // یورو - صرافی
];