diff --git a/README.md b/README.md
index a2f6fba..d87e15c 100644
--- a/README.md
+++ b/README.md
@@ -83,6 +83,17 @@ sudo ./scripts/download-content.sh
**7. Use it.** Join the Wi-Fi network you created and open **http://box.lan/home**.
+### Turkish survival guide
+
+Most of the medical and survival content on the box is in English, and Kiwix has no Turkish medical or survival ZIM. So the homepage ships a small Turkish guide at **http://box.lan/home/rehber/** (about 110 KB, no download needed):
+
+- first aid, water and food, shelter/heating/fire, other disasters (flood, tsunami, wildfire, chemical, etc.), hygiene and psychological first aid, navigation and signalling,
+- a Turkish-English glossary of 350+ terms. The homepage search uses it: pick an English book, type in Turkish ("yanık"), and it searches in English ("burn"),
+- "read more" links that open the matching article in the Turkish Wikipedia or the English books on the box,
+- a short how-to for setting up offline translation on Android and iPhone in advance.
+
+The text is written from scratch (no copied text) based on public guidance from ERC 2021, IFRC 2020, WHO, Sphere, AFAD, CDC, EPA, FEMA and USDA, with the source under each section. **It has not yet been reviewed by a health professional**; each page says so.
+
### Optional: internet over a USB Wi-Fi adapter
The Pi's built-in Wi-Fi is dedicated to the hotspot. If the Pi needs internet temporarily (updates, new content) and there is no Ethernet cable, add a cheap USB Wi-Fi adapter as a second card. Adapters with the MediaTek MT7601U chip work out of the box.
@@ -122,6 +133,7 @@ config/iiab-overrides.yml Internet-in-a-Box settings
config/content.conf list of content to download
www/home/index.html homepage
www/home/acil.html emergency page (Turkish, sourced from AFAD and EPA)
+www/home/rehber/ Turkish survival guide and Turkish-English glossary
```
### Troubleshooting
@@ -221,6 +233,17 @@ sudo ./scripts/download-content.sh
**7. Kullan.** Oluşturduğun Wi-Fi ağına bağlan ve **http://box.lan/home** adresini aç.
+### Türkçe hayatta kalma rehberi
+
+Kutudaki tıp ve hayatta kalma içeriğinin çoğu İngilizce ve Kiwix'te Türkçe tıp ya da hayatta kalma ZIM'i yok. Bu yüzden ana sayfayla birlikte **http://box.lan/home/rehber/** adresinde küçük bir Türkçe rehber gelir (yaklaşık 110 KB, ayrıca indirme gerekmez):
+
+- ilk yardım, su ve gıda, barınma/ısınma/yangın, diğer afetler (sel, tsunami, orman yangını, kimyasal sızıntı vb.), hijyen ve psikolojik ilk yardım, yön bulma ve işaretleşme,
+- 350'den fazla terimlik Türkçe-İngilizce sözlük. Ana sayfadaki arama bunu kullanır: İngilizce bir kitap seçip Türkçe yazarsan ("yanık") İngilizcesiyle ("burn") arar,
+- ilgili konuyu kutudaki Türkçe Vikipedi'de ya da İngilizce kitaplarda açan "daha fazla oku" bağlantıları,
+- Android ve iPhone'da çevrimdışı çevirinin önceden nasıl kurulacağını anlatan kısa bir bölüm.
+
+Metinler hiçbir yerden kopyalanmadan; ERC 2021, IFRC 2020, DSÖ, Sphere, AFAD, CDC, EPA, FEMA ve USDA'nın herkese açık önerilerine dayanarak özgün olarak yazıldı, her bölümün altında kaynağı var. **Henüz bir sağlık profesyoneli tarafından kontrol edilmedi**; her sayfada bu yazıyor.
+
### İsteğe bağlı: USB Wi-Fi adaptörüyle internet
Pi'nin dahili Wi-Fi kartı sadece hotspot için kullanılıyor. Pi'nin geçici olarak internete çıkması gerekirse (güncelleme, yeni içerik) ve Ethernet kablosu yoksa ikinci kart olarak ucuz bir USB Wi-Fi adaptörü tak. MediaTek MT7601U yongalı adaptörler kurulumsuz çalışıyor.
@@ -260,6 +283,7 @@ config/iiab-overrides.yml Internet-in-a-Box ayarları
config/content.conf indirilecek içerik listesi
www/home/index.html ana sayfa
www/home/acil.html acil durum sayfası (AFAD ve EPA kaynaklı)
+www/home/rehber/ Türkçe hayatta kalma rehberi ve Türkçe-İngilizce sözlük
```
### Sorun giderme
diff --git a/scripts/install-homepage.sh b/scripts/install-homepage.sh
index 3fbb2e9..5c316c1 100755
--- a/scripts/install-homepage.sh
+++ b/scripts/install-homepage.sh
@@ -13,5 +13,9 @@ if [ -f "$DST/index.html" ] && [ ! -f "$DST/index.html.iiab-original" ]; then
cp "$DST/index.html" "$DST/index.html.iiab-original"
fi
cp "$SRC/index.html" "$SRC/acil.html" "$DST/"
+# Türkçe hayatta kalma rehberi / Turkish survival guide
+mkdir -p "$DST/rehber"
+cp "$SRC"/rehber/* "$DST/rehber/"
echo "Ana sayfa kuruldu / homepage installed: http://box.lan/home"
+echo "Türkçe rehber / Turkish guide: http://box.lan/home/rehber/"
echo "Geri almak için / to restore: sudo cp $DST/index.html.iiab-original $DST/index.html"
diff --git a/www/home/acil.html b/www/home/acil.html
index 414bf67..eddda59 100644
--- a/www/home/acil.html
+++ b/www/home/acil.html
@@ -118,8 +118,8 @@
Daha fazlası
-
İlk yardım, su arıtma ve barınma için ayrıntılı kaynaklar ana sayfadaki
- “Sağlık ve İlk Yardım” ve “Hayatta Kalma ve Hazırlık” bölümlerinde. Bu sayfa resmi kaynakların özetidir; sağlık ekiplerinin ve yetkililerin
+
İlk yardım, su arıtma, barınma ve diğer afetler için Türkçe ayrıntılı bilgi Türkçe Hayatta Kalma Rehberi'nde.
+ İngilizce kaynaklar ana sayfadaki “Sağlık ve İlk Yardım” ve “Hayatta Kalma ve Hazırlık” bölümlerinde. Bu sayfa resmi kaynakların özetidir; sağlık ekiplerinin ve yetkililerin
talimatları her zaman önceliklidir.
@@ -148,6 +155,15 @@
url: zim olmayan servisler için sabit adres.
Cihazda bulunamayan ZIM'ler gri klasörle "henüz yüklenmedi" görünür. */
const CATS = [
+ { title:"Türkçe Hayatta Kalma Rehberi", items:[
+ { name:"İlk Yardım", desc:"Kalp masajı, kanama ve turnike, ezilme sendromu, kırık, yanık, donma, zehirlenme.", lang:"TR", size:"—", url:"/home/rehber/ilk-yardim.html" },
+ { name:"Su ve Gıda", desc:"Su bulma ve arıtma, elektrik kesintisinde yiyecekler, bebek beslenmesi.", lang:"TR", size:"—", url:"/home/rehber/su-ve-gida.html" },
+ { name:"Barınma, Isınma ve Yangın", desc:"Çadır, sıcak kalmak, karbonmonoksit, ateş yakma ve yangın söndürme.", lang:"TR", size:"—", url:"/home/rehber/barinma.html" },
+ { name:"Afetler", desc:"Sel, tsunami, orman yangını, heyelan, fırtına, kar, kimyasal sızıntı, tahliye.", lang:"TR", size:"—", url:"/home/rehber/afetler.html" },
+ { name:"Hijyen, Salgın ve Moral", desc:"Acil tuvalet, el yıkama, salgın belirtileri, psikolojik ilk yardım, çocuklar.", lang:"TR", size:"—", url:"/home/rehber/hijyen.html" },
+ { name:"Yön Bulma ve İşaretleşme", desc:"Yardım işaretleri, pusulasız yön bulma, radyo, telsiz ve telefon.", lang:"TR", size:"—", url:"/home/rehber/yon-ve-isaret.html" },
+ { name:"Türkçe-İngilizce Sözlük", desc:"İngilizce kitaplarda aramak için tıp ve hayatta kalma terimleri.", lang:"TR", size:"—", url:"/home/rehber/sozluk.html" },
+ ]},
{ title:"Ansiklopedi", items:[
{ name:"Vikipedi (Türkçe)", desc:"Türkçe Vikipedi'nin resimli tam kopyası.", lang:"TR", size:"~9 GB", zim:"wikipedia_tr_all_maxi", search:true },
{ name:"Wikipedia (English)", desc:"Tüm İngilizce Wikipedia, resimleriyle birlikte.", lang:"EN", size:"~120 GB", zim:"wikipedia_en_all_maxi", search:true },
@@ -232,13 +248,18 @@
url = b.href;
const v = b.id.match(/(\d{4})-(\d{2})[a-z]?$/);
status = v ? `${v[2]}/${v[1]} sürümü` : "Kurulu";
- if (i.search) sel.add(new Option(i.name, b.id));
+ if (i.search) {
+ const o = new Option(i.name + (i.lang === "EN" ? " (İngilizce)" : ""), b.id);
+ o.dataset.lang = i.lang;
+ sel.add(o);
+ }
}
}
}
if (url) ready++;
const icon = !url ? "fold gray" : "fold";
- const name = url ? `${esc(i.name)}` : `${esc(i.name)}`;
+ const en = i.lang === "EN" ? `İNGİLİZCE` : "";
+ const name = (url ? `${esc(i.name)}` : `${esc(i.name)}`) + en;
html += `
${name}
${esc(i.desc)}
@@ -264,8 +285,40 @@
if (!sel.options.length) sel.add(new Option("Tüm kütüphane", ""));
document.getElementById("stats").innerHTML =
`Toplam ${total} kaynak var, bunlardan ${ready} tanesi kullanıma hazır.
- Bu sayfa internet bağlantısı olmadan çalışır.`;
+ Bu sayfa internet bağlantısı olmadan çalışır. İngilizce kaynakları okumak için:
+ Türkçe Rehber » İngilizce kaynakları nasıl okurum?`;
+ ipucu();
+}
+
+/* Türkçe → İngilizce arama köprüsü. İngilizce bir kitap seçiliyken Türkçe yazılan arama,
+ /home/rehber/sozluk.js sözlüğüyle İngilizceye çevrilip öyle aranır.
+ Turkish → English search bridge: a Turkish query in an English book is searched in English. */
+let secilen = null; // kullanıcının seçtiği eş anlamlı karşılık / alternative the user picked
+function ceviri(){
+ const sel = document.getElementById("book");
+ const o = sel.options[sel.selectedIndex];
+ const q = document.getElementById("q").value.trim();
+ if (!o || o.dataset.lang !== "EN" || !q || typeof window.sozlukCevir !== "function") return null;
+ return window.sozlukCevir(q);
+}
+function ipucu(){
+ const box = document.getElementById("ceviri");
+ const c = ceviri();
+ if (!c || !c.en) { box.textContent = ""; secilen = null; return; }
+ if (!c.alts.includes(secilen)) secilen = null;
+ const en = secilen || c.en;
+ let h = `Bu kitap İngilizce. “${esc(en)}” olarak aranacak.`;
+ const diger = c.alts.filter(a => a !== en);
+ if (diger.length) h += " Başka anlam: " + diger.map(a => `${esc(a)}`).join(", ");
+ if (c.kalan && c.kalan.length) h += ` (çevrilemeyen: ${esc(c.kalan.join(" "))})`;
+ box.innerHTML = h;
}
+document.getElementById("ceviri").addEventListener("click", e => {
+ const a = e.target.closest("a[data-alt]");
+ if (a) { secilen = a.dataset.alt; ipucu(); }
+});
+document.getElementById("q").addEventListener("input", () => { secilen = null; ipucu(); });
+document.getElementById("book").addEventListener("change", ipucu);
/* Saat, telefonun değil Pi'nin saatidir: HTTP yanıtının Date başlığından okunur. */
fetch(location.href, {method:"HEAD", cache:"no-store"}).then(r => {
@@ -277,9 +330,11 @@
document.getElementById("search").addEventListener("submit", e => {
e.preventDefault();
- const q = document.getElementById("q").value.trim();
+ let q = document.getElementById("q").value.trim();
const book = document.getElementById("book").value;
if (!q) return;
+ const c = ceviri();
+ if (c && c.en) q = secilen || c.en;
location.href = book
? `/kiwix/search?books.name=${encodeURIComponent(book)}&pattern=${encodeURIComponent(q)}`
: `/kiwix/search?pattern=${encodeURIComponent(q)}`;
@@ -294,5 +349,6 @@
loadBooks().then(render);
+