From 19f0b58d97d500fef5fad992fa48fde45fc4b491 Mon Sep 17 00:00:00 2001 From: ivanberry Date: Wed, 11 Mar 2026 13:40:44 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E6=B7=BB=E5=8A=A0=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=95=B0=E6=8D=AE=E5=92=8C=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TRANSLATION_TEST.md | 66 ++++++++++++++++++++++++++++++++++++++++++++ test_data.xlsx | Bin 0 -> 5956 bytes 2 files changed, 66 insertions(+) create mode 100644 TRANSLATION_TEST.md create mode 100644 test_data.xlsx diff --git a/TRANSLATION_TEST.md b/TRANSLATION_TEST.md new file mode 100644 index 0000000..fdba343 --- /dev/null +++ b/TRANSLATION_TEST.md @@ -0,0 +1,66 @@ +# Excel 翻译功能测试 + +## 测试文件 +- **文件名**: `test_data.xlsx` +- **Sheet 数量**: 2 个 +- **总行数**: 10 行(含表头) + +## 测试数据 + +### Sheet 1: 员工信息 +| 姓名 | 部门 | 职位 | 邮箱 | 工资 | +|------|------|------|------|------| +| 张三 | 技术部 | 高级工程师 | zhangsan@company.com | 25000 | +| 李四 | 市场部 | 市场经理 | lisi@company.com | 22000 | +| 王五 | 财务部 | 会计 | wangwu@company.com | 18000 | +| 赵六 | 技术部 | 前端开发 | zhaoliu@company.com | 20000 | +| 孙七 | 人事部 | 招聘专员 | sunqi@company.com | 16000 | + +### Sheet 2: 产品信息 +| 产品名称 | 类别 | 价格 | 库存 | 供应商 | +|------|------|------|------|------| +| iPhone 15 Pro | 手机 | 8999 | 500 | 苹果公司 | +| MacBook Pro | 笔记本电脑 | 14999 | 200 | 苹果公司 | +| AirPods Pro | 耳机 | 1899 | 1000 | 苹果公司 | + +## 预期翻译结果 + +### 翻译策略 +1. **中文检测**: 正则 `[\u4e00-\u9fff]` +2. **批量翻译**: 按列或按 Sheet 批量请求 +3. **保留格式**: 样式、公式、Sheet 结构不变 +4. **生成新文件**: `test_data_en.xlsx` + +### 预期输出 (Sheet 1: 员工信息) +| 姓名 | 部门 | 职位 | 邮箱 | 工资 | +|------|------|------|------|------| +| Zhang San | Technical Department | Senior Engineer | zhangsan@company.com | 25000 | +| Li Si | Marketing Department | Marketing Manager | lisi@company.com | 22000 | +| Wang Wu | Finance Department | Accountant | wangwu@company.com | 18000 | +| Zhao Liu | Technical Department | Frontend Developer | zhaoliu@company.com | 20000 | +| Sun Qi | HR Department | Recruitment Specialist | sunqi@company.com | 16000 | + +### 预期输出 (Sheet 2: 产品信息) +| 产品名称 | 类别 | 价格 | 库存 | 供应商 | +|------|------|------|------|------| +| iPhone 15 Pro | Phone | 8999 | 500 | Apple Inc. | +| MacBook Pro | Laptop | 14999 | 200 | Apple Inc. | +| AirPods Pro | Headphones | 1899 | 1000 | Apple Inc. | + +## 使用命令 + +```bash +# 设置 API Key +export GEMINI_API_KEY="your-api-key" + +# 翻译整个文件 +python scripts/translate_excel.py --file test_data.xlsx + +# 预览模式 +python scripts/translate_excel.py --file test_data.xlsx --dry-run +``` + +## 注意事项 +1. 需要先安装 `google-generativeai` 依赖 +2. 需要设置 `GEMINI_API_KEY` 环境变量 +3. 原文件不会被修改,新文件命名为 `{原文件名}_en.{ext}` diff --git a/test_data.xlsx b/test_data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..960597de5b903fc4b241b7a2a6c6e3970eaefa24 GIT binary patch literal 5956 zcmZ`-1yoe+x*kfpyG2qNx>IsMkP?s%>F(}MK^kP}E*Ygmx;v#~ei{)e9UAWVd(Zuk z+;e8u-h0hj^E~@|zxR3LdsP*Ykcj{Q02-ju)>a=hpd_CP|1}1`@Zgu3qp7NkqmwJg z8z(1rFMB(s2_?*KPOL}Jj#nOy?_+3+aAd?{az0P6yN5SCwGX>GIz)c%;O#v~S->9s zgsCAz_Jn=Qo`-t?TVjs>N_=EEKPG?6x0-7;`0XbO+#*^Uq@Du%`JiwvEWy!@#*h26 z>>x|`i8LwC8eui2o(*kY;ZMx8l`B*jc)LD~;<1E^Lg}n1_p$0D#OgUa!;Uv*C>^LR zq^f_I5anY+{T;q^Rzv^*|KCk8b#yWRWy4rfmrV~RR)mrHMb4nJ_8X?3#f7Cfk67)# zS=iO{#S)s@GWcH$>43Q#P#31Ak5qCc;?Spm;OCmsawhe-30yTOPKWV{;G>`?jH0(G zn=89Dd+!y_r{tcXNrG|xW$>~fo%Gg~FM5!H-BM;1pFo*WnO9z2dbQ9VOFPR9z92TA zZ!D6UuRCXXxv~Ztf+>wd@Ikrlm{z14`nQB4ol9svMZ%m4r(d~>|)INYqv?ahDRxqfZWp{}0mk|0sQ5oFTK5@wIt z&mY`SN9bzpv0V2)>`<9D9A7)m&f6?8EU-h4A8#ZL`!GqV1uTjT+`k@|mD}AD^gjE} zZn75IOylT)-A8T4zsq)CzCTX_BRAtNla>}={g!cuG^;NxgZ|Vh%+xlAk>m%YL2Qq zy|nAQSy~e}pV$|s<_>n?q||;KIPO@wrK}tEmqvGQr;X+F*R}&w)AB(fL;fi!EiYh& zGsI}z*doH&+T$L6u-?Pmx5Gs_7A&`B1!bRLhDJh z1=vz`Vo61uy2{MC|M~&gDhne{Pi4l|b9E*@y8pwZ7k2xJN@P!UbbsZf+krI`^KG?l z(LRZl6ln9nhk&?#TVm!hK-uK^d zUXV+60tya5pm*w}svktMAqLu=G_9X7H}SMyl>#kuF!-lj2wmR_rfGoPqx4C zxNSy+I! zYB6XEruliLFkPD%A)RcUw}KDYH|LewdGaAkl$wxWECutCWJEdx6G6F9fRa4n9c%H@ zUDk}maS8{+l|te>>stC!H>R;Y9*Qmygwj3IYFgCi4&^e74}&U^k{Z#HvKB-aX5D&B z17V2I{LqchDkW}0&QIY|PZHeVTpnhuOVB^%r954Sf1^{ymn?2P_-!oFeS9tv2S3SB z0RG?c*aZ9zng~IK%)NUwG_*@#k{0qzYTOOr_8Fxp`3w zGj-70!d~0tRz&iOm(g%zpqw<*h;RFNVF;x4e^#vy@kO|wS`z54ya?$O3S{@6C_ZZb zA(lVgC_wLT*)%Fe#TAJr&XED`s85jK$Pfm} z)M2A1Nl*-~m1JnTi5)(E){DMprpJgrqA_DG5JQk7Md`4w{!<}!ejC!v(j=<4wGYX6 z69-OQiW=?KjbZXgH@YZ(ZAfXaXA)HS@oCganPvn_#8Nbgy1_G#n(rEB;ITzt%&DF( z-9#bPj%44Gy&^1_labhrG4m?HvFCEX&x>M1Xc4*DKSRrYcVTMkdbdmMW8sl#8udWb zX#w5${D_Q+9_dJLU!x4m)P7Z7B73_k1|X=>xM}_bNCY)AX3Ikjg{UE(zS1=2((6ZJ zO(^ht`Brw%X*XTpXmcuQbGgL4-U0H|lidEvE1_=d3_{Dw;WhJ5U7FMrntG=n+ik?^ zh?OVqbUqB`V&N;3U=qlirjV8>6r7Q(x9_sP=+zYLkmYG0NGJQexijFbtlmW6(SVD{ z-P|fv?qkknS#rA0hJ_B)i_#(3P%=3DvJ1|t_IcuQmG0SPe0u9NB!{~#vTO9iK)N~r zwz_%ckSrqqGRwOUAHhu)kv^5`5eX^xmg@JUghzx3V<|&2$A}?jB~(EfSD0<5Sj|s~ z$3KV*1R7;B|yXEIjo@o~szW4>QDoE57h6$70WzK7D(M!JH1n!07H?zQJ=F1go* zoR)>xkPLSSfzm|*UH&mKLHLy>?JW?MOU5jbI^UDv$Kac}}i=ySZ}w{rJ0zq^21-f;ovI?lDZJ*<(9`)AHDqN)Jt5&Dt#2g9Q6W6{QbvGl`43Wy{0`JFBU7vZiZPMHS8b2JUZL zUZc0u%D5BL0kk#FYS7Q@$d)TalbH=t;}$CNM85E8L2T8A0*Jeh?V;_WBuh9l-gBpg zUU*k}t(qmIO6=D)BuZMtOsX3nF`joHh*<3661Jxo99bN8TAZ?MCm;GPLZpn52vQfU z4?4#-WmjSj<{gToQcY3t)~QnqNtIdp@Ycr7f34BSvZWy`8@meMz-SjbUMg%eX&rIIaG_? z4{80q&CZm$4Fa?}fh}P%qpDrKu`$YJdr~cEIKCJJo@KTjuysuLE+oV>obVSWf<#Op z`T(hH)Peq8a}15w+p->RckdB6MEF0M-Ysw`?_DOi=FA?Tum!n^Zqr4PF0y&4irT12 zEt1I*ybG+FHOLi*e4iCH0;=-ge_dGLDp(AhTcc}taR-9g%X+)^IyLPkD^EH^J?iWt zMFtCJb?2mOIkm|1zagL9JuVJ7Sg`GK6B-Ug`cvtW=s}diaHX5U+ok`abnajMQg-TU zJeU(N+z3UjJl&QODHvOF$xOYTlvTFX#`h4JSsOEhg4ue#ohJEl4MGuY`1z)*#ZIhg zQmw|3(s;8+K)UP~;EMji6@I=&`dJbmZp}_=^ta+?@A(zoC6qo0j#QNa6C$0X6qud~ zD1BQ46-SGHmD2Dl%-YdTdwHvKDwRXZ?hK)XY$Vt&NLatBMGD-!@@-SI2p3L&ney2t ztct4d9P>O{wAx?L5%&h~X645Yj$2LYDK*J@O?YhnW5eU@N2nGNghnR?0DAR)NNnkH zG4h+h0QY+nUx79|ogS^4i>KV#94mwF-0hYFQXRu*S^@jadl-HenZ?mbmU5E0)-|E% zTl~8+D1K{o+}GU<)BC$BG)%l1;KZ<#(RhU5M1oo#l?492E}gnoFSda;mgw#|B+3bd zLz@bmWb(QYA(7`$Yd}K3#%07Pv9o?p z=v-tGl5u)zRfEbAlP}q-$JAE(i*CR^#*#$xiQ#C zf3o>5ddw>r)wnHxs<7M{yzN z=i%j{WfY}Q-(;lcqloirhu}H(x~jwLwp87bX=T?lawrB)#)YARzd>j6lE3zJ$Dexh zJ1bmKgX;|j&#c(LGpnncx1G7`FOjXjUXEGj#JeT_3%4vegU|WJsj9SbJ{x8$uD_;< z5dPlA@M+SI0}*;5kJ?Hd7XM16<58;YW=hMM>q>$NOFGe3EAuOR4_Nzk*6!^IkoV~M zqB5C;?g8(4UW@vgr}A-$T+-`Hn@=pRW5q)rlstQFFfoy(t_%By!PC`}dW!~NtyNH= zJ|=AV3x8#E5-M|#PIYk$=nMl}uCmIM<`usDBgK2x?vb)LX@#_Gaqd>5reVi>UF8}! z3dX6jJq|O@N8voas))>F>ymaUM%C12PA)es`eJ50bfS+3yIMd^t-^)YjcNryC7e#( z`b!%P;`7d5hfc}|)I>y5IlNT^G|J`A^2G1S`R-m%*DM?iJX#+8I15HYk27&2B>r(< z+PHU}yIP~%u6u7DWb<+|5N9rynOWBx{i?X_-Scpq=oQ)ADy(!U}|dM&00S<&hA z+a(?TIL;#*r1KnFbetC&qR91a+2n1pPT z2z8zo;Rp~jkCj6ev~)FP)zUQN4us!JD*gNbJV}Rvwj;2f;ef7M4QFOb1hzKC@+_{V zB2-hS!Sb34=M;%<>j`R_`_}5t36e^|OVn?3<3mMKcZg7wQ-|YxLamD`Sdcxr+6v8I zxRv&bh|zv!dm2-rKp$1i!-9d))tCq>!{S86cp7s|?RO?N?6_X;cURhYjs2(g(qmew zI^milgzFCz{xotiw{zuS|8>t!YIcC1mL&rFCUZDZC+VVi%uh&=FA-iB;4ToL#K>lM zK$eP~6EMlW#Y72KXsjg;1&bPD%gJu>URmpYX+n^1V0>pio+wp43#8$ToR*MTHkJOU z3lx`NC%0&9Gb1T=Ez*k8pU*B9Tjo%abPR$BzjT(emRID#IUbu1zXbhP~yX7#U>6niA_Zdu<12E7O+0mhNW>f*7z z_E~32w%7{@TUDxT`^g+d3ZdyOlWwX3^yc~Oe{={-Um7jdod^|q znxdrrm;NHAG??UZv)CjfOXk*+{P!}x+R3y>UKW@DW?3>hHGvc=Vv+queR{(0{7aHw zRap^jjYB@xJwI!~Cb4pkL0t9kzR>|-GCWIZ3IV>s$F$2&CtZRnunzPI^65r}xo37E zzwL3urI~-?csc9Sd$NzsOox5|lF2CiH16mXpiDt3F`}d;+#M9Z-SJy`|L&B(W!RUbgb~V# z2Z9i|1jR2+%c^OuHnAB#-n$5$3L8!NdT8sOAI#p8Slul^cjU_%O374*xiQP0~$1E5XAbe6Ekeipl~PG#L><1-LgZnM4`zuf^<;a;nD6zY)ya& zsI$s-&XkU#;3AJG4O=jdTjrRmT-qh`Lf}wi*1Xa)@Ab%b+p|#S;}mrW9sdDy+0V6C zu$2@3OekhzXTc!NKyQvF8g(IGF;jeHD5PEOlu*)TJ0UbKx(SM$Urlf|I1!}2dVuhX zo7hY*drwwm{8hH5yc{M=DP#2yvad@is^Kn2O)@4g^H}WwgE~Sn>?K3Jgb^pc0^sL^ zFA;=X!BR3Fz^=olT1J0&8XYu(_xtpQQ9!Y4zsXhu$)Ae+@6PFqJdTmRd>qX^(R#;m zB>?+$H6XqwZFPTDabD@RbireUeKfQ~sH%v7NQCs?XO(dM{QU`nZ}R`2Ts}lU925S= z0suh>J^zmW*U<1G{NW(&A2<~L`u{Lidr0u`AoYI)!E|VU6a2?x)kBttP3k`^nD9If zU&ce0zgyOaEDu|c|6@V$g?A!wmVX+NhtP+W;~(fbJiq>19eD_Rn2G-ZLg9nw|6TdN z^72FQ!@Thi*pc9G@PEl74|yKOuf0KkBM!{AA);+Gr&{{#4S BUIhRE literal 0 HcmV?d00001