Browse Source

订单的字段选择

main
Mac 2 weeks ago
parent
commit
074bec1d2f
  1. 5
      app/screens/productStatus/OrderDatails.tsx
  2. 27
      app/utils/languageUtils.ts

5
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}
</Text>
))}
{/* <text>{item.product_name}</text> */}

27
app/utils/languageUtils.ts

@ -56,6 +56,33 @@ export const getAttributeTransLanguage = <T extends Record<string, any>>(data: T
return (data[matchedField || 'value_trans'] as string) || '';
};
export const getAttributeNameTransLanguage = <T extends Record<string, any>>(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 = <T extends Record<string, any>>(data: T): string => {
// 获取当前i18n语言
const currentLang = getCurrentLanguage();

Loading…
Cancel
Save