Files
xianyan/lib/l10n/languages/ru.dart
Developer ae1df22732 feat: v6.10.3 多语言翻译补全 + 17项功能修复
- 引导页协议多语言支持(languageId传递)
- 登录页双书名号修复 + 注册页协议勾选
- 个人中心页面多语言(18个翻译键)
- 网络断开提示增加关闭/刷新按钮
- 了解我们:新增秋叶qy开发者 + ayk签名修改 + 贡献者精简 + 微风暴微信搜索
- iOS快捷按钮重复修复(删除Info.plist静态定义)
- 测试账号123456警告提示
- 扫码登录自动跳转(HTTP轮询+WebSocket双通道)
- 登录页老用户按钮改次要色
- Syncfusion图表崩溃修复(DeferredBuilder+animationDuration:0)
- macOS标题栏跟随软件夜间模式
- 平台兼容分发渠道弹窗
- 软件著作权图片+交叉水印
- 桌面小部件平台兼容说明默认收起
- iOS/macOS图标更新+名称确认为闲言
- 12个语言文件补全roleNative+7个分发渠道翻译字段
2026-06-02 04:50:32 +08:00

1771 lines
100 KiB
Dart
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/// ============================================================
/// 闲言APP — 俄语翻译数据
/// 创建时间: 2026-05-29
/// 更新时间: 2026-06-01
/// 作用: 俄语(ru)翻译文本
/// 上次更新: 新增accountSettings/dataManagement/source/favorites/offline模块翻译
/// ============================================================
import '../types/t.dart';
const ru = T(
nav: TNav(
home: 'Сяньянь',
discover: 'Обзор',
profile: 'Я',
footprint: 'Следы',
inspiration: 'Вдохновение',
),
common: TCommon(
cancel: 'Отмена',
ok: 'ОК',
save: 'Сохранить',
confirm: 'Подтвердить',
clear: 'Очистить',
reset: 'Сбросить',
delete: 'Удалить',
success: 'Успешно',
failed: 'Не удалось',
enabled: 'Вкл',
disabled: 'Выкл',
loading: 'Загрузка...',
view: 'Просмотр',
search: 'Поиск настроек...',
entriesCountUnit: 'шт.',
copyright: '© 2026 Команда Сяньянь',
done: 'Готово',
all: 'Все',
refresh: 'Обновить',
retry: 'Повторить',
copy: 'Копировать',
),
home: THome(
base: THomeBase(
batteryCritical: 'Батарея почти разряжена! Зарядите 🔴',
batteryLow: 'Батарея разряжается, не забудьте зарядить 💛',
defaultSentence: '',
defaultFeedName: 'Xianyan',
authorPrefix: '',
numberWan: 'w',
numberThousand: 'k',
dailyRecommendation: 'Рекомендация дня',
findingNewSentences: 'Поиск новых цитат...',
gettingTodayRecommendation: 'Загрузка рекомендации...',
createCard: 'Создать карточку',
editThisSentence: 'Редактировать цитату',
noSentences: 'Нет цитат',
pullDownToRefresh: 'Потяните для обновления',
networkConnectionFailed: 'Сбой подключения к сети',
clickToRetry: 'Нажмите для повтора',
sentenceCopied: 'Цитата скопирована',
offlineMode: 'Офлайн — Кэшированные данные',
quoteSquare: 'Площадь цитат',
dragToSort: '📖 Перетащите для сортировки',
sortNewest: 'Новые',
sortHot: 'Популярные',
sortClassic: 'Классика',
noContent: '📋 Нет содержимого',
recentlyOpened: '🕐 Недавно открытые',
selectCustomTool: '🔧 Выбрать инструмент',
collapse: 'Свернуть',
openAnyPageAutoRecord: 'Откройте любую страницу\nАвтозапись',
longPressToSet: 'Удерживайте для настройки',
shareAppSignature: '— Xianyan APP',
shareFailed: 'Не удалось поделиться',
),
sentenceDetail: TSentenceDetail(
longPressToSelect: 'Долгое нажатие для выделения',
originalContent: '📝 Оригинальный контент',
liked: 'Нравится',
like: 'Нравится',
likeCanceled: 'Лайк удалён',
likeToast: '👍 Нравится',
favorited: 'В избранном',
favorite: 'В избранное',
favoriteCanceled: 'Удалено из избранного',
favoriteToast: 'В избранном',
readLaterMarked: 'Отмечено',
readLaterLabel: 'Читать позже',
alreadyInReadLater: 'Уже в списке для чтения',
share: 'Поделиться',
shareSentence: 'Поделиться цитатой',
sentenceDetail: 'Детали цитаты',
bookmarkAdded: '🔖 Закладка добавлена',
bookmarkRemoved: '🔖 Закладка удалена',
bookmark: '🔖 Закладка',
tag: '🏷️ Тег',
externalSearch: '🔍 Внешний поиск',
readAloud: '🔊 Читать вслух',
searchEmpty: 'Пустой поисковый запрос',
searchUrlError: 'Не удалось создать URL поиска',
searchFailed: 'Внешний поиск не удался',
nfcShareSuccess: '📡 NFC-отправка успешна',
nfcShareFailed: 'NFC-отправка не удалась',
addTag: '🏷️ Добавить тег',
tagInputHint: 'Введите название тега',
tagAdded: '🏷️ Тег добавлен',
tagAddFailed: 'Не удалось добавить тег',
addLabel: 'Добавить',
editSentence: '✏️ Редактировать цитату',
blocked: '🚫 Заблокировано',
block: '🚫 Заблокировать',
notInterestedToast: '🙈 Отмечено как неинтересное',
notInterested: '🙈 Не интересно',
searchQuery: '🔍 Искать "{0}"',
),
readLater: TReadLater(
readLaterLabel: 'Читать позже',
readLaterPageTitle: '📖 Читать позже',
readLaterCountFormat: '{0} элементов',
readLaterEmpty: 'Нет элементов для чтения',
readLaterEmptyHint: 'Свайпните по цитате, чтобы добавить',
imageType: 'Изображение',
videoType: 'Видео',
fileType: 'Файл',
linkType: 'Ссылка',
docType: 'Документ',
textType: 'Текст',
imageEmoji: '🖼️ Изображение',
videoEmoji: '🎬 Видео',
fileEmoji: '📄 Файл',
textEmoji: '📝 Текст',
archiveLabel: 'Архив',
fileLabel: 'Файл',
removedFromReadLater: 'Удалено из списка чтения',
operationFailed: 'Операция не удалась',
detailLabel: 'Подробности',
closeLabel: 'Закрыть',
sizeLabel: 'Размер',
typeLabel: 'Тип',
searchPlaceholder: 'Поиск в Читать позже',
allLabel: 'Все',
selectedLabel: 'Выбрано',
cancelLabel: 'Отмена',
selectAllLabel: 'Выбрать все',
deleteLabel: 'Удалить',
markReadLabel: 'Отметить прочитанным',
markedReadLabel: 'Отмечено прочитанным',
markAllReadLabel: 'Отметить всё прочитанным',
markAllReadConfirm: 'Отметить все элементы как прочитанные?',
confirmLabel: 'Подтвердить',
batchDeletedLabel: 'Удалено {0} элементов',
sortLabel: 'Сортировка',
sortTimeDesc: 'Время (Новые)',
sortTimeAsc: 'Время (Старые)',
sortType: 'По типу',
sortSize: 'По размеру',
copyLabel: 'Копировать',
copiedLabel: 'Скопировано',
copyLinkLabel: 'Копировать ссылку',
shareLabel: 'Поделиться',
removeReadLaterLabel: 'Убрать из Читать позже',
openBrowserLabel: 'Открыть в браузере',
),
),
discover: TDiscover(
base: TDiscoverBase(
browse: '📋 Обзор',
likes: '👍 Нравится',
favorite: '⭐ Избранное',
readLater: '📖 Позже',
notes: '📝 Заметки',
loginToSync: 'Войдите для синхронизации',
login: 'Войти',
noInspiration: 'Пока нет вдохновения',
refresh: 'Обновить',
listView: 'Список',
gridView: 'Карточки',
pinned: 'Закреплено',
conversations: 'Диалоги',
pullDownTools: '⬆️ Потяните для инструментов',
remark: '✏️ Заметка',
originalName: 'Оригинальное имя',
remarkPlaceholder: 'Введите заметку (пусто = оригинал)',
saveRemark: 'Сохранить заметку',
loginRequired: 'Сначала войдите',
comingSoon: 'Скоро ✨',
browseHistory: 'История просмотров',
likesHistory: 'История лайков',
myNotes: 'Мои заметки',
readLaterFull: 'Читать позже',
makeCard: '🎨 Создать карточку',
favoriteAction: '👍 В избранное',
tryOtherCategory: 'Попробуйте другую категорию',
shareAction: 'Поделиться',
shareText: 'Поделиться вдохновением',
cardSaved: 'Карточка сохранена',
cardSaveFailed: 'Ошибка сохранения',
copiedToClipboard: 'Скопировано в буфер обмена',
errorLoading: 'Ошибка загрузки, нажмите для повтора',
favorited: 'В избранном',
relatedRecommend: '🎯 Похожие',
notInterested: 'Не интересно',
dailyRead: '📖 Читать сегодня',
changeGroup: 'Обновить',
relatedRecommendShort: 'Похожие',
noRecommendContent: 'Нет рекомендаций',
inspiration: 'Вдохновение',
stopReading: 'Стоп',
readAloud: 'Читать вслух',
inspirationCategory: '🏷️ Категории',
searchLabel: 'Поиск',
loadMore: 'Загрузить ещё',
// Названия и описания сессий
sessionReadLater: 'Читать позже',
sessionReadLaterDesc: 'Сохранить контент для чтения позже',
sessionInspiration: 'Вдохновение',
sessionInspirationDesc: 'Популярные цитаты · Категории · Выбор дня',
sessionFootprint: 'История',
sessionFootprintDesc: 'Чтение · Лайки · Избранное · Позже · Заметки',
sessionDailyCard: 'Карта дня',
sessionDailyCardDesc: 'Цитата дня · Сменить стиль · Поделиться',
sessionTemplate: 'Шаблоны обоев',
sessionTemplateDesc: 'Шаблоны · Категории · Мгновенное применение',
sessionReadingReport: 'Отчёт о чтении',
sessionReadingReportDesc:
'Неделя/Месяц/Год · Тренды · Тепловая карта · Достижения',
sessionWeather: 'Поэзия и погода',
sessionWeatherDesc:
'Погода в реальном времени · Контекстные стихи · Настроение',
sessionPoetry: 'Стих дня',
sessionPoetryDesc:
'Рекомендация дня · Полное стихотворение · Перевод и анализ',
sessionDailyFortune: 'Гороскоп дня',
sessionDailyFortuneDesc: 'Гороскоп · 6D-анализ · Счастливые показатели',
sessionSolarTerm: 'Солнечные термины',
sessionSolarTermDesc: '24 солнечных термина · Стихи · Обычаи',
sessionKnowledgeGraph: 'Граф знаний',
sessionKnowledgeGraphDesc:
'Исследовать связи между стихами, авторами и темами',
sessionStudyPlan: 'План обучения',
sessionStudyPlanDesc: 'Составить план, заниматься каждый день',
sessionProgress: 'Прогресс',
sessionProgressDesc: 'Сегодня · Неделя · Месяц · Год · Обратный отсчёт',
sessionFileTransfer: 'Передача файлов',
sessionFileTransferDesc: 'LAN · Bluetooth · NFC · WebRTC · USB',
sessionRssFeed: 'RSS-лента',
sessionRssFeedDesc: 'Сторонние RSS/XML подписки',
sessionTranslate: 'Переводчик',
sessionTranslateDesc: 'Многоязычный перевод · Автоопределение языка',
sessionLeisure: 'Досуг',
sessionLeisureDesc: 'Цветы · Еда · Достопримечательности · Хронология',
),
chatFlow: TChatFlow(
chatFlow: '',
chatSettings: 'Настройки чата',
defaultConversation: '',
searchMessages: '',
categoryAll: '',
categoryHot: '',
categoryLove: '',
categoryNature: '',
categoryMotivate: '',
categoryLiterature: '',
categoryMovie: '',
expandCategories: '',
collapseCategories: '',
inputPlaceholderChat: '',
inputPlaceholderReadlater: '',
attachmentGallery: '',
attachmentCamera: '',
attachmentVideo: '',
attachmentAudio: '',
attachmentFile: '',
attachmentLocation: '',
attachmentLink: '',
attachmentRichText: '',
hiddenSessions: '',
noHiddenSessions: '',
swipeToHide: '',
unhide: '',
hidden: '',
searchSessionOrContent: 'Поиск сессии или содержимого…',
noSearchResults: 'Результаты не найдены',
sessionSection: '📱 Сессии',
messageContentSection: '💬 Содержание сообщения',
pin: '📌 Закрепить',
unpin: 'Открепить',
hideSession: '👁️‍🗨️ Скрыть',
unhideSession: '👁️ Показать',
remark: '✏️ Заметка',
markAsRead: '👁️ Прочитано',
markAsUnread: '👁️ Не прочитано',
muteNotifications: '🔕 Отключить уведомления',
unmuteNotifications: '🔔 Включить уведомления',
hideSettings: '⚙️ Настройки скрытия',
deleteSession: '🗑️ Удалить',
emptyReadlater: 'Нет отложенного для чтения',
emptyChat: 'Нет сообщений',
emptyReadlaterHint: 'Сохраните контент для чтения позже 📖',
emptyChatHint: 'Отправьте сообщение, чтобы начать разговор',
newConversation: '✨ Новый разговор',
conversationNamePlaceholder: 'Название разговора',
create: 'Создать',
sentToCategory: 'Отправлено в',
sent: '✈️ Отправлено',
readlaterList: '📋 Список отложенного',
manageTags: '🏷️ Управление тегами',
manageFolders: '📁 Управление папками',
cloudSync: '☁️ Облачная синхронизация',
aiSummary: '🤖 ИИ-резюме',
sharedCollab: '👥 Совместная работа',
deviceSync: '📱 Синхронизация устройств',
updateWidget: '🏠 Обновить виджет',
clipboardMonitor: '📋 Монитор буфера обмена',
markAllRead: '✅ Пометить всё как прочитанное',
exportContent: '📤 Экспорт содержимого',
clearReadlater: '🗑️ Очистить отложенное',
allMarkedRead: 'Всё помечено как прочитанное',
clearReadlaterConfirm:
'Очистить {count} элементов отложенного? Это действие нельзя отменить.',
clearButton: 'Очистить',
readlaterCleared: 'Отложенное очищено',
readlaterStats:
'📊 Всего: {total} · Прочитано: {read} · Непрочитано: {unread}',
tagManagement: '🏷️ Управление тегами',
addTagButton: ' Добавить',
noTags: 'Нет тегов',
addTagHint: 'Нажмите, чтобы добавить теги',
addTagTitle: '🏷️ Добавить тег',
tagNamePlaceholder: 'Название тега',
tagDeleted: 'Тег "{tag}" удалён',
tagAdded: 'Тег "{tag}" добавлен',
tagFilterTitle: '🏷️ Тег: {tag}',
tagMessageCount: '{count} сообщений',
folderManagement: '📁 Управление папками',
createFolderButton: ' Новая',
noFolders: 'Нет папок',
createFolderHint: 'Нажмите, чтобы создать папку',
folderDeleted: 'Папка "{name}" удалена',
createFolderTitle: '📁 Новая папка',
folderNamePlaceholder: 'Название папки',
folderCreated: 'Папка "{name}" создана',
renameFolderTitle: '✏️ Переименовать папку',
messageCountUnit: '{count} сообщений',
addTagAction: 'Добавить',
aiSummaryAction: 'ИИ-резюме',
smartTagAction: 'Умные теги',
archiveToFolder: '📁 Архивировать в папку',
existingTags: 'Существующие теги: {tags}',
generatingSummary: '🤖 Генерация резюме...',
summaryCopied: 'Резюме скопировано',
aiSummaryUnavailable: 'ИИ-резюме недоступно',
aiSummaryFailed: 'Ошибка ИИ-резюме: {error}',
analyzingTags: '🏷️ Анализ...',
emptyContentNoTags: 'Пустой контент, невозможно предложить теги',
noTagSuggestions: 'ИИ не предлагает теги',
smartTagSuggestionTitle: '🏷️ Умные предложения тегов',
aiSuggestedTags: 'ИИ предложенные теги: {tags}',
tagsAddedCount: 'Добавлено тегов: {count}',
addAllTags: 'Добавить все',
selectFolder: '📁 Выбрать папку',
archivedToFolder: 'Архивировано в "{name}"',
createFolderFirst: 'Сначала создайте папку',
exportAsJsonAction: '📋 Экспорт в JSON',
exportAsMarkdownAction: '📝 Экспорт в Markdown',
exportAsZipAction: '📦 Экспорт в ZIP',
exportedToClipboardJson:
'{count} элементов экспортировано в буфер обмена (JSON)',
exportedToClipboardMarkdown:
'{count} элементов экспортировано в буфер обмена (Markdown)',
readlaterExportTitle: '📖 Экспорт отложенного',
zipExportSuccess: 'ZIP-экспорт успешен',
exportFailedMsg: 'Ошибка экспорта: {error}',
readlaterExportSubject: 'Экспорт отложенного',
syncing: '☁️ Синхронизация...',
syncComplete:
'Синхронизация завершена ↑{uploaded} ↓{downloaded} ⚡{conflicts}',
syncFailed: 'Ошибка синхронизации: {error}',
noContentForSummary: 'Нет контента для генерации резюме',
generatingAiSummary: '🤖 Генерация ИИ-резюме...',
summaryCopiedToClipboard: 'Резюме скопировано в буфер обмена',
aiSummaryUnavailableRetry: 'ИИ-резюме недоступно, попробуйте позже',
sharedCollabTitle: '👥 Совместная работа',
createButton: ' Создать',
noSharedLists: 'Нет общих списков',
createSharedListHint: 'Создайте общий список для совместной работы',
sharedListStats: '{members} участников · {messages} сообщений',
createSharedListTitle: '👥 Создать общий список',
listNamePlaceholder: 'Название списка',
sharedListCreated: 'Общий список "{name}" создан',
membersCount: 'Участники: {count}',
messagesCount: 'Сообщения: {count}',
createdDate: 'Создано: {date}',
leftSharedList: 'Вы покинули общий список',
leaveList: 'Покинуть список',
discoveringDevices: '📱 Поиск устройств...',
noDevicesFound: 'Устройства не найдены, убедитесь, что они подключены',
selectTargetDevice: '📱 Выберите целевое устройство',
syncingToDevice: '📱 Синхронизация с {device}...',
syncSendFailed: 'Ошибка отправки синхронизации',
deviceDiscoveryFailed: 'Ошибка поиска устройств: {error}',
widgetUpdated: '🏠 Виджет обновлён',
widgetUpdateFailed: 'Ошибка обновления виджета: {error}',
clipboardMonitorTitle: '📋 Монитор буфера обмена',
clipboardStatusMonitoring: 'Статус: Мониторинг',
clipboardStatusOff: 'Статус: Выключен',
clipboardMonitorEnabled: '📋 Монитор буфера обмена включён',
clipboardMonitorDisabled: '📋 Монитор буфера обмена выключен',
enableMonitor: 'Включить монитор',
disableMonitor: 'Выключить монитор',
viewClipboard: 'Просмотр буфера обмена',
clipboardContent: '📋 Содержимое буфера обмена: {content}',
clipboardEmpty: 'Буфер обмена пуст',
),
chatSettings: TChatSettings(
appearance: '',
backgroundImage: '',
setBackground: '',
themeColor: '',
customAccentColor: '',
data: '',
exportMessages: '',
exportAsJson: '',
importMessages: '',
importFromJson: '',
shareChatRecord: '',
sync: '',
syncInfo: '',
syncInfoDetail: '',
gotIt: '',
categoryManagement: '',
manageCategories: '',
editCategoryNames: '',
editCategory: '',
enterNewName: '',
recycleBin: '',
viewDeletedMessages: '',
recycleBinEmpty: '',
recycleBinCleared: '',
emptyBin: '',
close: '',
restore: '',
messageRestored: '',
permanentDelete: '',
messagePermanentlyDeleted: '',
dangerZone: '',
clearMessages: '',
clearAllMessagesConfirm: '',
messagesCleared: '',
exportFailed: '',
fromAlbum: '',
restoreDefault: '',
defaultPurple: '',
oceanBlue: '',
mintGreen: '',
warmOrange: '',
roseRed: '',
skyCyan: '',
brownCoffee: '',
silverGrey: '',
selectAccentColor: '',
),
toolCenter: TToolCenter(
toolCenter: '',
discoverMoreHelpers: '',
toolCount: '',
myFavorites: '',
recentlyUsed: '',
startUsingTools: '',
viewAll: '',
useCountTimes: '',
recommendedTools: '',
refreshBatch: '',
editLayout: '',
importTool: '',
stayTuned: '',
toolSettings: '',
searchTools: '',
searchHistory: '',
clearHistory: '',
noSearchResult: '',
toolRemoved: '',
dragToRemove: '',
releaseToRemove: '',
closeToolPanel: '',
tapToClose: '',
cancelFavorite: '',
pinToTop: '',
cancelPin: '',
newBadge: '',
tapToOpen: '',
longPressForMore: '',
),
toolStats: TToolStats(
usageCount: '',
lastUsed: '',
never: '',
rating: '',
noRating: '',
usageTrend: '',
version: '',
),
),
profile: TProfile(
title: 'Я',
myFavorites: 'Избранное',
readingHistory: 'История',
darkMode: 'Тёмный режим',
accountSettings: 'Аккаунт',
dataManagement: 'Данные',
offlineMode: 'Офлайн',
cacheManagement: 'Кэш',
themeCustomization: 'Тема',
desktopWidgets: 'Виджеты',
sentenceSource: 'Источники',
aboutApp: 'О приложении',
rateApp: 'Оценить',
debugMode: 'Отладка',
tapToLogin: 'Нажмите для входа',
defaultUserName: 'Пользователь Сяньянь',
appSlogan: 'Открывайте цитаты, создавайте карточки',
freeTier: 'Бесплатно',
points: 'Баллы',
checkin: 'Отметиться',
notes: 'Заметки',
quickActions: 'Быстрые действия',
scanQr: 'Скан',
nearbyTransfer: 'Передача',
payment: 'Оплата',
selectScanMethod: 'Выберите способ сканирования',
scanQrLogin: 'QR-вход',
scanQrCode: 'Сканировать QR-код',
appStoreNotFound: 'Магазин приложений не найден',
experimentalFeature: 'Экспериментальные функции',
underReview: 'На рассмотрении',
changeAvatar: 'Изменить аватар',
inputAvatarUrl: 'Введите URL аватара',
selectFromAlbum: 'Выбрать из альбома (Скоро)',
avatarUrlHint: 'URL не должен превышать 2048 символов, поддерживаются только ссылки http/https',
pleaseInputUrl: 'Пожалуйста, введите URL',
urlMustStartWithHttp: 'URL должен начинаться с http:// или https://',
urlTooLong: 'URL превышает лимит в 2048 символов',
invalidUrlFormat: 'Неверный формат URL',
avatarUnderReview: '🔍 Изображение на проверке',
avatarReviewing: 'Проверка изображения аватара, подождите...',
avatarChangeSuccess: 'Аватар успешно изменён',
avatarChangeFailed: 'Не удалось изменить аватар',
success: 'Успешно',
failed: 'Ошибка',
ok: 'OK',
loading: 'Загрузка...',
loginToViewProfile: 'Войдите, чтобы увидеть профиль',
goLogin: 'Войти',
),
settings: TSettings(
language: 'Язык',
languageSubtitle: 'Изменить язык интерфейса',
generalSettings: 'Общие',
selectLanguage: 'Выбрать язык',
followSystem: 'Системный',
collaborativeTranslation: 'Сотрудничество',
collaborativeTranslationDesc: 'Помогите улучшить переводы',
lastTranslation: 'Последний перевод',
translationVersion: 'Версия',
interaction: TSettingsInteraction(
interaction: 'Взаимодействие',
sound: 'Звук',
soundSubtitle: 'Звуки операций и уведомлений',
vibration: 'Вибрация',
vibrationSubtitle: 'Интенсивность тактильной отдачи',
soundEffect: 'Звуковой эффект',
soundEffectSubtitle: 'Выберите стиль звука операций',
pageTransitionMode: 'Переход страниц',
pageTransitionModeNavigate: 'Стандартная навигация со свайпом назад',
pageTransitionModeSheet: 'Нижняя панель для широких экранов',
predictiveBack: 'Предиктивный возврат',
predictiveBackSubtitle: 'Предпросмотр предыдущей страницы при свайпе',
longPressPreview: 'Предпросмотр долгим нажатием',
longPressPreviewSubtitle: 'Просмотр деталей долгим нажатием',
vibrationStrength: 'Интенсивность вибрации',
soundEffectStyle: 'Стиль звукового эффекта',
pageTransitionModeTitle: 'Переход страниц',
navigateDescDetail:
'Свайп от левого края для возврата, поддерживается предиктивная анимация',
sheetDescDetail:
'Открывается как нижняя панель, подходит для широких экранов, нажмите ✕ для закрытия',
standardNavigation: 'Стандартная навигация',
bottomSheet: 'Нижняя панель',
),
notification: 'Уведомления',
pushNotification: 'Push-уведомления',
pushNotificationSubtitle:
'Ежедневные подборки, отметки и сезонные оповещения',
display: TSettingsDisplay(
display: 'Экран',
screenTimeout: 'Тайм-аут экрана',
screenTimeoutSubtitle: 'Установить время автоблокировки',
fontSize: 'Размер шрифта',
fontSizeSubtitle: 'Перейти к настройкам темы',
startupPage: 'Стартовая страница',
startupPageSubtitle: 'Выберите страницу при запуске',
immersiveStatus: 'Иммерсивная строка состояния',
immersiveStatusSubtitle:
'Скрыть строку состояния для полноэкранного режима',
contentDensity: 'Плотность контента',
contentDensitySubtitle: 'Настроить интервалы списков и карточек',
reduceAnimations: 'Уменьшить анимации',
reduceAnimationsSubtitle: 'Уменьшить эффекты анимации интерфейса',
screenTimeoutTitle: 'Тайм-аут экрана',
startupPageTitle: 'Стартовая страница',
contentDensityTitle: 'Плотность контента',
),
performance: TSettingsPerformance(
performance: 'Производительность',
smartMode: 'Умный режим',
smartModeSubtitle: 'Автопереключение в зависимости от сети',
preload: 'Предзагрузка',
preloadSubtitle: 'Загружать контент заранее',
cacheStrategy: 'Стратегия кэширования',
cacheStrategySubtitle: 'Управление поведением кэширования контента',
imageQuality: 'Качество изображений',
imageQualityOriginal: 'Загружать оригиналы, больше трафика',
imageQualitySaver: 'Сжимать изображения, экономия трафика',
imageQualityBalanced: 'Баланс качества и трафика',
dataSaver: 'Экономия трафика',
dataSaverSubtitle: 'Снизить расход данных',
cacheStrategyTitle: 'Стратегия кэширования',
imageQualityTitle: 'Качество изображений',
),
privacy: TSettingsPrivacy(
privacyAndPermissions: 'Конфиденциальность и доступы',
appLock: 'Блокировка приложения',
appLockSubtitle: 'Разблокировка по Face ID / отпечатку',
clipboardRead: 'Чтение буфера обмена',
clipboardReadSubtitle: 'Разрешить чтение содержимого буфера обмена',
permissionManagement: 'Разрешения',
permissionManagementSubtitle: 'Управление разрешениями приложения',
privacyPolicy: 'Политика конфиденциальности',
privacyPolicySubtitle: 'Просмотр содержания политики конфиденциальности',
),
advanced: TSettingsAdvanced(
advanced: 'Дополнительно',
moreSettings: 'Ещё настройки',
moreSettingsSubtitle: 'Совместимость, отладка, прокси, батарея',
autoCheckUpdate: 'Автопроверка обновлений',
autoCheckUpdateSubtitle: 'Проверять новую версию при запуске',
syncSettings: 'Синхронизация настроек',
syncSettingsSubtitle: 'Синхронизировать настройки между устройствами',
logManagement: 'Журналы',
logManagementSubtitle: 'Просмотр и экспорт журналов приложения',
exportImportSettings: 'Экспорт / Импорт',
exportImportSettingsSubtitle: 'Перенос настроек через JSON',
dataExport: 'Экспорт данных',
dataExportSubtitle: 'Экспорт персональных данных',
clearCache: 'Очистить кэш',
clearCacheSubtitle: 'Очистить локальные кэшированные данные',
resetSettings: 'Сбросить настройки',
resetSettingsSubtitle: 'Восстановить все настройки по умолчанию',
youMayBeLookingFor: 'Возможно, вы ищете',
fontManagement: 'Шрифты',
clearCacheConfirm:
'Вы уверены, что хотите очистить все кэшированные данные?',
resetSettingsConfirm:
'Вы уверены, что хотите сбросить все настройки? Это действие нельзя отменить.',
exportSettings: '📤 Экспорт настроек',
importSettings: '📥 Импорт настроек',
importSettingsDesc:
'Вставьте экспортированный JSON ниже. Импорт перезапишет текущие настройки.',
confirmImport: 'Подтвердить импорт',
importSuccess: 'Импорт выполнен успешно',
importFailed: 'Ошибка импорта, неверный формат',
pasteJson: 'Вставить JSON',
pasteJsonPlaceholder: 'Вставьте экспортированное содержимое JSON...',
),
cache: TSettingsCache(
cacheManagement: 'Управление кэшем изображений',
storageOverview: 'Обзор хранилища',
totalCache: 'Общий кэш',
fileCount: 'Файлы',
feedCache: 'Кэш ленты',
cacheBreakdown: 'Структура кэша',
recentCache: 'Недавний кэш',
expiredCache: 'Просроченный кэш',
cacheFiles: 'Файлы кэша',
cacheActions: 'Действия с кэшем',
autoCleanPolicy: 'Автоочистка',
autoCleanPolicyDesc:
'Кэш старше установленного времени будет очищен автоматически',
clearExpiredCache: 'Очистить просроченный кэш',
clearAllCache: 'Очистить весь кэш',
cacheSizeLimit: 'Лимит размера кэша',
cacheSizeLimitDesc: 'Предупреждать при превышении лимита',
batchDelete: 'Пакетное удаление',
selectAll: 'Выбрать все',
deselectAll: 'Снять выбор',
deleteSelected: 'Удалить выбранное',
cleaningProgress: 'Очистка...',
cleanLog: 'Журнал очистки',
cleanLogDesc: 'Просмотр истории очистки кэша',
noCache: 'Нет кэша изображений',
noCacheHint: 'Кэш изображений появится здесь после просмотра',
retry: 'Повторить',
loadFailed: 'Ошибка загрузки',
fileDetail: 'Детали файла',
fileName: 'Имя файла',
fileSize: 'Размер файла',
createdTime: 'Создан',
expiresTime: 'Истекает',
resolution: 'Разрешение',
format: 'Формат',
sourceUrl: 'URL источника',
category: 'Категория',
expired: 'Просрочен',
sortBy: 'Сортировать по',
sortByDate: 'По дате',
sortBySize: 'По размеру',
sortByType: 'По типу',
usedSpace: 'Использовано',
refLimit: 'Лимит',
confirmDelete: 'Удалить этот файл кэша?',
confirmClearExpired:
'Просроченный кэш будет очищен. Это нельзя отменить.',
confirmClearAll: 'Весь кэш будет очищен. Это нельзя отменить.',
irreversible: 'Это нельзя отменить',
cleared: 'Очищено',
clearFailed: 'Ошибка очистки',
filesUnit: 'файлов',
daysUnit: 'дней',
policyOff: 'Выкл',
edit: 'Редактировать',
cancel: 'Отмена',
delete: 'Удалить',
clear: 'Очистить',
totalCacheLabel: 'Итого',
basicInfo: 'Основная информация',
imageInfo: 'Информация об изображении',
sourceInfo: 'Информация об источнике',
clearLog: 'Очистить',
noCleanLog: 'Нет записей об очистке',
selectedCount: 'Выбрано',
status: 'Статус',
done: 'Готово',
all: 'Все',
withinDays: 'в течение',
beforeDays: 'до',
currentLabel: 'Текущий',
autoCleanSuffix: 'автоочистка просроченного кэша',
currentLimitLabel: 'Текущий лимит',
confirmBatchDelete: 'Удалить выбранные файлы кэша?',
deleted: 'Удалено',
unknown: 'Неизвестно',
logCleared: 'Журнал очищен',
confirmClearLog: 'Очистить все журналы очистки?',
clearingExpired: 'Очистка просроченного кэша...',
clearingAll: 'Очистка всего кэша...',
clearingBatch: 'Пакетное удаление...',
),
permission: TSettingsPermission(
pageTitle: 'Управление разрешениями',
loadFailed: 'Ошибка загрузки',
headerTitle: 'Информация о разрешениях',
headerDesc:
'Xianyan запрашивает только необходимые разрешения для основных функций. Вы можете управлять разрешениями в любое время. Отказ от некоторых разрешений может повлиять на функциональность.',
appPermissionSection: '📱 Разрешения приложения',
appPermissionSubtitle: 'Функции, требующие авторизации',
systemCapabilitySection: '⚙️ Системные возможности',
systemCapabilitySubtitle: 'Управляются ОС, ручная авторизация не нужна',
disclaimer:
'Xianyan не запрашивает избыточных разрешений. Некоторые запрашиваются только для конкретных функций.',
usageStats: 'Статистика использования',
noUsageData: 'Нет данных об использовании',
totalCountPrefix: 'Всего ',
totalCountSuffix: ' раз',
badgeSystem: 'Система',
badgeRequired: 'Обязательно',
badgeOptional: 'Опционально',
statusGranted: 'Разрешено',
statusDenied: 'Отказано',
statusPermanentlyDenied: 'Отклонено',
statusNotDetermined: 'Не запрошено',
statusRestricted: 'Ограничено',
recentUsagePrefix: 'Недавно: ',
timesSuffix: ' раз',
btnGoSettings: 'Настройки',
btnRequest: 'Запросить',
shakeEnabled: 'Вкл',
shakeDisabled: 'Выкл',
frequencyHigh: 'Высокая',
frequencyMedium: 'Средняя',
frequencyLow: 'Низкая',
permCameraLabel: 'Камера',
permCameraDesc:
'Используется для фотографирования, сканирования QR-кодов и сопряжения передачи файлов. Запрашивается только при активном использовании, никогда в фоновом режиме.',
permCameraUsage:
'Обои — Сделать фото|QR-код — Сканирование входа/сопряжения|Передача — Сканирование подключения',
permCameraDenial:
'Невозможно фотографировать, сканировать QR-коды и сопрягать устройства',
permPhotosLabel: 'Фото и хранилище',
permPhotosDesc:
'Используется для выбора изображений, сохранения работ в альбом и установки аватара. Доступ только к выбранным изображениям, никогда не читает весь альбом.',
permPhotosUsage:
'Обои — Выбрать изображение|Сохранить карточку — Сохранить в альбом|Профиль — Установить аватар',
permPhotosDenial:
'Невозможно выбрать изображения и сохранить работы в альбом',
permNotificationLabel: 'Уведомления',
permNotificationDesc:
'Используется для ежедневных цитат, напоминаний, системных объявлений, статуса передачи и интерактивных сообщений. Можно отключить в настройках системы.',
permNotificationUsage:
'Ежедневная цитата — Запланированный пуш|Регистрация — Ежедневное напоминание|Передача — Статус|Сообщения — Лайки и комментарии',
permNotificationDenial:
'Невозможно получать цитаты, напоминания и сообщения',
permLocationLabel: 'Местоположение (приблизительное)',
permLocationDesc:
'Используется для информации о погоде и напоминаний о солнечных терминах. Использует только приблизительное местоположение (уровень города), никогда точное, без отслеживания.',
permLocationUsage:
'Погода — Погода в текущем городе|Солнечные термины — Местные напоминания',
permLocationDenial:
'Невозможно получить информацию о погоде и напоминания',
permBluetoothLabel: 'Bluetooth',
permBluetoothDesc:
'Используется для сопряжения Bluetooth и обнаружения устройств при передаче файлов. Запрашивается только при использовании передачи.',
permBluetoothUsage:
'Передача — Сопряжение Bluetooth|Обнаружение — Поиск ближайших устройств',
permBluetoothDenial:
'Невозможно использовать сопряжение Bluetooth и обнаружение устройств',
permNearbyDevicesLabel: 'Ближайшие устройства',
permNearbyDevicesDesc:
'Используется для обнаружения и подключения устройств LAN при передаче файлов. Запрашивается только при использовании передачи.',
permNearbyDevicesUsage:
'Передача — Обнаружение LAN|Подключение — WiFi Direct',
permNearbyDevicesDenial:
'Невозможно обнаружить или подключить устройства LAN',
permMicrophoneLabel: 'Микрофон',
permMicrophoneDesc:
'Используется для голосового чтения, голосового поиска и голосового ввода в чате ИИ. Запрашивается только при активном использовании, никогда не записывает в фоновом режиме.',
permMicrophoneUsage:
'Голосовое чтение — Читать фразы|Голосовой поиск — Голосовой ввод|Чат ИИ — Голосовое сообщение',
permMicrophoneDenial:
'Невозможно использовать голосовой поиск, голосовое чтение и голосовой ввод',
permStorageLabel: 'Хранилище',
permStorageDesc:
'Используется для локального сохранения карточек и обоев, экспорта шрифтов и данных. Android 12 и ниже (API≤32) требует разрешение на чтение; Android 13+ заменяется разрешением на фото; запись использует ограниченное хранилище.',
permStorageUsage:
'Сохранить карточку — Экспорт локально|Обои — Сохранить обои|Шрифты — Скачать шрифты|Данные — Экспорт данных',
permStorageDenial: 'Невозможно сохранить карточки и обои локально',
permNetworkLabel: 'Сетевое подключение',
permNetworkDesc:
'Xianyan требует сеть для получения цитат, синхронизации данных и push-уведомлений. Убедитесь, что разрешение на сеть включено.',
permNetworkUsage:
'Цитаты — Загрузить ежедневные подборки|Синхронизация — Облачная синхронизация|Уведомления — Получать сообщения',
permNetworkDenial: 'Невозможно получать цитаты и синхронизировать данные',
permClipboardLabel: 'Буфер обмена',
permClipboardDesc:
'Используется для копирования цитат в буфер обмена и вставки текста в редактор. Доступ только при активном действии, никогда автоматически.',
permClipboardUsage:
'Копировать цитату — Копирование одним нажатием|Редактор — Вставить текст|Поиск — Вставить ключевые слова',
permClipboardDenial: 'Невозможно копировать цитаты и вставлять текст',
permShareLabel: 'Поделиться',
permShareDesc:
'Позволяет делиться контентом с другими приложениями через системный лист обмена',
permShareUsage:
'Поделиться цитатой — Отправить в WeChat/QQ|Поделиться карточкой — Опубликовать в соцсетях|Экспорт логов — Поделиться файлами',
permShareDenial: 'Невозможно поделиться контентом с другими приложениями',
permShakeLabel: 'Встряхнуть',
permShakeDesc:
'Встряхните телефон для переключения цитат или обновления контента',
permShakeUsage:
'Переключить ежедневную цитату|Обновить контент|Пасхальное яйцо',
permShakeDenial:
'Невозможно использовать встряхивание для переключения цитат',
),
dataCollection: TSettingsDataCollection(
pageTitle: 'Собираемые данные',
introTitle: 'Уведомление о сборе данных',
introDesc:
'Xianyan ценит вашу конфиденциальность. Ниже категории собираемой, используемой и хранимой информации. Мы собираем только данные, необходимые для основных функций, и никогда не продаём третьим лицам.',
collectionMethod: 'Метод сбора: ',
riskHigh: 'Высокий риск',
riskMedium: 'Средний риск',
riskLow: 'Низкий риск',
riskNone: 'Нет риска',
categoryAccount: 'Информация аккаунта',
categoryAccountItems:
'Имя пользователя, Пароль(зашифрован), Email, Телефон(опционально), Контрольный вопрос(зашифрован)',
categoryAccountMethod: 'Предоставляется при регистрации',
categoryProfile: 'Профиль',
categoryProfileItems: 'Никнейм, Био, Аватар',
categoryProfileMethod: 'Отправляется при редактировании профиля',
categoryDevice: 'Информация устройства',
categoryDeviceItems:
'Модель устройства, Платформа, device_id, IP-адрес, User-Agent',
categoryDeviceMethod: 'Собирается автоматически при запуске',
categoryBehavior: 'Поведение использования',
categoryBehaviorItems:
'История просмотров, Поисковые запросы, Комментарии, Лайки и Избранное',
categoryBehaviorMethod: 'Записывается автоматически при действиях',
categoryLocation: 'Информация о местоположении',
categoryLocationItems: 'Город по IP (без GPS)',
categoryLocationMethod: 'Определяется автоматически при сетевых запросах',
categoryLocalStorage: 'Локальное хранилище',
categoryLocalStorageItems:
'SharedPreferences, SQLite, Временная директория',
categoryLocalStorageMethod: 'Записывается локально при работе',
categoryCloudStorage: 'Облачное хранилище',
categoryCloudStorageItems:
'Заметки, Избранное, Облачные черновики(зашифрованы), Профиль пользователя',
categoryCloudStorageMethod: 'Загружается на сервер при синхронизации',
categoryNotCollected: 'Несобираемые данные',
categoryNotCollectedItems:
'Контакты, SMS, Точное GPS, Биометрия, Рекламные данные',
categoryNotCollectedMethod: '',
rightsTitle: 'Ваши права',
rightAccess: 'Право доступа',
rightAccessDesc: 'Вы имеете право знать, какую информацию мы собираем',
rightCorrection: 'Право на исправление',
rightCorrectionDesc:
'Вы имеете право запросить исправление неточной информации',
rightDeletion: 'Право на удаление',
rightDeletionDesc:
'Вы имеете право запросить удаление ваших персональных данных',
rightExport: 'Право на экспорт',
rightExportDesc:
'Вы имеете право экспортировать ваши персональные данные',
rightWithdraw: 'Право на отзыв согласия',
rightWithdrawDesc: 'Вы имеете право отозвать согласие на сбор данных',
footerTitle: 'Отказ от ответственности',
footerDesc:
'Мы можем корректировать объём сбора данных при обновлениях и уведомим вас в приложении. По вопросам обращайтесь через страницу «О приложении».',
),
),
about: TAbout(
appInfo: 'Информация о приложении',
learnUs: 'О нас',
learnUsSlogan: 'Соединяйтесь словами, выражайте сердцем',
techStack: 'Технологии',
techLanguage: 'Язык',
techState: 'Управление состоянием',
techRouter: 'Маршрутизация',
techNetwork: 'Сеть',
buildInfo: 'Информация о сборке',
version: 'Версия',
buildNumber: 'Номер сборки',
buildTime: 'Время сборки',
deviceInfo: 'Информация об устройстве',
os: 'ОС',
deviceType: 'Тип устройства',
deviceUnknown: 'Неизвестно',
deviceMobile: 'Мобильное',
deviceDesktop: 'Настольное',
renderEngine: 'Движок рендеринга',
screenDetail: 'Детали экрана',
screenSize: 'Размер экрана',
pixelRatio: 'Пиксельное соотношение',
platformCompat: 'Совместимость платформ',
updateLog: 'Что нового',
updateLog1: 'Новая страница О нас с дизайном жидкого стекла',
updateLog2: 'Отображение информации об устройстве на разных платформах',
updateLog3: 'Улучшения производительности и UX',
openSource: 'Лицензии открытого ПО',
footerSlogan: 'Сделано с ❤️',
officialSiteTitle: 'Официальный сайт',
officialSite: 'Главная',
officialSiteDesc: 'Посетите официальный сайт для новостей и загрузок',
downloadPage: 'Загрузка',
otherProducts: 'Другие продукты',
productPoetry: 'Сценическая поэзия',
productPoetryDesc: 'Рекомендует поэзию для разных времён и мест',
productKitchen: 'Кухня СяоМа',
productKitchenDesc:
'10 000+ рецептов, 1 000+ ингредиентов, кулинарная энциклопедия',
developer: 'Разработчик',
companyName: 'Micro storm studio',
companyDesc: 'Специализация на разработке мобильных приложений',
contactEmail: 'Контактная почта',
viewEmails: 'Просмотр адресов почты',
emailPrimary: '🌐 Основная',
emailSupport: '🤝 Поддержка',
emailAny: '📬 Общая',
wechatAccount: 'Официальный аккаунт WeChat',
teamInfo: 'Команда',
roleDesign: 'Разработка и дизайн',
roleUIUX: 'UI/UX',
roleBackend: 'Бэкенд',
roleNative: 'Нативный стек',
roleSupport: 'Поддержка i18n',
member1: '无书的书',
member1Sig: 'Всегда почти',
member2: 'ayk',
member2Sig: 'Маленькая мастерская, большой вкус',
member3: '伯乐不相马',
member3Sig: 'Чей это фиолетовый такой вау~',
member4: '泼茶香',
member4Sig: 'Вместе заводить кошек, смотреть море',
member1Social: 'TikTok:@loveroiy',
member2Social: 'Twitter@Ayk_Ago',
member3Social: 'telegram@iboler',
qqGroup: 'Группа QQ',
qqGroupDesc: 'Присоединяйтесь к группе, чтобы поделиться опытом',
joinQQGroup: 'Вступить в группу QQ',
qqGroupConfirm:
'Вы покинете приложение и откроете страницу группы QQ. Продолжить?',
qqGroupTelegram: 'Группа Telegram',
qqGroupTelegramDesc: 'https://t.me/Windmill_CodeTalk',
icpInfo: 'APP Номер регистрации ICP',
icpInfoHint:
'В материковом Китае регистрация ICP для интернет-приложений обязательна как мера безопасности. Она подтверждает личность разработчика и обеспечивает полную прослеживаемость через правительственные сайты. Зарубежные пользователи могут это игнорировать.',
icpDesc: 'Номер регистрации ICP МИИТ',
viewIcpDetail: 'Подробности регистрации',
icpLaunchConfirm:
'Вы покинете приложение и перейдёте на сайт регистрации ICP. Продолжить?',
contributors: 'Участники',
contributorsDesc: 'Спасибо всем участникам',
specialThanks: 'Особая благодарность',
specialThanksDesc: 'Благодарим следующие организации и лица',
contributorRole1: 'Разработка кода',
contributorRole2: 'UI-дизайн',
contributorRole3: 'Тестирование',
contributorRole4: 'Документация',
contributorRole5: 'Специальный тестировщик',
contributorRole5Name: '广州性感母蟑螂',
thanksFlutter:
'Спасибо команде Flutter за отличный кроссплатформенный фреймворк',
thanksOpenSource: 'Спасибо сообществу open source за вклад и поддержку',
thanksQQGroup:
'Спасибо участникам группы QQ за обратную связь и предложения',
thanksUsers: 'Спасибо всем пользователям за поддержку',
specialThanksTools: 'Инструменты и плагины',
bottomEnd: '— Конец —',
copied: 'Скопировано в буфер обмена',
openLink: 'Открыть ссылку',
leaveAppHint: 'Вы покинете Сяньянь и откроете внешнюю ссылку',
copyLink: 'Копировать ссылку',
goTo: 'Перейти',
aboutTitle: 'О приложении',
basicInfo: 'Основная информация',
softwareInfoDesc: 'Посмотреть версию и подробности',
learnUsMenuDesc: 'История и видение Xianyan',
usageGuide: 'Руководство',
usageGuideDesc: 'Введение в функции и руководство',
interactionFeedback: 'Обратная связь',
userFeedback: 'Отзыв пользователя',
userFeedbackDesc: 'Отправить мнения или предложения',
rateAppMenu: 'Оценить приложение',
rateAppMenuDesc: 'Оцените нас в магазине приложений',
contactEmailMenuDesc: 'Посмотреть все email',
rateDialogTitle: 'Поставьте нам 5 звёзд!',
rateDialogContent1: 'Если вам нравится Xianyan, оставьте отзыв!',
rateDialogContent2: 'Ваша поддержка — наша мотивация',
laterButton: 'Позже',
huaweiStore: 'Huawei AppGallery',
goRate: 'Оценить',
emailHint1: 'Если нет ответа 24ч, попробуйте другой email',
emailHint2: 'Любой email подходит для связи',
legalInfo: 'Правовая информация',
softwareAgreement: 'Лицензионное соглашение',
softwareAgreementDesc: 'Политика конфиденциальности, условия и т.д.',
dataCollectionMenu: 'Сбор данных',
dataCollectionMenuDesc: 'Посмотреть, какую информацию мы собираем',
softwarePermission: 'Разрешения',
softwarePermissionDesc: 'Посмотреть объявления разрешений',
openSourceDesc: 'Посмотреть лицензии open source',
updateLogMenuDesc: 'Посмотреть историю обновлений',
checkUpdate: 'Проверить обновления',
alreadyLatest: 'Обновлений нет',
alreadyLatestDesc: 'У вас уже последняя версия',
okButton: 'OK',
comingSoon: 'Скоро',
distributionChannel: 'Канал распространения',
distAndroid: 'Загрузка с официального сайта Xianyan',
distIOS: 'Распространение через App Store',
distMacOS: 'Распространение через App Store',
distHarmony: 'Распространение через AppGallery',
distWeb: 'Требуется заявка',
distWindows: 'Загрузка с официального сайта Xianyan',
),
auth: TAuth(
welcomeBack: 'С возвращением',
loginToAccount: 'Войдите в аккаунт Xianyan',
password: 'Пароль',
verifyCode: 'Код',
token: 'Token',
legacyUser: 'Старый',
passwordLogin: 'Вход по паролю',
codeLogin: 'Вход по коду',
tokenLogin: 'Вход по Token',
legacyLogin: 'Вход старого пользователя',
noAccountRegister: 'Нет аккаунта? Зарегистрируйтесь',
skipLogin: 'Пропустить',
otherMethods: 'Другие способы',
webLogin: 'Веб-вход',
wechat: 'WeChat',
qrcode: 'QR-код',
loginAgreePrefix: 'Входя, вы соглашаетесь ',
registerAgreePrefix: 'Регистрируясь, вы соглашаетесь ',
userAgreement: 'Условия использования',
and: ' и ',
privacyPolicy: 'Политика конфиденциальности',
resetPassword: 'Сбросить пароль',
resetPasswordHint: 'Войдите через код, чтобы изменить пароль',
featureNotSupported: 'Эта функция не поддерживается на этом устройстве',
loginSuccess: 'Вход выполнен, с возвращением!',
pleaseAgreeTerms: 'Сначала примите условия и политику конфиденциальности',
pleaseEnterAccount: 'Введите имя пользователя или email',
pleaseEnterPassword: 'Введите пароль',
passwordTooShort: 'Пароль должен быть не менее 6 символов',
pleaseEnterEmail: 'Введите адрес email',
pleaseEnterValidEmail: 'Введите корректный адрес email',
pleaseEnterCode: 'Введите код подтверждения',
codeExpiredOrWrong: 'Код неверен или истёк',
codeLoginFailed: 'Ошибка входа по коду',
pleaseEnterToken: 'Введите Token',
tokenTooShort: 'Token слишком короткий, проверьте и повторите',
tokenLoginFailed: 'Ошибка входа по Token',
legacyMigrating: 'Этот метод входа мигрирует, используйте другой',
openInBrowser: 'Открыть в браузере',
registerNotice: ' Уведомление о регистрации',
iUnderstand: 'Понятно',
createAccount: 'Создать аккаунт',
registerNewAccount: 'Зарегистрируйтесь, чтобы начать',
username: 'Имя пользователя',
usernameHint: '3-30 символов, буквы/цифры/подчёркивание/CJK',
emailRequired: 'Email (обязательно)',
emailHint: 'Для подтверждения и восстановления пароля',
nextStep: 'Далее',
prevStep: 'Назад',
codeSentTo: 'Код отправлен на',
enterCodeHint: 'Введите 6-значный код',
resend: 'Отправить снова',
codeNotReceivedTip:
'Не получили код? Проверьте спам. Обратитесь в поддержку.',
setPassword: 'Установить пароль',
passwordHint: 'Пароль 6-30 символов',
confirmPassword: 'Подтвердить пароль',
confirmPasswordHint: 'Введите пароль ещё раз',
secQuestionOptional: '🛡️ Контрольный вопрос (необязательно)',
selected: 'Выбрано',
enhanceSecurity: 'Повысить безопасность аккаунта',
selectSecQuestion: 'Выбрать контрольный вопрос',
enterSecAnswerHint: 'Введите ответ (1-50 символов)',
subscribeEmail: 'Подписаться на рассылку команды Xianyan',
completeRegister: 'Завершить регистрацию',
hasAccountLogin: 'Уже есть аккаунт? Войти',
pleaseFillRequired: 'Заполните все обязательные поля',
passwordMismatch: 'Пароли не совпадают',
codeError: 'Ошибка кода подтверждения',
registerSuccess: 'Регистрация успешна, добро пожаловать!',
codeSendFailed: 'Ошибка отправки кода, проверьте email',
codeSent: 'Код подтверждения отправлен',
codeSendFailedShort: 'Ошибка отправки кода',
emailRegistered: 'Email уже зарегистрирован',
emailRegisteredHint:
'\u042d\u0442\u043e\u0442 email ({email}) \u0443\u0436\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d. \u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432\u0445\u043e\u0434\u0430?',
goLogin: 'Перейти к входу',
forgotPassword: 'Забыли пароль?',
accountOrEmail: 'Имя пользователя или email',
emailAddress: 'Адрес email',
emailVerifyCode: 'Код подтверждения email',
sendCode: 'Отправить код',
emailNotReceivedHint:
'Не получили email? Проверьте спам или попробуйте позже',
tokenLoginHint:
'Введите Token для быстрого входа\nПодходит для синхронизации нескольких устройств',
pasteOrEnterToken: 'Вставить или ввести Token',
tokenManageHint: 'Получите Token в Безопасности и управлении Token',
legacyLoginTitle: 'Вход старого пользователя',
legacyLoginSubtitle: 'Вход через старую систему аккаунтов',
aboutLegacyLogin: 'О входе старого пользователя',
legacyLoginNotice:
'Пользователи, зарегистрированные с 2019 по июнь 2023 — старые пользователи с привилегиями:\n• Сохранение баллов и уровней\n• Эксклюзивный значок и титул\n• Приоритетный доступ к премиум-функциям\n\nЭтот метод входа мигрирует, используйте другой.',
loginSuccessTitle: 'Вход выполнен',
redirecting: 'Перенаправление...',
selectOpenMethod: 'Выберите способ открытия:',
browser: 'Браузер',
unableOpenBrowser: 'Не удалось открыть браузер',
),
progress: TProgress(
title: 'Прогресс',
inputHint: 'Введите название прогресса...',
noData: 'Нет данных о прогрессе',
addProgress: 'Добавить прогресс',
editProgress: 'Редактировать прогресс',
deleteItem: 'Удалить элемент',
clearAll: 'Очистить весь пользовательский прогресс',
clearAllConfirm: 'Очистить пользовательский прогресс',
clearAllConfirmMsg:
'Вы уверены, что хотите удалить весь пользовательский прогресс? Это действие нельзя отменить.',
cancel: 'Отмена',
add: 'Добавить',
save: 'Сохранить',
name: 'Название',
nameHint: 'Напр. Обратный отсчёт до экзамена',
tag: 'Тег',
tagHint: 'Напр. Финальный рывок',
type: 'Тип',
countdown: 'Обратный отсчёт',
progress: 'Прогресс',
targetDate: 'Целевая дата',
displayStyle: 'Стиль отображения',
custom: 'Пользовательский',
system: 'Системный',
settings: 'Настройки прогресса',
styleSetting: 'Стиль отображения',
styleSettingDesc: 'Настроить стиль отображения прогресса',
dataManagement: 'Управление данными',
dataManagementDesc: 'Управление данными пользовательского прогресса',
shareCard: 'Поделиться карточкой прогресса',
shareCardDesc: 'Создать отчёт о прогрессе для публикации',
refreshData: 'Обновить данные',
refreshDataDesc: 'Пересчитать системный прогресс',
selectStyle: 'Выбрать стиль отображения',
applyStyleTo: 'Применить «{style}» к',
applyAll: 'Применить ко всем',
current: 'Текущий',
applied: '{style} применён',
allApplied: '{style} применён ко всем',
noUserItems: 'Нет пользовательского прогресса',
noShareData: 'Нет данных прогресса для публикации',
saveToAlbum: 'Сохранить в альбом',
systemShare: 'Системный обмен',
saveFailed: 'Ошибка сохранения',
shareFailed: 'Ошибка отправки',
savedToAlbum: 'Сохранено в альбом',
progressReport: 'Отчёт о прогрессе Сяньянь',
totalProgress: 'Общий прогресс',
inProgress: 'В процессе',
completed: 'Завершено',
moreItems: 'Ещё {n} элементов',
done: 'Готово',
progressLabel: 'Прогресс',
deleted: 'Удалено',
cleared: 'Очищено',
updated: 'Обновлено',
refreshed: 'Обновлено',
styleDescProgressBar:
'Горизонтальная полоса, наглядно показывает соотношение',
styleDescRingProgress: 'Кольцевой стиль, подходит для процентов',
styleDescCountdownGrid:
'Сетка дни/часы/мин/сек, обратный отсчёт в реальном времени',
styleDescTagOnly: 'Простой тег, для просроченных элементов',
nameRequired: 'Введите название прогресса',
dateMustBeFuture: 'Целевая дата должна быть позже сегодняшней',
undo: 'Отменить',
itemDeleted: 'Удалён «{name}»',
allCleared: 'Весь пользовательский прогресс очищен',
),
onboarding: TOnboarding(
welcomeTitle: 'Добро пожаловать в Xianyan',
welcomeSubtitle: 'Открыть жизнь словами · Цитаты + Обои',
featureDailyQuote: 'Цитата дня',
featureDailyQuoteDesc: 'Каждый день выбранная цитата для начала чтения',
featureDailyQuoteDetail:
'Каждый день для вас выбирается изящная цитата с поддержкой избранного, обмена и создания обоев',
featureWallpaper: 'Создание обоев',
featureWallpaperDesc: 'Превратите цитаты в красивые обои для обмена',
featureWallpaperDetail:
'Создавайте потрясающие обои из любимых цитат с множеством шаблонов и стилей',
featureFileTransfer: 'Передача файлов',
featureFileTransferDesc:
'Быстрая передача между устройствами через LAN/Bluetooth',
featureFileTransferDetail:
'Быстрая передача файлов по LAN, поддержка Bluetooth, WiFi Direct и других способов',
featureChatFlow: 'Чат-поток',
featureChatFlowDesc: 'Подписывайтесь на RSS-каналы, агрегируйте контент',
featureChatFlowDetail:
'Подписывайтесь на RSS-каналы, агрегируйте интересующий контент с умными рекомендациями',
permissionEntry: 'Разрешения приложения',
dataCollectionEntry: 'Сбор данных',
languageLabel: '🌐 Язык / Language',
startButton: 'Начать',
gotIt: 'Понятно',
dailyQuoteLabel: 'Цитата дня',
collectAction: 'Избранное',
shareAction: 'Поделиться',
makeWallpaperAction: 'Обои',
templateSimple: 'Минимализм',
templateGradient: 'Градиент',
templateGlass: 'Матовое стекло',
transferring: 'Передача 70%',
bluetooth: 'Bluetooth',
wifiDirect: 'WiFi Direct',
rssLabel: 'RSS-каналы',
addRssSource: 'Добавить канал',
welcomeNavLabel: 'Приветствие',
agreementTitle: 'Соглашения',
agreementSubtitle:
'Пожалуйста, прочитайте и согласитесь с условиями для защиты ваших прав',
privacyPolicyTab: 'Политика конфиденциальности',
userAgreementTab: 'Пользовательское соглашение',
permissionInfoTab: 'Разрешения',
updateDateLabel: 'Обновлено: ',
permissionUsageTitle: 'Использование разрешений приложения',
permissionUsageDesc:
'Следующие разрешения запрашиваются только при использовании связанных функций',
requiredWarning: '⚠️ Отказ повлияет на основные функции',
optionalLabel: 'Опционально',
systemManagedLabel: 'Управляется системой',
requiredBadge: 'Обязательно',
systemBadge: 'Системный',
agreeAllCheckbox:
'Я прочитал и согласен с 《Пользовательским соглашением》 и 《Политикой конфиденциальности》',
readPermissionCheckbox: 'Я прочитал 《Использование разрешений приложения》',
agreeAndContinue: 'Согласиться и продолжить',
skipOnboarding: 'Пропустить',
agreementNavLabel: 'Соглашения',
personalizationTitle: 'Персонализация',
personalizationSubtitle:
'Настройте свой опыт чтения, можно изменить в любое время',
livePreview: 'Предпросмотр',
appearance: 'Внешний вид',
features: 'Функции',
accentColor: 'Цвет акцента',
cardStyle: 'Стиль карточки',
fontStyle: 'Шрифт',
shakeToSwitch: 'Встряхнуть для смены',
shaderBackground: 'Анимированный фон',
soundFeedback: 'Звуковая обратная связь',
showOnNextLaunch: 'Показать вводный экран при следующем запуске',
completeSetup: 'Готово, войти в Xianyan',
),
theme: TTheme(
title: 'Персонализация темы',
presetSection: 'Предустановки темы',
appearanceSection: 'Режим оформления',
autoDarkSection: 'Тёмный по расписанию',
accentColorSection: 'Цвет акцента',
fontSection: 'Настройки шрифта',
glassEffectSection: 'Эффект матового стекла',
animationSection: 'Интенсивность анимации',
cornerRadiusSection: 'Стиль скругления',
cardStyleSection: 'Стиль карточки',
tabExpressionSection: 'Захват света',
tabCharacterSection: 'Предпочтение формы Tab',
bubbleStyleSection: 'Стиль пузыря',
wallpaperSection: 'Обои/фон',
previewSection: 'Предпросмотр в реальном времени',
shareSection: 'Поделиться темой',
modeLight: 'Светлый',
modeDark: 'Тёмный',
modeAmoled: 'Чистый чёрный',
modeSystem: 'Системный',
autoDarkOff: 'Выкл',
autoDarkSunset: 'Закат',
autoDarkCustom: 'Пользовательский',
sunsetHint: 'Автоматическое переключение по закату (прибл. 18:00 06:30)',
accentPurple: 'Лаванда',
accentCoral: 'Коралловый',
accentTeal: 'Мята',
accentBlue: 'Небесно-голубой',
accentOrange: 'Тёплый оранжевый',
accentPink: 'Цвет сакуры',
accentGreen: 'Изумруд',
accentRose: 'Розовое золото',
accentNoir: 'Чёрный',
accentCustom: 'Пользовательский',
customAccentTitle: 'Пользовательский цвет акцента',
hueLabel: 'Оттенок',
applyLabel: 'Применить',
fontSizeLabel: 'Размер шрифта',
fontWeightLabel: 'Насыщенность шрифта',
fontStyleLabel: 'Стиль шрифта',
fontSizeXs: 'Крошечный',
fontSizeSmall: 'Маленький',
fontSizeNormal: 'Стандартный',
fontSizeLarge: 'Большой',
fontSizeXlarge: 'Очень большой',
fontWeightLight: 'Тонкий',
fontWeightRegular: 'Стандартный',
fontWeightMedium: 'Средний',
fontWeightSemibold: 'Полужирный',
fontStyleSystem: 'Системный по умолчанию',
fontStyleSerif: 'С засечками',
fontStyleMono: 'Моноширинный',
fontStyleRounded: 'Округлый',
glassOff: 'Выкл',
glassLight: 'Лёгкий',
glassMedium: 'Средний',
glassStrong: 'Насыщенный',
animNone: 'Без анимации',
animSubtle: 'Слабая',
animNormal: 'Стандартная',
animPlayful: 'Игривая',
cornerCompact: 'Компактный',
cornerStandard: 'Стандартный',
cornerRounded: 'Округлый',
cornerSuper: 'Супер округлый',
cornerRadiusPreview: 'Предпросмотр',
cardStandard: 'Стандартный',
cardBorderless: 'Без рамки',
cardShadow: 'Тень',
cardMinimal: 'Минималистичный',
cardIos: 'Xianyan',
tabExpressionDesc: 'Выразительность выбранных иконок навигации',
tabExpressionExaggerated: 'Захват света',
tabExpressionSubtle: 'Захват света·Сдержанный',
tabCharacterDesc: 'Стиль персонажа иконок навигации, питомец или человек',
tabCharacterPet: '🐾 Питомец',
tabCharacterHuman: '👤 Человек',
tabCharacterCat: 'Мяу',
tabCharacterDog: 'Гав',
tabCharacterBoy: 'Мальчик',
tabCharacterGirl: 'Девочка',
bubbleStyleDesc: 'Внешний вид пузырей чата, глобальный эффект',
bubbleStandard: 'Стандартный',
bubbleMinimal: 'Минималистичный',
bubbleGlass: 'Матовое стекло',
bubbleShadow: 'Тень',
selectWallpaper: 'Выбрать обои',
clearWallpaper: 'Удалить обои',
wallpaperOnlineSet: '🌐 Онлайн-обои установлены',
wallpaperGallerySet: '📷 Обои из галереи установлены',
wallpaperGradientSet: '🎨 Градиент установлен',
wallpaperSolidSet: '🎨 Сплошной цвет установлен',
wallpaperDefaultSet: 'Обои установлены',
wallpaperOnline: '🌐 Онлайн-обои',
wallpaperGradientPreset: '🎨 Градиентные пресеты',
wallpaperFromGallery: '📷 Выбрать из галереи',
wallpaperSolidBackground: '🎯 Сплошной фон',
gradientPresetTitle: 'Градиентные пресеты',
solidColorTitle: 'Сплошной фон',
applyCustomColor: 'Применить пользовательский цвет',
wpStarry: 'Звёздное небо',
wpForest: 'Лес',
wpOcean: 'Океан',
wpDesert: 'Пустыня',
wpAurora: 'Северное сияние',
wpSunset: 'Закат',
wpLavender: 'Лаванда',
wpMist: 'Утренний туман',
solidInkBlack: 'Чёрный',
solidDeepBlue: 'Тёмно-синий',
solidInkGreen: 'Тёмно-зелёный',
solidWarmGray: 'Тёплый серый',
solidWineRed: 'Бордовый',
solidIndigo: 'Индиго',
solidOffWhite: 'Молочный',
solidLightGray: 'Светло-серый',
photoPermissionTitle: 'Требуется доступ к галерее',
photoPermissionDesc:
'Разрешите Xianyan доступ к галерее в системных настройках.',
goToSettings: 'К настройкам',
resetTitle: 'Сбросить тему',
resetConfirm: 'Сбросить все настройки темы к значениям по умолчанию?',
resetToDefault: 'Сбросить по умолчанию',
previewTitleText: 'Предпросмотр заголовка',
previewBodyText:
'Предпросмотр текста — цвет акцента, размер и насыщенность шрифта, скругление и эффект стекла видны здесь.',
exportJson: 'Экспорт JSON',
importJson: 'Импорт JSON',
themeConfigJson: 'Конфигурация темы JSON',
closeLabel: 'Закрыть',
copyLabel: 'Копировать',
importConfigTitle: 'Импорт конфигурации темы',
pasteJsonPlaceholder: 'Вставить конфигурацию JSON',
importLabel: 'Импорт',
presetInk: 'Чёрный',
presetLavender: 'Лаванда',
presetSunset: 'Тёплый',
presetMint: 'Мята',
presetMidnight: 'Полярная ночь',
presetSakura: 'Сакура',
systemDefaultFont: 'Системный по умолчанию',
previewCornerRadius: 'Угол',
previewCardStyle: 'Карта',
previewGlassEffect: 'Стекло',
fontPreviewSample: 'Привет мир',
),
search: TSearch(
placeholder: 'Поиск цитат, стихов, фильмов, статей...',
typeAll: 'Все',
typeSentence: 'Цитаты',
typePoetry: 'Стихи',
typeArticle: 'Статьи',
typeFilm: 'Фильмы',
typeMusic: 'Музыка',
typeBook: 'Книги',
typeHanzi: 'Ханьцзы',
typeCy: 'Идиомы',
modeFuzzy: 'Нечёткий',
modeExact: 'Точный',
modeRelated: 'Связанный',
suggestions: 'Подсказки',
hotSearch: 'Популярное',
searchHistory: 'История',
countTimes: '{0} раз',
noResults: 'Результатов не найдено',
tryDifferentKeyword: 'Попробуйте другой запрос',
loadingMore: 'Загрузка результатов...',
loading: 'Загрузка...',
foundCountSearching: 'Найдено {0}, поиск...',
foundCountResults: 'Найдено {0} результатов',
modeLabel: 'Режим: {0}',
keywordHighlight: 'Подсветка ключевых слов',
hotSearchRank: '🔥 Тренды',
periodToday: '📅 Сегодня',
periodWeek: '📆 Эта неделя',
periodMonth: '🗓️ Этот месяц',
loadFailed: 'Ошибка загрузки',
noHotSearch: 'Нет трендов для {0}',
numberWan: 'w',
searchPreference: '🎯 Настройки поиска',
noPreference: 'Нет настроек поиска',
preferenceHint:
'Ваши типовые настройки сохраняются автоматически при поиске',
preferenceDetail: '📊 Детали настроек',
preferenceOverview: 'Обзор',
totalSearchCount: '🔍 Всего поисков',
mostSearched: '⭐ Самое популярное',
preferenceTypeCount: '📂 Типы настроек',
lastSearch: 'Последний поиск: {0}',
justNow: 'Только что',
minutesAgo: '{0} мин. назад',
hoursAgo: '{0} ч. назад',
daysAgo: '{0} дн. назад',
contentPreference: '🎯 Настройки контента',
contentPreferenceHint: 'Отключённые типы будут исключены из рекомендаций',
contentPoetry: '📜 Классическая поэзия',
contentChengyu: '📖 Идиомы',
contentStory: '📖 Истории',
contentWisdom: '💬 Цитаты',
contentRiddle: '❓ Загадки',
contentBrainteaser: '🧠 Головоломки',
contentEfs: '💬 Пословицы',
clearPreferenceTitle: 'Очистить настройки',
clearPreferenceConfirm:
'Очистить все настройки поиска? Это действие нельзя отменить.',
),
accountSettings: TAccountSettings(
title: 'Настройки аккаунта',
nickname: 'Никнейм',
notSet: 'Не задано',
bio: 'О себе',
notFilled: 'Не заполнено',
bindEmail: 'Привязать email',
notBound: 'Не привязан',
bindMobile: 'Привязать телефон',
changePassword: 'Сменить пароль',
securityQuestion: 'Контрольный вопрос',
alreadySet: 'Задан',
securityAndToken: 'Безопасность и токены',
exportPersonalInfo: 'Экспорт личных данных',
deleteAccount: 'Удалить аккаунт',
logout: 'Выйти',
logoutConfirm: 'Вы уверены, что хотите выйти?',
logoutButton: 'Выйти',
verified: 'Подтверждено',
unverified: 'Не подтверждено',
),
dataManagement: TDataManagement(
title: '💾 Управление данными',
storageOverview: 'Обзор хранилища',
totalLocalData: '{count} локальных записей',
favorites: 'Избранное',
history: 'История',
notes: 'Заметки',
shares: 'Поделиться',
entriesUnit: 'записей',
dataDistribution: 'Распределение данных',
dataCategories: 'Категории данных',
favoriteData: 'Данные избранного',
localFavorites: '{count} локальных избранных',
readingHistory: 'История чтения',
localHistory: '{count} локальных записей',
noteData: 'Данные заметок',
localNotes: '{count} локальных заметок',
shareHistory: 'История публикаций',
shareRecords: '{count} записей публикаций',
imageCache: 'Кэш изображений',
hanziCache: 'Кэш иероглифов',
queryCache: '{count} записей кэша запросов',
offlineQueue: 'Оффлайн-очередь',
pendingSync: '{count} ожидает синхронизации',
clearName: '🗑️ Очистить {name}',
clearConfirm: 'Очистить {name}? Это нельзя отменить.',
cleared: '{name} очищено',
dangerZone: 'Опасная зона',
clearAllData: '⚠️ Очистить все данные',
clearAllConfirm: 'Все локальные данные будут удалены. Это нельзя отменить!',
clearAll: 'Очистить всё',
clearAllLocalData: '🗑️ Очистить все локальные данные',
allDataCleared: 'Все данные очищены',
),
source: TSource(
title: 'Источник предложений',
dataOverview: 'Обзор данных',
totalContent: 'Всего контента',
openChannels: 'Открытые каналы',
totalViews: 'Всего просмотров',
searchChannel: 'Поиск каналов...',
channelManagement: 'Управление каналами',
enabledCount: 'Включено',
manage: 'Управление',
noChannelFound: 'Канал не найден',
displaySettings: 'Настройки отображения',
sortOrder: 'Порядок сортировки',
newestFirst: 'Сначала новые',
hottestFirst: 'Сначала популярные',
contentDedup: 'Дедупликация контента',
dedupSubtitle: 'Исключить просмотренное при обновлении',
mixMode: 'Режим микса',
perPage: 'На страницу',
perPageUnit: '{count} записей',
homeCardSettings: 'Настройки карточек',
cardSource: 'Источник карточек',
cardSourceSubtitle: 'Настроить источник контента карточек',
cardMixMode: 'Режим микса карточек',
advanced: 'Дополнительно',
importSource: 'Источник импорта',
importSubtitle: 'Импорт JSON / CSV файлов',
moreSources: 'Больше источников',
moreSourcesSubtitle: 'Найти больше каналов контента',
enableAll: 'Включить все',
disableAll: 'Отключить все',
contentCount: 'Контент',
viewCount: 'Просмотры',
status: 'Статус',
enabledStatus: 'Включено',
disabledStatus: 'Отключено',
browseChannel: 'Обзор канала',
channelInfo: '{count} записей · {views} просмотров',
importSentenceSource: 'Импорт источника',
importComingSoon:
'Импорт скоро будет доступен!\n\nПоддержка:\n• JSON / CSV импорт\n• URL подписка на удалённые источники\n• Кастомное сопоставление полей',
newest: 'Новые',
hottest: 'Популярные',
),
favorites: TFavorites(
title: 'Избранное',
manage: 'Управление',
favorites: 'Избранное',
categories: 'Категории',
noStats: 'Нет статистики',
searchFavorites: 'Поиск в избранном',
newestFav: '🕐 Новые',
oldestFav: '📅 Старые',
sortByType: '📂 По типу',
newest: 'Новые',
oldest: 'Старые',
type: 'Тип',
selectedCount: 'Выбрано: {count}',
selectAll: 'Выбрать все',
unfavorite: 'Убрать из избранного',
batchUnfavorite: 'Массовое удаление',
batchUnfavoriteConfirm: 'Убрать {count} выбранных из избранного?',
unfavoriteSuccess: 'Удалено из избранного',
unfavoriteConfirm: 'Убрать из избранного',
unfavoriteItemConfirm: 'Убрать «{title}» из избранного?',
thinkAgain: 'Отмена',
copyContent: 'Копировать',
share: 'Поделиться',
addTag: '🏷️ Добавить тег',
moveGroup: '📁 В группу',
article: '📖 Статья',
tool: '🔧 Инструмент',
page: '📄 Страница',
localMode: 'Локальный режим · Войдите для синхронизации',
loginSync: 'Войти и синхронизировать',
noMatchingFavorites: 'Ничего не найдено',
noFavoritesYet: 'Пока нет избранного',
tryOtherKeywords: 'Попробуйте другие ключевые слова',
tapToFavorite: 'Нажмите ❤️ на главной, чтобы добавить',
shareFavorite: 'Поделиться избранным',
systemShare: '📤 Системный доступ',
nfcShare: '📡 NFC-доступ',
noContentToCopy: 'Нечего копировать',
copiedToClipboard: 'Скопировано в буфер',
addTagTitle: '🏷️ Добавить тег',
tagSeparatorHint: 'Разделяйте теги запятыми',
tagPlaceholder: 'напр: мотивация, поэзия, жизнь',
tagSaved: 'Тег сохранён',
exportFavorites: '📤 Экспорт избранного',
exportAsText: '📝 Как текст',
exportAsJson: '📋 Как JSON',
exportAsCsv: '📊 Как CSV',
noFavoritesToExport: 'Нечего экспортировать',
exportHeader: 'Экспорт избранного Xianyan',
formatCopied: '{format} скопировано в буфер',
moveToGroup: '📁 Переместить в группу',
defaultGroup: 'По умолчанию',
newGroup: 'Новая группа...',
movedToGroup: 'Перемещено в «{group}»',
moveFailed: 'Ошибка перемещения',
newGroupTitle: '📁 Новая группа',
groupNamePlaceholder: 'Название группы',
createAndMove: 'Создать и переместить',
createdAndMoved: 'Создано и перемещено в «{name}»',
operationFailed: 'Операция не удалась',
favoriteGroups: '📁 Группы избранного',
createNew: 'Новая',
noGroups: 'Нет групп',
tapToCreateGroup: 'Нажмите + для создания группы',
deleteGroup: 'Удалить группу',
deleteGroupConfirm:
'Удалить группу «{name}»? Избранное переместится в группу по умолчанию.',
groupDeleted: 'Группа удалена',
deleteFailed: 'Ошибка удаления',
renameGroup: 'Переименовать группу',
newNamePlaceholder: 'Новое название',
renamed: 'Переименовано',
renameFailed: 'Ошибка переименования',
groupCreated: 'Группа создана',
createFailed: 'Ошибка создания',
noTitle: 'Без названия',
noContentToShare: 'Нечем поделиться',
shareCopied: 'Содержимое скопировано',
nfcShareSuccess: '📡 NFC-отправка успешна',
nfcShareFailed: 'Ошибка NFC-отправки',
thisContent: 'этот контент',
),
offline: TOffline(
title: 'Оффлайн-режим',
online: 'Онлайн',
offline: 'Оффлайн',
onlineDesc: 'Сеть подключена, все функции доступны',
offlineDesc: 'Сеть отключена, доступен только кэш',
syncNow: 'Синхронизировать',
pendingActions: 'Ожидающие действия',
pendingSync: 'Ожидает',
lastSync: 'Последняя синхронизация',
successCount: '{count} успешно',
noData: 'Нет данных',
syncAll: 'Синхронизировать все',
clearQueue: 'Очистить очередь',
preloadManagement: 'Управление предзагрузкой',
wifiAutoPreload: 'Автопредзагрузка по WiFi',
wifiAutoPreloadSubtitle: 'Автокэширование рекомендаций по WiFi',
autoSyncOnReconnect: 'Автосинхронизация при подключении',
autoSyncOnReconnectSubtitle:
'Автосинхронизация оффлайн-действий при подключении',
preloadChannels: 'Каналы предзагрузки',
preloadNow: 'Предзагрузить сейчас',
smartPreloadStrategy: 'Умная предзагрузка',
preloadMode: 'Режим предзагрузки',
preloadContent: 'Содержимое предзагрузки',
preloadFrequency: 'Частота предзагрузки',
batteryThreshold: 'Порог батареи',
smartMode: '🧠 Умный',
wifiOnly: '📶 Только WiFi',
disabledMode: '🚫 Выкл',
textContent: 'Текст',
imageContent: 'Изображения',
audioContent: 'Аудио',
realtime: 'В реальном времени',
hourly: 'Ежечасно',
daily: 'Ежедневно',
smartModeDesc:
'Умный режим: полная предзагрузка по WiFi, только текст по мобильной сети, пауза при низком заряде',
cacheStrategy: 'Стратегия кэша',
offlineModeSwitch: 'Оффлайн-режим',
offlineModeSwitchSubtitle: 'Автокэширование просмотренного контента',
cacheLimit: 'Лимит кэша',
cacheExpiryDays: 'Срок действия кэша',
maxOfflineActions: 'Макс. оффлайн-действий',
maxRetryCount: 'Макс. попыток',
daysUnit: 'дней',
clearQueueTitle: 'Очистить очередь',
clearQueueConfirm: 'Очистить все ожидающие действия? Это нельзя отменить.',
syncComplete: 'Синхронизация завершена, {count} успешно',
syncNoSuccess: 'Синхронизация завершена, нет успешных элементов',
syncFailed: 'Синхронизация не удалась, попробуйте позже',
syncError: 'Ошибка синхронизации: {error}',
wifiPreloadDisabled:
'Автопредзагрузка по WiFi выключена, включите её сначала',
networkUnavailable: 'Сеть недоступна, проверьте подключение',
preloadComplete: 'Предзагрузка завершена, {count} каналов кэшировано',
preloadSkipped: '{count} каналов уже в кэше, пропущено',
allChannelsCached: 'Все каналы уже в кэше',
preloadFailed: 'Предзагрузка не удалась, проверьте подключение',
preloadError: 'Ошибка предзагрузки: {error}',
),
);