Merhaba, yorumunuz için sağ olun.
Bu çözümün beğenmediğim yanlarından biri, sayfa yüklenirken kısa süreliğine iki dildeki elementlerin de görülmesi. Sayfa yüklendikten sonra JavaScript'in devreye girmesi gerekiyor ki tercih edilmeyen dildeki elementler gizlenebilsin. Bunun üstesinden gelmek için mesela bir dildeki elementlerin tümüne HTML'de
hidden sınıfını da eklemeyi düşündüm ama pek sıcak bakmadım. Aslında şu ankinden daha güzel bir sonuç verir gibi geliyor ama o tercih sizin olsun. (Alternatif çözüm olarak bunu da sona ekledim.)
Her ne kadar ben de sizin gibi kullanışlı olduğunu düşünsem de söz konusu sayfa dili olunca daha oturaklı çözümler kesin mevcuttur, ben araştırmadığım için bilmiyorum, yalnızca
i18n kavramından söz edebilirim. Size önerim, bu çözüme pek bel bağlamamanız. Günü kurtarabilir ama proje büyüdükçe ne kadar sağlıklı kalır bilmiyorum. Fikir olsun diye sundum.
Navigasyon desteği için birtakım düzenlemeler yaptım (Umarım destekliyordur şimdi, test etmedim.), bir de kodu genel olarak biraz düzenlemeye çalıştım. Tercih edilen dilin hatırlanması adına
localStorage'ı kullandım, "tarayıcı hafızası" olarak düşünebilirsiniz bunu. Site içinde başka sayfaya geçseniz de oraya kaydettiğiniz bilgiler korunuyor. Umarım işinize yarar:
İlk paragrafta bahsettiğim alternatif çözüm, İngilizce elementlere tek tek
hidden sınıfını ekledim: