v2: озвучка фраз + расширенные примеры документов + разделы магазин и госпиталь
This commit is contained in:
parent
bea3c3d2db
commit
efd9d2aec2
300
index.html
300
index.html
@ -11,6 +11,14 @@
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🛂</text></svg>">
|
||||
<style>
|
||||
a.kt-ai-btn { text-decoration: none; }
|
||||
.speak-btn { background: none; border: none; cursor: pointer; font-size: 1.1em; padding: 2px 6px;
|
||||
border-radius: var(--kt-ai-radius-md); transition: background .2s; vertical-align: middle; }
|
||||
.speak-btn:hover { background: var(--kt-ai-bg-soft); }
|
||||
.speak-btn:active { transform: scale(0.9); }
|
||||
.speak-all-btn { display: inline-flex; align-items: center; gap: 6px; background: none; border: 1px solid var(--kt-ai-border);
|
||||
border-radius: var(--kt-ai-radius-md); padding: 6px 14px; cursor: pointer; font-size: var(--kt-ai-text-sm);
|
||||
color: var(--kt-ai-fg); margin-bottom: var(--kt-ai-space-4); transition: border-color .2s; }
|
||||
.speak-all-btn:hover { border-color: var(--kt-ai-primary); }
|
||||
.phrase-block { margin-bottom: var(--kt-ai-space-6); }
|
||||
.phrase-block h3 { margin-bottom: var(--kt-ai-space-4); color: var(--kt-ai-primary); }
|
||||
.phrase-table { width: 100%; border-collapse: collapse; margin-top: var(--kt-ai-space-3); }
|
||||
@ -153,6 +161,53 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="phrase-block" data-topic="shop">
|
||||
<h3 class="topic-toggle" onclick="toggleTopic(this)">🛒 В магазине (At the Shop)</h3>
|
||||
<div class="topic-content">
|
||||
<table class="phrase-table">
|
||||
<tr><th>Русский</th><th>English</th></tr>
|
||||
<tr><td>Сколько это стоит?</td><td>How much does this cost?</td></tr>
|
||||
<tr><td>Где касса?</td><td>Where is the checkout?</td></tr>
|
||||
<tr><td>Можно картой?</td><td>Can I pay by card?</td></tr>
|
||||
<tr><td>Только наличные?</td><td>Cash only?</td></tr>
|
||||
<tr><td>Где я могу найти...?</td><td>Where can I find...?</td></tr>
|
||||
<tr><td>Есть ли у вас...?</td><td>Do you have...?</td></tr>
|
||||
<tr><td>Мне нужен чек</td><td>I need a receipt</td></tr>
|
||||
<tr><td>Можно скидку?</td><td>Is there a discount?</td></tr>
|
||||
<tr><td>Я просто смотрю, спасибо</td><td>I'm just looking, thank you</td></tr>
|
||||
<tr><td>Где примерочная?</td><td>Where is the fitting room?</td></tr>
|
||||
<tr><td>У вас есть другой размер?</td><td>Do you have a different size?</td></tr>
|
||||
<tr><td>Можно вернуть товар?</td><td>Can I return this item?</td></tr>
|
||||
<tr><td>Есть ли гарантия?</td><td>Is there a warranty?</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="phrase-block" data-topic="hospital">
|
||||
<h3 class="topic-toggle" onclick="toggleTopic(this)">🏥 В госпитале / больнице (At the Hospital)</h3>
|
||||
<div class="topic-content">
|
||||
<table class="phrase-table">
|
||||
<tr><th>Русский</th><th>English</th></tr>
|
||||
<tr><td>Мне нужен врач</td><td>I need to see a doctor</td></tr>
|
||||
<tr><td>У меня болит голова</td><td>I have a headache</td></tr>
|
||||
<tr><td>У меня болит живот</td><td>I have a stomachache</td></tr>
|
||||
<tr><td>У меня температура</td><td>I have a fever</td></tr>
|
||||
<tr><td>У меня болит горло</td><td>I have a sore throat</td></tr>
|
||||
<tr><td>У меня кашель</td><td>I have a cough</td></tr>
|
||||
<tr><td>У меня аллергия на...</td><td>I am allergic to...</td></tr>
|
||||
<tr><td>Где приёмный покой?</td><td>Where is the emergency room?</td></tr>
|
||||
<tr><td>Где аптека?</td><td>Where is the pharmacy?</td></tr>
|
||||
<tr><td>Мне нужны лекарства от...</td><td>I need medicine for...</td></tr>
|
||||
<tr><td>Как часто принимать?</td><td>How often should I take it?</td></tr>
|
||||
<tr><td>У меня есть медицинская страховка</td><td>I have medical insurance</td></tr>
|
||||
<tr><td>У меня нет страховки</td><td>I don't have insurance</td></tr>
|
||||
<tr><td>Вы можете вызвать скорую?</td><td>Can you call an ambulance?</td></tr>
|
||||
<tr><td>Мне не становится лучше</td><td>I am not getting better</td></tr>
|
||||
<tr><td>Где мой палатный?</td><td>Where is my ward?</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="phrase-block" data-topic="documents">
|
||||
<h3 class="topic-toggle" onclick="toggleTopic(this)">📋 Заполнение документов (Filling in Forms)</h3>
|
||||
<div class="topic-content">
|
||||
@ -225,58 +280,169 @@
|
||||
<section id="documents" class="kt-ai-section" data-divider="true">
|
||||
<div class="kt-ai-wrap">
|
||||
<div class="kt-ai-section-head">
|
||||
<h2>Заполнение документов на английском</h2>
|
||||
<p>Какие поля встречаются в анкетах и как их заполнять правильно</p>
|
||||
<h2>Заполнение документов: примеры</h2>
|
||||
<p>Реальные примеры того, как заполнять основные документы при пересечении границы</p>
|
||||
</div>
|
||||
<div class="doc-grid">
|
||||
<div class="doc-card">
|
||||
<h4>🛂 Arrival / Departure Card</h4>
|
||||
<p><strong>Surname</strong> — Фамилия<br>
|
||||
<strong>First name</strong> — Имя<br>
|
||||
<strong>Date of birth</strong> — Дата рождения (ДД.ММ.ГГГГ)<br>
|
||||
<strong>Nationality</strong> — Гражданство (Kazakhstan / Russia)<br>
|
||||
<strong>Passport number</strong> — Номер паспорта<br>
|
||||
<strong>Purpose of visit</strong> — Цель визита (Tourism / Business / Transit)<br>
|
||||
<strong>Length of stay</strong> — Срок пребывания<br>
|
||||
<strong>Address in country</strong> — Адрес проживания в стране</p>
|
||||
<div class="ru">Заполняется ПРОПИСНЫМИ латинскими буквами, как в паспорте</div>
|
||||
|
||||
<div class="tip-card">
|
||||
<h4>🛂 Пример 1: Arrival / Departure Card (Карта прибытия / убытия)</h4>
|
||||
<p>Эту карту выдают в самолёте или на стойке при прибытии. Заполняется ПРОПИСНЫМИ латинскими буквами.</p>
|
||||
<div class="doc-grid" style="margin-top:var(--kt-ai-space-4)">
|
||||
<div class="doc-card">
|
||||
<h4>Пустая форма — поля</h4>
|
||||
<p><strong>Surname:</strong> _______________<br>
|
||||
<strong>First Name:</strong> _______________<br>
|
||||
<strong>Date of Birth:</strong> __ / __ / ____<br>
|
||||
<strong>Nationality:</strong> _______________<br>
|
||||
<strong>Passport No.:</strong> _______________<br>
|
||||
<strong>Purpose of Visit:</strong> ☐ Tourism ☐ Business ☐ Transit<br>
|
||||
<strong>Length of Stay:</strong> _______________<br>
|
||||
<strong>Address in Country:</strong> _______________<br>
|
||||
<strong>Signature:</strong> _______________</p>
|
||||
</div>
|
||||
<div class="doc-card">
|
||||
<h4>Заполненный пример (из Казахстана)</h4>
|
||||
<p><strong>Surname:</strong> NURGANOV<br>
|
||||
<strong>First Name:</strong> AIDAR<br>
|
||||
<strong>Date of Birth:</strong> 15 / 03 / 1990<br>
|
||||
<strong>Nationality:</strong> KAZAKHSTAN<br>
|
||||
<strong>Passport No.:</strong> N12345678<br>
|
||||
<strong>Purpose of Visit:</strong> ☑ Tourism ☐ Business ☐ Transit<br>
|
||||
<strong>Length of Stay:</strong> 14 DAYS<br>
|
||||
<strong>Address in Country:</strong> HILTON HOTEL, 45 QUEEN STREET, LONDON<br>
|
||||
<strong>Signature:</strong> <em>(подпись)</em></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="doc-card">
|
||||
<h4>📋 Customs Declaration</h4>
|
||||
<p><strong>Goods to declare</strong> — Товары для декларирования<br>
|
||||
<strong>Total value of goods</strong> — Общая стоимость товаров<br>
|
||||
<strong>Currency</strong> — Валюта<br>
|
||||
<strong>Amount of cash</strong> — Сумма наличных<br>
|
||||
<strong>Food items</strong> — Продукты питания<br>
|
||||
<strong>Alcohol / Tobacco</strong> — Алкоголь / Табак<br>
|
||||
<strong>Medication</strong> — Лекарства<br>
|
||||
<strong>Commercial samples</strong> — Коммерческие образцы</p>
|
||||
<div class="ru">Если не уверены — лучше указать «Yes» и ответить на вопросы</div>
|
||||
</div>
|
||||
<div class="doc-card">
|
||||
<h4>🏠 Hotel Registration</h4>
|
||||
<p><strong>Full name</strong> — Полное имя<br>
|
||||
<strong>Passport number</strong> — Номер паспорта<br>
|
||||
<strong>Date of birth</strong> — Дата рождения<br>
|
||||
<strong>Nationality</strong> — Гражданство<br>
|
||||
<strong>Check-in date</strong> — Дата заезда<br>
|
||||
<strong>Check-out date</strong> — Дата выезда<br>
|
||||
<strong>Signature</strong> — Подпись</p>
|
||||
<div class="ru">Паспорт при заселении — обязателен</div>
|
||||
</div>
|
||||
<div class="doc-card">
|
||||
<h4>✈️ Boarding Pass</h4>
|
||||
<p><strong>Passenger name</strong> — Имя пассажира<br>
|
||||
<strong>Flight number</strong> — Номер рейса<br>
|
||||
<strong>From</strong> — Откуда<br>
|
||||
<strong>To</strong> — Куда<br>
|
||||
<strong>Date</strong> — Дата<br>
|
||||
<strong>Gate</strong> — Выход на посадку<br>
|
||||
<strong>Seat</strong> — Место<br>
|
||||
<strong>Boarding time</strong> — Время посадки</p>
|
||||
<div class="ru">Имя на билете должно совпадать с паспортом</div>
|
||||
<div class="ru" style="margin-top:var(--kt-ai-space-3)">Важно: имя и фамилия пишутся ТАК ЖЕ, как в паспорте — заглавными буквами</div>
|
||||
</div>
|
||||
|
||||
<div class="tip-card">
|
||||
<h4>📋 Пример 2: Customs Declaration (Таможенная декларация)</h4>
|
||||
<p>Заполняется, если вы перевозите товары сверх нормы, наличные сверх лимита илиrestricted items.</p>
|
||||
<div class="doc-grid" style="margin-top:var(--kt-ai-space-4)">
|
||||
<div class="doc-card">
|
||||
<h4>Основные вопросы</h4>
|
||||
<p><strong>Do you have goods to declare?</strong><br>
|
||||
☐ Yes ☐ No<br><br>
|
||||
<strong>Total value of goods:</strong> ___________<br>
|
||||
<strong>Currency:</strong> ___________<br>
|
||||
<strong>Amount of cash (over $10,000):</strong> $___________<br><br>
|
||||
<strong>Are you carrying:</strong><br>
|
||||
☐ Alcohol (over limit) ☐ Tobacco (over limit)<br>
|
||||
☐ Food / Plants ☐ Medication (prescription)<br>
|
||||
☐ Commercial samples ☐ Weapons / Firearms</p>
|
||||
</div>
|
||||
<div class="doc-card">
|
||||
<h4>Заполненный пример</h4>
|
||||
<p><strong>Do you have goods to declare?</strong><br>
|
||||
☑ Yes ☐ No<br><br>
|
||||
<strong>Total value of goods:</strong> $500<br>
|
||||
<strong>Currency:</strong> USD<br>
|
||||
<strong>Amount of cash:</strong> $2,000<br><br>
|
||||
<strong>Are you carrying:</strong><br>
|
||||
☐ Alcohol ☑ Tobacco (2 cartons)<br>
|
||||
☐ Food ☑ Medication (prescription: Ibuprofen)<br>
|
||||
☐ Commercial samples ☐ Weapons</p>
|
||||
<div class="ru">Если что-то есть — честно указывайте. Скрытые товары могут привести к штрафу</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tip-card">
|
||||
<h4>🏠 Пример 3: Hotel Registration (Регистрация в отеле)</h4>
|
||||
<p>При заселении вас попросят заполнить регистрационную карточку.</p>
|
||||
<div class="doc-grid" style="margin-top:var(--kt-ai-space-4)">
|
||||
<div class="doc-card">
|
||||
<h4>Поля карточки</h4>
|
||||
<p><strong>Full Name:</strong> _______________<br>
|
||||
<strong>Date of Birth:</strong> __ / __ / ____<br>
|
||||
<strong>Nationality:</strong> _______________<br>
|
||||
<strong>Passport No.:</strong> _______________<br>
|
||||
<strong>Check-in Date:</strong> __ / __ / ____<br>
|
||||
<strong>Check-out Date:</strong> __ / __ / ____<br>
|
||||
<strong>Address (home):</strong> _______________<br>
|
||||
<strong>Signature:</strong> _______________</p>
|
||||
</div>
|
||||
<div class="doc-card">
|
||||
<h4>Заполненный пример</h4>
|
||||
<p><strong>Full Name:</strong> NURGANOV AIDAR<br>
|
||||
<strong>Date of Birth:</strong> 15 / 03 / 1990<br>
|
||||
<strong>Nationality:</strong> KAZAKHSTAN<br>
|
||||
<strong>Passport No.:</strong> N12345678<br>
|
||||
<strong>Check-in Date:</strong> 01 / 07 / 2026<br>
|
||||
<strong>Check-out Date:</strong> 15 / 07 / 2026<br>
|
||||
<strong>Address (home):</strong> 12 ZHULDYZ ST, ALMATY, KAZAKHSTAN<br>
|
||||
<strong>Signature:</strong> <em>(подпись)</em></p>
|
||||
<div class="ru">Адрес дома — это адрес, где вы зарегистрированы в Казахстане/России</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tip-card">
|
||||
<h4>✈️ Пример 4: Registration at Airport (Регистрация в аэропорту)</h4>
|
||||
<p>При регистрации на рейс вам могут задать вопросы. Вот как ответить:</p>
|
||||
<div class="doc-grid" style="margin-top:var(--kt-ai-space-4)">
|
||||
<div class="doc-card">
|
||||
<h4>Вопросы на стойке регистрации</h4>
|
||||
<p><strong>Agent:</strong> "Passport and booking confirmation, please."<br>
|
||||
<strong>Вы:</strong> "Here you go."<br><br>
|
||||
<strong>Agent:</strong> "Window or aisle?"<br>
|
||||
<strong>Вы:</strong> "Window, please." <em>(у окна)</em><br>
|
||||
"Aisle, please." <em>(у прохода)</em><br><br>
|
||||
<strong>Agent:</strong> "How many bags are you checking in?"<br>
|
||||
<strong>Вы:</strong> "One bag." / "Two bags."<br><br>
|
||||
<strong>Agent:</strong> "Do you have any luggage to check in?"<br>
|
||||
<strong>Вы:</strong> "Yes, one suitcase." / "No, just carry-on."</p>
|
||||
</div>
|
||||
<div class="doc-card">
|
||||
<h4>Полезные варианты ответов</h4>
|
||||
<p><strong>Место:</strong><br>
|
||||
Window seat — у окна<br>
|
||||
Aisle seat — у прохода<br>
|
||||
Middle seat — среднее<br><br>
|
||||
<strong>Багаж:</strong><br>
|
||||
Carry-on bag — ручная кладь<br>
|
||||
Checked bag — зарегистрированный багаж<br>
|
||||
Hand luggage — ручная кладь<br><br>
|
||||
<strong>Вес:</strong><br>
|
||||
"Is my bag overweight?" — мой багаж перегружен?<br>
|
||||
"How much is the excess fee?" — сколько стоит доплата за вес?</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tip-card">
|
||||
<h4>🛃 Пример 5: Passport Control Questions (Вопросы на погранконтроле)</h4>
|
||||
<p>Офицер погранконтроля может задать несколько вопросов. Отвечайте кратко и уверенно.</p>
|
||||
<div class="doc-grid" style="margin-top:var(--kt-ai-space-4)">
|
||||
<div class="doc-card">
|
||||
<h4>Типичные вопросы и ответы</h4>
|
||||
<p><strong>Q: "Purpose of your visit?"</strong><br>
|
||||
A: "Tourism." / "I'm on vacation." / "Business trip."<br><br>
|
||||
<strong>Q: "How long will you stay?"</strong><br>
|
||||
A: "Two weeks." / "Ten days." / "Until July 15th."<br><br>
|
||||
<strong>Q: "Where are you staying?"</strong><br>
|
||||
A: "At the Hilton Hotel, 45 Queen Street." / "At my friend's house."<br><br>
|
||||
<strong>Q: "Do you have a return ticket?"</strong><br>
|
||||
A: "Yes, here it is." / "Yes, I'm flying back on July 15th."<br><br>
|
||||
<strong>Q: "How much money are you carrying?"</strong><br>
|
||||
A: "About two thousand dollars." / "I have a credit card."</p>
|
||||
</div>
|
||||
<div class="doc-card">
|
||||
<h4>Советы</h4>
|
||||
<p>✅ Отвечайте <strong>кратко и по делу</strong> — не нужно рассказывать всю историю<br><br>
|
||||
✂️ <strong>Не отвечайте односложным «да/нет»</strong> — добавьте деталь: "Yes, I have a return ticket."<br><br>
|
||||
🎯 <strong>Будьте готовы назвать:</strong><br>
|
||||
— Цель визита (tourism / business / visiting friends)<br>
|
||||
— Срок (days / weeks / specific date)<br>
|
||||
— Адрес проживания (hotel + адрес)<br>
|
||||
— Дата обратного билета<br><br>
|
||||
❌ <strong>Не шутите</strong> с офицером — даже если вы нервничаете<br><br>
|
||||
📄 <strong>Держите наготове:</strong> паспорт, обратный билет, бронь отеля</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@ -311,6 +477,44 @@ function toggleTopic(el) {
|
||||
content.classList.toggle("show");
|
||||
}
|
||||
|
||||
function speak(text) {
|
||||
if (!window.speechSynthesis) { alert("Ваш браузер не поддерживает озвучку текста."); return; }
|
||||
window.speechSynthesis.cancel();
|
||||
var u = new SpeechSynthesisUtterance(text);
|
||||
u.lang = "en-US";
|
||||
u.rate = 0.85;
|
||||
u.pitch = 1;
|
||||
var voices = window.speechSynthesis.getVoices();
|
||||
for (var i = 0; i < voices.length; i++) {
|
||||
if (voices[i].lang === "en-US") { u.voice = voices[i]; break; }
|
||||
}
|
||||
window.speechSynthesis.speak(u);
|
||||
}
|
||||
|
||||
document.querySelectorAll(".phrase-table").forEach(function(table) {
|
||||
var headerRow = table.querySelector("tr");
|
||||
if (headerRow) {
|
||||
var th = document.createElement("th");
|
||||
th.textContent = "🔊";
|
||||
th.style.width = "50px";
|
||||
headerRow.appendChild(th);
|
||||
}
|
||||
var rows = table.querySelectorAll("tr");
|
||||
for (var i = 1; i < rows.length; i++) {
|
||||
var enText = rows[i].cells[1] ? rows[i].cells[1].textContent : "";
|
||||
var td = document.createElement("td");
|
||||
td.style.width = "50px";
|
||||
var btn = document.createElement("button");
|
||||
btn.className = "speak-btn";
|
||||
btn.textContent = "🔊";
|
||||
btn.title = "Прослушать";
|
||||
btn.setAttribute("data-text", enText);
|
||||
btn.onclick = function() { speak(this.getAttribute("data-text")); };
|
||||
td.appendChild(btn);
|
||||
rows[i].appendChild(td);
|
||||
}
|
||||
});
|
||||
|
||||
var searchInput = document.getElementById("searchInput");
|
||||
searchInput.addEventListener("input", function() {
|
||||
var q = this.value.toLowerCase().trim();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user