Gishen-Email-Template/emails/i18n/templates/index.ts
Kirubel-Kibru-Yaltopia f9fa3bc83b feat: add Gishen React Email demo with en/am templates
Ship 23 transactional templates, shared brand tokens/logo, preview UI,
render API, CHANGELOG, and docs for Ecom/Admin/B2B consumers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 22:12:21 +03:00

413 lines
18 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { Locale } from '../types';
export const templateCopy = {
"welcome": {
"en": {
"preview": "Welcome to Gishen Pharmacy",
"heading": "Welcome, {userName}",
"body1": "Your Gishen Pharmacy account is ready. Order medicines, manage prescriptions, and track deliveries from one place.",
"body2": "Start by browsing the shop or linking your organisation benefits if your employer covers pharmacy care.",
"cta": "Open Gishen",
"closing": "We’re glad you’re here."
},
"am": {
"preview": "እንኳን ወደ ጊሼን ፋርማሲ በደህና መጡ",
"heading": "እንኳን ደህና መጡ፣ {userName}",
"body1": "የጊሼን ፋርማሲ መለያዎ ዝግጁ ነው። መድሃኒት ይዘዙ፣ የመድሃኒት ማዘዣዎችን ያስተዳድሩ እና ማድረሶችን ከአንድ ቦታ ይከታተሉ።",
"body2": "ሱቁን በመድረስ ወይም አሰሪዎ የፋርማሲ ጥቅማጥቅሞች ካሉ መገልገያዎችን በማገናኘት ይጀምሩ።",
"cta": "ጊሼንን ክፈት",
"closing": "እዚህ ስላሉ ደስ ብሎናል።"
}
},
"password-reset": {
"en": {
"preview": "Reset your Gishen password",
"heading": "Reset your password",
"body1": "We received a request to reset the password for {userName}. This link expires in 60 minutes.",
"cta": "Choose a new password",
"body2": "If you did not request this, you can ignore this email. Your password will stay the same.",
"banner": "Security notice"
},
"am": {
"preview": "የጊሼን የይለፍ ቃልዎን ያደሱ",
"heading": "የይለፍ ቃልዎን ያድሱ",
"body1": "ለ{userName} የይለፍ ቃል ማደስ ጥያቄ ደርሶናል። ይህ አገናኝ በ60 ደቂቃ ውስጥ ጊዜው ያልፍበታል።",
"cta": "አዲስ የይለፍ ቃል ይምረጡ",
"body2": "ይህን ካልጠየቁ ይህን ኢሜይል ችላ ማለት ይችላሉ። የይለፍ ቃልዎ አይለወጥም።",
"banner": "የደህንነት ማስታወቂያ"
}
},
"email-verify": {
"en": {
"preview": "Verify your email for Gishen",
"heading": "Confirm your email",
"body1": "Hi {userName}, please verify {email} to activate your Gishen Pharmacy account.",
"cta": "Verify email",
"body2": "This helps us keep prescriptions and order updates secure."
},
"am": {
"preview": "ለጊሼን ኢሜይልዎን ያረጋግጡ",
"heading": "ኢሜይልዎን ያረጋግጡ",
"body1": "ሰላም {userName}፣ የጊሼን ፋርማሲ መለያዎን ለማንቃት {email}ን እባክዎ ያረጋግጡ።",
"cta": "ኢሜይል አረጋግጥ",
"body2": "ይህ የመድሃኒት ማዘዣዎችን እና የትዕዛዝ ዝመናዎችን ደህንነቱ የተጠበቀ ያደርገዋል።"
}
},
"user-invite": {
"en": {
"preview": "You’re invited to Gishen",
"heading": "Join {orgName} on Gishen",
"body1": "{inviterName} invited you to access Gishen Pharmacy as {role}.",
"cta": "Accept invitation",
"body2": "The invite expires in 7 days."
},
"am": {
"preview": "ወደ ጊሼን ተጋብዘዋል",
"heading": "በጊሼን ላይ {orgName}ን ይቀላቀሉ",
"body1": "{inviterName} እንደ {role} ወደ ጊሼን ፋርማሲ እንዲገቡ ጋብዘዎታል።",
"cta": "ግብዣ ተቀበል",
"body2": "ግብዣው በ7 ቀናት ውስጥ ጊዜው ያልፍበታል።"
}
},
"order-confirmation": {
"en": {
"preview": "Order {orderId} confirmed",
"heading": "Order confirmed",
"body1": "Thanks {userName}. We received order {orderId} and the pharmacy team is reviewing it.",
"orderLabel": "Order",
"totalLabel": "Total",
"cta": "Track order",
"banner": "We’ll email you when packing starts."
},
"am": {
"preview": "ትዕዛዝ {orderId} ተረጋግጧል",
"heading": "ትዕዛዝ ተረጋግጧል",
"body1": "አመሰግናለን {userName}። ትዕዛዝ {orderId}ን ተቀብለናል እና የፋርማሲ ቡድኑ እየገመገመው ነው።",
"orderLabel": "ትዕዛዝ",
"totalLabel": "ድምር",
"cta": "ትዕዛዝን ተከታተል",
"banner": "ማሸግ ሲጀምር በኢሜይል እናሳውቅዎታለን።"
}
},
"order-packing": {
"en": {
"preview": "Order {orderId} is being packed",
"heading": "Packing your order",
"body1": "Hi {userName}, pharmacists at {branchName} are preparing order {orderId}.",
"orderLabel": "Order",
"totalLabel": "Total",
"cta": "View status",
"banner": "Status: Packing"
},
"am": {
"preview": "ትዕዛዝ {orderId} እየታሸገ ነው",
"heading": "ትዕዛዝዎን እያሸግን ነው",
"body1": "ሰላም {userName}፣ በ{branchName} ያሉ ፋርማሲስቶች ትዕዛዝ {orderId}ን እያዘጋጁ ነው።",
"orderLabel": "ትዕዛዝ",
"totalLabel": "ድምር",
"cta": "ሁኔታ ይመልከቱ",
"banner": "ሁኔታ፡ እየታሸገ"
}
},
"order-out-for-delivery": {
"en": {
"preview": "Order {orderId} is out for delivery",
"heading": "Out for delivery",
"body1": "Good news {userName}: order {orderId} left {branchName} with rider {riderName}.",
"orderLabel": "Order",
"totalLabel": "Total",
"cta": "Track delivery",
"banner": "Estimated arrival: {eta}"
},
"am": {
"preview": "ትዕዛዝ {orderId} ለማድረስ በመንገድ ላይ ነው",
"heading": "ለማድረስ በመንገድ ላይ",
"body1": "ደስ የሚል ዜና {userName}፡ ትዕዛዝ {orderId} ከ{branchName} ከአድራሽ {riderName} ጋር ወጥቷል።",
"orderLabel": "ትዕዛዝ",
"totalLabel": "ድምር",
"cta": "ማድረስን ተከታተል",
"banner": "የሚገመት መድረሻ፡ {eta}"
}
},
"order-delivered": {
"en": {
"preview": "Order {orderId} delivered",
"heading": "Delivered",
"body1": "Order {orderId} was delivered to {userName}. Thank you for choosing Gishen Pharmacy.",
"orderLabel": "Order",
"totalLabel": "Total",
"cta": "Reorder",
"banner": "Delivered successfully"
},
"am": {
"preview": "ትዕዛዝ {orderId} ተደርሷል",
"heading": "ተደርሷል",
"body1": "ትዕዛዝ {orderId} ለ{userName} ተደርሷል። ጊሼን ፋርማሲን ስለመረጡ እናመሰግናለን።",
"orderLabel": "ትዕዛዝ",
"totalLabel": "ድምር",
"cta": "ድጋሚ እዘዝ",
"banner": "በተሳካ ሁኔታ ተደርሷል"
}
},
"order-cancelled": {
"en": {
"preview": "Order {orderId} cancelled",
"heading": "Order cancelled",
"body1": "Hi {userName}, order {orderId} was cancelled. Reason: {reason}.",
"orderLabel": "Order",
"totalLabel": "Total",
"cta": "Browse shop",
"banner": "No payment was captured for this order."
},
"am": {
"preview": "ትዕዛዝ {orderId} ተሰርዟል",
"heading": "ትዕዛዝ ተሰርዟል",
"body1": "ሰላም {userName}፣ ትዕዛዝ {orderId} ተሰርዟል። ምክንያት፡ {reason}።",
"orderLabel": "ትዕዛዝ",
"totalLabel": "ድምር",
"cta": "ሱቁን ይመልከቱ",
"banner": "ለዚህ ትዕዛዝ ክፍያ አልተያዘም።"
}
},
"org-invite": {
"en": {
"preview": "Invite to {orgName} on Gishen B2B",
"heading": "Organisation invitation",
"body1": "{inviterName} invited you to join {orgName} on the Gishen B2B portal as {role}.",
"cta": "Join organisation",
"body2": "You’ll be able to manage members, packages, and covered pharmacy spend."
},
"am": {
"preview": "በጊሼን B2B ላይ ወደ {orgName} ግብዣ",
"heading": "የድርጅት ግብዣ",
"body1": "{inviterName} እንደ {role} በጊሼን B2B ፖርታል ላይ {orgName}ን እንዲቀላቀሉ ጋብዘዎታል።",
"cta": "ድርጅትን ይቀላቀሉ",
"body2": "አባላትን፣ ጥቅሎችን እና የተሸፈነ የፋርማሲ ወጪን ማስተዳደር ይችላሉ።"
}
},
"join-code": {
"en": {
"preview": "Your Gishen join code",
"heading": "Join with this code",
"body1": "Hi {userName}, use this code to join {orgName} on Gishen B2B.",
"cta": "Enter join code",
"banner": "Code: {joinCode}"
},
"am": {
"preview": "የጊሼን የመቀላቀያ ኮድዎ",
"heading": "በዚህ ኮድ ይቀላቀሉ",
"body1": "ሰላም {userName}፣ በጊሼን B2B ላይ {orgName}ን ለመቀላቀል ይህን ኮድ ይጠቀሙ።",
"cta": "የመቀላቀያ ኮድ አስገባ",
"banner": "ኮድ፡ {joinCode}"
}
},
"approval-needed": {
"en": {
"preview": "Approval needed for {requestType}",
"heading": "Action required",
"body1": "Hi {approverName}, {requesterName} submitted a {requestType} that needs your approval for {orgName}.",
"cta": "Review request",
"banner": "Pending finance / HR approval"
},
"am": {
"preview": "ለ{requestType} ማጽደቅ ያስፈልጋል",
"heading": "እርምጃ ያስፈልጋል",
"body1": "ሰላም {approverName}፣ {requesterName} ለ{orgName} ማጽደቅ የሚያስፈልገውን {requestType} አስገብቷል።",
"cta": "ጥያቄን ይገምግሙ",
"banner": "የፋይናንስ / HR ማጽደቅ በመጠባበቅ ላይ"
}
},
"statement-ready": {
"en": {
"preview": "Statement ready for {periodLabel}",
"heading": "Statement ready",
"body1": "Hi {userName}, the pharmacy benefits statement for {orgName} ({periodLabel}) is ready.",
"cta": "Download statement",
"banner": "Amount due: {amountDue}"
},
"am": {
"preview": "ለ{periodLabel} መግለጫ ዝግጁ ነው",
"heading": "መግለጫ ዝግጁ ነው",
"body1": "ሰላም {userName}፣ የ{orgName} የፋርማሲ ጥቅማጥቅም መግለጫ ({periodLabel}) ዝግጁ ነው።",
"cta": "መግለጫ አውርድ",
"banner": "የሚከፈል መጠን፡ {amountDue}"
}
},
"credit-alert": {
"en": {
"preview": "Credit alert for {orgName}",
"heading": "Credit utilisation alert",
"body1": "Hi {userName}, {orgName} has used {usedPercent}% of its pharmacy credit limit.",
"banner": "Available credit: {availableCredit}",
"cta": "View finance dashboard",
"body2": "Contact your Gishen account manager if you need a limit review."
},
"am": {
"preview": "ለ{orgName} የክሬዲት ማስጠንቀቂያ",
"heading": "የክሬዲት አጠቃቀም ማስጠንቀቂያ",
"body1": "ሰላም {userName}፣ {orgName} የፋርማሲ ክሬዲት ገደቡን {usedPercent}% ተጠቅሟል።",
"banner": "ያለ ክሬዲት፡ {availableCredit}",
"cta": "የፋይናንስ ዳሽቦርድ ይመልከቱ",
"body2": "የገደብ ግምገማ ካስፈለገዎት የጊሼን አካውንት ማኔጀርዎን ያግኙ።"
}
},
"organisation-verified": {
"en": {
"preview": "{orgName} is verified",
"heading": "Organisation verified",
"body1": "Great news {userName}: {orgName} passed Gishen verification and can now use B2B benefits features.",
"cta": "Open B2B portal",
"banner": "Verification complete"
},
"am": {
"preview": "{orgName} ተረጋግጧል",
"heading": "ድርጅት ተረጋግጧል",
"body1": "ደስ የሚል ዜና {userName}፡ {orgName} የጊሼን ማረጋገጫ አልፏል እና አሁን የB2B ጥቅማጥቅም ባህሪያትን መጠቀም ይችላል።",
"cta": "B2B ፖርታል ክፈት",
"banner": "ማረጋገጫ ተጠናቋል"
}
},
"prescription-submitted": {
"en": {
"preview": "Prescription {rxId} received",
"heading": "Prescription submitted",
"body1": "Hi {userName}, we received prescription {rxId}. A pharmacist will review it shortly.",
"cta": "View prescription",
"banner": "Under clinical review"
},
"am": {
"preview": "የመድሃኒት ማዘዣ {rxId} ደርሷል",
"heading": "የመድሃኒት ማዘዣ ገብቷል",
"body1": "ሰላም {userName}፣ የመድሃኒት ማዘዣ {rxId}ን ተቀብለናል። ፋርማሲስት በቅርቡ ይገመግመዋል።",
"cta": "ማዘዣ ይመልከቱ",
"banner": "በክሊኒካል ግምገማ ላይ"
}
},
"prescription-decision": {
"en": {
"preview": "Prescription {rxId} {decision}",
"heading": "Prescription {decision}",
"body1": "Hi {userName}, prescription {rxId} was {decision}. {note}",
"cta": "Open prescription",
"approvedBanner": "Approved — you can proceed to order",
"rejectedBanner": "Rejected — see pharmacist note"
},
"am": {
"preview": "የመድሃኒት ማዘዣ {rxId} {decision}",
"heading": "የመድሃኒት ማዘዣ {decision}",
"body1": "ሰላም {userName}፣ የመድሃኒት ማዘዣ {rxId} {decision} ሆኗል። {note}",
"cta": "ማዘዣ ክፈት",
"approvedBanner": "ጸድቋል — ለመግዛት መቀጠል ይችላሉ",
"rejectedBanner": "ተቀባይነት አላገኘም — የፋርማሲስት ማስታወሻን ይመልከቱ"
}
},
"prescription-ready": {
"en": {
"preview": "Prescription {rxId} ready for pickup",
"heading": "Ready for pickup",
"body1": "Hi {userName}, prescription {rxId} is ready at {branchName}.",
"cta": "Get directions",
"banner": "Bring a valid ID when you collect."
},
"am": {
"preview": "የመድሃኒት ማዘዣ {rxId} ለመውሰድ ዝግጁ ነው",
"heading": "ለመውሰድ ዝግጁ",
"body1": "ሰላም {userName}፣ የመድሃኒት ማዘዣ {rxId} በ{branchName} ዝግጁ ነው።",
"cta": "አቅጣጫ ያግኙ",
"banner": "ሲወስዱ የሚሰራ መታወቂያ ይዘው ይምጡ።"
}
},
"low-stock": {
"en": {
"preview": "Low stock: {skuName}",
"heading": "Low stock alert",
"body1": "SKU {skuCode} ({skuName}) at {branchName} is down to {quantity} units (threshold {threshold}).",
"cta": "Open stock",
"banner": "Action needed in Admin"
},
"am": {
"preview": "አነስተኛ ክምችት፡ {skuName}",
"heading": "የአነስተኛ ክምችት ማስጠንቀቂያ",
"body1": "SKU {skuCode} ({skuName}) በ{branchName} ወደ {quantity} አሃዶች ዝቅ ብሏል (ገደብ {threshold})።",
"cta": "ክምችት ክፈት",
"banner": "በአስተዳደር ውስጥ እርምጃ ያስፈልጋል"
}
},
"dispatch-assigned": {
"en": {
"preview": "Dispatch assigned for {orderId}",
"heading": "Dispatch assigned",
"body1": "Order {orderId} was assigned to rider {riderName} from {branchName}.",
"cta": "Open dispatch",
"banner": "Pickup window: {pickupWindow}"
},
"am": {
"preview": "ለ{orderId} ማጓጓዝ ተመድቧል",
"heading": "ማጓጓዝ ተመድቧል",
"body1": "ትዕዛዝ {orderId} ከ{branchName} ለአድራሽ {riderName} ተመድቧል።",
"cta": "ማጓጓዝ ክፈት",
"banner": "የመውሰጃ ጊዜ፡ {pickupWindow}"
}
},
"procurement-alert": {
"en": {
"preview": "Procurement alert: {title}",
"heading": "Procurement alert",
"body1": "Hi {userName}, {title}. Supplier: {supplierName}. Priority: {priority}.",
"cta": "Review procurement",
"banner": "Ops notification"
},
"am": {
"preview": "የግዥ ማስጠንቀቂያ፡ {title}",
"heading": "የግዥ ማስጠንቀቂያ",
"body1": "ሰላም {userName}፣ {title}። አቅራቢ፡ {supplierName}። ቅድሚያ፡ {priority}።",
"cta": "ግዥን ይገምግሙ",
"banner": "የኦፕስ ማሳወቂያ"
}
},
"promotional": {
"en": {
"preview": "{headline}",
"heading": "{headline}",
"body1": "{body}",
"cta": "{cta}",
"banner": "From Gishen Pharmacy"
},
"am": {
"preview": "{headline}",
"heading": "{headline}",
"body1": "{body}",
"cta": "{cta}",
"banner": "ከጊሼን ፋርማሲ"
}
},
"shop-summary": {
"en": {
"preview": "{periodLabel} shop summary",
"heading": "{periodLabel} e‑commerce summary",
"body1": "Hi {userName}, here is the Gishen shop performance for {periodLabel} ({dateRange}).",
"cta": "Open analytics",
"orders": "Orders",
"revenue": "Revenue",
"aov": "Avg order",
"topSku": "Top SKU"
},
"am": {
"preview": "የ{periodLabel} የሱቅ ማጠቃለያ",
"heading": "የ{periodLabel} ኢ-ኮሜርስ ማጠቃለያ",
"body1": "ሰላም {userName}፣ ለ{periodLabel} ({dateRange}) የጊሼን ሱቅ አፈጻጸም ይኸውና።",
"cta": "ትንታኔ ክፈት",
"orders": "ትዕዛዞች",
"revenue": "ገቢ",
"aov": "አማካይ ትዕዛዝ",
"topSku": "ከፍተኛ SKU"
}
}
} as const;
export type TemplateId = keyof typeof templateCopy;
export function tTemplate<T extends TemplateId>(id: T, locale: Locale) {
return templateCopy[id][locale];
}