Browse Source

订单翻译

main
Mac 2 weeks ago
parent
commit
ff40ad9690
  1. 13
      app/screens/productStatus/OrderDatails.tsx
  2. 3
      app/screens/productStatus/Status.tsx
  3. 12
      app/utils/languageUtils.ts

13
app/screens/productStatus/OrderDatails.tsx

@ -45,6 +45,7 @@ import CheckIcon from "../../components/CheckIcon";
import payMap from "../../utils/payMap"; import payMap from "../../utils/payMap";
import PhoneNumberInputModal from "../../screens/BalanceScreen/PhoneNumberInputModal"; import PhoneNumberInputModal from "../../screens/BalanceScreen/PhoneNumberInputModal";
import { cartApi } from "../../services/api/cart"; import { cartApi } from "../../services/api/cart";
import { getOrderTransLanguage } from "../../utils/languageUtils";
// 定义选项类型 // 定义选项类型
interface PaymentOption { interface PaymentOption {
id: string; id: string;
@ -666,7 +667,7 @@ export const OrderDetails = () => {
<View style={styles.productItemInfo}> <View style={styles.productItemInfo}>
<View style={styles.productItemInfoName}> <View style={styles.productItemInfoName}>
<Text style={styles.productItemInfoNameText}> <Text style={styles.productItemInfoNameText}>
{item.product_name} {getOrderTransLanguage(item) || item.product_name_fr}
</Text> </Text>
</View> </View>
<View style={styles.productItemInfoSku}> <View style={styles.productItemInfoSku}>
@ -738,7 +739,7 @@ export const OrderDetails = () => {
{t("order.platform_shipping")} {t("order.platform_shipping")}
</Text> </Text>
<Text style={styles.orderIdText1}> <Text style={styles.orderIdText1}>
{orderDetails.domestic_shipping_fee} {orderDetails.domestic_shipping_fee} {orderDetails.currency}
</Text> </Text>
</View> </View>
<View style={styles.orderId}> <View style={styles.orderId}>
@ -746,21 +747,21 @@ export const OrderDetails = () => {
{t("order.international_shipping")} {t("order.international_shipping")}
</Text> </Text>
<Text style={styles.orderIdText1}> <Text style={styles.orderIdText1}>
{orderDetails.shipping_fee} {orderDetails.shipping_fee} {orderDetails.currency}
</Text> </Text>
</View> </View>
<View style={styles.dottedLine}></View> <View style={styles.dottedLine}></View>
<View style={styles.orderId}> <View style={styles.orderId}>
<Text style={styles.TotalText}>{t("order.total")}</Text> <Text style={styles.TotalText}>{t("order.total")}</Text>
<Text style={styles.TotalPrice}> <Text style={styles.TotalPrice}>
{orderDetails.total_amount} {orderDetails.total_amount} {orderDetails.currency}
</Text> </Text>
</View> </View>
<View> <View>
<Text style={styles.orderRemakeText}> <Text style={styles.orderRemakeText}>
+ ${orderDetails.shipping_fee}{" "} + {orderDetails.shipping_fee}{" "}
{t("order.estimated_shipping")} {t("order.estimated_shipping")}
(COD) ({orderDetails.currency})
</Text> </Text>
</View> </View>
</View> </View>

3
app/screens/productStatus/Status.tsx

@ -26,6 +26,7 @@ import {
import { useNavigation } from "@react-navigation/native"; import { useNavigation } from "@react-navigation/native";
import { NativeStackNavigationProp } from "@react-navigation/native-stack"; import { NativeStackNavigationProp } from "@react-navigation/native-stack";
import { useOrderListStore } from "../../store/orderList"; import { useOrderListStore } from "../../store/orderList";
import { getOrderTransLanguage } from "../../utils/languageUtils";
// import ImageView from "react-native-image-viewing"; // import ImageView from "react-native-image-viewing";
type StatusScreenRouteProp = RouteProp< type StatusScreenRouteProp = RouteProp<
@ -243,7 +244,7 @@ export function Status() {
</TouchableOpacity> </TouchableOpacity>
<View style={styles.orderProductItemInfo}> <View style={styles.orderProductItemInfo}>
<Text style={styles.orderProductItemInfoName}> <Text style={styles.orderProductItemInfoName}>
{item.product_name} {getOrderTransLanguage(item) || item.product_name_fr}
</Text> </Text>
{item.sku_attributes?.map((attr, index) => ( {item.sku_attributes?.map((attr, index) => (
<Text <Text

12
app/utils/languageUtils.ts

@ -59,9 +59,12 @@ export const getSkuTransLanguage = <T extends Record<string, any>>(data: T): str
export const getOrderTransLanguage = <T extends Record<string, any>>(data: T): string => { export const getOrderTransLanguage = <T extends Record<string, any>>(data: T): string => {
console.log(data);
// 获取当前i18n语言 // 获取当前i18n语言
const currentLang = getCurrentLanguage(); const currentLang = getCurrentLanguage();
// 特殊处理中文 // 特殊处理中文
if (currentLang === 'zh' && 'value' in data) { if (currentLang === 'zh' && 'value' in data) {
return data.value as string; return data.value as string;
@ -72,14 +75,19 @@ export const getOrderTransLanguage = <T extends Record<string, any>>(data: T): s
key.startsWith('product_name') key.startsWith('product_name')
); );
// 查找匹配的字段 // 查找匹配的字段
const matchedField = translationFields.find(field => { const matchedField = translationFields.find(field => {
// 从字段名中提取语言代码 // 从字段名中提取语言代码
const langCode = field.replace('product_name', ''); const langCode = field.replace('product_name_', '');
// 如果没有后缀,则为法语 // 如果没有后缀,则为法语
return langCode === '' ? currentLang === 'fr' : langCode === currentLang; return langCode === '' ? currentLang === 'fr' : langCode === currentLang;
}); });
// 返回匹配的翻译值,如果没有匹配则返回法语 // 返回匹配的翻译值,如果没有匹配则返回法语
return (data[matchedField || 'product_name'] as string) || ''; return (data[matchedField || 'product_name_fr'] as string) || '';
}; };

Loading…
Cancel
Save