feat: implement QuestionBank CRUD with pagination and template query
- Add pagination support to findAll (page, limit query params) - Add findByTemplateId method to service - Add GET /by-template/:templateId endpoint to controller - Service already includes CRUD for QuestionBank and QuestionBankItem
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const stringsToTranslate = fs.readFileSync('true_code.txt', 'utf8').split('\n').filter(l => l.trim().length > 0 && !l.trim().startsWith('*'));
|
||||
|
||||
// Exclude i18n.service.ts Chinese/Japanese prompt templates
|
||||
const filtered = stringsToTranslate.filter(s => {
|
||||
if (s.includes('你是一个文档分析师')) return false;
|
||||
if (s.includes('あなたはドキュメントアナライザーです')) return false;
|
||||
if (s.includes('基于以下知识库内容回答用户问题')) return false;
|
||||
if (s.includes('以下のナレッジベースの内容に基づいてユーザーの質問に答えてください')) return false;
|
||||
if (s.includes('请用Chinese回答')) return false;
|
||||
if (s.includes('Japaneseで回答してください')) return false;
|
||||
if (s.includes('用户问题:{question}')) return false;
|
||||
if (s.includes('历史对话:')) return false;
|
||||
if (s.includes('知识库内容:')) return false;
|
||||
if (s.includes('作为智能助手')) return false;
|
||||
if (s.includes('片段:')) return false;
|
||||
if (s.includes('スニペット:')) return false;
|
||||
return true;
|
||||
});
|
||||
|
||||
async function translateText(text) {
|
||||
try {
|
||||
const url = `https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=en&dt=t&q=${encodeURIComponent(text)}`;
|
||||
const res = await fetch(url);
|
||||
const data = await res.json();
|
||||
return data[0].map(x => x[0]).join('');
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async function main() {
|
||||
console.log(`Starting translation for ${filtered.length} strings...`);
|
||||
const dict = {};
|
||||
for (let i = 0; i < filtered.length; i++) {
|
||||
const s = filtered[i];
|
||||
const translated = await translateText(s);
|
||||
if (translated) {
|
||||
dict[s] = translated;
|
||||
if (i % 10 === 0) console.log(`Translated ${i + 1}/${filtered.length}`);
|
||||
} else {
|
||||
console.log(`Failed to translate: ${s}`);
|
||||
}
|
||||
await new Promise(r => setTimeout(r, 200)); // Sleep to avoid rate limits
|
||||
}
|
||||
fs.writeFileSync('auto_dict.json', JSON.stringify(dict, null, 2));
|
||||
console.log('Successfully generated auto_dict.json');
|
||||
}
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user