/* Neon Rampage — i18n (EN / VI). Original strings. */ (function () { 'use strict'; var DICT = { en: { 'menu.title': 'NEON RAMPAGE', 'menu.subtitle': 'Stone-age survival — dinosaur waves, alphas, cards & arena', 'menu.campaign': 'CAMPAIGN', 'menu.arena': 'ARENA (vs Bots)', 'menu.shop': 'SHOP', 'menu.heroes': 'HEROES', 'menu.rank': 'LEADERBOARD', 'menu.settings': 'SETTINGS', 'menu.howto': 'HOW TO PLAY', 'menu.coins': 'Coins', 'menu.bestScore': 'Best score', 'menu.bestWave': 'Best wave', 'how.title': 'How to play', 'how.move': 'Move — WASD / Arrows (or left stick)', 'how.aim': 'Aim — mouse (or right stick), hold to fire', 'how.ult': 'Ultimate — R when the nova is charged', 'how.bomb': 'Bomb — Q, wipes bullets & blasts everything', 'how.pause': 'Pause — P or Esc', 'how.onfire': 'Keep hunting to fill the fire bar and go ON FIRE: double damage for a few seconds. Hesitate too long and you hit the hangover.', 'how.cards': 'Clear a wave, pick 1 of 3 cards. An alpha dinosaur every 5th wave.', 'how.close': 'Back', 'shop.tabWeapons': 'WEAPONS', 'shop.tabHeroes': 'HEROES', 'shop.tabSkins': 'SKINS', 'shop.owned': 'OWNED', 'shop.buy': 'BUY', 'shop.equip': 'EQUIP', 'shop.equipped': 'EQUIPPED', 'shop.notEnough': 'Not enough coins', 'shop.bought': 'Purchased!', 'shop.locked': 'Locked', 'shop.bombs': 'Spare bombs', 'hero.talent': 'Talent', 'hero.statHp': 'HP', 'hero.statSpeed': 'Speed', 'hero.statDmg': 'Damage', 'hud.wave': 'WAVE', 'hud.left': 'left', 'hud.boss': 'TRÙM', 'hud.onFire': 'ON FIRE!', 'hud.ultReady': 'ULT READY [R]', 'hud.score': 'SCORE', 'hud.paused': 'PAUSED', 'hud.resume': 'RESUME', 'hud.quit': 'QUIT TO MENU', 'announce.wave': 'WAVE', 'announce.boss': 'ALPHA DINOSAUR INCOMING', 'announce.waveClear': 'WAVE CLEAR', 'announce.onFire': 'ON FIRE!', 'announce.hangover': 'HANGOVER…', 'announce.go': 'GO!', 'card.pickTitle': 'CHOOSE A CARD', 'card.pickHint': 'The next wave starts after you pick', 'card.rarityCommon': 'COMMON', 'card.rarityRare': 'RARE', 'card.rarityEpic': 'EPIC', 'over.title': 'YOU WERE EATEN', 'over.win': 'VICTORY!', 'over.score': 'Score', 'over.wave': 'Wave reached', 'over.kills': 'Kills', 'over.combo': 'Best combo', 'over.coinsEarned': 'Coins earned', 'over.newRecord': 'NEW RECORD!', 'over.retry': 'PLAY AGAIN', 'over.menu': 'MENU', 'over.revive': 'REVIVE', 'over.reviveHint': 'Revive once with full HP', 'arena.setup': 'ARENA SETUP', 'arena.bots': 'Bots', 'arena.target': 'Target kills', 'arena.start': 'FIGHT', 'arena.back': 'BACK', 'arena.you': 'YOU', 'arena.leader': 'FIRST TO {n} KILLS', 'arena.timeLeft': 'Time', 'set.title': 'SETTINGS', 'set.language': 'Language', 'set.sfx': 'SFX volume', 'set.music': 'Music volume', 'set.autofire': 'Auto-fire', 'set.autoaim': 'Auto-aim nearest (F)', 'set.onehit': 'One-hit mode (campaign)', 'set.shake': 'Screen shake', 'set.name': 'Player name', 'set.reset': 'Reset profile', 'set.resetConfirm': 'Erase all progress? This cannot be undone.', 'set.done': 'DONE', 'rank.title': 'LEADERBOARD', 'rank.colPlayer': 'Player', 'rank.colScore': 'Score', 'rank.colWave': 'Wave', 'rank.empty': 'No runs yet — go make a mess.', 'toast.notEnough': 'Not enough coins', 'toast.saved': 'Saved', 'common.ok': 'OK', 'common.cancel': 'CANCEL' }, vi: { 'menu.title': 'NEON RAMPAGE', 'menu.subtitle': 'Sinh tồn thời tiền sử — khủng long, trùm, thẻ bài & đấu trường', 'menu.campaign': 'CHIẾN DỊCH', 'menu.arena': 'ĐẤU TRƯỜNG (vs Bot)', 'menu.shop': 'CỬA HÀNG', 'menu.heroes': 'TƯỚNG', 'menu.rank': 'BẢNG XẾP HẠNG', 'menu.settings': 'CÀI ĐẶT', 'menu.howto': 'HƯỚNG DẪN', 'menu.coins': 'Xu', 'menu.bestScore': 'Điểm cao nhất', 'menu.bestWave': 'Wave cao nhất', 'how.title': 'Cách chơi', 'how.move': 'Di chuyển — WASD / Phím mũi tên (hoặc trái cần)', 'how.aim': 'Ngắm — chuột (hoặc phải cần), giữ để bắn', 'how.ult': 'Chiêu cuối — R khi nổ tung đã đầy', 'how.bomb': 'Bom — Q, xoá đạn & nổ tung mọi thứ', 'how.pause': 'Tạm dừng — P hoặc Esc', 'how.onfire': 'Săn liên tục để đầy thanh lửa và bùng cháy ON FIRE: sát thương x2 vài giây. Nghỉ quá lâu sẽ dính đau đầu.', 'how.cards': 'Sống sót qua wave chọn 1 trong 3 thẻ. Mỗi wave 5 có KHỦNG LONG TRÙM.', 'how.close': 'Quay lại', 'shop.tabWeapons': 'SÚNG', 'shop.tabHeroes': 'TƯỚNG', 'shop.tabSkins': 'TRANG PHỤC', 'shop.owned': 'ĐÃ CÓ', 'shop.buy': 'MUA', 'shop.equip': 'TRANG BỊ', 'shop.equipped': 'ĐANG DÙNG', 'shop.notEnough': 'Không đủ xu', 'shop.bought': 'Đã mua!', 'shop.locked': 'Đã khoá', 'shop.bombs': 'Bom dự trữ', 'hero.talent': 'Năng lực', 'hero.statHp': 'Máu', 'hero.statSpeed': 'Tốc độ', 'hero.statDmg': 'Sát thương', 'hud.wave': 'WAVE', 'hud.left': 'còn lại', 'hud.boss': 'TRÙM', 'hud.onFire': 'BẮT LỬA!', 'hud.ultReady': 'CHIÊU CUỐI SẴN SÒNG [R]', 'hud.score': 'ĐIỂM', 'hud.paused': 'TẠM DỪNG', 'hud.resume': 'TIẾP TỤC', 'hud.quit': 'THOÁT VỀ MENU', 'announce.wave': 'WAVE', 'announce.boss': 'KHỦNG LONG TRÙM XUẤT HIỆN', 'announce.waveClear': 'WAVE SỐNG SÓT', 'announce.onFire': 'BẮT LỬA!', 'announce.hangover': 'ĐAU ĐẦU…', 'announce.go': 'CHIẾN!', 'card.pickTitle': 'CHỌN MỘT THẺ', 'card.pickHint': 'Wave mới bắt đầu sau khi bạn chọn', 'card.rarityCommon': 'THƯỜNG', 'card.rarityRare': 'QUÝ', 'card.rarityEpic': 'SỬ THI', 'over.title': 'BỊ NUỐT RỒI', 'over.win': 'CHIẾN THẮNG!', 'over.score': 'Điểm', 'over.wave': 'Wave đạt được', 'over.kills': 'Hạ gục', 'over.combo': 'Combo tốt nhất', 'over.coinsEarned': 'Xu kiếm được', 'over.newRecord': 'KỶ LỤC MỚI!', 'over.retry': 'CHƠI LẠI', 'over.menu': 'VỀ MENU', 'over.revive': 'HỒI SINH', 'over.reviveHint': 'Hồi sinh 1 lần với đầy máu', 'arena.setup': 'CHUẨN BỊ ĐẤU TRƯỜNG', 'arena.bots': 'Số bot', 'arena.target': 'Số hạ gục cần đạt', 'arena.start': 'CHIẾN THÔI', 'arena.back': 'QUAY LẠI', 'arena.you': 'BẠN', 'arena.leader': 'ĐẠT {n} HẠ GỤC ĐỂ THẮNG', 'arena.timeLeft': 'Thời gian', 'set.title': 'CÀI ĐẶT', 'set.language': 'Ngôn ngữ', 'set.sfx': 'Âm lượng hiệu ứng', 'set.music': 'Âm lượng nhạc', 'set.autofire': 'Tự động bắn', 'set.autoaim': 'Tự ngắm mục tiêu gần nhất (F)', 'set.onehit': 'Chế độ một-hit (chiến dịch)', 'set.shake': 'Rung màn hình', 'set.name': 'Tên người chơi', 'set.reset': 'Xoá toàn bộ dữ liệu', 'set.resetConfirm': 'Xoá toàn bộ tiến trình? Không thể hoàn tác.', 'set.done': 'XONG', 'rank.title': 'BẢNG XẾP HẠNG', 'rank.colPlayer': 'Người chơi', 'rank.colScore': 'Điểm', 'rank.colWave': 'Wave', 'rank.empty': 'Chưa có lần nào — ra trận đi!', 'toast.notEnough': 'Không đủ xu', 'toast.saved': 'Đã lưu', 'common.ok': 'ĐỒNG Ý', 'common.cancel': 'HUỶ' } }; var US = (window.US = window.US || {}); var lang = 'en'; US.i18n = { setLang: function (l) { lang = DICT[l] ? l : 'en'; }, getLang: function () { return lang; }, t: function (key, vars) { var s = (DICT[lang] && DICT[lang][key]) || DICT.en[key] || key; if (vars) { Object.keys(vars).forEach(function (k) { s = s.replace('{' + k + '}', String(vars[k])); }); } return s; }, // Apply to all elements carrying data-i18n="key" apply: function () { var els = document.querySelectorAll('[data-i18n]'); for (var i = 0; i < els.length; i++) { els[i].textContent = US.i18n.t(els[i].getAttribute('data-i18n')); } document.documentElement.lang = lang; } }; })();