58ca4e68db
- Go backend API with full CRUD for all modules (CRM, Sales, Finance, HR, Legal, Marketing, Support, Purchase, Inventory, Projects, Automation, Analytics) - Rust analytics service with parallel report generation - C runtime with POSIX shared memory IPC - PostgreSQL schema with 30+ tables, full migrations - Redis cache, sessions, pub/sub - Kafka event streaming with Zookeeper - WebSocket hub for real-time updates - Automation engine with cron jobs, workflows, event triggers - JWT authentication, multi-tenant from start - Docker Compose with all services - Nginx reverse proxy with rate limiting - Integration tests passing - Feature gap analysis against Fortnox/Odoo/Visma Refs: BOC-001
233 lines
9.6 KiB
HTML
233 lines
9.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Landvex — Select your country/region</title>
|
|
<meta name="description" content="Select your country or region to view Landvex infrastructure intelligence content in your preferred language.">
|
|
<link rel="canonical" href="https://www.landvex.com/locale">
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
|
<style>
|
|
:root { --bg: #f5f5f7; --text: #1a1a1a; --muted: #6b6b6b; --blue: #0066ff; --blue-dark: #0052cc; --border: #e5e5e7; }
|
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg); color: var(--text); line-height: 1.6; }
|
|
.container { max-width: 960px; margin: 0 auto; padding: 0 24px; }
|
|
header { padding: 24px 0; display: flex; align-items: center; gap: 12px; }
|
|
.logo { font-size: 24px; font-weight: 800; letter-spacing: -0.04em; color: var(--text); text-decoration: none; }
|
|
.logo .x { color: var(--blue); }
|
|
.back-link { color: var(--muted); text-decoration: none; font-size: 0.875rem; margin-left: auto; }
|
|
.back-link:hover { color: var(--blue); }
|
|
|
|
h1 { font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 700; margin: 40px 0 8px; }
|
|
.subtitle { color: var(--muted); margin-bottom: 40px; }
|
|
|
|
.region-section { margin-bottom: 48px; }
|
|
.region-title { font-size: 1.125rem; font-weight: 600; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 2px solid var(--blue); display: inline-block; }
|
|
|
|
.locale-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
|
|
.locale-item { background: white; border-radius: 12px; padding: 16px 20px; border: 1px solid var(--border); transition: all 0.2s; cursor: pointer; text-decoration: none; color: inherit; display: flex; align-items: center; gap: 12px; }
|
|
.locale-item:hover { border-color: var(--blue); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,102,255,0.1); }
|
|
.locale-flag { font-size: 1.5rem; }
|
|
.locale-info { flex: 1; }
|
|
.locale-name { font-weight: 600; font-size: 0.9375rem; }
|
|
.locale-lang { font-size: 0.8125rem; color: var(--muted); }
|
|
.locale-code { font-size: 0.75rem; color: var(--muted); opacity: 0.6; font-family: monospace; }
|
|
|
|
.current-badge { background: var(--blue); color: white; font-size: 0.625rem; font-weight: 700; padding: 2px 8px; border-radius: 100px; text-transform: uppercase; }
|
|
|
|
footer { border-top: 1px solid var(--border); padding: 32px 0; margin-top: 60px; text-align: center; }
|
|
footer p { font-size: 0.8125rem; color: var(--muted); }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<header>
|
|
<a href="/" class="logo">Land<span class="x">v</span>ex</a>
|
|
<a href="/" class="back-link">← Back to Landvex</a>
|
|
</header>
|
|
|
|
<h1>Select your country/region</h1>
|
|
<p class="subtitle">Choose your preferred language and region to view Landvex infrastructure intelligence content.</p>
|
|
|
|
<div class="region-section">
|
|
<div class="region-title">North America</div>
|
|
<div class="locale-grid">
|
|
<a href="/" class="locale-item">
|
|
<span class="locale-flag">🇺🇸</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">United States</div>
|
|
<div class="locale-lang">English</div>
|
|
</div>
|
|
<span class="locale-code">en-US</span>
|
|
</a>
|
|
<a href="/" class="locale-item">
|
|
<span class="locale-flag">🇨🇦</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Canada</div>
|
|
<div class="locale-lang">English</div>
|
|
</div>
|
|
<span class="locale-code">en-CA</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="region-section">
|
|
<div class="region-title">Europe</div>
|
|
<div class="locale-grid">
|
|
<a href="/sv-se/" class="locale-item">
|
|
<span class="locale-flag">🇸🇪</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Sweden</div>
|
|
<div class="locale-lang">Svenska</div>
|
|
</div>
|
|
<span class="locale-code">sv-SE</span>
|
|
</a>
|
|
<a href="/de-de/" class="locale-item">
|
|
<span class="locale-flag">🇩🇪</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Germany</div>
|
|
<div class="locale-lang">Deutsch</div>
|
|
</div>
|
|
<span class="locale-code">de-DE</span>
|
|
</a>
|
|
<a href="/fr-fr/" class="locale-item">
|
|
<span class="locale-flag">🇫🇷</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">France</div>
|
|
<div class="locale-lang">Français</div>
|
|
</div>
|
|
<span class="locale-code">fr-FR</span>
|
|
</a>
|
|
<a href="/es-es/" class="locale-item">
|
|
<span class="locale-flag">🇪🇸</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Spain</div>
|
|
<div class="locale-lang">Español</div>
|
|
</div>
|
|
<span class="locale-code">es-ES</span>
|
|
</a>
|
|
<a href="/it-it/" class="locale-item">
|
|
<span class="locale-flag">🇮🇹</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Italy</div>
|
|
<div class="locale-lang">Italiano</div>
|
|
</div>
|
|
<span class="locale-code">it-IT</span>
|
|
</a>
|
|
<a href="/nl-nl/" class="locale-item">
|
|
<span class="locale-flag">🇳🇱</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Netherlands</div>
|
|
<div class="locale-lang">Nederlands</div>
|
|
</div>
|
|
<span class="locale-code">nl-NL</span>
|
|
</a>
|
|
<a href="/pt-pt/" class="locale-item">
|
|
<span class="locale-flag">🇵🇹</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Portugal</div>
|
|
<div class="locale-lang">Português</div>
|
|
</div>
|
|
<span class="locale-code">pt-PT</span>
|
|
</a>
|
|
<a href="/pl-pl/" class="locale-item">
|
|
<span class="locale-flag">🇵🇱</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Poland</div>
|
|
<div class="locale-lang">Polski</div>
|
|
</div>
|
|
<span class="locale-code">pl-PL</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="region-section">
|
|
<div class="region-title">Asia Pacific</div>
|
|
<div class="locale-grid">
|
|
<a href="/ja/" class="locale-item">
|
|
<span class="locale-flag">🇯🇵</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Japan</div>
|
|
<div class="locale-lang">日本語</div>
|
|
</div>
|
|
<span class="locale-code">ja-JP</span>
|
|
</a>
|
|
<a href="/ko/" class="locale-item">
|
|
<span class="locale-flag">🇰🇷</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Korea</div>
|
|
<div class="locale-lang">한국어</div>
|
|
</div>
|
|
<span class="locale-code">ko-KR</span>
|
|
</a>
|
|
<a href="/zh-cn/" class="locale-item">
|
|
<span class="locale-flag">🇨🇳</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">China</div>
|
|
<div class="locale-lang">简体中文</div>
|
|
</div>
|
|
<span class="locale-code">zh-CN</span>
|
|
</a>
|
|
<a href="/th/" class="locale-item">
|
|
<span class="locale-flag">🇹🇭</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Thailand</div>
|
|
<div class="locale-lang">ไทย</div>
|
|
</div>
|
|
<span class="locale-code">th-TH</span>
|
|
</a>
|
|
<a href="/id/" class="locale-item">
|
|
<span class="locale-flag">🇮🇩</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Indonesia</div>
|
|
<div class="locale-lang">Bahasa Indonesia</div>
|
|
</div>
|
|
<span class="locale-code">id-ID</span>
|
|
</a>
|
|
<a href="/vi/" class="locale-item">
|
|
<span class="locale-flag">🇻🇳</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Vietnam</div>
|
|
<div class="locale-lang">Tiếng Việt</div>
|
|
</div>
|
|
<span class="locale-code">vi-VN</span>
|
|
</a>
|
|
<a href="/ms/" class="locale-item">
|
|
<span class="locale-flag">🇲🇾</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Malaysia</div>
|
|
<div class="locale-lang">Bahasa Melayu</div>
|
|
</div>
|
|
<span class="locale-code">ms-MY</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="region-section">
|
|
<div class="region-title">Middle East & Africa</div>
|
|
<div class="locale-grid">
|
|
<a href="/tr-tr/" class="locale-item">
|
|
<span class="locale-flag">🇹🇷</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Türkiye</div>
|
|
<div class="locale-lang">Türkçe</div>
|
|
</div>
|
|
<span class="locale-code">tr-TR</span>
|
|
</a>
|
|
<a href="/ar-sa/" class="locale-item">
|
|
<span class="locale-flag">🇸🇦</span>
|
|
<div class="locale-info">
|
|
<div class="locale-name">Saudi Arabia</div>
|
|
<div class="locale-lang">العربية</div>
|
|
</div>
|
|
<span class="locale-code">ar-SA</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<footer>
|
|
<p>© 2026 Landvex AB. All rights reserved.</p>
|
|
</footer>
|
|
</div>
|
|
</body>
|
|
</html> |