AB İhaleleri (TED): başlık ve açıklamalar Türkçe
- server/ted-ceviri.mjs: TED'in kendi Türkçe alanı varsa onu kullanır; yoksa OpenRouter ile toplu çevirir (deepseek-v4-flash → gemini 3.7 flash → glm), sonucu server/data/ted.sqlite'ta ilan numarasına göre saklar - İstek en fazla 12 sn bekler, kalan çeviriler arka planda sürer; yanıt ceviriBekleniyor bayrağı taşır, ön yüz sessizce yeniden çeker - Kartta Türkçe başlık + küçük özgün başlık, Türkçe açıklama (3 satır), ülke kodları Türkçe ad (TUR → Türkiye, AUT → Avusturya…) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
+4
-1
@@ -37,6 +37,7 @@ import { billingConfigured, webhookConfigured, planCatalog, createCheckoutSessio
|
||||
import * as store from './user-store.mjs';
|
||||
import { planOf, haklar, kullanim, kotaKontrol, ozellikVar } from './entitlements.mjs';
|
||||
import { searchTed } from './ted.mjs';
|
||||
import { tedCevir } from './ted-ceviri.mjs';
|
||||
import { readHistory, historyStats, havuzOlc, havuzGecmisi, havuzOzet,
|
||||
sektorZenginOku, sektorZenginYaz, sektorZenginDenenmis, sektorZenginSayi,
|
||||
cpvCacheOku, cpvCacheYaz } from './history-store.mjs';
|
||||
@@ -926,7 +927,9 @@ const server = http.createServer(async (req, res) => {
|
||||
page: Number(url.searchParams.get('page')) || 1,
|
||||
limit: Number(url.searchParams.get('limit')) || 25,
|
||||
});
|
||||
return json(res, 200, { success: true, ...out });
|
||||
// Başlık/açıklama Türkçesi: TED'in kendi TUR metni → önbellek → model
|
||||
const bekleyenCeviri = await tedCevir(out.tenders).catch(() => 0);
|
||||
return json(res, 200, { success: true, ...out, ceviriBekleniyor: bekleyenCeviri > 0 });
|
||||
} catch (e) {
|
||||
return json(res, 502, { success: false, error: e.message });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user