Migrate legacy localized strings and remove runtime hardcoded UI text.

This copies old locale resources into the 2026 app, reuses legacy string keys where possible, and moves user-facing runtime text to string resources with missing entries added for all supported locales.

Made-with: Cursor
This commit is contained in:
2026-03-01 15:07:26 +01:00
parent 1823d0bf1b
commit a2cbb181d5
30 changed files with 1088 additions and 144 deletions

View File

@@ -0,0 +1,277 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title_map">Карта</string>
<string name="title_dashboard">Дашборд</string>
<string name="title_manage">Управление</string>
<string name="title_settings">Настройки</string>
<string name="title_device">Устройство</string>
<string name="title_location">Местоположение</string>
<string name="dialog_internet">Подключитесть к Интернету</string>
<string name="dialog_are_you_sure">Вы уверены?</string>
<string name="dialog_select_device_title">Выбрать устройство</string>
<string name="dialog_anonym_title">Продолжить анонимно?</string>
<string name="text_setup_error_title">Ошибка</string>
<string name="text_setup_finish">Новое устройство успешно добавлено!</string>
<string name="text_your_devices">Ваши устройства</string>
<string name="text_anonymous_user">Анонимный пользователь</string>
<string name="err_short_password">Пароль Wifi должен содержать минимум 8 символов</string>
<string name="err_no_name">Вы не указали имя</string>
<string name="err_no_model">Вы не выбрали модель</string>
<string name="button_ok">ОК</string>
<string name="button_continue">Продолжить</string>
<string name="button_select">Выбрать</string>
<string name="button_cancel">Отменить</string>
<string name="text_privacy_policy"><b><u>Политикой конфиденциальности</u></b></string>
<string name="button_sign_in_google">Войти с помощью Google</string>
<string name="button_sign_in_facebook">Войти с помощью Facebook</string>
<string name="button_look_for_device">Поиск устройства</string>
<string name="button_finish">Завершить</string>
<string name="button_continue_anonym">Продолжить анонимно</string>
<string name="button_exit_setup">Выйти из установки</string>
<string name="button_abort">Прервать</string>
<string name="button_wait">Ожидание…</string>
<string name="button_setup">Добавить устройство</string>
<string name="button_connecting">Подключение…</string>
<string name="hint_password">Пароль</string>
<string name="hint_device_name">Имя устройства</string>
<string name="hint_setup_name">Имя</string>
<string name="hint_setup_model">Модель</string>
<string name="content_settings">Настройки</string>
<string name="sensor_temperature">Температура</string>
<string name="sensor_pressure">Давление</string>
<string name="sensor_dust">Твердые частицы</string>
<string name="sensor_radioactivity">Радиоактивность</string>
<string name="pref_account_header">Аккаунт</string>
<string name="pref_device_header">Устройство</string>
<string name="toast_copied">Скопировано</string>
<string name="dialog_enable_wifi_title">Включите Wi-Fi</string>
<string name="dialog_select_wifi_title">Выбрать сеть Wi-Fi</string>
<string name="dialog_exit_setup_text">Вы уверены, что хотите прервать установку? Вероятно, в следующий раз перед установкой придется сбросить устройство AirMQ</string>
<string name="dialog_exit_setup_title">Прервать установку</string>
<string name="title_device_config">Управление</string>
<string name="dialog_about_title">О приложении</string>
<string name="dialog_anonym_mesage">Вы не сможете сохранять настройки и добавлять новые устройства AirMQ</string>
<string name="text_sign_in">Войти в AirMQ</string>
<string name="text_setup_error">Ошибка во время установки:</string>
<string name="text_whats_new">Что нового</string>
<string name="text_fixes">Исправления</string>
<string name="text_setup_1">Включите или перезагрузите устройство AirMQ, после чего оно станет обнаруживаемым в течение 90 секунд. Затем нажмите кнопку \"Выбрать устройство\". На некоторых устройствах для корректного соединения с устройством необходим включенный GPS.</string>
<string name="text_setup_2">Введите имя устройства и выберите его модель</string>
<string name="text_setup_3">Выберите сеть Wi-Fi, к которой хотите подключить ваше устройство</string>
<string name="text_setup_steps">Шаг %d из 3</string>
<string name="text_setup_label">Установка нового устройства</string>
<string name="text_terms_conditions"><b><u>Условиями и положениями</u></b></string>
<string name="text_please_sign_in">Настройки не синхронизируются, пожалуйста, войдите в систему</string>
<string name="text_sign_in_small">Войдите в систему для добавления устройств</string>
<string name="err_no_device_ap">Вы не выбрали сеть Wi-Fi</string>
<string name="button_sign_in">Войти</string>
<string name="button_register">Зарегистрировать</string>
<string name="button_copy_log">Скопировать лог</string>
<string name="hint_setup_wifi">Сеть Wi-Fi</string>
<string name="content_desc_user_pic">Картинка пользователя</string>
<string name="content_device_icon">Иконка устройства</string>
<string name="content_network_icon">Иконка сети</string>
<string name="content_airmq_logo">Логотип AirMQ</string>
<string name="sensor_humidity">Влажность</string>
<string name="pref_logout_title">Выйти</string>
<string name="pref_prefix_title">Префикс точки доступа AirMQ</string>
<string name="pref_wpakey_title">Пароль по умолчанию</string>
<string name="pref_versions">Версии файлов конфигурации</string>
<string name="pref_about">О приложении</string>
<string name="pref_notifications_title">Уведомлять, когда устройство становится неактивно</string>
<string name="notification_device_status_title">Ваше устройство отключилось от сети!</string>
<string name="notification_device_status_text">%s теперь неактивен. Нажмите на это уведомление, чтобы открыть конфигурацию устройства</string>
<string name="toast_oauth_failed">Ошибка авторизации Google</string>
<string name="snackbar_not_registered">Требуется регистрация</string>
<string name="text_policy_label">Входя в систему, вы соглашаетесь с нашими %1$s и %2$s</string>
<string name="text_what_does_it_mean"><u>Что это значит?</u></string>
<string name="text_air_quality">Качество воздуха</string>
<string name="filter_hour">Час</string>
<string name="filter_day">День</string>
<string name="filter_week">Неделя</string>
<string name="filter_month">Месяц</string>
<string name="pref_fullscreen">Безрамочный интерфейс</string>
<string name="text_error">Ошибка</string>
<string name="text_error_connecting">Устройство не отвечает. Попробуйте выключить мобильный интернет и повторить.</string>
<string name="button_setup_in_progress">Установка…</string>
<string name="button_start_setup">Начать установку</string>
<string name="text_device_name">Имя</string>
<string name="text_device_id">ID устройства</string>
<string name="text_device_ip">IP-Адрес</string>
<string name="text_device_firmware">Версия прошивки</string>
<string name="text_device_location">Местоположение</string>
<string name="text_device_location_unset">Устройство не зарегистрировано</string>
<string name="text_device_visibility">Видимость</string>
<string name="text_device_visibility_visible">Опубликовано</string>
<string name="text_device_visibility_private">Скрыто</string>
<string name="text_device_visibility_not_registered">Зарегистрируйте устройство, чтобы менять видимость</string>
<string name="button_rename">Переименовать</string>
<string name="button_update">Обновить</string>
<string name="button_unregister">Сбросить</string>
<string name="button_hide">Скрыть</string>
<string name="button_publish">Опубликовать</string>
<string name="button_reboot">Перезагрузить</string>
<string name="button_reset">Сбросить</string>
<string name="button_view_on_map">Открыть на карте</string>
<string name="hint_new_name">Новое имя</string>
<string name="dialog_rename_title">Переименовать</string>
<string name="err_short_name">Имя слишком короткое!</string>
<string name="toast_error">Ошибка</string>
<string name="toast_rebooting">Перезагрузка…</string>
<string name="toast_resetting">Сброс…</string>
<string name="pref_offline_devices_title">Показывать недоступные устройства</string>
<string name="button_open">Открыть</string>
<string name="pref_advanced">Включить продвинутые настройки</string>
<string name="pref_advanced_header">Продвинутые настройки</string>
<string name="pref_application_header">Приложение</string>
<string name="pref_advanced_config">Включить расширенную конфигурацию устройства</string>
<string name="text_device_config_version">Версия конфигурации</string>
<string name="text_device_uptime">Аптайм</string>
<string name="content_sensor_icon">Иконка датчика</string>
<string name="text_no_data">Нет данных</string>
<string name="dialog_widget_delete_title">Удалить виджет</string>
<string name="dialog_widget_delete_text">Вы уверены, что хотите удалить этот виджет?</string>
<string name="button_add_widget">Добавить виджет</string>
<string name="city_minsk">Минск</string>
<string name="city_barauliany">Боровляны</string>
<string name="city_navapolack">Новополоцк</string>
<string name="city_mahiliou">Могилев</string>
<string name="city_hrodna">Гродно</string>
<string name="city_homiel">Гомель</string>
<string name="city_polack">Полоцк</string>
<string name="city_barysau">Борисов</string>
<string name="city_narac">Нарочь</string>
<string name="city_salihorsk">Солигорск</string>
<string name="city_brest">Брест</string>
<string name="city_babrujsk">Бобруйск</string>
<string name="pref_city_title">Город в дашборде</string>
<string name="dialog_select_city_title">Выберите город</string>
<string name="toast_widget_login">Войдите в систему, чтобы добавлять виджеты</string>
<string name="text_yesterday">Вчера</string>
<string name="text_now">Сейчас</string>
<string name="text_no_device">Это устройство было удалено</string>
<string name="text_hour_ago">Час назад</string>
<string name="text_week_ago">Неделю назад</string>
<string name="text_month_ago">Месяц назад</string>
<string name="dialog_widget_add_title">Добавить виджет</string>
<string name="text_device_wifi">Сеть WiFi</string>
<string name="text_device_wifi_secondary">Запасная сеть WiFi</string>
<string name="text_days">д</string>
<string name="text_hours">ч</string>
<string name="text_minutes">м</string>
<string name="text_move_up">Переместить вверх</string>
<string name="teext_move_down">Переместить вниз</string>
<string name="text_configure">Настроить</string>
<string name="text_add_to_home_screen">Добавить на рабочий стол</string>
<string name="text_remove">Убрать</string>
<string name="snackbar_widget_removed">Виджет удален</string>
<string name="button_undo">Отменить</string>
<string name="text_loading">Загрузка…</string>
<string name="content_back">Назад</string>
<string name="title_widget_constructor">Добавление виджета</string>
<string name="text_choose_widget_layout">Выберите вид виджета</string>
<string name="text_no_location">Местоположение не выбрано</string>
<string name="text_display_heatmap">Показывать хитмэп</string>
<string name="text_display_sensors">Показывать устройства</string>
<string name="text_display_both">Показывать все</string>
<string name="text_widget_map">Карта</string>
<string name="text_device">Устройство</string>
<string name="text_widget_chart">График</string>
<string name="text_choose_sensor">Выберите датчик</string>
<string name="text_choose_timeframe">Выберите временной промежуток</string>
<string name="text_no_devices">У вас нет добавленных устройств</string>
<string name="text_latest_news">Последние новости</string>
<string name="text_widget_news">Новости</string>
<string name="button_change">Изменить</string>
<string name="text_nothing_to_show">Нет устройств</string>
<string name="title_city">Город</string>
<string name="text_detect_automatically">Определять автоматически</string>
<string name="text_no_city_hint"><u>Нет вашего города?</u></string>
<string name="text_wrong_city_hint"><u>Неправильный город?</u></string>
<string name="text_city_warning">Эта опция определяет, какие данные будут отображаться в дашборде. Если город не выбран, установится стандартный вариант.</string>
<string name="text_no_city">"Если вы не видете ваш город, значит в нем нет устройств "</string>
<string name="button_enter_manual">Ввести вручную</string>
<string name="text_welcome">Добро пожаловать в AirMQ</string>
<string name="text_welcome_second">Узнай чем дышит твой город</string>
<string name="text_permission">Необходимо разрешение:</string>
<string name="text_permission_second">• Местоположение</string>
<string name="text_permission_third">Местоположение необходимо для предоставления точных данных о воздухе в вашем регионе</string>
<string name="button_allow">Разрешить</string>
<string name="button_not_now">Не сейчас</string>
<string name="button_skip">Пропустить</string>
<string name="button_next">Далее</string>
<string name="text_link"><u>Ссылка</u></string>
<string name="dialog_secondary_wifi">Запасная сеть WiFi</string>
<string name="toast_done">Готово</string>
<string name="toast_disconnected">Устройство отключилось</string>
<string name="text_device_narodmon">Отправлять данные в сервис <u>narodmon.ru</u></string>
<string name="text_device_narodmon_title">Narodmon.ru</string>
<string name="text_device_luftdata">Отправлять данные в сервис <u>sensor.community</u></string>
<string name="text_device_luftdata_title">Sensor.community</string>
<string name="text_aqi_title">Качество атмосферного воздуха</string>
<string name="text_rad_title">Уровень радиоактивности</string>
<string name="text_rad">"Датчики радиоактивности сделаны на базе счетчика Гейгера-Мюллера и измеряют фоновое гамма-радиоактивное излучение в месте установки. Значения на индикаторах и графиках соответствуют мощности эквивалентной дозы радиоактивного излучения, которая характеризует степень воздействия гамма-излучения на организм. Мощность эквивалентной дозы измеряется в зивертах/час (Зв/ч), для удобства отображения принята единица миллизиверт/час (мЗв/ч) "</string>
<string name="text_aqi">"Датчики, применяемые в нашем проекте, собирают информацию о состоянии наружного окружающего воздуха, погоды, а также фонового радиоактивного излучения. Одним из важных показателей качества воздуха, непосредственно влияющих на здоровье человека, является содержание твердых взвешенных частиц и аэрозолей (Particulate Matter, PM), которые мы привыкли называть пылью. Частицы могут появляться в воздухе как в результате природных и стихийных явлений (пылевые бури, пожары, морская соляная пыль), так и в результате деятельности человека - промышленности, транспорта, домашнего отопления, сжигания мусора. Измерение количества твердых частиц производится по трем категориям: размером до 1, 2.5 и 10 мкм. Наиболее часто используемым показателем является массовая концентрация твердых частиц размером до 2.5 мкм, PM2.5, которая указывает на массу пылевых частиц в единице объема воздуха и измеряется в мкГ/м3. Для удобства индикации степени воздействия твердых частиц в атмосфере на организм человека применяется следующая цветовая шкала. Для оценки взяты средние значения концентрации частиц PM2.5 за последние 24 часа. "</string>
<string name="text_what_does_it_mean_title">Что измеряют датчики AirMQ?</string>
<string name="notification_device_config_title">Доступно обновление</string>
<string name="notification_device_config_text">Ваше устройство \"%s\" готово к обновлению</string>
<string name="dialog_upload_title">Загрузка…</string>
<string name="toast_not_on_network">Вы должны быть в одной сети WiFi с вашим устройством.</string>
<string name="button_select_device">Выбрать устройство</string>
<string name="content_search">Поиск</string>
<string name="content_my_location">Мое местоположение</string>
<string name="button_close">Закрыть</string>
<string name="map_search_hint">Имя устройства или город</string>
<string name="map_search_empty">Результатов пока нет</string>
<string name="map_arrow_left">&lt;</string>
<string name="map_arrow_right">&gt;</string>
<string name="map_chart_placeholder">Заглушка графика</string>
<string name="map_open_device_not_wired">Открытие устройства %1$s пока не подключено</string>
<string name="map_status_online">Онлайн</string>
<string name="map_status_offline">Офлайн</string>
<string name="map_my_location_coming_soon">Логика моего местоположения будет добавлена позже</string>
<string name="map_previous_period">Предыдущий %1$s</string>
<string name="map_next_period">Следующий %1$s</string>
<string name="map_failed_to_load_items">Не удалось загрузить элементы карты</string>
<string name="map_no_city">Нет города</string>
<string name="map_time_last_hour">Последний час</string>
<string name="map_time_today">Сегодня</string>
<string name="map_time_this_week">Эта неделя</string>
<string name="map_time_this_month">Этот месяц</string>
<string name="settings_save_failed">Не удалось сохранить настройки</string>
<string name="title_debug">Отладка</string>
<string name="manage_open_widget_constructor">Открыть конструктор виджетов</string>
<string name="back_to_dashboard">Назад к дашборду</string>
<string name="manage_set_location">Задать местоположение</string>
<string name="dashboard_subtitle">Эквивалент нижней вкладки: дашборд</string>
<string name="dashboard_open_map">Открыть карту</string>
<string name="dashboard_open_manage">Открыть управление</string>
<string name="dashboard_open_city">Открыть город</string>
<string name="dashboard_open_device">Открыть устройство</string>
<string name="dashboard_open_news">Открыть новости</string>
<string name="screen_splash_title">Заставка</string>
<string name="screen_continue_to_wizard">Продолжить в мастер</string>
<string name="screen_wizard_title">Мастер</string>
<string name="screen_finish_wizard">Завершить мастер</string>
<string name="screen_mock_device_id">Тестовый deviceId: %1$s</string>
<string name="back_to_settings">Назад к настройкам</string>
<string name="back_to_manage">Назад к управлению</string>
<string name="screen_log_in_to_manage">Войти в управление</string>
<string name="news_open_detail">Открыть детали новости</string>
<string name="news_detail_title">Детали новости</string>
<string name="screen_mock_news_id">Тестовый newsId: %1$s</string>
<string name="widget_select_map_location">Выбрать локацию виджета карты</string>
<string name="widget_open_map_constructor">Открыть конструктор карты</string>
<string name="widget_open_chart_constructor">Открыть конструктор графика</string>
<string name="widget_open_news_constructor">Открыть конструктор новостей</string>
<string name="back_to_widget_constructor">Назад к конструктору виджетов</string>
<string name="widget_map_constructor_title">Конструктор карты</string>
<string name="widget_chart_constructor_title">Конструктор графика</string>
<string name="widget_news_constructor_title">Конструктор новостей</string>
<string name="back_to_news">Назад к новостям</string>
<string name="mock_user_name">Anton Betsun</string>
<string name="mock_user_email">messbees@gmail.com</string>
<string name="mock_device_name_42">AirMQ #42</string>
<string name="mock_device_name_17">AirMQ #17</string>
</resources>