/* ============================================================ i18n_services.jsx — вкладка «Услуги»: строки, карточки услуг и каталог курсов профессий. Курсы ведут наши преподаватели и центры — источник курса в интерфейсе не раскрываем (решение владельца). ============================================================ */ const SVC_UI = { ru: { title: 'Услуги', sub: 'Что ускорит ваш выезд', from: 'от', months: 'мес', order: 'Оформить', book: 'Записаться', learnMore: 'Подробнее', paid: 'Оплачено', // резюме resumeTitle: 'Резюме по международному стандарту', resumeSub: 'Интервью на вашем языке — готовое резюме с фото', resumePrice: '150 000 сум', resumeBullets: [ 'Говорите просто — переведём для работодателя', 'Английская и русская версии, формат ATS', 'PDF и Word — навсегда ваши', ], resumePayNote: 'Оплата до интервью · 10–15 минут в Помощнике', resumeGo: 'Оплатить и начать', resumeDone: 'Резюме готово — оно в Профиле', resumeContinue: 'Оплачено — продолжить интервью', // консультация consTitle: 'Консультация специалиста', consSub: 'Что мешает уехать и как это исправить', consPrice: '100 000 сум', // курсы coursesTitle: 'Новая профессия за 3–6 месяцев', coursesSub: 'После курса — документ и вакансии за рубежом', courseSalary: 'зарплата после курса', courseTerm: 'обучение', coursePrice: 'стоимость', courseOpens: 'Какие вакансии откроются', courseEnrolled: 'Вы записаны — мы позвоним и расскажем детали', courseEnroll: 'Записаться на курс', // документы docsTitle: 'Помощь с документами', docsSub: 'Загранпаспорт, справки, переводы', docsBullets: [ 'Загранпаспорт под ключ', 'Справки: несудимость, медицина', 'Переводы для посольства', ], docsCta: 'Оставить заявку', docsDone: 'Заявка принята — свяжемся в течение рабочего дня', // профиль anketa: 'Ваша анкета', anketaEdit: 'Обновляется в Помощнике', myResume: 'Моё резюме', resumeNone: 'Соберём за 10–15 минут — интервью на вашем языке.', resumeNoneCta: 'Собрать резюме · 150 000 сум', resumePaidNote: 'Оплачено. Осталось пройти интервью в Помощнике.', purchases: 'Покупки', p_resume: 'Резюме по международному стандарту', p_consult: 'Консультация специалиста', p_course: 'Курс', p_none: 'Покупок пока нет', }, uz: { title: 'Xizmatlar', sub: 'Chiqishni tezlashtiradigan hamma narsa', from: 'dan', months: 'oy', order: 'Rasmiylashtirish', book: 'Yozilish', learnMore: 'Batafsil', paid: 'To‘langan', resumeTitle: 'Xalqaro standart bo‘yicha rezyume', resumeSub: 'Intervyu o‘z tilingizda — surat bilan tayyor rezyume', resumePrice: '150 000 so‘m', resumeBullets: [ 'Oddiy gapiring — ish beruvchi uchun tarjima qilamiz', 'Ingliz va rus versiyalari, ATS formati', 'PDF va Word — abadiy sizniki', ], resumePayNote: 'To‘lov intervyudan oldin · Yordamchida 10–15 daqiqa', resumeGo: 'To‘lash va boshlash', resumeDone: 'Rezyume tayyor — u Profilda', resumeContinue: 'To‘langan — intervyuni davom ettirish', consTitle: 'Mutaxassis konsultatsiyasi', consSub: 'Chiqishga nima xalaqit beradi va qanday tuzatiladi', consPrice: '100 000 so‘m', coursesTitle: '3–6 oyda yangi kasb', coursesSub: 'Kursdan keyin — hujjat va xorijdagi vakansiyalar', courseSalary: 'kursdan keyingi maosh', courseTerm: 'o‘qish', coursePrice: 'narxi', courseOpens: 'Qanday vakansiyalar ochiladi', courseEnrolled: 'Yozildingiz — qo‘ng‘iroq qilib, tafsilotlarni aytamiz', courseEnroll: 'Kursga yozilish', docsTitle: 'Hujjatlar bilan yordam', docsSub: 'Xorijiy pasport, ma’lumotnomalar, tarjimalar', docsBullets: [ 'Xorijiy pasport to‘liq xizmat', 'Ma’lumotnomalar: sudlanmaganlik, tibbiyot', 'Elchixona uchun tarjimalar', ], docsCta: 'Ariza qoldirish', docsDone: 'Ariza qabul qilindi — ish kuni davomida bog‘lanamiz', anketa: 'Sizning anketangiz', anketaEdit: 'Yordamchida yangilanadi', myResume: 'Mening rezyumem', resumeNone: '10–15 daqiqada tuzamiz — intervyu o‘z tilingizda.', resumeNoneCta: 'Rezyume tuzish · 150 000 so‘m', resumePaidNote: 'To‘langan. Yordamchida intervyudan o‘tish qoldi.', purchases: 'Xaridlar', p_resume: 'Xalqaro standart bo‘yicha rezyume', p_consult: 'Mutaxassis konsultatsiyasi', p_course: 'Kurs', p_none: 'Hozircha xaridlar yo‘q', }, }; /* ---------- курсы ---------- gives — какие профессии даёт курс (ключи как в профиле); мост в вакансиях: не хватает профессии → предлагаем курс. */ const COURSES = [ { id: 'electric', icon: 'spark', gives: ['build'], title: { ru: 'Электрик', uz: 'Elektrik' }, term: { ru: '4 месяца', uz: '4 oy' }, price: 3500000, salary: { ru: '1 400 – 1 900 €', uz: '1 400 – 1 900 €' }, sub: { ru: 'Монтаж, щиты, чтение схем. Практика на объектах', uz: 'Montaj, shchitlar, sxema o‘qish. Obyektlarda amaliyot' }, opens: [ { ru: 'Электрик на стройке — Польша, Германия', uz: 'Qurilishda elektrik — Polsha, Germaniya' }, { ru: 'Монтажник на производстве — Корея', uz: 'Ishlab chiqarishda montajchi — Koreya' }, ], }, { id: 'plumber', icon: 'tool', gives: ['build'], title: { ru: 'Сантехник', uz: 'Santexnik' }, term: { ru: '3 месяца', uz: '3 oy' }, price: 3000000, salary: { ru: '1 300 – 1 700 €', uz: '1 300 – 1 700 €' }, sub: { ru: 'Водопровод, отопление, монтаж под ключ', uz: 'Suv quvuri, isitish, montaj' }, opens: [ { ru: 'Сантехник — Польша, Чехия', uz: 'Santexnik — Polsha, Chexiya' }, { ru: 'Монтажник инженерных сетей — ОАЭ', uz: 'Muhandislik tarmoqlari montajchisi — BAA' }, ], }, { id: 'weld-up', icon: 'fire', gives: ['weld'], title: { ru: 'Сварщик: разряд выше', uz: 'Payvandchi: yuqori razryad' }, term: { ru: '3 месяца', uz: '3 oy' }, price: 4000000, salary: { ru: '1 600 – 2 200 €', uz: '1 600 – 2 200 €' }, sub: { ru: 'TIG и аргон, подготовка к европейскому сертификату', uz: 'TIG va argon, Yevropa sertifikatiga tayyorlov' }, opens: [ { ru: 'Сварщик TIG — Германия, Нидерланды', uz: 'TIG payvandchi — Germaniya, Niderlandiya' }, { ru: 'Трубный сварщик — Корея', uz: 'Quvur payvandchisi — Koreya' }, ], }, { id: 'cnc', icon: 'box', gives: ['ware'], title: { ru: 'Оператор станка ЧПУ', uz: 'CNC dastgoh operatori' }, term: { ru: '4 месяца', uz: '4 oy' }, price: 4500000, salary: { ru: '2,2 – 2,8 млн ₩', uz: '2,2 – 2,8 mln ₩' }, sub: { ru: 'Настройка и работа на станках, техника безопасности', uz: 'Dastgohlarni sozlash va ishlash, xavfsizlik' }, opens: [ { ru: 'Оператор ЧПУ — Корея, Япония', uz: 'CNC operatori — Koreya, Yaponiya' }, ], }, { id: 'care', icon: 'heart', gives: ['care'], title: { ru: 'Уход за больными', uz: 'Bemorlar parvarishi' }, term: { ru: '6 месяцев', uz: '6 oy' }, price: 5000000, salary: { ru: '1 800 – 2 400 €', uz: '1 800 – 2 400 €' }, sub: { ru: 'Курс ухода + немецкий до B1. Самая высокая зарплата', uz: 'Parvarish kursi + nemis tili B1 gacha. Eng yuqori maosh' }, opens: [ { ru: 'Уход за пожилыми — Германия (путь к ВНЖ)', uz: 'Keksalar parvarishi — Germaniya (yashash ruxsatiga yo‘l)' }, ], }, ]; /* Курс-мост: чего не хватает до вакансии → какой курс закрывает. */ function bridgeCourse(profile, job) { const c = job.crit || {}; if (!c.profs || !profile.prof) return null; if (c.profs.includes(profile.prof)) return null; // профессия подходит return COURSES.find(k => k.gives.some(g => c.profs.includes(g))) || null; } Object.assign(window, { SVC_UI, COURSES, bridgeCourse });