7 changed files with 89 additions and 72 deletions
@ -1,146 +1,157 @@
|
||||
import { getCurrentLanguage } from '../i18n'; |
||||
import { getCurrentLanguage } from "../i18n"; |
||||
|
||||
export const getSubjectTransLanguage = <T extends Record<string, any>>(data: T): string => { |
||||
export const getSubjectTransLanguage = <T extends Record<string, any>>( |
||||
data: T |
||||
): string => { |
||||
// 获取当前i18n语言
|
||||
const currentLang = getCurrentLanguage(); |
||||
console.log('currentLang', currentLang); |
||||
|
||||
console.log("currentLang", currentLang); |
||||
|
||||
// 特殊处理中文
|
||||
if (currentLang === 'zh' && 'subject' in data) { |
||||
if (currentLang === "zh" && "subject" in data) { |
||||
return data.subject as string; |
||||
} |
||||
|
||||
// 获取所有subject_trans开头的字段
|
||||
const translationFields = Object.keys(data).filter(key =>
|
||||
key.startsWith('subject_trans') |
||||
const translationFields = Object.keys(data).filter((key) => |
||||
key.startsWith("subject_trans") |
||||
); |
||||
|
||||
// 查找匹配的字段
|
||||
const matchedField = translationFields.find(field => { |
||||
const matchedField = translationFields.find((field) => { |
||||
// 从字段名中提取语言代码
|
||||
const langCode = field.replace('subject_trans_', ''); |
||||
const langCode = field.replace("subject_trans_", ""); |
||||
// 如果没有后缀,则为法语
|
||||
return langCode === '' ? currentLang === 'fr' : langCode === currentLang; |
||||
return langCode === "" ? currentLang === "fr" : langCode === currentLang; |
||||
}); |
||||
|
||||
// 返回匹配的翻译值,如果没有匹配则返回法语
|
||||
return (data[matchedField || 'subject_trans'] as string) || ''; |
||||
return (data[matchedField || "subject_trans"] as string) || ""; |
||||
}; |
||||
|
||||
|
||||
|
||||
export const getAttributeTransLanguage = <T extends Record<string, any>>(data: T): string => { |
||||
export const getAttributeTransLanguage = <T extends Record<string, any>>( |
||||
data: T |
||||
): string => { |
||||
// 获取当前i18n语言
|
||||
const currentLang = getCurrentLanguage(); |
||||
|
||||
// 特殊处理中文
|
||||
if (currentLang === 'zh' && 'value' in data) { |
||||
if (currentLang === "zh" && "value" in data) { |
||||
return data.value as string; |
||||
} |
||||
|
||||
// 获取所有value_trans开头的字段
|
||||
const translationFields = Object.keys(data).filter(key =>
|
||||
key.startsWith('value_trans') |
||||
const translationFields = Object.keys(data).filter((key) => |
||||
key.startsWith("value_trans") |
||||
); |
||||
|
||||
// 查找匹配的字段
|
||||
const matchedField = translationFields.find(field => { |
||||
const matchedField = translationFields.find((field) => { |
||||
// 从字段名中提取语言代码
|
||||
const langCode = field.replace('value_trans_', ''); |
||||
const langCode = field.replace("value_trans_", ""); |
||||
// 如果没有后缀,则为法语
|
||||
return langCode === '' ? currentLang === 'fr' : langCode === currentLang; |
||||
return langCode === "" ? currentLang === "fr" : langCode === currentLang; |
||||
}); |
||||
|
||||
// 返回匹配的翻译值,如果没有匹配则返回法语
|
||||
return (data[matchedField || 'value_trans'] as string) || ''; |
||||
return (data[matchedField || "value_trans"] as string) || ""; |
||||
}; |
||||
|
||||
|
||||
export const getAttributeNameTransLanguage = <T extends Record<string, any>>(data: T): string => { |
||||
export const getAttributeNameTransLanguage = <T extends Record<string, any>>( |
||||
data: T |
||||
): string => { |
||||
// 获取当前i18n语言
|
||||
const currentLang = getCurrentLanguage(); |
||||
|
||||
// 特殊处理中文
|
||||
if (currentLang === 'zh' && 'attribute_name' in data) { |
||||
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 translationFields = Object.keys(data).filter((key) => |
||||
key.startsWith("attribute_name_trans") |
||||
); |
||||
|
||||
// 查找匹配的字段
|
||||
const matchedField = translationFields.find(field => { |
||||
const matchedField = translationFields.find((field) => { |
||||
// 从字段名中提取语言代码
|
||||
const langCode = field.replace('attribute_name_trans_', ''); |
||||
const langCode = field.replace("attribute_name_trans_", ""); |
||||
// 如果没有后缀,则为法语
|
||||
return langCode === '' ? currentLang === 'fr' : langCode === currentLang; |
||||
return langCode === "" ? currentLang === "fr" : langCode === currentLang; |
||||
}); |
||||
|
||||
// 返回匹配的翻译值,如果没有匹配则返回法语
|
||||
return (data[matchedField || 'attribute_name_trans'] as string) || ''; |
||||
} |
||||
return (data[matchedField || "attribute_name_trans"] as string) || ""; |
||||
}; |
||||
|
||||
export const getSkuTransLanguage = <T extends Record<string, any>>(data: T): string => { |
||||
export const getSkuTransLanguage = <T extends Record<string, any>>( |
||||
data: T |
||||
): string => { |
||||
// 获取当前i18n语言
|
||||
const currentLang = getCurrentLanguage(); |
||||
|
||||
// 特殊处理中文
|
||||
if (currentLang === 'zh' && 'value' in data) { |
||||
if (currentLang === "zh" && "value" in data) { |
||||
return data.value as string; |
||||
} |
||||
|
||||
// 获取所有subject_trans开头的字段
|
||||
const translationFields = Object.keys(data).filter(key =>
|
||||
key.startsWith('value_trans') |
||||
const translationFields = Object.keys(data).filter((key) => |
||||
key.startsWith("value_trans") |
||||
); |
||||
|
||||
// 查找匹配的字段
|
||||
const matchedField = translationFields.find(field => { |
||||
const matchedField = translationFields.find((field) => { |
||||
// 从字段名中提取语言代码
|
||||
const langCode = field.replace('value_trans_', ''); |
||||
const langCode = field.replace("value_trans_", ""); |
||||
// 如果没有后缀,则为法语
|
||||
return langCode === '' ? currentLang === 'fr' : langCode === currentLang; |
||||
return langCode === "" ? currentLang === "fr" : langCode === currentLang; |
||||
}); |
||||
|
||||
// 返回匹配的翻译值,如果没有匹配则返回法语
|
||||
return (data[matchedField || 'value_trans'] as string) || ''; |
||||
return (data[matchedField || "value_trans"] as string) || ""; |
||||
}; |
||||
|
||||
|
||||
|
||||
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语言
|
||||
const currentLang = getCurrentLanguage(); |
||||
|
||||
|
||||
// 特殊处理中文
|
||||
if (currentLang === 'zh' && 'value' in data) { |
||||
if (currentLang === "zh" && "value" in data) { |
||||
return data.value as string; |
||||
} |
||||
|
||||
// 获取所有subject_trans开头的字段
|
||||
const translationFields = Object.keys(data).filter(key =>
|
||||
key.startsWith('product_name') |
||||
const translationFields = Object.keys(data).filter((key) => |
||||
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_fr'] as string) || ''; |
||||
return (data[matchedField || "product_name_fr"] as string) || ""; |
||||
}; |
||||
|
||||
// 国家的字段
|
||||
export const getCountryTransLanguage = <T extends Record<string, any>>( |
||||
data: T |
||||
): string => { |
||||
const currentLang = getCurrentLanguage();
|
||||
if (currentLang === "fr") { |
||||
return data.name as string; |
||||
} else { |
||||
return data.name_en as string; |
||||
} |
||||
}; |
||||
|
Loading…
Reference in new issue