Selamlar. Laravel 5.1 tabanlı php 7.4 üzerinde fotoğraf galerisi sitemizde ek dil seçeneği gerekiyor. (script codecanyon'dan) (2013-2017 arası geliştiriyordu, sonra kayboldu)
Hali hazırda kendisinin dil desteği var:
1-Footerda bu satır ile başlıyor.
@include('master/language')
dil çağırım dosyası bu:
/resources/views/master/language.blade.php
KODU:
· <a data-toggle="modal" href="#myModal">Dil Seçin</a>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Dil Seçin</h4>
</div>
<div class="modal-body">
<?php
$path = base_path() . '/resources/lang';
$results = scandir($path);
foreach ($results as $result) {
if ($result === '.' or $result === '..') continue;
if (is_dir($path . '/' . $result)) {
echo '<p> <a href="' . url('lang/' . $result) . '">' . langDecode($result) . '</a>';
}
}
?>
</div>
</div>
</div>
</div>
Dil Değiştir yazısındaki url bu:
/resim/16/ataturk-evi-ve-muzesi-sebinkarahisar#myModal
tıklayınca bu
/lang/en
oto anasayfaya dönüyor içerik oto ingilizce oluyor ama urller hepsi aynı.
tekrar misal /lang/tr tıklayınca anasayfaya dönüyor ve içerikte haliyle tr dili oluyor.
Benim istediğim ise böyle linki tıklayınca sadece temanın butonların menülerin dilinin değişmesi değil buna ek olarak
dil değiştir linkini tıklayınca url de değişmesi. orjinal dilde tr gibi ifade url olmayacak ama en geçince
url de en ibaresi eklenecek.
Yine ayrıca örneğin kullanıcının birisi sonbahar manzarası başlıklı, giresun'da sonbahar manzarası açıklamalı, sonbahar, manzara etiket girişi yapılmış bir fotoğraf ekledi. bunun için de resim onay/düzenleme bölümü var yönetimde hem Türkçe başlık açıklama alanı gibi alan olacak. Hem de İngilizce için. Varsa ücretsiz çeviri api oraya entegre olacak editör isterse manuel o bahsettiğim alanda düzenleme yapabilecek.
https://developers.google.com/search/docs/advanced/crawling/managing-multi-regional-sites?hl=tr#farkl%C4%B1-dil-s%C3%BCr%C3%BCmleri-i%C3%A7in-farkl%C4%B1-urller-kullan%C4%B1n
google burada da bunu öneriyor yani farklı dil ise url de değişim olsun diyor. (bizdeki sanırım çerezler veya tarayıcı ayarları değişimi yapmakta)
https://github.com/mcamara/laravel-localization böyle eklentiler vb gördüm ama bunu uygulamak usta işi. O yüzden buraya geldim.
- Konu ise fotoğrafların url yapısı şu şekilde: .../cache/614626de/av656cb4f7f265987981f.jpeg biz se fotoğrafların url yapısını tıpkı başlıktaki gibi site url sinde gözüken ..../resim/694/sonbahar-manzarasi ise fotografin urlsini de /resim/sonbahar-manzarasi-694.jpeg şeklinde olmasını rica ediyorum. Aslında fotoğrafın orjinalini indiri tıklayınca sonbahar-manzarasi-jpeg diye indiriyor. sadece id no yok.
[PHP]INSERT INTO images
(id
, user_id
, image_name
, title
, slug
, image_description
, category_id
, tags
, type
, views
, downloads
, allow_download
, is_*****
, approved_at
, featured_at
, created_at
, updated_at
, deleted_at
) VALUES(694, 1, 'yDsuFWfjG', 'Sonbahar Manzarası', 'sonbahar-manzarasi', 'Sonbahar Manzarası, Resim Karl Egger tarafından çekildi.', 2, 'sonbahar,sonbahar manzarası,autumn,doğa,nature,sonbahar renkleri,kulübe,orman,forest,manzara fotoğrafları,landscape,ağaçlar,trees', 'jpeg', 48, 0, 1, 0, '2020-12-30 17:47:38', NULL, '2020-12-30 17:46:28', '2020-12-30 17:47:38', NULL),[/PHP]
Veritabanı örneği de bu şekilde fotoğrafların. oradaki slug yani "sonbahar-manzarasi " şeklinde kaydediyor ayrıca id numarası da kaydediliyor haliyle. Buradan da faydanılabilir. Db de resim urlsine yönelik birşey göremedim. Fotoğraf yükleme ve sayfa çağırmada 640w 960w 1140w 1429w 1640w 1920w boyutlarında yüklüyor. orjinal fotoyu ayrı bir klasörde tutuyor hepsine fligran (watermark) ekliyor ilgili cache klasörlerine atıyor. cache klasörleri tüm boyutlarda aynı klasörde /cache/614626de/avb7748e5d6bbd84f381f.jpeg 640w/cache/614626de/avc024fce16d77fb4e81f.jpeg 1920w gibi.
Özetle sitenin çalışmasını bozmadan (cache sistemi kapatılabililir, site normal sayfalar için apcu kullanmakta) yalnızca kullanıcı fotoğraf yükleyince cache url yapısı değilde tıpkı sayfa urlsi, başlığı gibi /resim/sonbahar-manzarasi-694.jpeg olmasını istiyorum. Tabi 1. maddede yazan çeviri özelliğine ek olarak /en/photos/autumn-landscape-694.jpeg gibi de olacak.
- Konu ise laravel 5.1 LTS kullanıyoruz. Ancak eskidi biliyorsunuz. Kayıpsız, işlevselliği bozmadan (tabiki eskimiş eklentiler yerine başkaları kullanılabilir vb) önce 5.5LTS ye ardından 6LTS sürümüne güncelleme işlemi olacak.
Yukarıdaki sıralama size hangisi en uygun ise önceliğe o alınabilir.
Laravel ustası arkadaşların tekliflerini bekliyorum. Ne kadar sürebileceği, ne kadar tutacağı gibi. Denemeleri geliştirmeleri önce localde denemek için yazılımın salt halini vereceğim orada sağlıklı şekilde çalıştıktan sonra siteye alacağız. Şimdiden teşekkür ederim. Herkese iyi çalışmalar dilerim.