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语言
|
// 获取当前i18n语言
|
||||||
const currentLang = getCurrentLanguage(); |
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; |
return data.subject as string; |
||||||
} |
} |
||||||
|
|
||||||
// 获取所有subject_trans开头的字段
|
// 获取所有subject_trans开头的字段
|
||||||
const translationFields = Object.keys(data).filter(key =>
|
const translationFields = Object.keys(data).filter((key) => |
||||||
key.startsWith('subject_trans') |
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 |
||||||
export const getAttributeTransLanguage = <T extends Record<string, any>>(data: T): string => { |
): string => { |
||||||
// 获取当前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; |
||||||
} |
} |
||||||
|
|
||||||
// 获取所有value_trans开头的字段
|
// 获取所有value_trans开头的字段
|
||||||
const translationFields = Object.keys(data).filter(key =>
|
const translationFields = Object.keys(data).filter((key) => |
||||||
key.startsWith('value_trans') |
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>>( |
||||||
export const getAttributeNameTransLanguage = <T extends Record<string, any>>(data: T): string => { |
data: T |
||||||
|
): string => { |
||||||
// 获取当前i18n语言
|
// 获取当前i18n语言
|
||||||
const currentLang = getCurrentLanguage(); |
const currentLang = getCurrentLanguage(); |
||||||
|
|
||||||
// 特殊处理中文
|
// 特殊处理中文
|
||||||
if (currentLang === 'zh' && 'attribute_name' in data) { |
if (currentLang === "zh" && "attribute_name" in data) { |
||||||
return data.attribute_name as string; |
return data.attribute_name as string; |
||||||
} |
} |
||||||
|
|
||||||
// 获取所有attribute_name_trans开头的字段
|
// 获取所有attribute_name_trans开头的字段
|
||||||
const translationFields = Object.keys(data).filter(key =>
|
const translationFields = Object.keys(data).filter((key) => |
||||||
key.startsWith('attribute_name_trans') |
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语言
|
// 获取当前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; |
||||||
} |
} |
||||||
|
|
||||||
// 获取所有subject_trans开头的字段
|
// 获取所有subject_trans开头的字段
|
||||||
const translationFields = Object.keys(data).filter(key =>
|
const translationFields = Object.keys(data).filter((key) => |
||||||
key.startsWith('value_trans') |
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 |
||||||
export const getOrderTransLanguage = <T extends Record<string, any>>(data: T): string => { |
): string => { |
||||||
console.log(data); |
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; |
||||||
} |
} |
||||||
|
|
||||||
// 获取所有subject_trans开头的字段
|
// 获取所有subject_trans开头的字段
|
||||||
const translationFields = Object.keys(data).filter(key =>
|
const translationFields = Object.keys(data).filter((key) => |
||||||
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_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