From 6a3d8f86e608df544cf27660af4b6806ab1d4744 Mon Sep 17 00:00:00 2001 From: safavimohadeseh78 Date: Wed, 21 Oct 2026 03:38:57 -0400 Subject: [PATCH] =?UTF-8?q?fix(copy):=20replace=20=C3=99=E2=80=A6=C3=98?= =?UTF-8?q?=C2=B8=C3=99=E2=80=A0=C3=99=E2=80=A1=20with=20=C3=99=E2=80=9A?= =?UTF-8?q?=C3=9B=C5=92=C3=99=E2=80=A6=C3=98=C2=AA=20in=20landing=20user-f?= =?UTF-8?q?acing=20messages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add persianTerminology helper and apply it when stripping store closed hints. --- src/utils/persianTerminology.ts | 25 +++++++++++++++++++++++++ src/utils/storeHours.ts | 3 ++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/utils/persianTerminology.ts diff --git a/src/utils/persianTerminology.ts b/src/utils/persianTerminology.ts new file mode 100644 index 0000000..110eea4 --- /dev/null +++ b/src/utils/persianTerminology.ts @@ -0,0 +1,25 @@ +/** جایگزینی «مظنه» و شکل‌های وابسته با «قیمت» در متن‌های نمایشی */ + +const MAZANEH_TO_PRICE: Array<[RegExp, string]> = [ + [/مظنه‌های/g, 'قیمت‌های'], + [/مظنه‌ها/g, 'قیمت‌ها'], + [/مظنه‌ای/g, 'قیمتی'], + [/مظنهای/g, 'قیمتی'], + [/مظنهٔ/g, 'قیمت'], + [/مظنه/g, 'قیمت'], +] + +export function replaceMazanehTerminology(text: string): string { + let result = text + for (const [pattern, replacement] of MAZANEH_TO_PRICE) { + result = result.replace(pattern, replacement) + } + return result +} + +export function polishUserFacingCopy(text: unknown): string { + if (typeof text !== 'string') return '' + const trimmed = text.trim() + if (!trimmed) return '' + return replaceMazanehTerminology(trimmed) +} diff --git a/src/utils/storeHours.ts b/src/utils/storeHours.ts index 4dd9a9a..e650ace 100644 --- a/src/utils/storeHours.ts +++ b/src/utils/storeHours.ts @@ -1,4 +1,5 @@ import { ref } from 'vue' +import { replaceMazanehTerminology } from '@/utils/persianTerminology' import { useSettingsStore } from '@/store/settingsStore' import { getTradeBuyPrice, getTradeSellPrice, lastPrice } from '@/utils/price' @@ -173,7 +174,7 @@ export function isStoreClosed(): boolean { export const STORE_CLOSED_TITLE = 'فروشگاه بسته است' export function stripHtmlMessage(message: string): string { - return message.replace(/<[^>]*>/g, '').trim() + return replaceMazanehTerminology(message.replace(/<[^>]*>/g, '').trim()) } export function getStoreClosedHint(customMessage?: unknown): string {