@php /* ── Temel değişkenler ─────────────────────────────────────── */ $siteName = settings('branding.site_name'); $siteUrl = rtrim(url('/'), '/'); /* i18n B20 (Day 29) — locale-aware SEO copy. İSİM = içerik (çevrilmez); * ŞABLON/SUFFIX = UI metni (çevrilir). $L aktif locale stringini seçer * (AR/ES/RU henüz yoksa EN'e düşer). TR çıktı byte-identical kalır. */ $locale = app()->getLocale() ?: 'tr'; $L = function (string $tr, string $en, ?string $ar = null, ?string $es = null, ?string $ru = null) use ($locale) { return match ($locale) { 'en' => $en, 'ar' => $ar ?? $en, 'es' => $es ?? $en, 'ru' => $ru ?? $en, default => $tr, }; }; $ogLocaleMap = ['tr' => 'tr_TR', 'en' => 'en_US', 'ar' => 'ar_AR', 'es' => 'es_ES', 'ru' => 'ru_RU']; $ogLocale = $ogLocaleMap[$locale] ?? 'tr_TR'; /* Tür adını aktif locale'e çevir (guarded — genre_translations yoksa TR'ye * düşer, 500 yok). Görünür title'da geçmez ama keywords/JSON-LD genre için. */ $trGenre = function ($name) use ($locale) { $name = trim((string) $name); if ($name === '' || $locale === 'tr') return $name; try { $t = \Illuminate\Support\Facades\DB::table('genre_translations as gt') ->join('genres as g', 'g.id', '=', 'gt.genre_id') ->where('gt.locale', $locale) ->whereRaw('LOWER(g.name) = ?', [mb_strtolower($name, 'UTF-8')]) ->value('gt.name'); return $t ?: $name; } catch (\Throwable $e) { return $name; } }; /* Yönetmen ve oyuncular */ /* R13: kişi adlarını SEO çıktısında Latin alfabesinde göster * (film adı dokunulmaz, sadece oyuncu/yönetmen isimleri). */ $directorName = (isset($credits['directing']) && $credits['directing']->isNotEmpty()) ? latinizeName($credits['directing']->first()->name) : null; $topCastArr = (isset($credits['actors']) && $credits['actors']->isNotEmpty()) ? $credits['actors']->take(4)->map(fn($a) => latinizeName($a->name))->toArray() : []; $topCastStr = implode(', ', array_slice($topCastArr, 0, 3)); /* PUAN OVERHAUL C2.5 devamı (6 Tem, kod taraması bulgusu): eskiden TMDB * ortalaması meta description'da "IMDb X/10" diye ETİKETLENİYORDU (yanlış * kaynak etiketi). Artık gerçek imdb_rating varsa IMDb etiketi; yoksa * değer TMDB puanıysa dürüstçe "Puan X/10" yazılır. */ $imdbRatingCol = (float) ($title->imdb_rating ?? 0); if ($imdbRatingCol > 0) { $imdbStr = 'IMDb ' . number_format($imdbRatingCol, 1) . '/10'; } else { // "TMDB" marka adı 5 dilde de geçerli (non-TR meta'larda TR kelime // sızdırmaz) ve kaynağı dürüstçe söyler. $imdbStr = $title->rating ? 'TMDB ' . number_format((float) $title->rating, 1) . '/10' : null; } /* Orijinal başlık — META TITLE / DESC / KEYWORDS hepsinde gerekiyor, erken tanımla */ $origTitle = ($title->original_title && $title->original_title !== $title->name) ? $title->original_title : null; /* R5 (5 Tem) — non-TR sayfalarda META TITLE görünen adı locale-aware: * localized_name (title_translations, TMDB sync/admin override — * TitleLoader::applyLocalizedDescription setAttribute eder) > * original_title > name(TR). TR çıktı byte-identical kalır. */ $dispName = $title->name; if ($locale !== 'tr') { $localizedName = trim((string) ($title->localized_name ?? '')); $dispName = $localizedName !== '' ? $localizedName : (trim((string) ($title->original_title ?? '')) ?: $title->name); } /* Kelime sınırında kesen yardımcı (title için) */ $wordCut = function(string $s, int $max): string { if (mb_strlen($s, 'UTF-8') <= $max) return $s; $sub = mb_substr($s, 0, $max, 'UTF-8'); $pos = mb_strrpos($sub, ' ', 0, 'UTF-8'); if ($pos !== false && $pos >= intval($max * 0.55)) { $sub = mb_substr($sub, 0, $pos, 'UTF-8'); } return rtrim($sub, '.,;:!?- ') . '…'; }; /* Cümle/kelime sınırında kesen yardımcı (description için) */ $descLimit = function(string $text, int $max = 155): string { $len = mb_strlen($text, 'UTF-8'); if ($len <= $max) return $text; // 250 karaktere kadar cümle sonu ara (. ! ?) — böylece 155'i geçen cümleler de tam biter $window = mb_substr($text, 0, min(250, $len), 'UTF-8'); $sentPos = -1; foreach (['. ', '! ', '? ', ".\n", "!\n", "?\n"] as $p) { $found = mb_strrpos($window, $p, 0, 'UTF-8'); if ($found !== false && $found >= intval($max * 0.4)) { $sentPos = max($sentPos, (int)$found); } } // Metin nokta/ünlem/soru ile bitiyorsa (boşluk yok sonunda) da yakala $lastChar = mb_substr($window, -1, 1, 'UTF-8'); if ($sentPos === -1 && in_array($lastChar, ['.', '!', '?']) && mb_strlen($window, 'UTF-8') >= intval($max * 0.4)) { return $window; } if ($sentPos !== -1) { return mb_substr($window, 0, $sentPos + 1, 'UTF-8'); } // Cümle bulunamadı — 155 içinde kelime sınırında kes $sub = mb_substr($text, 0, $max, 'UTF-8'); $pos = mb_strrpos($sub, ' ', 0, 'UTF-8'); if ($pos !== false && $pos >= intval($max * 0.4)) { return rtrim(mb_substr($sub, 0, $pos, 'UTF-8'), '.,;:!?-') . '…'; } return rtrim($sub, '.,;:!?- ') . '…'; }; /* ── META TITLE ───────────────────────────────────────────── * Admin'de seo_title tanımlıysa onu kullan, yoksa otomatik oluştur. * ──────────────────────────────────────────────────────────────────── */ $customSeoTitle = trim((string) ($title->seo_title ?? '')); if ($customSeoTitle !== '') { $ogTitle = $customSeoTitle; } elseif ($title->is_series) { $ogTitle = $dispName . $L( " - Tüm Sezonlar, Konusu ve Nerede İzlenir | {$siteName}", " - All Seasons, Plot & Where to Watch | {$siteName}", " - جميع المواسم والقصة وأين تشاهد | {$siteName}", " - Todas las Temporadas, Trama y Dónde Ver | {$siteName}", " - Все сезоны, сюжет и где смотреть | {$siteName}", ); } else { $yearDisp = $title->year ? " ({$title->year})" : ''; $ogTitle = "{$dispName}{$yearDisp}" . $L( " - Konusu, Oyuncuları, Nerede İzlenir | {$siteName}", " - Plot, Cast & Where to Watch | {$siteName}", " - القصة والممثلون وأين تشاهد | {$siteName}", " - Trama, Reparto y Dónde Ver | {$siteName}", " - Сюжет, актёры и где смотреть | {$siteName}", ); } /* ── META DESCRIPTION ──────────────────────────────────────── */ /* Hierarchy: admin seo_description > AI ozet_tr (Day 12-15 enrichment) * > DB title->description > structured fallback. AI ozet is spoiler-safe * Turkish copy and beats raw TMDB ham translation in most cases. */ $customSeoDesc = trim((string) ($title->seo_description ?? '')); if ($customSeoDesc !== '') { $metaDesc = $descLimit($customSeoDesc); $rawDesc = $customSeoDesc; } else { try { $aiOzetTr = trim(strip_tags((string) ($title->aiContent->ozet_tr ?? ''))); } catch (\Throwable $e) { $aiOzetTr = ''; } $rawDesc = $aiOzetTr !== '' ? $aiOzetTr : trim(strip_tags((string) $title->description)); } if ($customSeoDesc !== '') { // zaten set edildi yukarıda } elseif ($rawDesc !== '') { /* Düzeltme 8: Diziler için "tüm bölümler/sezon detayları" ek cümlesi */ if ($title->is_series) { /* R27: dizi kapanışı "sezon ve bölüm rehberi" formatında */ $rawDesc = rtrim($rawDesc, ' .') . $L( ". Sezon ve bölüm rehberi: tüm bölümler, yayın tarihleri ve oyuncu kadrosu {$siteName}'de.", ". Season and episode guide: all episodes, air dates and cast on {$siteName}.", ". دليل المواسم والحلقات: جميع الحلقات وتواريخ العرض والممثلون على {$siteName}.", ". Guía de temporadas y episodios: todos los episodios, fechas de emisión y reparto en {$siteName}.", ". Гид по сезонам и сериям: все серии, даты выхода и актёры на {$siteName}.", ); } /* Uzun DB açıklamasını 155'e kıs */ $metaDesc = $descLimit($rawDesc); } elseif ($title->is_series) { /* Yapılandırılmış dizi açıklaması — Düzeltme 8: kapanış cümlesi * "tüm bölümler/sezon detayları" formatına alındı */ $parts = ["{$title->name}"]; if ($origTitle && $origTitle !== $title->name) $parts[] = "({$origTitle})"; if ($title->seasons_count) $parts[] = $L("{$title->seasons_count} sezon", "{$title->seasons_count} seasons", "{$title->seasons_count} مواسم", "{$title->seasons_count} temporadas", "{$title->seasons_count} сезонов"); if ($topCastStr) $parts[] = $L("Oyuncular: {$topCastStr}", "Cast: {$topCastStr}", "الممثلون: {$topCastStr}", "Reparto: {$topCastStr}", "Актёры: {$topCastStr}"); if ($imdbStr) $parts[] = $imdbStr; $fallback = implode(', ', $parts) . $L( ". Sezon ve bölüm rehberi: tüm bölümler, yayın tarihleri ve oyuncu kadrosu {$siteName}'de.", ". Season and episode guide: all episodes, air dates and cast on {$siteName}.", ". دليل المواسم والحلقات: جميع الحلقات وتواريخ العرض والممثلون على {$siteName}.", ". Guía de temporadas y episodios: todos los episodios, fechas de emisión y reparto en {$siteName}.", ". Гид по сезонам и сериям: все серии, даты выхода и актёры на {$siteName}.", ); $metaDesc = $descLimit($fallback); } else { /* Yapılandırılmış film açıklaması — "nerede izlenir" odaklı */ $dispOrig = ($origTitle && $origTitle !== $title->name) ? " ({$origTitle})" : ''; $fallback = $L( "{$title->name}{$dispOrig} filmi hakkında tüm detaylar: konusu, oyuncuları" . ($imdbStr ? ", {$imdbStr}" : '') . ($directorName ? ", yönetmen {$directorName}" : '') . ". Netflix, BluTV ve diğer platformlarda nerede izleneceğini {$siteName}'de öğren.", "Everything about {$title->name}{$dispOrig}: plot, cast" . ($imdbStr ? ", {$imdbStr}" : '') . ($directorName ? ", directed by {$directorName}" : '') . ". Find where to watch on Netflix, BluTV and more at {$siteName}.", "كل ما يخص {$title->name}{$dispOrig}: القصة والممثلون" . ($imdbStr ? "، {$imdbStr}" : '') . ($directorName ? "، إخراج {$directorName}" : '') . ". اعرف أين تشاهده على {$siteName}.", "Todo sobre {$title->name}{$dispOrig}: trama, reparto" . ($imdbStr ? ", {$imdbStr}" : '') . ($directorName ? ", dirigida por {$directorName}" : '') . ". Descubre dónde verla en {$siteName}.", "Всё о {$title->name}{$dispOrig}: сюжет, актёры" . ($imdbStr ? ", {$imdbStr}" : '') . ($directorName ? ", режиссёр {$directorName}" : '') . ". Узнайте, где смотреть, на {$siteName}.", ); $metaDesc = $descLimit($fallback); } /* ── META KEYWORDS ─────────────────────────────────────────── */ $pageUrl = urls()->title($title); $kwBase = collect($title->keywords ?? []) ->map(fn($k) => trim((string)($k->display_name ?: $k->name)))->filter()->take(5)->values(); $kwGenre = collect($title->genres ?? []) ->map(fn($g) => $trGenre(trim((string)($g->display_name ?? $g->name))))->filter()->take(3)->values(); if ($title->is_series) { $kwExtra = array_filter([ $title->name, $L("{$title->name} izle", "watch {$title->name}"), $L("{$title->name} konusu", "{$title->name} plot"), $L("{$title->name} oyuncuları", "{$title->name} cast"), $title->seasons_count ? $L("{$title->name} {$title->seasons_count}. sezon", "{$title->name} season {$title->seasons_count}") : null, $L("{$title->name} nerede izlenir", "where to watch {$title->name}"), $L("{$title->name} hangi platformda", "{$title->name} streaming"), $L("{$title->name} türkçe altyazılı", "{$title->name} subtitles"), $origTitle ? $origTitle : null, $directorName ? $L("{$directorName} dizisi", "{$directorName} tv series") : null, $L('dizi izle', 'watch tv series'), $L('türk dizileri', 'turkish series'), $title->year ? $L("{$title->year} dizileri", "{$title->year} tv shows") : null, ]); } else { $kwExtra = array_filter([ $title->name, $L("{$title->name} izle", "watch {$title->name}"), $L("{$title->name} konusu", "{$title->name} plot"), $L("{$title->name} oyuncuları", "{$title->name} cast"), $L("{$title->name} nerede izlenir", "where to watch {$title->name}"), $L("{$title->name} türkçe dublaj"

Young Hearts Filmi

Young Hearts posteri

Türler

Keşfet

Kullanıcı Puanı
8.4 / 10
Süre
99 dakika
Yaş Sınırı
nr
Vizyon Tarihi
2024-10-26 00:00:00
Hasılat
$129,692

Elias 14 yaşında ve aslında tüm dünyası okulla sınırlı. Ta ki, karşı eve yaşıtı Alexander taşınana kadar! Onunla tanıştığında, Elias daha önce hiç hissetmediği yepyeni ve heyecan verici duygularla tanışır. İlk kez gerçekten âşık olduğunu fark eder ve her boş anını yeni arkadaşıyla geçirmek ister! Alexander bir gün Elias'a açılır ve aslında erkeklere ilgi duyduğunu söyler. Elias ise içindeki bu yoğun duyguları bastırır, çünkü çevresinin tepkisinden korkmaktadır. Alexander'a olan hislerini saklar ve yalan söylemeye başlar. Ta ki dedesiyle yaptığı bir konuşma ona gerçekten ne istediğini hatırlatana kadar.

Özet

Young Hearts (2024) – Aşkın ve Kendini Bulmanın Hikayesi

2024 yapımı "Young Hearts", gençlik dramaları arasında dikkat çekici bir yer edinmeye aday. Yönetmen koltuğunda Anthony Schatteman'ın oturduğu film, başrollerinde Lou Goossens, Marius De Saeger, Geert Van Rampelberg, Emilie De Roo ve Dirk van Dijck gibi yetenekli oyuncuları barındırıyor. IMDb’de 8.4/10 gibi yüksek bir puana sahip olan bu film, gençlik döneminin karmaşık duygularını ve ilk aşk deneyimlerini derinlemesine ele alıyor.

Film, 14 yaşındaki Elias'ın hayatına odaklanıyor. Elias, tüm dünyası okulla sınırlı olan sıradan bir gençtir. Ancak komşu eve taşınan Alexander ile tanıştığında, hayatındaki her şey değişir. İlk kez yoğun duygular hissetmeye başlayan Elias, Alexander ile geçirdiği her anı değerli bulur. Fakat, Alexander’ın gay olduğunu öğrenince içindeki bu duyguları bastırmaya başlar. Ailesinin ve çevresinin tepkisinden korkarak, hislerini gizlemeye çalışır. Elias'ın içsel çatışması ve kendi kimliğini bulma yolculuğu, filmin merkezinde yer alıyor. Young Hearts konusu, gençlerin duygusal karmaşalarını ve kendini kabul etme süreçlerini ustaca işliyor.

Anthony Schatteman, bu filmde gençlik döneminin karmaşık duygularını samimi bir dille anlatıyor. Yönetmenin tarzı, karakterlerin derinliklerine inerek izleyiciye duygusal bir yolculuk sunuyor. Lou Goossens ve Marius De Saeger’in performansları, özellikle Elias ve Alexander arasındaki ilişkiyi çok iyi yansıtıyor. İki genç oyuncu, izleyicilere gerçek bir bağ hissettiriyor. Diğer oyuncular da hikayeye katkıda bulunarak, karakterlerin yaşadığı çatışmaları daha da derinleştiriyor. Schatteman’ın özenle işlenmiş sahneleri ve karakter gelişimi, filmi izlerken kendinizi duygusal bir yolculuğa çıkartıyor.

"Young Hearts", yalnızca bir aşk hikayesi olmanın ötesinde, gençlerin kendilerini bulma mücadelesini de gözler önüne seriyor. Film, izleyicilere toplumun beklentileriyle bireysel arzular arasındaki çatışmayı sorgulatıyor. Elias’ın içsel yolculuğu, birçok gencin yaşadığı kaygı ve korkuları yansıtıyor. Bu nedenle, Young Hearts izle listelerinde yer alması gereken bir yapım. Filmin, genç izleyicilere olduğu kadar yetişkinlere de hitap etmesi, duygusal derinliği ve samimiyeti sayesindedir. Kendinizi kaybettiğiniz anlarda, bu filmi izlemek size ilham verebilir ve içsel huzuru bulmanıza yardımcı olabilir.

Sonuç olarak, "Young Hearts", sadece aşkı değil, aynı zamanda kendini kabul etme ve özgürlük arayışını da ön plana çıkarıyor. Anthony Schatteman filmleri arasında öne çıkan bu yapım, gençlik döneminin en karmaşık duygularını sade ve etkileyici bir biçimde aktarıyor. İzleyicilere, hayatın zorlukları karşısında nasıl bir duruş sergileyeceklerini sorgulatan "Young Hearts", kaçırılmaması gereken bir film.

Neden İzlemeli?

GÜÇLÜ YÖNLER: Gençlik ve aşk temalarını etkileyici bir şekilde ele alması. Karakter derinliği ve ilişkilerin gerçekçiliği ile izleyiciye samimi bir deneyim sunması. Güzel müzikler ve görsel estetik ile desteklenen etkileyici bir anlatım tarzı.

KİME HİTAP EDER: Gençler ve duygusal hikayeleri seven herkes bu filmden keyif alacaktır.

BEKLENTİ YÖNETİMİ: Aksiyon ve hızlı tempolu filmleri sevenler 'Young Hearts'ı pek tercih etmeyebilir.

Bilinmeyenler

Sıkça Sorulan Sorular

Young Hearts konusu nedir?

Young Hearts, gençlerin aşk, dostluk ve hayatta karşılaştıkları zorluklarla başa çıkma mücadelesini anlatan bir drama filmidir. Film, gençlerin duygusal gelişimlerini ve birbirleriyle olan ilişkilerini keşfeder.

Young Hearts gerçek bir hikayeye dayanıyor mu?

Hayır, Young Hearts gerçek bir hikayeye dayanmıyor. Ancak, filmdeki karakterler ve olaylar, gençlerin yaşadığı gerçek duygusal deneyimlere ve sosyal dinamiklere dayanarak kurgulanmıştır.

Young Hearts nerede izlenir?

Young Hearts, sinemalarda gösterime girecek ve ardından dijital platformlarda da izlenebilir hale gelecektir. İzleyiciler, film yayınlandığında çeşitli çevrimiçi platformlarda bulabilirler.

Young Hearts kaç dakika?

Film 99 dakika sürmektedir.

Young Hearts'ın sonu ne anlama geliyor?

Young Hearts'ın sonu, karakterlerin büyüme süreçlerini ve birbirleriyle olan bağlarının evrimini simgeler. İzleyicilere, hayatın zorluklarıyla başa çıkmanın ve sevgi dolu ilişkilerin değerini hatırlatır.

Young Hearts hangi yıl çıktı?

Film 2024 yılında çıkmıştır.

Young Hearts izlemeye değer mi?

Evet, Young Hearts izlemeye değer bir film. Gençlerin duygusal yolculuğunu etkileyici bir şekilde anlatması ve güçlü performanslarıyla izleyicilere dokunması bekleniyor.

Oyuncular ve Ekip

Videolar ve Fragmanlar

Görseller

Benzer Filmler