refactor(i18n): 全工程面向国际用户与全球现代商务重构,彻底清理出海跨境等单向视角表达并对齐自动化测试
这个提交包含在:
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* OmniCard AI (CRMmp) - 移动端 App / H5 出海名片 Universal Link 深度链接路由分发解析器
|
||||
* OmniCard AI (CRMmp) - 移动端 App / H5 智能数字名片 Universal Link 深度链接路由分发解析器
|
||||
* 严格遵循 AGENTS.md 与 uts 强类型跨端开发规范
|
||||
*/
|
||||
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
|
||||
export type UtsColorTokens = {
|
||||
primary: string
|
||||
primaryGradient: string
|
||||
primarySoft: string
|
||||
ai: string
|
||||
aurora: string
|
||||
bg: string
|
||||
surface: string
|
||||
border: string
|
||||
@@ -18,28 +19,30 @@ export type UtsColorTokens = {
|
||||
}
|
||||
|
||||
export const utsLightColors: UtsColorTokens = {
|
||||
primary: '#0B5CFF',
|
||||
primarySoft: '#EAF1FF',
|
||||
ai: '#7C5CFF',
|
||||
bg: '#FFFFFF',
|
||||
surface: '#F7F8FA',
|
||||
border: '#E3E7ED',
|
||||
primary: '#0088FF',
|
||||
primaryGradient: 'linear-gradient(135deg, #00A3FF 0%, #0B63E5 100%)',
|
||||
primarySoft: '#EBF5FF',
|
||||
aurora: 'linear-gradient(135deg, #00D2FF 0%, #0088FF 50%, #6366F1 100%)',
|
||||
bg: '#F5F8FC',
|
||||
surface: '#FFFFFF',
|
||||
border: '#EBF1F7',
|
||||
text: '#101828',
|
||||
text2: '#667085',
|
||||
text2: '#64748B',
|
||||
success: '#12B76A',
|
||||
warning: '#F79009',
|
||||
error: '#F04438'
|
||||
}
|
||||
|
||||
export const utsDarkColors: UtsColorTokens = {
|
||||
primary: '#4D8DFF',
|
||||
primarySoft: '#102A4D',
|
||||
ai: '#9B8CFF',
|
||||
primary: '#3894FF',
|
||||
primaryGradient: 'linear-gradient(135deg, #3894FF 0%, #0B63E5 100%)',
|
||||
primarySoft: '#0D2847',
|
||||
aurora: 'linear-gradient(135deg, #00D2FF 0%, #0088FF 50%, #6366F1 100%)',
|
||||
bg: '#0B0D10',
|
||||
surface: '#12151A',
|
||||
border: '#262B33',
|
||||
surface: '#13171F',
|
||||
border: '#232936',
|
||||
text: '#F2F4F7',
|
||||
text2: '#98A2B3',
|
||||
text2: '#94A3B8',
|
||||
success: '#32D583',
|
||||
warning: '#FDB022',
|
||||
error: '#F97066'
|
||||
@@ -50,6 +53,7 @@ export type UtsSpacing = {
|
||||
space8: string
|
||||
space12: string
|
||||
space16: string
|
||||
space20: string
|
||||
space24: string
|
||||
space32: string
|
||||
space48: string
|
||||
@@ -61,6 +65,7 @@ export const utsSpacing: UtsSpacing = {
|
||||
space8: '8px',
|
||||
space12: '12px',
|
||||
space16: '16px',
|
||||
space20: '20px',
|
||||
space24: '24px',
|
||||
space32: '32px',
|
||||
space48: '48px',
|
||||
@@ -71,20 +76,28 @@ export type UtsRadius = {
|
||||
button: string
|
||||
card: string
|
||||
modal: string
|
||||
pill: string
|
||||
}
|
||||
|
||||
export const utsRadius: UtsRadius = {
|
||||
button: '12px',
|
||||
card: '16px',
|
||||
modal: '20px'
|
||||
button: '14px',
|
||||
card: '20px',
|
||||
modal: '24px',
|
||||
pill: '9999px'
|
||||
}
|
||||
|
||||
export type UtsTypography = {
|
||||
fontFamily: string
|
||||
shadowCard: string
|
||||
shadowCta: string
|
||||
shadowFloat: string
|
||||
shadow: string
|
||||
}
|
||||
|
||||
export const utsTypography: UtsTypography = {
|
||||
fontFamily: 'Inter, Noto Sans SC, Noto Sans Arabic, Noto Sans JP, Noto Sans KR, sans-serif',
|
||||
shadow: '0 1px 2px rgba(16,24,40,0.04)'
|
||||
fontFamily: 'Inter, "Noto Sans SC", "Noto Sans Arabic", "Noto Sans JP", "Noto Sans KR", "SF Pro Display", sans-serif',
|
||||
shadowCard: '0 8px 30px rgba(0, 0, 0, 0.04), 0 2px 8px rgba(11, 99, 229, 0.03)',
|
||||
shadowCta: '0 8px 20px rgba(0, 136, 255, 0.22)',
|
||||
shadowFloat: '0 12px 36px rgba(16, 24, 40, 0.08)',
|
||||
shadow: '0 8px 30px rgba(0, 0, 0, 0.04)'
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ export function foldVCardLine(line: string, maxLen: number = 75): string {
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成符合 RFC 6350 / RFC 2426 规范的 vCard 字符串 (默认 3.0,出海设备兼容性最高)
|
||||
* 生成符合 RFC 6350 / RFC 2426 规范的 vCard 字符串 (默认 3.0,国际通用设备兼容性最高)
|
||||
*/
|
||||
export function buildVCardString(card: CardProfile, version: string = '3.0'): string {
|
||||
const lines: string[] = [];
|
||||
|
||||
在新工单中引用
屏蔽一个用户