quantumcode-ai-architect / i18n-setup.js
muboboev's picture
Подэтап 2.3 — Мультиязычность
949f474 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>i18n Setup | QuantumCode</title>
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/feather-icons"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
body {
font-family: 'Space Grotesk', sans-serif;
background-color: #0f172a;
color: #e2e8f0;
}
.gradient-text {
background: linear-gradient(90deg, #7c3aed 0%, #2563eb 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.glass-card {
background: rgba(15, 23, 42, 0.7);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 1rem;
}
.language-option {
transition: all 0.2s ease;
}
.language-option:hover {
transform: scale(1.05);
background: rgba(124, 58, 237, 0.1);
}
</style>
</head>
<body class="min-h-screen flex items-center justify-center">
<div class="container mx-auto px-4 py-12">
<div class="max-w-md mx-auto glass-card p-8">
<div class="text-center mb-8">
<div class="flex justify-center mb-4">
<i data-feather="globe" class="text-indigo-500 w-12 h-12"></i>
</div>
<h1 class="text-3xl font-bold gradient-text mb-2">Select Language</h1>
<p class="text-slate-300">Choose your preferred language</p>
</div>
<div class="grid grid-cols-2 gap-4 mb-8">
<div class="language-option flex items-center p-4 rounded-lg cursor-pointer border border-slate-700" data-lang="en">
<img src="https://flagcdn.com/w20/gb.png" class="w-6 h-4 mr-3">
<span>English</span>
</div>
<div class="language-option flex items-center p-4 rounded-lg cursor-pointer border border-slate-700" data-lang="ru">
<img src="https://flagcdn.com/w20/ru.png" class="w-6 h-4 mr-3">
<span>Русский</span>
</div>
<div class="language-option flex items-center p-4 rounded-lg cursor-pointer border border-slate-700" data-lang="tj">
<img src="https://flagcdn.com/w20/tj.png" class="w-6 h-4 mr-3">
<span>Тоҷикӣ</span>
</div>
<div class="language-option flex items-center p-4 rounded-lg cursor-pointer border border-slate-700" data-lang="uz">
<img src="https://flagcdn.com/w20/uz.png" class="w-6 h-4 mr-3">
<span>O'zbekcha</span>
</div>
<div class="language-option flex items-center p-4 rounded-lg cursor-pointer border border-slate-700" data-lang="kg">
<img src="https://flagcdn.com/w20/kg.png" class="w-6 h-4 mr-3">
<span>Кыргызча</span>
</div>
<div class="language-option flex items-center p-4 rounded-lg cursor-pointer border border-slate-700" data-lang="ua">
<img src="https://flagcdn.com/w20/ua.png" class="w-6 h-4 mr-3">
<span>Українська</span>
</div>
</div>
<div class="text-center">
<button id="confirmLanguage" class="px-6 py-3 bg-indigo-600 hover:bg-indigo-700 rounded-lg font-medium transition-colors">
Confirm Selection
</button>
</div>
</div>
</div>
<script>
document.querySelectorAll('.language-option').forEach(option => {
option.addEventListener('click', function() {
document.querySelectorAll('.language-option').forEach(opt => {
opt.classList.remove('border-indigo-500', 'bg-indigo-900/20');
});
this.classList.add('border-indigo-500', 'bg-indigo-900/20');
});
});
document.getElementById('confirmLanguage').addEventListener('click', function() {
const selected = document.querySelector('.language-option.border-indigo-500');
if (selected) {
const lang = selected.getAttribute('data-lang');
document.cookie = `NEXT_LOCALE=${lang};path=/;max-age=31536000`;
window.location.href = window.location.pathname;
}
});
feather.replace();
</script>
</body>
</html>