From 074bec1d2f6d44d004bced88021ab564166ce3c6 Mon Sep 17 00:00:00 2001 From: Mac Date: Tue, 27 May 2025 00:40:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=9A=84=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/screens/productStatus/OrderDatails.tsx | 5 ++-- app/utils/languageUtils.ts | 27 ++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/screens/productStatus/OrderDatails.tsx b/app/screens/productStatus/OrderDatails.tsx index f9ec6b1..48ed77e 100644 --- a/app/screens/productStatus/OrderDatails.tsx +++ b/app/screens/productStatus/OrderDatails.tsx @@ -54,7 +54,8 @@ import { cartApi } from "../../services/api/cart"; import IconComponent from "../../components/IconComponent"; import AsyncStorage from "@react-native-async-storage/async-storage"; import { CountryList } from "../../constants/countries"; -import { getOrderTransLanguage } from "../../utils/languageUtils"; +import { getOrderTransLanguage,getAttributeTransLanguage,getAttributeNameTransLanguage } from "../../utils/languageUtils"; + // 定义选项类型 interface PaymentOption { @@ -1044,7 +1045,7 @@ export const OrderDetails = () => { key={index} style={styles.productItemInfoSkuText} > - {sku.attribute_name}:{sku.attribute_value} + {getAttributeNameTransLanguage(sku) || sku.attribute_name}:{getAttributeTransLanguage(sku) || sku.attribute_value} ))} {/* {item.product_name} */} diff --git a/app/utils/languageUtils.ts b/app/utils/languageUtils.ts index a005904..403199e 100644 --- a/app/utils/languageUtils.ts +++ b/app/utils/languageUtils.ts @@ -56,6 +56,33 @@ export const getAttributeTransLanguage = >(data: T return (data[matchedField || 'value_trans'] as string) || ''; }; + +export const getAttributeNameTransLanguage = >(data: T): string => { + // 获取当前i18n语言 + const currentLang = getCurrentLanguage(); + + // 特殊处理中文 + if (currentLang === 'zh' && 'attribute_name' in data) { + return data.attribute_name as string; + } + + // 获取所有attribute_name_trans开头的字段 + const translationFields = Object.keys(data).filter(key => + key.startsWith('attribute_name_trans') + ); + + // 查找匹配的字段 + const matchedField = translationFields.find(field => { + // 从字段名中提取语言代码 + const langCode = field.replace('attribute_name_trans_', ''); + // 如果没有后缀,则为法语 + return langCode === '' ? currentLang === 'fr' : langCode === currentLang; + }); + + // 返回匹配的翻译值,如果没有匹配则返回法语 + return (data[matchedField || 'attribute_name_trans'] as string) || ''; +} + export const getSkuTransLanguage = >(data: T): string => { // 获取当前i18n语言 const currentLang = getCurrentLanguage();