PageSourceSearch

https://coinkeeper.me/landing-assets/i18n.js?v=1790584696

js coinkeeper.me collected 2026-10-02 03:43:34 UTC 38,573 bytes, 555 lines download raw bytes

1/*
2 * CoinKeeper landing — i18n
3 * Default content in HTML is Russian. This script:
4 *   1. Detects browser language (or reads saved choice).
5 *   2. If "en" — walks all text nodes and swaps RU → EN using the dictionary.
6 *   3. Re-applies on language-toggle clicks; persists choice in localStorage.
7 */
8(function () {
9  'use strict';
10
11  var EN = {
12    // <title> + <meta name="description">
13    __title: 'CoinKeeper — answers to all your money questions',
14    __desc:
15      'CoinKeeper brings all your accounts, cards, and expenses into one place. Understand where money goes, budget as a family without fights, and save for your goals.',
16
17    // aria-labels
18    'Скачать в App Store': 'Download on the App Store',
19    'Доступно в Google Play': 'Get it on Google Play',
20
21    // NAV
22    // Первый уровень двухуровневого меню (plan-site-navigation, фаза 0 от 14.09.2026).
23    // 'Помощь': 'Help' уже есть ниже, в блоке футера — второй ключ молча перетрёт первый.
24    'О приложении': 'About the app',
25    'Калькуляторы': 'Calculators',
26    'Для кого': "Who it's for",
27    'Возможности': 'Features',
28    'Отзывы': 'Reviews',
29    'Вопросы': 'FAQ',
30    'Войти': 'Log in',
31    'Меню': 'Menu',
32    'Выбор языка': 'Language',
33    'Купить подписку': 'Get subscription',
34    // Второй уровень меню (фаза 2). 'Тарифы', 'Вопросы и ответы',
35    // 'Написать в Telegram', 'Написать на почту' уже есть ниже — дубли не заводим.
36    'Где работает': 'Where it works',
37    'Роадмап': 'Roadmap',
38    'Идеи': 'Ideas',
39    'Планы': 'Plans',
40    'Что нового': "What's new",
41    'Сравнения': 'Comparisons',
42    'Веб': 'Web',
43    'Подушка безопасности': 'Emergency fund',
44    'Досрочное погашение': 'Mortgage prepayment',
45    'Цель по накоплению': 'Savings goal',
46    'Пенсия': 'Retirement',
47    'Финансовая свобода': 'Financial freedom',
48    'Все 27 калькуляторов': 'All 27 calculators',
49    'бесплатно, без регистрации': 'free, no sign-up',
50    'Обучение': 'Courses',
51    'Новости': 'News',
52
53    // HERO badge (new feature promo)
54    'Новинка в 4.4 для iOS: импорт выписок из PDF': 'New in 4.4 for iOS: PDF statement import',
55
56    // HERO trust strip
57    '10+': '10M+',
58    'миллионов': 'downloads',
59    'установок': 'worldwide',
60    '4,7': '4.7',
61    'в App Store': 'on the App Store',
62    '№ 1': '#1',
63    'в России': 'Finance app',
64    'с 2011 года': 'since 2011',
65
66    // HERO
67    'Ответы на все вопросы': 'Answers to questions',
68    'о ваших': 'about your',
69    'деньгах': 'money',
70    'Куда уходят деньги, хватит ли до зарплаты, можно ли позволить себе отпуск?\n    CoinKeeper собирает все счета, карты и траты в одном месте — и отвечает\n    на вопросы, которые вы боялись задать своему бюджету.':
71      "Where does the money go? Will it last until payday? Can you afford a vacation? CoinKeeper brings all your accounts, cards, and expenses into one place — and answers the questions you were afraid to ask your budget.",
72    'Скачать бесплатно': 'Download for free',
73    'Подходит ли мне?': 'Is it right for me?',
74    'Как это работает': 'How it works',
75    'AI ассистент': 'AI assistant',
76    'Семейный учет': 'Family budgeting',
77    'Синхронизация между устройствами': 'Cross-device sync',
78
79    // SEGMENTS
80    'Для кого CoinKeeper': "Who CoinKeeper is for",
81    'Три разных': 'Three different',
82    'вопроса': 'questions',
83    '— одно приложение': '— one app',
84    'Мы не учим жить «по жёсткому бюджету». Помогаем понять, договориться с близкими и спокойно идти к целям.':
85      "We don't preach a strict budget. We help you understand, agree with loved one
85s, and calmly move toward your goals.",
86
87    '«Куда уходят деньги?»': '"Where does my money go?"',
88    'Деньги есть — но в конце месяца их нет. Не нужен жёсткий бюджет: нужно просто увидеть картину и найти, где можно безболезненно сократить.':
89      "You have money — but by the end of the month it's gone. You don't need a strict budget — you just need to see the picture and find where you can cut without pain.",
90    'Все траты в одной ленте — все расходы в множестве графиков':
91      'All spending in one feed — all expenses across many charts',
92    'Показываем темпы расходов внутри месяца': 'See your spending pace within the month',
93    'Легко найти на что вы тратите больше всего': 'Easily spot what you spend the most on',
94    'Поиск и метки: найдёте любую операцию, которая мешает придерживаться плана':
95      'Search and tags: find any transaction that breaks your plan',
96    'AI-ассистент поможет разобраться и даст советы по оптимизации трат':
97      'The AI assistant helps you make sense of it and suggests how to cut',
98    '«Зарплата 90К, в конце месяца — 4000. Я не понимаю, куда ушла. Просто хочу разобраться.»':
99      '"Salary 90K, end of the month — 4K left. I don\'t get where it went. I just want to figure it out."',
100    '— Наталья, 29 · менеджер, Москва': '— Natalia, 29 · manager, Moscow',
101    'Посмотреть аналитику →': 'See the analytics →',
102
103    '«Без ссор о деньгах в семье»': '"No more money fights at home"',
104    'Дело не в деньгах — дело в том, что каждый видит только свою часть. Когда оба смотрят на одну картину, споров становится меньше.':
105      "It's not about money — it's that each person only sees their own part. When both see the same picture, there are fewer arguments.",
106    'Семейный учёт до 5 человек': 'Family budgeting for up to 5 people',
107    'Личные и общие счета — раздельно': 'Personal and shared accounts — kept separate',
108    'Общие цели: отпуск, ремонт, ипотечный взнос':
109      'Shared goals: vacation, renovation, mortgage payment',
110    'Видно кто сколько потратил и на что': 'See who spent how much and on what',
111    'Комментарии к каждой операции: для чего это было':
112      'Comments on every transaction: what it was for',
113    '«Раз в месяц один и тот же скандал: кто опять потратил столько на рестораны?»':
114      '"Same fight every month: who blew that much on restaurants again?"',
115    '— Алексей и Елена, 35 · семья, Санкт-Петербург':
116      '— Alexey & Elena, 35 · couple, Saint Petersburg',
117    'Как настроить семью →': 'Set up the family →',
118
119    '«Хочу видеть рост капитала»': '"I want to watch my net worth grow"',
120    'Вклады, брокерские счета, накопительные — всё разбросано. CoinKeeper собирает всё в один дашборд и показывает, как растёт ваш капитал месяц к месяцу.':
121      'Deposits, brokerage accounts, savings — all scattered. CoinKeeper pulls everything into one dashboard and shows how your wealth grows month over month.',
122    'Все счета и активы в одном месте': 'All accounts and assets in one place',
123    'Net worth — общий капитал и его рост': 'Net worth — total capital and its growth',
124    'Цели с прогресс-баром и прогнозом даты': 'Goals with a progress bar and date forecast',
125    'Учёт долгов и кредитов': 'Debts and loans tracking',
126    'Брокерские счета и инвестиции в одном месте':
127      'Brokerage accounts and investments in one place',
128    '«Зарплата выросла на 30%. Ощущения накоплений — нет. Где вообще мои деньги?»':
129      '"Salary went up 30%. No sense of savings at all. Where is my money even?"',
130    '— Михаил, 38 · тимлид, Казань': '— Mikhail, 38 · tech lead, Kazan',
131    'Посчитать капитал →': 'Calculate net worth →',
132
133    // FEATURES
134    'Всё, что нужно для': 'Everything you need for',
135    'личных финансов': 'personal finance',
136    'От первой записи до полного контроля над капиталом — растёт вместе с вами.':
137      'From your first entry to full control over your wealth — it grows with you.',
138    'Самые популярные функции': 'Most popular features',
139    'Автоматизация и': 'Automation and',
140    'синхронизация': 'sync',
141
142    // Bank import tile
143    'Импорт из банков': 'Bank import',
144    'Тбанк, Сбер, Альфа, ВТБ, Райффайзен, Газпромбанк — операции загружаются и сразу раскладываются по категориям. Плюс распознавание банковских SMS.':
145      'T-Bank, Sber, Alfa, VTB, Raiffeisen, Gazprombank — transactions load and sort into categories automatically. Plus bank SMS recognition.',
146    '🟡 Тбанк': '🟡 T-Bank',
147    '🟢 Сбер': '🟢 Sber',
148    '🔴 Альфа': '🔴 Alfa',
149    '🔵 ВТБ': '🔵 VTB',
150    '🟡 Райффайзен': '🟡 Raiffeisen',
151    '🔵 Газпромбанк': '🔵 Gazprombank',
152    'Импорт операций из банков': 'Bank transactions import',
153
154    // Sync tile
155    'Синхронизация устройств': 'Device sync',
156    'iPhone, iPad, Android — данные синхронизируются мгновенно. Облачный бэкап всегда включён.':
157      'iPhone, iPad, Android — data syncs instantly. Cloud backup always on.',
158    'AI-ассистент в': 'AI assistant on',
159    ', а скоро — десктоп-приложение': ', and a desktop app is coming soon',
160
161    // Recurring tile
162    'Повторяющиеся платежи': 'Recurring payments',
163    'Зарплата, аренда, подписки — напомним и учтём автоматически.':
164      'Salary, rent, subscriptions — we remind you and track them automatically.',
165
166    // Goals tile
167    'Цели и накопления': 'Goals and savings',
168    'Откладывайте на мечту — с прогресс-баром и прогнозом даты.':
169      'Save for your dream — with a progress bar and date forecast.',
170    'Отпуск в августе': 'Vacation in August',
171    '68 000 ₽': '68 000 ₽',
172    'из 100 000 ₽': 'of 100 000 ₽',
173
174    // Debts tile
175    'Кто вам должен, кому вы — всё в одном месте. Напоминания не дадут забыть.':
176      "Who owes you, who you owe — all in one place. Reminders won't let you forget.",
177
178    // Tabs block
179    'Под вашу задачу': 'Tailored to your goal',
180    'Что важно': 'What matters',
181    'именно вам?': 'most to you?',
182
183    'Аналитика по категориям': 'Category analytics',
184    'Где перебор — видно с первого взгляда. Топ категорий за любой период.':
185      'Where you overspent — clear at a glance. Top categories for any period.',
186    'Графики месяц к месяцу': 'Month-over-month charts',
187    'Сравните апрель с мартом без таблиц — сразу видно, где стало больше.':
188      'Compare April to March with no spreadsheets — instantly see where it grew.',
189    'Бюджеты и лимиты': 'Budgets and limits',
190    'Установите лимит на категорию — приложение предупредит у границы.':
191      'Set a category limit — the app warns you as you approach it.',
192    'Поиск и хэштеги': 'Search and hashtags',
193    'Найдёте любую операцию за секунды. Помечайте: #отпуск, #работа, #дети.':
194      'Find any transaction in seconds. Tag with #vacation, #work, #kids.',
195
196    'Общий и личные бюджеты': 'Shared and personal budgets',
197    'Семейные расходы — вместе. Личные траты — только ваши. Без конфликтов.':
198      'Family expenses — together. Personal spending — yours only. No conflicts.',
199    'Общие цели': 'Shared goals',
200    'Отпуск, ремонт, первый взнос — копите вместе, видите общий прогресс.':
201      'Vacation, renovation, down payment — save together, see shared progress.',
202    'Комментарии к операциям': 'Comments on transactions',
203    'Оставляйте пометки — больше не будет «а это что за перевод?»':
204      "Leave notes — no more \"what was that transfer for?\"",
205    'Кто сколько потратил': 'Who spent what',
206    'Прозрачная картина по каждому члену семьи.':
207      'A transparent view for every family member.',
208
209    'Все счета и активы в одном': 'All accounts and assets in one place',
210    'Карты, вклады, брокерские, крипта — один дашборд вместо десяти приложений.':
211      'Cards, deposits, brokerage, crypto — one dashboard instead of ten apps.',
212    'Net worth и его рост': 'Net worth and its growth',
213    'Строим прогноз роста капитала на основе ваших трат, сбережений и инвестиций. Учитываем инфляцию и доходность капитала.':
214      'We forecast your wealth growth from your spending, savings, and investments — factoring in inflation and returns.',
215    'Цели с прогнозом даты': 'Goals with a date forecast',
216    'Накопить 1 млн к августу — CoinKeeper скажет, реально ли при текущем темпе.':
217      'Save 1M by August — CoinKeeper tells you if it\'s realistic at your current pace.',
218    'Кто вам должен, кому вы — всё в одном месте с напоминаниями.':
219      'Who owes you, who you owe — all in one place with reminders.',
220
221    // AI block
222    '✨ Только в Platinum PLUS': '✨ Platinum PLUS only',
223    'AI-ассистент по': 'AI assistant for',
224    'вашим': 'your',
225    'финансам': 'finances',
226    'Добавляйте траты как вам удобно, а потом спросите AI о чём угодно — он знает каждую вашу операцию.':
227      'Add expenses any way you like, then ask the AI anything — it knows every transaction of yours.',
228    'Добавляйте как удобно': 'Add it your way',
229    'Голосом': 'By voice',
230    '«Потратил 450 рублей на обед» — AI распознает и добавит в нужную категорию':
231      '"Spent 450 rubles on lunch" — the AI parses it and adds it to the right category',
232    'Фото выписки': 'Photo of a statement',
233    'Сфотографируйте скриншот из банка — AI разберёт все позиции автоматически':
234      'Snap a screenshot from your bank — the AI parses every line automatically',
235    'Текстом в чат': 'Chat message',
236    'Напишите как обычное сообщение — без форм и полей':
237      'Write like a regular message — no forms, no fields',
238    'Спросите что угодно': 'Ask anything',
239    'Куда у меня уходит больше всего денег?': 'Where does most of my money go?',
240    'Топ категорий за май: рестораны 12 400 ₽, продукты 9 800 ₽, такси 4 200 ₽. Рестораны выросли на 34% к апрелю.':
241      'Top categories for May: restaurants 12 400 ₽, groceries 9 800 ₽, taxi 4 200 ₽. Restaurants are up 34% vs April.',
242    'Что будет, если продолжу тратить так же?':
243      "What happens if I keep spending like this?",
244    'При текущем темпе к декабрю накопите 48 000 ₽ — на 60 000 меньше вашей цели. Советую сократить рестораны на 20%.':
245      "At this pace, by December you'll have saved 48 000 ₽ — 60 000 short of your goal. I'd cut restaurants by 20%.",
246    'Задайте вопрос простым языком': 'Ask in plain language',
247    'Никакого синтаксиса и фильтров — пишите как другу':
248      'No syntax, no filters — write like to a friend',
249    'AI анализирует все ваши транзакции': 'The AI analyzes all your transactions',
250    'По реальным данным, не по среднестатистическим':
251      'On real data, not on averages',
252    'Точный ответ за секунды': 'A precise answer in seconds',
253    'С цифрами, динамикой и советом что изменить':
254      'With numbers, trends, and advice on what to change',
255
256    // Subscriptions panel
257    'Подписки': 'Subscriptions',
258    'Найдите и отмените': 'Find and cancel',
259    'забытое': 'the forgotten ones',
260    'CoinKeeper подсветит автосписания, о которых вы давно забыли: пробные периоды, дубли, подписки «на всякий случай».':
261      "CoinKeeper highlights auto-charges you've long forgotten: trials, duplicates, \"
261just in case\" subscriptions.",
262    'Музыка Premium': 'Music Premium',
263    'Не открывали 60 дней': 'Unused for 60 days',
264    '−299 ₽/мес': '−299 ₽/mo',
265    'Онлайн-кинотеатр': 'Streaming service',
266    'Двойная подписка': 'Duplicate subscription',
267    '−599 ₽/мес': '−599 ₽/mo',
268    'Облако 2 ТБ': 'Cloud 2 TB',
269    'Заполнено на 4%': '4% full',
270    '−750 ₽/мес': '−750 ₽/mo',
271
272    // Investor panel
273    'Для инвесторов': 'For investors',
274    'Net worth: ваш капитал на одном экране': 'Net worth: your wealth on one screen',
275    'Подключите брокерские счета и вклады. Видите общий капитал, разбивку по активам и динамику месяц к месяцу.':
276      'Connect brokerage accounts and deposits. See total wealth, asset breakdown, and month-over-month trends.',
277    'Капитал': 'Net worth',
278    '4,82 М ₽': '₽4.82M',
279    '+3,1% за месяц': '+3.1% this month',
280    'Брокерский': 'Brokerage',
281    '2,14 М ₽': '₽2.14M',
282    '+4,8% за месяц': '+4.8% this month',
283    'Вклады': 'Deposits',
284    '1,60 М ₽': '₽1.60M',
285    '+0,7% за месяц': '+0.7% this month',
286    'Кэш и счета': 'Cash & accounts',
287    '1,08 М ₽': '₽1.08M',
288    '+1,2% за месяц': '+1.2% this month',
289
290    // Free features
291    'Бесплатно всегда': 'Always free',
292    'Это есть у всех пользователей': 'Included for every user',
293    '📊 Аналитика и отчёты': '📊 Analytics & reports',
294    '🌍 Мультивалютность': '🌍 Multi-currency',
295    '🔐 FaceID и PIN': '🔐 FaceID and PIN',
296    '🔍 Поиск по операциям': '🔍 Transaction search',
297    '💬 Комментарии к тратам': '💬 Comments on expenses',
298    '🗂️ Бюджеты по категориям': '🗂️ Category budgets',
299    '💳 Лимиты кредитных карт': '💳 Credit card limits',
300    '📱 iOS + Android': '📱 iOS + Android',
301    '🌐 Работает офлайн': '🌐 Works offline',
302
303    // Reviews
304    'Более 10 миллионов считают вместе с нами': '10M+ users have counted with us for',
305    '15 лет': '15 years',
306    'CoinKeeper — одно из старейших и самых любимых приложений для финансов в России.':
307      'CoinKeeper is one of the oldest and most beloved finance apps in Russia.',
308    '«Много раз пытался организовать финансы, но не получалось, пока не скачал ваше приложение! Красивый дизайн, удобный функционал и логика меня затянули с первых минут. Пользуюсь уже 4 месяца и каждый раз вношу свои расходы и доходы с удовольствием!»':
309      '"I tried many times to organize my finances and never managed to — until I downloaded your app. Beautiful design, convenient features, and the logic hooked me from the first minutes. I\'ve been using it for 4 months and every time I log expenses and income with pleasure!"',
310    'App Store · 4 авг.': 'App Store · Aug 4',
311    '«Более 7 лет пользуюсь данным приложением. Пробовал другие приложения и опять возвращался на Coinkeeper. Спасибо команде разработчиков за приложение! Отдельное спасибо за импорт операций из онлайн-банка. Рекомендую всем, кто следит за своими финансами.»':
312      '"I\'ve been using this app for over 7 years. I tried other apps and kept coming back to CoinKeeper. Thanks to the team! Special thanks for online-bank import. I recommend it to anyone watching their finances."',
313    'App Store · 2 мая': 'App Store · May 2',
314    '«Пользуюсь сервисом с 2014 года. Купил безлимитный тариф на последнюю версию приложения. Очень круто, что не нужно ничего руками заносить. Это огромный плюс разработчикам. Очень удобно контролировать свои расходы. Рекомендую всем. Разработчикам спасибо!»':
315      '"I\'ve used this service since 2014. Bought the unlimited plan for the latest version. So great that I don\'t have to enter anything by hand — huge credit to the devs. Very convenient for tracking expenses. Recommend to everyone. Thanks to the team!"',
316    'Александр Стексов': 'Alexander Steksov',
317    'App Store · 9 июн.': 'App Store · Jun 9',
318    '«Использую недавно, могу отметить, что приложение интуитивно понятное и удобное. Приложение очень нравится, рекомендую.»':
319      '"I started using it recently — the app is intuitive and convenient. I really like it and recommend."',
320    'Марина Попп': 'Marina Popp',
321    'App Store · 29 мая': 'App Store · May 29',
322    '«С вами учусь экономить и считать расходы. Второй месяц только использую это приложение, но выводов уже сделала много) Спасибо!»':
323      '"With you I\'m learning to save and track expenses. Only my second month using it, but I\'ve already made a lot of conclusions) Thanks!"',
324    'Анастасия Докусова': 'Anastasia Dokusova',
325    'App Store · 30 апр.': 'App Store · Apr 30',
326
327    // Pricing
328    'Тарифы': 'Pricing',
329    'Начните': 'Start',
330    'бесплатно': 'for free',
331    'Без пробных периодов с подвохом. Платный тариф — только если действительно нужны расширенные возможности.':
332      'No trial gotchas. Pay only if you really need the advanced features.',
333    '1 месяц': '1 month',
334    '1 год': '1 year',
335    '−75%': '−75%',
336    'Навсегда': 'Lifetime',
337
338    'Free': 'Free',
339    '0 ₽': '$0',
340    'навсегда': 'forever',
341    'Идеально, чтобы начать вести бюджет и понять, куда уходят деньги.':
342      'Perfect to start budgeting and understand where your money goes.',
343    'Неограниченное количество счетов и валют': 'Unlimited accounts and currencies',
344    'До 10 категорий': 'Up to 10 categories',
345    '1 источник дохода': '1 income source',
346    'Отчёты и графики': 'Reports and charts',
347    'Поиск по операциям': 'Transaction search',
348    'Бюджеты категорий': 'Category budgets',
349    'Безопасный доступ: PIN, FaceID': 'Secure access: PIN, FaceID',
350
351    'Популярный': 'Popular',
352    'Platinum': 'Platinum',
353    '499 ₽': '499 ₽',
354    '/ месяц': '/ month',
355    '1 499 ₽': '1 499 ₽',
356    '/ год': '/ year',
357    '5 988 ₽': '5 988 ₽',
358    'Навсегда по цене 2 лет': 'Lifetime at the price of 2 years',
359    '2 990 ₽': '2 990 ₽',
360    'единоразово': 'one-time',
361    'Полный учёт без рутины: импорт из банков, долги, цели и бюджеты под ваши задачи.':
362      'Full tracking without the chore: bank import, debts, goals, and budgets tailored to your needs.',
363    'Всё из Free': 'Everything in Free',
364    'Импорт из банков и авто-распределение операций':
365      'Bank import with auto-categorization',
366    'Синхронизация между разными устройствами': 'Sync across all your devices',
367    'Безлимит категорий расходов и доходов': 'Unlimited expense & income categories',
368    'Учёт долгов': 'Debt tracking',
369    'Повторяющиеся операции с напоминаниями': 'Recurring transactions with reminders',
370    'Финансовые цели': 'Financial goals',
371    '#метки к операциям': '#tags on transactions',
372    'Бюджеты за любой период и с любой даты': 'Budgets for any period and start date',
373    'Экспорт в CSV': 'CSV export',
374    'Веб-версия в браузере': 'Web version in your browser',
375    'Выбрать Platinum →': 'Choose Platinum →',
376
377    '✨ плюс AI': '✨ plus AI',
378    'Platinum PLUS': 'Platinum PLUS',
379    '999 ₽': '999 ₽',
380    '11 988 ₽': '11 988 ₽',
381    '14 990 ₽': '14 990 ₽',
382    'AI-ассистент, семейный учёт и инвестиции — для тех, кто ведёт финансы всей семьи.':
383      'AI assistant, family budgeting, and investments — for people managing the whole family\'s finances.',
384    'Всё из Platinum': 'Everything in Platinum',
385    'AI-ассистент по финансам': 'AI assistant for finances',
386    'Несколько профилей для раздельного учёта'
386:
387      'Multiple profiles for separate tracking',
388    'Учёт инвестиций с автоматическим импортом': 'Investment tracking with auto-import',
389    'Отключение рекламы': 'Ad-free',
390    'Выбрать Platinum PLUS': 'Choose Platinum PLUS',
391
392    // FAQ
393    'Частые вопросы': 'FAQ',
394    'Что обычно': 'What people usually',
395    'спрашивают': 'ask',
396    'Это правда бесплатно?': 'Is it really free?',
397    'Да. Бесплатный тариф — навсегда, без ограничения по времени. Его хватает, чтобы вести бюджет, ставить цели и видеть аналитику. Платная подписка нужна, если хочется AI, семейный учёт, импорт из банков или инвестиции.':
398      "Yes. The free plan is forever, with no time limit. It's enough to budget, set goals, and view analytics. The paid plan is for the AI, family budgeting, bank import, or investments.",
399    'Безопасно ли подключать банковские карты?': 'Is it safe to connect bank cards?',
400    'Импорт работает в режиме «только чтение» — никаких операций совершать нельзя. Данные шифруются, доступ к приложению защищён PIN и FaceID. Мы не передаём данные третьим лицам и не используем ваши цифры для рекламы.':
401      "Import is read-only — no transactions can be made. Data is encrypted, access is protected by PIN and FaceID. We don't share data with third parties and don't use your numbers for advertising.",
402    'Можно ли вести учёт вдвоём с партнёром или семьёй?':
403      'Can I budget together with a partner or family?',
404    'Да, в Platinum PLUS можно подключить до 5 пользователей. У каждого свои личные счета и общая часть бюджета. Видно, кто и когда сделал операцию, можно комментировать и помечать траты как личные или общие.':
405      'Yes — Platinum PLUS supports up to 5 users. Each has their own personal accounts and a shared portion of the budget. You see who made each transaction and when, can comment, and mark expenses as personal or shared.',
406    'Как работает AI-ассистент?': 'How does the AI assistant work?',
407    'AI видит ваши счета, операции, бюджеты и цели — и отвечает на вопросы простым языком. Можно спросить «куда уходят деньги», «хватит ли до зарплаты», «на чём сэкономить» — он подскажет на основе ваших данных, без шаблонных советов.':
408      'The AI sees your accounts, transactions, budgets, and goals — and answers questions in plain language. Ask "where does my money go", "will it last until payday", "what should I cut" — it answers from your data, not from generic advice.',
409    'Работает ли без интернета?': 'Does it work without internet?',
410    'Да, всё основное доступно офлайн. Когда появится сеть — данные синхронизируются между вашими устройствами и другими членами семьи.':
411      'Yes — everything essential works offline. Once you reconnect, data syncs across your devices and other family members.',
412    'Что если я передумаю и захочу отменить подписку?':
413      'What if I change my mind and want to cancel?',
414    'Подписка отменяется в один тап через настройки Apple ID или Google Play. Доступ к платным функциям сохраняется до конца оплаченного периода, а все данные остаются с вами навсегда — даже на бесплатном тарифе.':
415      'Cancel in one tap from Apple ID or Google Play settings. Paid features stay until the end of the peri
415od, and all your data stays with you forever — even on the free plan.',
416
417    // FINAL CTA
418    'Считать': 'Counting',
419    'проще': 'is easier',
420    ', чем тратить': ' than spending',
421    'Скачайте CoinKeeper и через минуту увидите первую картину своих финансов. Без регистрации, без сложных настроек, без подвоха.':
422      'Download CoinKeeper and see your first financial picture in a minute. No sign-up, no fiddly setup, no catches.',
423
424    // FOOTER
425    'Считать проще, чем тратить. Помогаем понять, где ваши деньги — с 2011 года.':
426      'Counting is easier than spending. We help you see where your money is — since 2011.',
427    'Приложение': 'App',
428    'Скачать': 'Download',
429    'Помощь': 'Help',
430    'Вопросы и ответы': 'Help center',
431    'Написать в Telegram': 'Chat on Telegram',
432    'Написать на почту': 'Email us',
433    'Следите за нами': 'Follow us',
434    'Telegram': 'Telegram',
435    'Вконтакте': 'VK',
436    'Instagram': 'Instagram',
437    'Threads': 'Threads',
438    'Правовое': 'Legal',
439    'Политика приватности': 'Privacy Policy',
440    'Лицензионное соглашение': 'Terms of Use',
441    'Кодекс делового поведения и этики': 'Code of Business Conduct & Ethics',
442    '© 2011–2026 CoinKeeper · ООО «Дизрапп»': '© 2011–2026 CoinKeeper · Disrapp LLC',
443    'Сделано в России · с любовью к цифрам': 'Made in Russia · with love for numbers',
444  };
445
446  var STORAGE_KEY = 'ck_landing_lang';
447  var snapshot = []; // { node, text } captured once at load
448  var ariaSnapshot = []; // { el, attr, text }
449  var origTitle = document.title;
450  var origDesc = (function () {
451    var m = document.querySelector('meta[name="description"]');
452    return m ? m.getAttribute('content') : '';
453  })();
454
455  function collect(root) {
456    var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {
457      acceptNode: function (n) {
458        if (!n.nodeValue || !n.nodeValue.trim()) return NodeFilter.FILTER_REJECT;
459        var p = n.parentNode;
460        if (!p) return NodeFilter.FILTER_REJECT;
461        var tag = p.nodeName;
462        if (tag === 'SCRIPT' || tag === 'STYLE') return NodeFilter.FILTER_REJECT;
463        if (p.closest && p.closest('[data-i18n-skip]')) return NodeFilter.FILTER_REJECT;
464        return NodeFilter.FILTER_ACCEPT;
465      },
466    });
467    var n;
468    while ((n = walker.nextNode())) snapshot.push({ node: n, text: n.nodeValue });
469
470    // aria-label attributes we want to translate
471    document.querySelectorAll('[aria-label]').forEach(function (el) {
472      ariaSnapshot.push({ el: el, attr: 'aria-label', text: el.getAttribute('aria-label') });
473    });
474    // alt attributes — translate the few we know about
475    document.querySelectorAll('img[alt]').forEach(function (el) {
476      var v = el.getAttribute('alt') || '';
477      if (EN[v.trim()]) ariaSnapshot.push({ el: el, attr: 'alt', text: v });
478    });
479  }
480
481  function apply(lang) {
482    var dict = lang === 'en' ? EN : null;
483
484    snapshot.forEach(function (entry) {
485      if (!dict) {
486        entry.node.nodeValue = entry.text;
487        return;
488      }
489      var text = entry.text;
490      var lead = text.match(/^\s*/)[0];
491      var tail = text.match(/\s*$/)[0];
492      var key = text.slice(lead.length, text.length - tail.length);
493      var tr = dict[key];
494      entry.node.nodeValue = tr ? lead + tr + tail : text;
495    });
496
497    ariaSnapshot.forEach(function (entry) {
498      if (!dict) {
499        entry.el.setAttribute(entry.attr, entry.text);
500        return;
501      }
502      var key = entry.text.trim();
503      var tr = dict[key];
504      entry.el.setAttribute(entry.attr, tr || entry.text);
505    });
506
507    if (dict) {
508      if (dict.__title) document.title = dict.__title;
509      var meta = document.querySelector('meta[name="description"]');
510      if (meta && dict.__desc) meta.setAttribute('content', dict.__desc);
511      document.documentElement.lang = 'en';
512    } else {
513      document.title = origTitle;
514      var metaR = document.querySelector('meta[name="description"]');
515      if (metaR) metaR.setAttribute('content', origDesc);
516      document.documentElement.lang = 'ru';
517    }
518
519    document.querySelectorAll('[data-lang-btn]').forEach(function (b) {
520      b.classList.toggle('active', b.getAttribute('data-lang-btn') === lang);
521      b.setAttribute('aria-pressed', String(b.getAttribute('data-lang-btn') === lang));
522    });
523
524    try {
525      localStorage.setItem(STORAGE_KEY, lang);
526    } catch (e) {}
527  }
528
529  function detectInitial() {
530    var saved;
531    try {
532      saved = localStorage.getItem(STORAGE_KEY);
533    } catch (e) {}
534    if (saved === 'en' || saved === 'ru') return saved;
535    var nav = (navigator.language || navigator.userLanguage || 'ru').toLowerCase();
536    return nav.indexOf('ru') === 0 ? 'ru' : 'en';
537  }
538
539  function init() {
540    collect(document.body);
541    apply(detectInitial());
542    document.querySelectorAll('[data-lang-btn]').forEach(function (b) {
543      b.addEventListener('click', function (e) {
544        e.preventDefault();
545        apply(b.getAttribute('data-lang-btn'));
546      });
547    });
548  }
549
550  if (document.readyState === 'loading') {
551    document.addEventListener('DOMContentLoaded', init);
552  } else {
553    init();
554  }
555})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.