auto_translator.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. const fs = require('fs');
  2. const path = require('path');
  3. const stringsToTranslate = fs.readFileSync('true_code.txt', 'utf8').split('\n').filter(l => l.trim().length > 0 && !l.trim().startsWith('*'));
  4. // Exclude i18n.service.ts Chinese/Japanese prompt templates
  5. const filtered = stringsToTranslate.filter(s => {
  6. if (s.includes('你是一个文档分析师')) return false;
  7. if (s.includes('あなたはドキュメントアナライザーです')) return false;
  8. if (s.includes('基于以下知识库内容回答用户问题')) return false;
  9. if (s.includes('以下のナレッジベースの内容に基づいてユーザーの質問に答えてください')) return false;
  10. if (s.includes('请用Chinese回答')) return false;
  11. if (s.includes('Japaneseで回答してください')) return false;
  12. if (s.includes('用户问题:{question}')) return false;
  13. if (s.includes('历史对话:')) return false;
  14. if (s.includes('知识库内容:')) return false;
  15. if (s.includes('作为智能助手')) return false;
  16. if (s.includes('片段:')) return false;
  17. if (s.includes('スニペット:')) return false;
  18. return true;
  19. });
  20. async function translateText(text) {
  21. try {
  22. const url = `https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=en&dt=t&q=${encodeURIComponent(text)}`;
  23. const res = await fetch(url);
  24. const data = await res.json();
  25. return data[0].map(x => x[0]).join('');
  26. } catch (e) {
  27. return null;
  28. }
  29. }
  30. async function main() {
  31. console.log(`Starting translation for ${filtered.length} strings...`);
  32. const dict = {};
  33. for (let i = 0; i < filtered.length; i++) {
  34. const s = filtered[i];
  35. const translated = await translateText(s);
  36. if (translated) {
  37. dict[s] = translated;
  38. if (i % 10 === 0) console.log(`Translated ${i + 1}/${filtered.length}`);
  39. } else {
  40. console.log(`Failed to translate: ${s}`);
  41. }
  42. await new Promise(r => setTimeout(r, 200)); // Sleep to avoid rate limits
  43. }
  44. fs.writeFileSync('auto_dict.json', JSON.stringify(dict, null, 2));
  45. console.log('Successfully generated auto_dict.json');
  46. }
  47. main();