fix(universite): üniversite türü özet paragrafın ilk virgülüne döndü
Dün gece bu dalda URAP sırası "Tür" kartının yerini alırken devlet/vakıf
bilgisi URAP'ta yer alan 198 üniversite sayfasından tamamen düştü — gerekçe
"bilgi sayfanın başka yerinde zaten var" idi, doğrulandı ki değil
(bogazici-universitesi.html'de "Devlet" 0 kez, koc-universitesi.html'de
"Vakıf" 0 kez geçiyordu). Bu commit o bilgi kaybının telafisi.
Telafi özet paragrafın ilk virgülünde duruyor: "… (İstanbul), devlet
üniversitesi; 2026 YKS yerleştirme sonuçlarına göre …". Yeni kutu, yeni
bileşen, yeni rozet yok; ızgara 4 kart kalıyor.
Metin `trBaslikDuzeni` ile değil, dünkü commit'te eklenen `UNITUR_ETIKET`
haritasıyla üretiliyor; harita cümle biçimini de taşıyacak şekilde
genişletildi (kart etiketi + cümle öbeği tek kaynakta). `trBaslikDuzeni`
tr-TR küçültmesi yaptığı için 6 `unitur` değerinin 4'ünde bozuk metin
üretiyordu ("Kktc", "Yurtdısı Kamu"). Haritada olmayan ya da NULL bir
değerde öbek hiç yazılmaz, cümlede kopuk virgül kalmaz.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -46,16 +46,24 @@ const sayi = (n: number) => n.toLocaleString("tr-TR");
|
|||||||
// Ham `unitur` değerlerinin ekranda görünen karşılığı. `trBaslikDuzeni`
|
// Ham `unitur` değerlerinin ekranda görünen karşılığı. `trBaslikDuzeni`
|
||||||
// tr-TR küçültmesi yaptığı için ("I" → "ı") ham değerlere uygulanamaz:
|
// tr-TR küçültmesi yaptığı için ("I" → "ı") ham değerlere uygulanamaz:
|
||||||
// "YURTDISI KAMU" → "Yurtdısı Kamu" gibi Türkçede olmayan kelimeler çıkıyor.
|
// "YURTDISI KAMU" → "Yurtdısı Kamu" gibi Türkçede olmayan kelimeler çıkıyor.
|
||||||
// Haritada olmayan (ileride eklenecek) bir değer için `trBaslikDuzeni`
|
// İki biçim tek kaynakta durur, çünkü aynı bilgi iki yerde geçiyor:
|
||||||
// yedek olarak kalır. Yalnızca bu karttaki gösterim içindir — `trBaslikDuzeni`
|
// `kart` = "Tür" kartındaki kısa etiket (yalnız URAP'ta olmayan üniversitede),
|
||||||
// il adlarında doğru çalışıyor, ona dokunulmaz.
|
// `cumle` = özet paragrafın ilk virgülündeki öbek (her üniversitede).
|
||||||
const UNITUR_ETIKET: Record<string, string> = {
|
// `cumle` cümle ortasında okunacak biçimde küçük harfle başlar; KKTC gibi
|
||||||
DEVLET: "Devlet",
|
// kısaltmalar büyük kalır.
|
||||||
VAKIF: "Vakıf",
|
const UNITUR_ETIKET: Record<string, { kart: string; cumle: string }> = {
|
||||||
"VAKIF MYO": "Vakıf MYO",
|
DEVLET: { kart: "Devlet", cumle: "devlet üniversitesi" },
|
||||||
KKTC: "KKTC",
|
VAKIF: { kart: "Vakıf", cumle: "vakıf üniversitesi" },
|
||||||
"YURTDISI KAMU": "Yurt dışı (kamu)",
|
"VAKIF MYO": { kart: "Vakıf MYO", cumle: "vakıf meslek yüksekokulu" },
|
||||||
"YURTDISI VAKIF": "Yurt dışı (vakıf)",
|
KKTC: { kart: "KKTC", cumle: "KKTC üniversitesi" },
|
||||||
|
"YURTDISI KAMU": {
|
||||||
|
kart: "Yurt dışı (kamu)",
|
||||||
|
cumle: "yurt dışında bir kamu üniversitesi",
|
||||||
|
},
|
||||||
|
"YURTDISI VAKIF": {
|
||||||
|
kart: "Yurt dışı (vakıf)",
|
||||||
|
cumle: "yurt dışında bir vakıf üniversitesi",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export function uniToplamSayfa(programSayisi: number): number {
|
export function uniToplamSayfa(programSayisi: number): number {
|
||||||
@@ -227,6 +235,14 @@ export function UniversiteIcerik({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const ilkSayfa = sayfa === 1;
|
const ilkSayfa = sayfa === 1;
|
||||||
|
// Devlet/vakıf bilgisi sayfada başka hiçbir yerde geçmiyor (URAP'ta olan
|
||||||
|
// üniversitede "Tür" kartının yerini URAP sırası aldı), o yüzden özet
|
||||||
|
// paragrafın ilk virgülünde duruyor. Haritada olmayan ya da NULL bir
|
||||||
|
// `unitur`'da öbek hiç yazılmaz: cümlede kopuk virgül/boşluk kalmaz ve
|
||||||
|
// ham DB değeri cümlenin içine sızmaz.
|
||||||
|
const turCumlesi = uni.unitur
|
||||||
|
? UNITUR_ETIKET[uni.unitur]?.cumle
|
||||||
|
: undefined;
|
||||||
const buYol = ilkSayfa
|
const buYol = ilkSayfa
|
||||||
? `/universite/${slug}`
|
? `/universite/${slug}`
|
||||||
: `/universite/${slug}/sayfa/${sayfa}`;
|
: `/universite/${slug}/sayfa/${sayfa}`;
|
||||||
@@ -324,8 +340,9 @@ export function UniversiteIcerik({
|
|||||||
<>
|
<>
|
||||||
<p className="mt-4 max-w-3xl text-sm leading-7 text-slate-600">
|
<p className="mt-4 max-w-3xl text-sm leading-7 text-slate-600">
|
||||||
{uni.ad}
|
{uni.ad}
|
||||||
{uni.il ? ` (${trBaslikDuzeni(uni.il)})` : ""}, {SON_YIL} YKS
|
{uni.il ? ` (${trBaslikDuzeni(uni.il)})` : ""}
|
||||||
yerleştirme sonuçlarına göre{" "}
|
{turCumlesi ? `, ${turCumlesi};` : ","} {SON_YIL} YKS yerleştirme
|
||||||
|
sonuçlarına göre{" "}
|
||||||
<strong>{sayi(uni.programSayisi)} programda</strong> öğrenci aldı
|
<strong>{sayi(uni.programSayisi)} programda</strong> öğrenci aldı
|
||||||
{uni.fakulteSayisi > 1
|
{uni.fakulteSayisi > 1
|
||||||
? `; programlar ${sayi(uni.fakulteSayisi)} fakülte/yüksekokula dağılıyor`
|
? `; programlar ${sayi(uni.fakulteSayisi)} fakülte/yüksekokula dağılıyor`
|
||||||
@@ -394,7 +411,7 @@ export function UniversiteIcerik({
|
|||||||
</dt>
|
</dt>
|
||||||
<dd className="mt-1 font-heading text-2xl font-bold text-slate-900">
|
<dd className="mt-1 font-heading text-2xl font-bold text-slate-900">
|
||||||
{uni.unitur
|
{uni.unitur
|
||||||
? (UNITUR_ETIKET[uni.unitur] ??
|
? (UNITUR_ETIKET[uni.unitur]?.kart ??
|
||||||
trBaslikDuzeni(uni.unitur))
|
trBaslikDuzeni(uni.unitur))
|
||||||
: "—"}
|
: "—"}
|
||||||
</dd>
|
</dd>
|
||||||
|
|||||||
Reference in New Issue
Block a user