Files
xianyan/lib/l10n/languages/pt.dart
2026-06-18 03:09:19 +08:00

2741 lines
119 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-16
/// 作用: 葡萄牙语(pt)翻译文本
/// 上次更新: 补全defaultSentence翻译
/// ============================================================
import '../types/t.dart';
const pt = T(
nav: TNav(
home: 'Xianyan',
discover: 'Descobrir',
profile: 'Eu',
footprint: 'Rastro',
inspiration: 'Inspiração',
),
common: TCommon(
cancel: 'Cancelar',
ok: 'OK',
save: 'Salvar',
confirm: 'Confirmar',
clear: 'Limpar',
reset: 'Redefinir',
delete: 'Excluir',
success: 'Sucesso',
failed: 'Falhou',
enabled: 'Ativado',
disabled: 'Desativado',
loading: 'Carregando...',
view: 'Visualizar',
search: 'Buscar configurações...',
entriesCountUnit: 'itens',
copyright: '2026 Equipe Xianyan',
done: 'Concluído',
all: 'Tudo',
refresh: 'Atualizar',
retry: 'Tentar novamente',
copy: 'Copiar',
searchHistory: 'Histórico de pesquisa',
gotIt: 'Entendi',
featureUnavailable: 'Esta função está temporariamente indisponível',
featureNotSupported: 'Esta função não é suportada neste dispositivo',
inDevelopment: 'Em desenvolvimento',
nAvailable: '{0} disponíveis',
appName: 'Xianyan',
exportFailed: 'Falha na exportação',
),
home: THome(
base: THomeBase(
batteryCritical: 'Bateria muito baixa! Carregue agora',
batteryLow: 'Bateria baixa, lembre-se de carregar',
defaultSentence:
'A vida não é esperar a tempestade passar, é aprender a dançar na chuva.',
defaultFeedName: 'Xianyan',
authorPrefix: '',
numberWan: 'w',
numberThousand: 'k',
dailyRecommendation: 'Recomendação do dia',
findingNewSentences: 'Procurando novas citações...',
gettingTodayRecommendation: 'Carregando recomendação...',
createCard: 'Criar cartão',
editThisSentence: 'Editar citação',
noSentences: 'Sem citações',
pullDownToRefresh: 'Tente atualizar',
networkConnectionFailed: 'Falha na conexão de rede',
clickToRetry: 'Toque para tentar novamente',
sentenceCopied: 'Citação copiada',
offlineMode: 'Offline — Dados em cache',
quoteSquare: 'Praça de citações',
dragToSort: 'Arraste para ordenar',
sortNewest: 'Recentes',
sortHot: 'Popular',
sortClassic: 'Clássico',
noContent: 'Sem conteúdo',
recentlyOpened: 'Abertos recentemente',
selectCustomTool: 'Selecionar ferramenta',
collapse: 'Recolher',
openAnyPageAutoRecord: 'Abrir qualquer página\nRegistro automático',
longPressToSet: 'Pressione para configurar',
shareAppSignature: '— Xianyan APP',
shareFailed: 'Falha ao compartilhar',
loadingContent: 'Carregando conteúdo...',
autoRefreshSeconds: 'Atualização automática em {0}s',
),
sentenceDetail: TSentenceDetail(
longPressToSelect: 'Toque longo para selecionar',
originalContent: 'Conteúdo original',
liked: 'Curtido',
like: 'Curtir',
likeCanceled: 'Curtida removida',
likeToast: 'Curtido',
favorited: 'Favoritado',
favorite: 'Favoritar',
favoriteCanceled: 'Favorito removido',
favoriteToast: 'Favoritado',
readLaterMarked: 'Marcado',
readLaterLabel: 'Ler depois',
alreadyInReadLater: 'Já está na lista de leitura',
share: 'Compartilhar',
shareSentence: 'Compartilhar citação',
sentenceDetail: 'Detalhes da citação',
bookmarkAdded: 'Favorito adicionado',
bookmarkRemoved: 'Favorito removido',
bookmark: 'Favorito',
tag: 'Tag',
externalSearch: 'Pesquisa externa',
readAloud: 'Ler em voz alta',
searchEmpty: 'Conteúdo de pesquisa vazio',
searchUrlError: 'Não foi possível criar URL de pesquisa',
searchFailed: 'Pesquisa externa falhou',
addTag: 'Adicionar tag',
tagInputHint: 'Nome da tag',
tagAdded: 'Tag adicionada',
tagAddFailed: 'Falha ao adicionar tag',
addLabel: 'Adicionar',
editSentence: 'Editar citação',
blocked: 'Bloqueado',
block: 'Bloquear',
notInterestedToast: 'Marcado como não interessado',
notInterested: 'Não interessado',
searchQuery: 'Pesquisar "{0}"',
),
readLater: TReadLater(
readLaterLabel: 'Ler depois',
readLaterPageTitle: 'Ler depois',
readLaterCountFormat: '{0} itens',
readLaterEmpty: 'Sem itens para ler depois',
readLaterEmptyHint: 'Deslize em uma citação para adicionar',
imageType: 'Imagem',
videoType: 'Vídeo',
audioType: 'Áudio',
fileType: 'Arquivo',
linkType: 'Link',
docType: 'Documento',
textType: 'Texto',
imageEmoji: 'Imagem',
videoEmoji: 'Vídeo',
audioEmoji: 'Áudio',
fileEmoji: 'Arquivo',
textEmoji: 'Texto',
archiveLabel: 'Arquivo compactado',
fileLabel: 'Arquivo',
removedFromReadLater: 'Removido de ler depois',
operationFailed: 'Operação falhou',
detailLabel: 'Detalhes',
closeLabel: 'Fechar',
sizeLabel: 'Tamanho',
typeLabel: 'Tipo',
searchPlaceholder: 'Pesquisar em Ler depois',
allLabel: 'Tudo',
selectedLabel: 'Selecionado',
cancelLabel: 'Cancelar',
selectAllLabel: 'Selecionar tudo',
deleteLabel: 'Excluir',
markReadLabel: 'Marcar como lido',
markedReadLabel: 'Marcado como lido',
markAllReadLabel: 'Marcar tudo como lido',
markAllReadConfirm: 'Marcar todos os itens como lidos?',
confirmLabel: 'Confirmar',
batchDeletedLabel: '{0} itens excluídos',
sortLabel: 'Ordenar por',
sortTimeDesc: 'Tempo (Mais recente)',
sortTimeAsc: 'Tempo (Mais antigo)',
sortType: 'Por tipo',
sortSize: 'Por tamanho',
copyLabel: 'Copiar',
copiedLabel: 'Copiado',
copyLinkLabel: 'Copiar link',
shareLabel: 'Compartilhar',
removeReadLaterLabel: 'Remover de Ler depois',
openBrowserLabel: 'Abrir no navegador',
newFolderLabel: 'Nova pasta',
folderNameHint: 'Nome da pasta',
renameFolderLabel: 'Renomear pasta',
newNameHint: 'Novo nome',
renameLabel: 'Renomear',
deleteFolderLabel: 'Excluir pasta',
moveToFolderLabel: 'Mover para pasta',
unfiledLabel: 'Não arquivado',
createFolderAndShare: ' Nova pasta',
manageTagsLabel: '🏷️ Gerenciar tags',
newTagHint: 'Inserir nova tag',
addLabel: 'Adicionar',
syncingLabel: 'Sincronizando...',
syncFailedLabel: 'Sincronização falhou',
syncSuccessLabel: 'Sincronização bem-sucedida',
batchAddTagLabel: 'Adicionar tags em lote',
tagNameHint: 'Inserir nome da tag',
shareToSharedListLabel: 'Compartilhar na lista compartilhada',
noSharedListHint: 'Sem listas compartilhadas, crie uma primeiro',
aiSummaryLabel: 'Resumo IA',
generatingAiSummaryLabel: 'Gerando resumo IA...',
aiSummaryFailedLabel: 'Falha ao gerar resumo IA',
noSummaryAvailable: 'Nenhum resumo disponível',
copySummaryLabel: 'Copiar',
copiedSummaryLabel: 'Resumo copiado',
qrShareTitle: 'Compartilhar "{0}"',
qrScanHint: 'Escanear código QR para entrar na lista compartilhada',
copyShareLinkLabel: 'Copiar link',
selectActionLabel: 'Selecionar ação',
createNewListAndShare: ' Criar nova lista e compartilhar',
discoverLabel: 'Descobrir',
dragFilesToReadLater: 'Soltar arquivos em Ler depois',
folderLabel: 'Pasta',
tagLabel: 'Tag',
locationType: 'Localização',
minutesAgo: '{0} min atrás',
hoursAgo: '{0} h atrás',
daysAgo: '{0} dias atrás',
addedToReadLater: '{0} arquivos adicionados a Ler depois',
allTagsLabel: 'Todas as tags',
removeTagConfirm: 'Tag "{0}" removida',
tagAdded: 'Tag "{0}" adicionada',
tagRemoved: 'Tag "{0}" removida',
folderCreated: 'Pasta "{0}" criada',
folderRenamed: 'Renomeada',
folderDeleted: 'Pasta excluída',
movedToFolder: 'Movida para "{0}"',
removedFromFolder: 'Removida da pasta',
sharedToList: 'Compartilhada em "{0}"',
),
),
discover: TDiscover(
base: TDiscoverBase(
browse: 'Navegar',
likes: 'Curtidas',
favorite: 'Favoritos',
readLater: 'Depois',
notes: 'Notas',
loginToSync: 'Faça login para sincronizar',
login: 'Entrar',
noInspiration: 'Sem inspiração',
refresh: 'Atualizar',
listView: 'Lista',
gridView: 'Cartões',
pinned: 'Fixado',
conversations: 'Conversas',
pullDownTools: 'Puxe para ferramentas',
releaseToRefresh: 'Solte para atualizar',
remark: 'Observação',
originalName: 'Nome original',
remarkPlaceholder: 'Nome da observação (vazio = original)',
saveRemark: 'Salvar observação',
loginRequired: 'Faça login primeiro',
comingSoon: 'Em breve',
browseHistory: 'Histórico',
likesHistory: 'Curtidas',
myNotes: 'Minhas notas',
readLaterFull: 'Ler depois',
makeCard: 'Criar cartão',
favoriteAction: 'Favoritar',
tryOtherCategory: 'Tente outra categoria',
shareAction: 'Compartilhar',
shareText: 'Compartilhar Inspiração',
cardSaved: 'Cartão salvo',
cardSaveFailed: 'Falha ao salvar',
copiedToClipboard: 'Copiado para a área de transferência',
errorLoading: 'Falha ao carregar, toque para tentar novamente',
favorited: 'Favoritado',
relatedRecommend: 'Recomendados',
notInterested: 'Não interessado',
dailyRead: 'Leitura diária',
changeGroup: 'Atualizar',
relatedRecommendShort: 'Recomendados',
noRecommendContent: 'Sem recomendações',
inspiration: 'Inspiração',
stopReading: 'Parar',
readAloud: 'Ler em voz alta',
inspirationCategory: 'Categorias',
searchLabel: 'Pesquisar',
loadMore: 'Carregar mais',
// Nomes e descrições de sessão
sessionReadLater: 'Ler depois',
sessionReadLaterDesc: 'Salvar conteúdo para ler depois',
sessionInspiration: 'Inspiração',
sessionInspirationDesc:
'Citações populares · Categorias · Escolha do dia',
sessionFootprint: 'Histórico',
sessionFootprintDesc: 'Ler · Curtidas · Favoritos · Ler depois · Notas',
sessionDailyCard: 'Cartão do dia',
sessionDailyCardDesc: 'Citação do dia · Mudar estilo · Compartilhar',
sessionTemplate: 'Modelos de papel de parede',
sessionTemplateDesc: 'Modelos · Categorias · Aplicar instantaneamente',
sessionReadingReport: 'Relatório de leitura',
sessionReadingReportDesc:
'Semana/Mês/Ano · Tendências · Mapa de calor · Conquistas',
sessionWeather: 'Poesia e Clima',
sessionWeatherDesc: 'Clima em tempo real · Poemas contextuais · Humor',
sessionPoetry: 'Poesia do dia',
sessionPoetryDesc:
'Recomendação diária · Poema completo · Tradução e análise',
sessionDailyFortune: 'Horóscopo do dia',
sessionDailyFortuneDesc: 'Horóscopo · Análise 6D · Indicadores de sorte',
sessionSolarTerm: 'Termos solares',
sessionSolarTermDesc: '24 termos solares · Poemas · Costumes',
sessionKnowledgeGraph: 'Grafo de conhecimento',
sessionKnowledgeGraphDesc:
'Explorar conexões entre poemas, autores e temas',
sessionStudyPlan: 'Plano de estudo',
sessionStudyPlanDesc: 'Criar plano de estudo, manter consistência diária',
sessionProgress: 'Progresso',
sessionProgressDesc: 'Hoje · Semana · Mês · Ano · Contagem regressiva',
sessionFileTransfer: 'Transferência de arquivos',
sessionFileTransferDesc: 'LAN · Bluetooth · WebRTC · USB',
sessionRssFeed: 'Feed RSS',
sessionRssFeedDesc: 'Assinaturas RSS/XML de terceiros',
sessionTranslate: 'Tradutor',
sessionTranslateDesc: 'Tradução multilíngue · Detecção automática',
sessionLeisure: 'Lazer',
sessionLeisureDesc:
'Flores · Gastronomia · Pontos turísticos · Linha do tempo',
sessionCtcNoteRepo: 'Repo de Notas',
sessionCtcNoteRepoDesc:
'Armazenamento na nuvem · Sync · Acesso em qualquer lugar',
),
chatFlow: TChatFlow(
chatFlow: '',
chatSettings: 'Configuracoes do chat',
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: 'Buscar sessão ou conteúdo…',
noSearchResults: 'Nenhum resultado encontrado',
sessionSection: 'Sessões',
messageContentSection: 'Conteúdo da mensagem',
pin: 'Fixar',
unpin: 'Desafixar',
hideSession: 'Ocultar',
unhideSession: 'Mostrar',
remark: 'Observação',
markAsRead: 'Marcar como lido',
markAsUnread: 'Marcar como não lido',
muteNotifications: 'Silenciar notificações',
unmuteNotifications: 'Ativar notificações',
hideSettings: 'Configurações de ocultação',
deleteSession: 'Excluir',
emptyReadlater: 'Sem conteúdo para ler depois',
emptyChat: 'Sem mensagens',
emptyReadlaterHint: 'Salve conteúdo para ler depois',
emptyChatHint: 'Envie uma mensagem para começar a conversa',
newConversation: 'Nova conversa',
conversationNamePlaceholder: 'Nome da conversa',
create: 'Criar',
sentToCategory: 'Enviado para',
sent: 'Enviado',
readlaterList: 'Lista de leitura posterior',
manageTags: 'Gerenciar etiquetas',
manageFolders: 'Gerenciar pastas',
cloudSync: 'Sincronização na nuvem',
aiSummary: 'Resumo IA',
sharedCollab: 'Colaboração compartilhada',
deviceSync: 'Sincronização entre dispositivos',
updateWidget: 'Atualizar widget',
clipboardMonitor: 'Monitor de área de transferência',
markAllRead: 'Marcar tudo como lido',
exportContent: 'Exportar conteúdo',
clearReadlater: 'Limpar leitura posterior',
allMarkedRead: 'Tudo marcado como lido',
clearReadlaterConfirm:
'Limpar os {count} itens da leitura posterior? Esta ação não pode ser desfeita.',
clearButton: 'Limpar',
readlaterCleared: 'Leitura posterior limpa',
readlaterStats: 'Total: {total} · Lidos: {read} · Não lidos: {unread}',
tagManagement: 'Gerenciamento de etiquetas',
addTagButton: 'Adicionar',
noTags: 'Sem etiquetas',
addTagHint: 'Toque para adicionar etiquetas',
addTagTitle: 'Adicionar etiqueta',
tagNamePlaceholder: 'Nome da etiqueta',
tagDeleted: 'Etiqueta "{tag}" excluída',
tagAdded: 'Etiqueta "{tag}" adicionada',
tagFilterTitle: 'Etiqueta: {tag}',
tagMessageCount: '{count} mensagens',
folderManagement: 'Gerenciamento de pastas',
createFolderButton: 'Nova',
noFolders: 'Sem pastas',
createFolderHint: 'Toque para criar pasta',
folderDeleted: 'Pasta "{name}" excluída',
createFolderTitle: 'Nova pasta',
folderNamePlaceholder: 'Nome da pasta',
folderCreated: 'Pasta "{name}" criada',
renameFolderTitle: 'Renomear pasta',
messageCountUnit: '{count} mensagens',
addTagAction: 'Adicionar',
aiSummaryAction: 'Resumo IA',
smartTagAction: 'Etiquetas inteligentes',
archiveToFolder: 'Arquivar na pasta',
existingTags: 'Etiquetas existentes: {tags}',
generatingSummary: 'Gerando resumo...',
summaryCopied: 'Resumo copiado',
aiSummaryUnavailable: 'Resumo IA indisponível',
aiSummaryFailed: 'Erro no resumo IA: {error}',
analyzingTags: 'Analisando...',
emptyContentNoTags: 'Conteúdo vazio, não é possível sugerir etiquetas',
noTagSuggestions: 'IA sem sugestões de etiquetas',
smartTagSuggestionTitle: 'Sugestões de etiquetas inteligentes',
aiSuggestedTags: 'Etiquetas sugeridas pela IA: {tags}',
tagsAddedCount: '{count} etiquetas adicionadas',
addAllTags: 'Adicionar todas',
selectFolder: 'Selecionar pasta',
archivedToFolder: 'Arquivado em "{name}"',
createFolderFirst: 'Crie uma pasta primeiro',
exportAsJsonAction: 'Exportar como JSON',
exportAsMarkdownAction: 'Exportar como Markdown',
exportAsZipAction: 'Exportar como ZIP',
exportedToClipboardJson:
'{count} itens exportados para a área de transferência (JSON)',
exportedToClipboardMarkdown:
'{count} itens exportados para a área de transferência (Markdown)',
readlaterExportTitle: 'Exportar leitura posterior',
zipExportSuccess: 'Exportação ZIP concluída',
exportFailedMsg: 'Erro na exportação: {error}',
readlaterExportSubject: 'Exportação de leitura posterior',
syncing: 'Sincronizando...',
syncComplete:
'Sincronização concluída ↑{uploaded} ↓{downloaded} ⚡{conflicts}',
syncFailed: 'Erro na sincronização: {error}',
noContentForSummary: 'Sem conteúdo para gerar resumo',
generatingAiSummary: 'Gerando resumo IA...',
summaryCopiedToClipboard: 'Resumo copiado para a área de transferência',
aiSummaryUnavailableRetry:
'Resumo IA indisponível, tente novamente mais tarde',
sharedCollabTitle: 'Colaboração compartilhada',
createButton: 'Criar',
noSharedLists: 'Sem listas compartilhadas',
createSharedListHint: 'Crie uma lista compartilhada para colaborar',
sharedListStats: '{members} membros · {messages} mensagens',
createSharedListTitle: 'Criar lista compartilhada',
listNamePlaceholder: 'Nome da lista',
sharedListCreated: 'Lista compartilhada "{name}" criada',
membersCount: 'Membros: {count}',
messagesCount: 'Mensagens: {count}',
createdDate: 'Criado: {date}',
leftSharedList: 'Lista compartilhada abandonada',
leaveList: 'Sair da lista',
discoveringDevices: 'Procurando dispositivos...',
noDevicesFound:
'Nenhum dispositivo encontrado, verifique se estão conectados',
selectTargetDevice: 'Selecionar dispositivo de destino',
syncingToDevice: 'Sincronizando com {device}...',
syncSendFailed: 'Falha ao enviar sincronização',
deviceDiscoveryFailed: 'Falha ao procurar dispositivos: {error}',
widgetUpdated: 'Widget atualizado',
widgetUpdateFailed: 'Falha ao atualizar widget: {error}',
clipboardMonitorTitle: 'Monitor de área de transferência',
clipboardStatusMonitoring: 'Status: Monitorando',
clipboardStatusOff: 'Status: Desativado',
clipboardMonitorEnabled: 'Monitor de área de transferência ativado',
clipboardMonitorDisabled:
'Monitor de área de transferência desativado',
enableMonitor: 'Ativar monitor',
disableMonitor: 'Desativar monitor',
viewClipboard: 'Ver área de transferência',
clipboardContent: 'Conteúdo da área de transferência: {content}',
clipboardEmpty: 'Área de transferência vazia',
),
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: 'Eu',
myFavorites: 'Favoritos',
readingHistory: 'Histórico',
darkMode: 'Modo Escuro',
accountSettings: 'Conta',
dataManagement: 'Dados',
offlineMode: 'Offline',
cacheManagement: 'Cache',
themeCustomization: 'Tema',
desktopWidgets: 'Widgets',
sentenceSource: 'Fontes',
aboutApp: 'Sobre',
rateApp: 'Avaliar',
debugMode: 'Depurar',
tapToLogin: 'Toque para entrar',
defaultUserName: 'Usuário Xianyan',
appSlogan: 'Descubra citações, crie cartões',
freeTier: 'Gratuito',
points: 'Pontos',
checkin: 'Check-in',
notes: 'Notas',
quickActions: 'Ações rápidas',
scanQr: 'Escanear',
nearbyTransfer: 'Transferir',
payment: 'Pagamento',
selectScanMethod: 'Selecionar método de scan',
scanQrLogin: 'Login QR',
scanQrCode: 'Escanear QR code',
appStoreNotFound: 'Loja de apps não encontrada',
experimentalFeature: 'Funcionalidades experimentais',
underReview: 'Em revisão',
changeAvatar: 'Alterar avatar',
inputAvatarUrl: 'Inserir URL do avatar',
selectFromAlbum: 'Escolher do álbum (Em breve)',
avatarUrlHint: 'A URL não deve exceder 2048 caracteres, apenas links http/https',
pleaseInputUrl: 'Por favor, insira uma URL',
urlMustStartWithHttp: 'A URL deve começar com http:// ou https://',
urlTooLong: 'A URL excede o limite de 2048 caracteres',
invalidUrlFormat: 'Formato de URL inválido',
avatarUnderReview: 'Imagem em revisão',
avatarReviewing: 'Revisando imagem do avatar, aguarde...',
avatarChangeSuccess: 'Avatar alterado com sucesso',
avatarChangeFailed: 'Falha ao alterar o avatar',
success: 'Sucesso',
failed: 'Falhou',
ok: 'OK',
loading: 'Carregando...',
loginToViewProfile: 'Entre para ver seu perfil',
goLogin: 'Entrar',
consecutiveCheckin: 'Check-in Consecutivo',
favorites: 'Favoritos',
likes: 'Curtidas',
dailyCheckin: 'Check-in Diário',
learningCenter: 'Centro de Aprendizado',
achievementCenter: 'Centro de Conquistas',
dailyTask: 'Tarefas Diárias',
leaderboard: 'Ranking',
dataStatistics: 'Estatísticas de Dados',
myNotes: 'Minhas Notas',
contentCorrection: 'Correção de Conteúdo',
myDevices: 'Meus Dispositivos',
tagCloud: 'Nuvem de Tags',
personalInfo: 'Informações Pessoais',
username: 'Nome de Usuário',
nickname: 'Apelido',
bio: 'Bio',
notSet: 'Não definido',
notFilled: 'Não preenchido',
set: 'Definido',
reviewing: 'Em revisão',
editUsername: 'Editar Nome de Usuário',
editNickname: 'Editar Apelido',
nearbyDiscovery: 'Dispositivos próximos',
nearbyDiscoveryDesc: 'Bluetooth + Wi-Fi descobrir dispositivos próximos',
totalTasks: 'Total',
taskClaimed: 'Resgatado',
perfectDay: 'Dia perfeito',
perfectDayAllDone: 'Todas as tarefas concluídas',
perfectDayReward: 'Recompensa dia perfeito',
perfectDayRewardDesc: 'Todas as tarefas concluídas! Resgate a recompensa extra',
claimPerfectDayReward: 'Resgatar recompensa',
rewardSuffix: 'Recompensa',
expUnit: 'EXP',
scoreUnit: 'Pontos',
noTasks: 'Sem tarefas',
noTasksDesc: 'Sem tarefas hoje. Volte mais tarde!',
great: 'Ótimo!',
loginToCheckin: 'Faça login para registrar presença',
loginToCheckinDesc: 'Faça login para participar do check-in diário e ganhar pontos',
viewAchievementCenter: 'Ver centro de conquistas',
todaySigned: 'Presença registrada hoje',
tapToCheckin: 'Toque para registrar',
signed: 'Registrado',
weeklyCheckin: 'Esta semana',
totalCheckinDays: 'Total {0} dias',
checkinHistory: 'Histórico de presença',
noCheckinRecord: 'Sem registros de presença',
todayLabel: 'Hoje',
checkinDate: 'Data do check-in',
status: 'Status',
signedStatus: 'Registrado ✓',
remark: 'Observação',
dailyCheckinTaskDone: 'Check-in diário concluído',
makeupCheckin: 'Recuperar',
makeupCostInfo: 'A recuperação custa pontos. Confirme:',
makeupDate: 'Data de recuperação',
costPoints: 'Pontos de custo',
currentPoints: 'Pontos atuais',
makeupInfo: 'Info de recuperação',
makeupLimitInfo: 'Apenas 1 recuperação por dia. Pontos insuficientes = impossível (precisa de {0} pontos)',
confirmMakeup: 'Confirmar recuperação',
insufficientPoints: 'Pontos insuficientes',
insufficientPointsDesc: 'A recuperação precisa de {0} pontos, atual: {1}\n\n Ganhe pontos com check-in diário, publicação de artigos etc.',
makeupSuccess: 'Recuperação bem-sucedida',
makeupSuccessDesc: '{0} recuperação bem-sucedida, {1} pontos descontados',
makeupFailed: 'Recuperação falhou',
makeupFailedRetry: 'Recuperação falhou, tente novamente mais tarde',
timesUnit: 'vezes',
daysUnit: 'dias',
accountAndData: 'Account & Data',
editProfile: 'Edit Profile',
edit: 'Edit',
editBio: 'Edit Bio',
save: 'Save',
pleaseInput: 'Please enter',
modifySuccess: 'Modified successfully',
modifyFailed: 'Modification failed',
userProfile: 'User Profile',
goBack: 'Back',
userNotExist: 'User not found',
retry: 'Retry',
anonymousUser: 'Anonymous',
articles: 'Articles',
follow: 'Follow',
followed: 'Following',
theUser: 'this user',
privateMessage: 'Message',
gotIt: 'Got it',
shareProfile: 'Share Profile',
blockUser: 'Block User',
personalBio: 'Bio',
titleLevel: 'Title Level',
activeData: 'Activity',
beginner: 'Beginner',
apprentice: 'Apprentice',
skilled: 'Skilled',
expert: 'Expert',
master: 'Master',
signInCount: 'Check-in {count}',
noteCount: 'Notes {count}',
likeCount: 'Likes {count}',
commentCount: 'Comments {count}',
viewCount: 'Views {count}',
readLaterCount: 'Read Later {count}',
modifyField: 'Edit {field}',
pleaseInputField: 'Enter {field}',
fieldModifySuccess: '{field} updated',
fieldModifyFailed: 'Failed: {error}',
debugInfo: 'Debug Info',
defaultBio: 'Light up every moment with words',
exitSubProject: 'Sair do subprojeto',
exitApp: 'Sair do XianYan',
exitAccount: 'Sair da conta XianYan',
closeAppToDesktop: 'Fechar e voltar ao desktop',
closeAppKillBackground: 'Close & Kill Background',
backToDesktop: 'Back to Desktop (No Exit)',
selectExitMethod: 'Select Exit Method',
deviceRemoveCurrentTitle: '移除当前设备',
deviceRemoveCurrentWarning: '移除当前设备后部分场景读取设备ID或相关信息后会自动重新添加该设备建议直接下线而非移除。',
deviceContinueRemove: '继续移除',
deviceVerifyIdentityRemove: '请验证身份以移除设备',
deviceRemoveTitle: '移除设备',
deviceRemoveConfirm: '确定要移除该设备吗?移除后该设备需重新登录。',
deviceRemoved: '设备已移除',
deviceRemoveFailed: '移除失败',
),
settings: TSettings(
language: 'Idioma',
languageSubtitle: 'Alterar idioma de exibição',
generalSettings: 'Geral',
selectLanguage: 'Selecionar idioma',
followSystem: 'Seguir o sistema',
collaborativeTranslation: 'Colaborar',
collaborativeTranslationDesc: 'Ajude a melhorar as traduções',
lastTranslation: 'Última tradução',
translationVersion: 'Versão',
mtMarkTip: 'Traduzido por máquina, pode conter imprecisões',
rtlMarkTip: 'Idioma escrito da direita para a esquerda',
featureExtension: 'Extensões',
plugin: 'Plugins',
pluginSubtitle: 'Guarda de tradução, TTS e mais',
dailyReminder: 'Lembrete diário',
dailyReminderSubtitle: 'Enviar uma citação diária no horário programado',
reminderTime: 'Hora do lembrete',
reminderTimeSubtitle: 'Escolher horário do lembrete diário',
developer: 'Desenvolvedor',
logLevel: 'Nível de registro',
logLevelSubtitle: 'Controlar nível de saída de registro por módulo',
interaction: TSettingsInteraction(
interaction: 'Interação',
sound: 'Som',
soundSubtitle: 'Sons de operação e notificação',
vibration: 'Vibração',
vibrationSubtitle: 'Intensidade do feedback tátil',
soundEffect: 'Efeito sonoro',
soundEffectSubtitle: 'Escolha o estilo do som de operação',
pageTransitionMode: 'Transição de página',
pageTransitionModeNavigate: 'Navegação padrão com voltar deslizando',
pageTransitionModeSheet: 'Folha inferior para telas largas',
predictiveBack: 'Voltar preditivo',
predictiveBackSubtitle: 'Visualizar página anterior ao deslizar',
longPressPreview: 'Visualizar ao manter pressionado',
longPressPreviewSubtitle: 'Visualize detalhes com toque longo',
vibrationStrength: 'Intensidade da vibração',
soundEffectStyle: 'Estilo do efeito sonoro',
pageTransitionModeTitle: 'Transição de página',
navigateDescDetail:
'Deslize da borda esquerda para voltar, suporta animação de voltar preditivo',
sheetDescDetail:
'Abre como folha inferior, adequado para telas largas, toque ✕ para fechar',
standardNavigation: 'Navegação padrão',
bottomSheet: 'Folha inferior',
sfxFeedback: 'Feedback sonoro',
sfxFeedbackSubtitle: 'Reproduzir som nas ações',
sfxStyle: 'Tipo de som',
sfxStyleSubtitle: 'Escolher estilo de efeito sonoro',
),
notification: 'Notificações',
pushNotification: 'Notificações push',
pushNotificationSubtitle: 'Sugestões diárias, check-in e alertas sazonais',
notificationSettings: TSettingsNotification(
notificationSettings: 'Configurações de notificação',
managePersonalizedPush: 'Gerenciar push personalizados',
managePersonalizedPushSubtitle: 'Personalize horários e interruptores de notificação',
dailyRecommendPush: 'Push diário',
dailyRecommendPushSubtitle: 'Push diário de poesia, provérbios e citações',
dailyRecommendPushEnabled: 'Push diário ativado',
dailyRecommendPushDisabled: 'Push diário desativado',
pushTime: 'Horário de push',
dailyRecommendPushTime: 'Horário do push diário',
signinReminder: 'Lembrete de check-in',
signinReminderSubtitle: 'Lembrete diário de check-in, recompensas por sequências',
signinReminderEnabled: 'Lembrete de check-in ativado',
signinReminderDisabled: 'Lembrete de check-in desativado',
signinReminderTime: 'Horário do lembrete de check-in',
studyProgressReminder: 'Lembrete de progresso',
studyProgressReminderSubtitle: 'Lembretes periódicos para revisar e consolidar',
studyProgressReminderEnabled: 'Lembrete de progresso ativado',
studyProgressReminderDisabled: 'Lembrete de progresso desativado',
chargingReadLaterReminder: 'Lembrete ler depois ao carregar',
chargingReadLaterReminderSubtitle: 'Lembrar de ler itens salvos durante o carregamento',
chargingReadLaterReminderEnabled: 'Lembrete ativado',
chargingReadLaterReminderDisabled: 'Lembrete desativado',
fortuneReminder: 'Horóscopo diário',
fortuneReminderSubtitle: 'Push diário do cartão de horóscopo',
fortuneReminderEnabled: 'Horóscopo diário ativado',
fortuneReminderDisabled: 'Horóscopo diário desativado',
fortunePushTime: 'Horário do push de horóscopo',
reminderTime: 'Horário do lembrete',
pushTimeUpdated: 'Horário de push atualizado para {0}',
warmTip: 'Dica',
warmTipContent: 'As notificações exigem permissões do sistema. Se não receber pushes, verifique as permissões de notificação do Xianyan nas configurações do sistema.',
marketingPush: 'Receber marketing do app',
marketingPushSubtitle: 'Receber push marketing da equipe Xianyan em primeiro plano',
marketingPushEnabled: 'Push marketing ativado',
marketingPushDisabled: 'Push marketing desativado',
permissionDenied: 'Permissão de notificação negada',
permissionDeniedContent: 'A permissão de notificação do sistema não está ativada. As notificações push podem não ser recebidas.',
goToSettings: 'Ir para configurações',
previewNotification: 'Visualizar notificação',
notificationStats: 'Estatísticas de notificações',
pushCount: 'Quantidade de push',
clickCount: 'Quantidade de cliques',
noStats: 'Sem estatísticas disponíveis',
),
display: TSettingsDisplay(
display: 'Exibição',
screenTimeout: 'Tempo limite da tela',
screenTimeoutSubtitle: 'Definir tempo de bloqueio automático',
fontSize: 'Tamanho da fonte',
fontSizeSubtitle: 'Ir para configurações de tema',
startupPage: 'Página inicial',
startupPageSubtitle: 'Escolha a página exibida na inicialização',
immersiveStatus: 'Barra de status imersiva',
immersiveStatusSubtitle: 'Ocultar barra de status para tela cheia',
contentDensity: 'Densidade do conteúdo',
contentDensitySubtitle: 'Ajustar espaçamento de listas e cartões',
reduceAnimations: 'Reduzir animações',
reduceAnimationsSubtitle: 'Reduzir efeitos de animação da interface',
screenTimeoutTitle: 'Tempo limite da tela',
startupPageTitle: 'Página inicial',
contentDensityTitle: 'Densidade do conteúdo',
screenAlwaysOn: 'Tela sempre acesa',
screenAlwaysOnSubtitle: 'Manter a tela sempre acesa',
screenAlwaysOnOff: 'Desligado',
screenAlwaysOnReading: 'Ao ler',
screenAlwaysOnAlways: 'Sempre',
screenAlwaysOnTitle: 'Tela sempre acesa',
reopenOnboarding: 'Reabrir introdução',
reopenOnboardingSubtitle: 'Ver introdução e assistente de personalização',
navBarPosition: 'Posição da barra de navegação',
navBarPositionSubtitle: 'Posição da barra de navegação em tela larga',
navBarPositionLeft: 'Esquerda',
navBarPositionTitle: 'Posição da barra de navegação',
splitViewRatio: 'Proporção de tela dividida',
splitViewRatioSubtitle: 'Proporção de painéis esquerdo/direito na tela dividida',
splitViewRatioTitle: 'Proporção de tela dividida',
splitViewEnabled: 'Tela dividida',
splitViewEnabledSubtitle: 'Ativar tela dividida em tela larga',
shaderBackground: 'Plano de fundo shader',
shaderBackgroundSubtitle: 'Efeito de gradiente fluido nos cartões de citações',
),
performance: TSettingsPerformance(
performance: 'Desempenho',
smartMode: 'Modo inteligente',
smartModeSubtitle: 'Alternar automaticamente conforme a rede',
preload: 'Pré-carregar',
preloadSubtitle: 'Carregar conteúdo antecipadamente',
cacheStrategy: 'Estratégia de cache',
cacheStrategySubtitle: 'Controlar comportamento de cache de conteúdo',
imageQuality: 'Qualidade da imagem',
imageQualityOriginal: 'Carregar originais, usa mais dados',
imageQualitySaver: 'Comprimir imagens, economiza dados',
imageQualityBalanced: 'Equilibrar qualidade e uso de dados',
dataSaver: 'Economia de dados',
dataSaverSubtitle: 'Reduzir consumo de dados',
cacheStrategyTitle: 'Estratégia de cache',
imageQualityTitle: 'Qualidade da imagem',
),
privacy: TSettingsPrivacy(
privacyAndPermissions: 'Privacidade e permissões',
appLock: 'Bloqueio do app',
appLockSubtitle: 'Face ID / Desbloqueio por impressão digital',
clipboardRead: 'Leitura da área de transferência',
clipboardReadSubtitle:
'Permitir leitura do conteúdo da área de transferência',
permissionManagement: 'Permissões',
permissionManagementSubtitle: 'Gerenciar permissões do app',
privacyPolicy: 'Política de privacidade',
privacyPolicySubtitle: 'Ver conteúdo da política de privacidade',
nearbyDiscovery: 'Descoberta por proximidade',
nearbyDiscoverySubtitle: 'Permitir que usuários próximos te descubram',
),
advanced: TSettingsAdvanced(
advanced: 'Avançado',
moreSettings: 'Mais configurações',
moreSettingsSubtitle: 'Compatibilidade, depuração, proxy, bateria',
autoCheckUpdate: 'Verificar atualizações automaticamente',
autoCheckUpdateSubtitle: 'Verificar nova versão ao iniciar',
syncSettings: 'Sincronizar configurações',
syncSettingsSubtitle: 'Sincronizar preferências entre dispositivos',
logManagement: 'Registros',
logManagementSubtitle: 'Visualizar e exportar registros do app',
exportImportSettings: 'Exportar / Importar',
exportImportSettingsSubtitle: 'Migrar configurações via JSON',
dataExport: 'Exportar dados',
dataExportSubtitle: 'Exportar dados pessoais',
clearCache: 'Limpar cache',
clearCacheSubtitle: 'Limpar dados em cache localmente',
resetSettings: 'Redefinir configurações',
resetSettingsSubtitle: 'Restaurar todas as configurações para o padrão',
youMayBeLookingFor: 'Você pode estar procurando',
fontManagement: 'Fontes',
clearCacheConfirm:
'Tem certeza de que deseja limpar todos os dados em cache?',
resetSettingsConfirm:
'Tem certeza de que deseja redefinir todas as configurações? Isso não pode ser desfeito.',
exportSettings: 'Exportar configurações',
importSettings: 'Importar configurações',
importSettingsDesc:
'Cole o JSON exportado abaixo. A importação substituirá as configurações atuais.',
confirmImport: 'Confirmar importação',
importSuccess: 'Importação realizada com sucesso',
importFailed: 'Falha na importação, formato inválido',
pasteJson: 'Colar JSON',
pasteJsonPlaceholder: 'Cole o conteúdo JSON exportado...',
otherSettings: 'Outras configurações',
otherSettingsSubtitle: 'Avançado, acessibilidade, bateria e armazenamento',
),
cache: TSettingsCache(
cacheManagement: 'Gerenciamento de Cache de Imagens',
storageOverview: 'Resumo de Armazenamento',
totalCache: 'Cache Total',
fileCount: 'Arquivos',
feedCache: 'Cache de Feed',
cacheBreakdown: 'Detalhamento do Cache',
recentCache: 'Cache Recente',
expiredCache: 'Cache Expirado',
cacheFiles: 'Arquivos de Cache',
cacheActions: 'Ações de Cache',
autoCleanPolicy: 'Política de Limpeza Automática',
autoCleanPolicyDesc:
'Cache mais antigo que o tempo definido será limpo automaticamente',
clearExpiredCache: 'Limpar Cache Expirado',
clearAllCache: 'Limpar Todo o Cache',
cacheSizeLimit: 'Limite de Tamanho do Cache',
cacheSizeLimitDesc: 'Alertar ao exceder o limite',
batchDelete: 'Exclusão em Lote',
selectAll: 'Selecionar Tudo',
deselectAll: 'Desselecionar Tudo',
deleteSelected: 'Excluir Selecionados',
cleaningProgress: 'Limpando...',
cleanLog: 'Registro de Limpeza',
cleanLogDesc: 'Ver histórico de limpeza de cache',
noCache: 'Sem Cache de Imagens',
noCacheHint: 'O cache de imagens aparecerá aqui após a navegação',
retry: 'Tentar Novamente',
loadFailed: 'Falha ao Carregar',
fileDetail: 'Detalhe do Arquivo',
fileName: 'Nome do Arquivo',
fileSize: 'Tamanho do Arquivo',
createdTime: 'Criado',
expiresTime: 'Expira',
resolution: 'Resolução',
format: 'Formato',
sourceUrl: 'URL de Origem',
category: 'Categoria',
expired: 'Expirado',
sortBy: 'Ordenar Por',
sortByDate: 'Por Data',
sortBySize: 'Por Tamanho',
sortByType: 'Por Tipo',
usedSpace: 'Usado',
refLimit: 'Limite',
confirmDelete: 'Excluir este arquivo de cache?',
confirmClearExpired:
'O cache expirado será limpo. Isso não pode ser desfeito.',
confirmClearAll: 'Todo o cache será limpo. Isso não pode ser desfeito.',
irreversible: 'Isso não pode ser desfeito',
cleared: 'Limpo',
clearFailed: 'Falha ao Limpar',
filesUnit: 'arquivos',
daysUnit: 'dias',
policyOff: 'Desativado',
edit: 'Editar',
cancel: 'Cancelar',
delete: 'Excluir',
clear: 'Limpar',
totalCacheLabel: 'Total',
basicInfo: 'Info Básica',
imageInfo: 'Info da Imagem',
sourceInfo: 'Info da Origem',
clearLog: 'Limpar',
noCleanLog: 'Sem registros de limpeza',
selectedCount: 'Selecionados',
status: 'Status',
done: 'Concluído',
all: 'Tudo',
withinDays: 'dentro de',
beforeDays: 'antes de',
currentLabel: 'Atual',
autoCleanSuffix: 'limpeza automática de cache expirado',
currentLimitLabel: 'Limite atual',
confirmBatchDelete: 'Excluir arquivos de cache selecionados?',
deleted: 'Excluído',
unknown: 'Desconhecido',
logCleared: 'Registro limpo',
confirmClearLog: 'Limpar todos os registros de limpeza?',
clearingExpired: 'Limpando cache expirado...',
clearingAll: 'Limpando todo o cache...',
clearingBatch: 'Exclusão em lote...',
storageSpace: 'Espaço de Armazenamento',
database: 'Banco de Dados',
hive: 'Hive',
cacheCount: 'Contagem de Cache',
categoryStats: 'Estatísticas por Categoria',
feedCacheCount: 'Cache de Feed',
pendingSync: 'Sincronização Pendente',
hiveStorage: 'Armazenamento Hive',
chatSessions: 'Sessões',
chatAttachments: 'Anexos de Sessão',
chatTrash: 'Lixeira de Sessão',
transferRecords: 'Registros de Transferência',
pairedDevices: 'Dispositivos Emparelhados',
receivedFiles: 'Arquivos Recebidos',
readLater: 'Ler Depois',
cacheCleanup: 'Limpeza de Cache',
cleanExpiredCache: 'Limpar Cache Expirado',
cleanChatTrash: 'Limpar Lixeira de Sessão',
cleanChatThumbnails: 'Limpar Miniaturas de Sessão',
clearAllCache2: 'Limpar Todo o Cache',
cleanTransferCache: 'Limpar Cache de Transferência',
clearAllChatData: 'Limpar Todos os Dados de Sessão',
cleanReadlaterCache: 'Limpar Cache de Ler Depois',
clearReadlaterData: 'Limpar Todos os Dados de Ler Depois',
cacheStrategy: 'Estratégia de Cache',
cacheLimit: 'Limite de Cache',
expiryDays: 'Dias de Expiração',
offlineMode2: 'Modo Offline',
wifiPreload: 'Pré-carregamento WiFi',
autoSync: 'Sincronização Automática',
cleaningCache: 'Limpando cache...',
itemsUnit: 'itens',
piecesUnit: 'unidades',
cleaningChatTrash: 'Lixeira de Sessão limpa',
cleaningChatThumbnails: 'Miniaturas de Sessão limpas',
cleaningTransferCache: 'Cache de Transferência limpo',
clearingAllChatData: 'Todos os dados de sessão foram limpos',
cleaningReadlaterCache: 'Cache de Ler Depois limpo',
clearingReadlaterData: 'Todos os dados de Ler Depois foram limpos',
allCacheCleared: 'Todo o cache foi limpo',
cleanFailed2: 'Falha na limpeza: {0}',
confirmCleanChatTrashTitle: 'Limpar Lixeira de Sessão',
confirmCleanChatTrashContent: 'Mensagens e arquivos na lixeira com mais de 30 dias serão excluídos permanentemente. Esta ação não pode ser desfeita.',
confirmCleanChatThumbnailsTitle: 'Limpar Miniaturas de Sessão',
confirmCleanChatThumbnailsContent: 'Todo o cache de miniaturas de imagens de sessão será limpo. As imagens originais não serão excluídas.',
confirmClearAllCacheTitle: 'Limpar Todo o Cache',
confirmClearAllCacheContent: 'Tem certeza de que deseja limpar todos os dados de cache? O conteúdo offline será excluído. Esta ação não pode ser desfeita.',
confirmCleanTransferCacheTitle: 'Limpar Cache de Transferência',
confirmCleanTransferCacheContent: 'Miniaturas de transferência, arquivos temporários e registros com mais de 30 dias serão limpos. Arquivos recebidos não serão excluídos.',
confirmClearAllChatDataTitle: 'Limpar Todos os Dados de Sessão',
confirmClearAllChatDataContent: 'Todas as sessões, mensagens, anexos e dados da lixeira serão excluídos. Esta ação não pode ser desfeita!',
confirmCleanReadlaterCacheTitle: 'Limpar Cache de Ler Depois',
confirmCleanReadlaterCacheContent: 'Miniaturas, anexos e arquivos temporários de sincronização de Ler Depois serão limpos. Os registros de mensagens não serão excluídos.',
confirmClearReadlaterDataTitle: 'Limpar Todos os Dados de Ler Depois',
confirmClearReadlaterDataContent: 'Todas as mensagens, anexos e miniaturas de Ler Depois serão excluídos. Esta ação não pode ser desfeita!',
clearAll: 'Limpar Tudo',
clean2: 'Limpar',
enabled2: 'Ativado',
disabled2: 'Desativado',
mbUnit: 'MB',
daysUnit2: 'dias',
cleanTrash: 'Limpar lixeira',
trashSourceInfoTitle: 'Fontes da lixeira',
trashSourceInfoContent: 'Os itens na lixeira vêm de:\n\n💬 Mensagens de sessão — Registros de sessão excluídos\n📖 Ler depois — Artigos salvos excluídos\n📁 Transferências de arquivos — Registros de transferência excluídos\n\nEstes itens serão limpos automaticamente após um período de retenção.',
undoCleanTrash: 'Desfazer',
cleanTrashCountdown: 'A lixeira será esvaziada em {0}s, toque para desfazer',
),
permission: TSettingsPermission(
pageTitle: 'Gestão de Permissões',
loadFailed: 'Falha ao carregar',
headerTitle: 'Info de Permissões',
headerDesc:
'Xianyan solicita apenas permissões necessárias para funções principais. Pode gerir permissões a qualquer momento. Negar algumas permissões pode afetar funcionalidades.',
appPermissionSection: 'Permissões da App',
appPermissionSubtitle: 'Funcionalidades que requerem autorização',
systemCapabilitySection: 'Capacidades do Sistema',
systemCapabilitySubtitle: 'Geridas pelo SO, sem autorização manual',
disclaimer:
'Xianyan não solicita permissões excessivas. Algumas são solicitadas apenas para funções específicas.',
usageStats: 'Estatísticas de Uso',
noUsageData: 'Sem dados de uso de permissões',
totalCountPrefix: 'Total ',
totalCountSuffix: ' vezes',
badgeSystem: 'Sistema',
badgeRequired: 'Obrigatório',
badgeOptional: 'Opcional',
statusGranted: 'Concedido',
statusDenied: 'Negado',
statusPermanentlyDenied: 'Recusado',
statusNotDetermined: 'Não Solicitado',
statusRestricted: 'Restrito',
recentUsagePrefix: 'Recente: ',
timesSuffix: ' vezes',
btnGoSettings: 'Configurações',
btnRequest: 'Solicitar',
frequencyHigh: 'Alta',
frequencyMedium: 'Média',
frequencyLow: 'Baixa',
permCameraLabel: 'Câmera',
permCameraDesc:
'Usada para tirar fotos, escanear QR codes e pareamento de transferência. Solicitada apenas ao usar ativamente, nunca em segundo plano.',
permCameraUsage:
'Papel de parede — Tirar foto|QR Code — Escanear login/pareamento|Transferência — Escanear conexão',
permCameraDenial:
'Não é possível tirar fotos, escanear QR codes ou parear dispositivos',
permPhotosLabel: 'Fotos e armazenamento',
permPhotosDesc:
'Usada para selecionar imagens, salvar obras no álbum e configurar avatar. Acessa apenas imagens selecionadas, nunca lê o álbum inteiro.',
permPhotosUsage:
'Papel de parede — Selecionar imagem|Salvar cartão — Salvar no álbum|Perfil — Configurar avatar',
permPhotosDenial: 'Não é possível selecionar imagens ou salvar no álbum',
permNotificationLabel: 'Notificações',
permNotificationDesc:
'Usada para citações diárias, lembretes de check-in, anúncios, status de transferência e mensagens interativas. Pode ser desativada nas configurações.',
permNotificationUsage:
'Citação diária — Push agendado|Check-in — Lembrete diário|Transferência — Status|Mensagens — Curtidas e comentários',
permNotificationDenial:
'Não é possível receber citações, lembretes e mensagens',
permLocationLabel: 'Localização (aproximada)',
permLocationDesc:
'Usada para informações meteorológicas e lembretes de termos solares. Usa apenas localização aproximada (nível cidade), nunca precisa, sem rastreamento.',
permLocationUsage:
'Clima — Clima da cidade atual|Termos solares — Lembretes locais',
permLocationDenial:
'Não é possível obter informações meteorológicas e lembretes',
permNearbyDevicesLabel: 'Dispositivos próximos',
permNearbyDevicesDesc:
'Usada para descoberta e conexão de dispositivos LAN na transferência. Solicitada apenas ao usar a transferência.',
permNearbyDevicesUsage:
'Transferência — Descoberta LAN|Conexão — WiFi Direct',
permNearbyDevicesDenial:
'Não é possível descobrir ou conectar dispositivos LAN',
permMicrophoneLabel: 'Microfone',
permMicrophoneDesc:
'Usada para leitura por voz, busca por voz e entrada de voz no chat IA. Solicitada apenas ao usar ativamente, nunca grava em segundo plano.',
permMicrophoneUsage:
'Leitura por voz — Ler frases|Busca por voz — Entrada de voz|Chat IA — Mensagem de voz',
permMicrophoneDenial:
'Não é possível usar busca por voz, leitura por voz e entrada de voz',
permStorageLabel: 'Armazenamento',
permStorageDesc:
'Usada para salvar cartões e papéis de parede localmente, exportar fontes e dados. Android 12 e inferior (API≤32) precisa de permissão de leitura; Android 13+ usa permissão de fotos; escrita usa armazenamento particionado.',
permStorageUsage:
'Salvar cartão — Exportar localmente|Papel de parede — Salvar|Fontes — Baixar fontes|Dados — Exportar dados',
permStorageDenial:
'Não é possível salvar cartões e papéis de parede localmente',
permNetworkLabel: 'Conexão de rede',
permNetworkDesc:
'Xianyan precisa de rede para buscar citações, sincronizar dados e notificações. Verifique se a permissão de rede está ativada.',
permNetworkUsage:
'Citações — Carregar seleções diárias|Sincronização — Sync na nuvem|Notificações — Receber mensagens',
permNetworkDenial: 'Não é possível buscar citações e sincronizar dados',
permClipboardLabel: 'Área de transferência',
permClipboardDesc:
'Usada para copiar citações e colar texto no editor. Acessa apenas ao operar ativamente, nunca lê automaticamente.',
permClipboardUsage:
'Copiar citação — Cópia com um toque|Editor — Colar texto|Busca — Colar palavras-chave',
permClipboardDenial: 'Não é possível copiar citações e colar texto',
permShareLabel: 'Compartilhar',
permShareDesc:
'Permite compartilhar conteúdo com outros apps via folha de compartilhamento do sistema',
permShareUsage:
'Compartilhar citação — Compartilhar no WeChat/QQ|Compartilhar cartão — Compartilhar em redes|Exportar log — Compartilhar arquivos',
permShareDenial: 'Não é possível compartilhar conteúdo com outros apps',
permTrackingLabel: 'Rastreamento',
permTrackingDesc: 'Permitir rastreamento de atividade para recomendações personalizadas',
permTrackingUsage: 'Recomendações personalizadas|Análise de preferências',
permTrackingDenial: 'Recomendações personalizadas indisponíveis',
),
dataCollection: TSettingsDataCollection(
pageTitle: 'Dados que Recolhemos',
introTitle: 'Aviso de Recolha de Dados',
introDesc:
'Xianyan valoriza a sua privacidade. Abaixo estão as categorias de informações que recolhemos, utilizamos e armazenamos. Apenas recolhemos dados necessários para funções principais e nunca vendemos a terceiros.',
collectionMethod: 'Método de recolha: ',
riskHigh: 'Risco Alto',
riskMedium: 'Risco Médio',
riskLow: 'Risco Baixo',
riskNone: 'Sem Risco',
categoryAccount: 'Info da Conta',
categoryAccountItems:
'Nome de utilizador, Palavra-passe(criptografada), Email, Telefone(opcional), Pergunta segurança(criptografada)',
categoryAccountMethod: 'Fornecido ao registar-se',
categoryProfile: 'Perfil',
categoryProfileItems: 'Apelido, Bio, Avatar',
categoryProfileMethod: 'Enviado ao editar perfil',
categoryDevice: 'Info do Dispositivo',
categoryDeviceItems:
'Modelo dispositivo, Plataforma, device_id, Endereço IP, User-Agent',
categoryDeviceMethod: 'Recolhido automaticamente ao iniciar',
categoryBehavior: 'Comportamento de Uso',
categoryBehaviorItems:
'Histórico navegação, Termos pesquisa, Comentários, Gostos e Favoritos',
categoryBehaviorMethod: 'Registado automaticamente nas ações',
categoryLocation: 'Info de Localização',
categoryLocationItems: 'Cidade inferida por IP (sem GPS)',
categoryLocationMethod: 'Inferida automaticamente em pedidos de rede',
categoryLocalStorage: 'Armazenamento Local',
categoryLocalStorageItems:
'SharedPreferences, SQLite, Diretório temporário',
categoryLocalStorageMethod: 'Escrito localmente durante execução',
categoryCloudStorage: 'Armazenamento na Nuvem',
categoryCloudStorageItems:
'Notas, Favoritos, Rascunhos nuvem(criptografados), Perfil utilizador',
categoryCloudStorageMethod:
'Carregado para servidor durante sincronização',
categoryNotCollected: 'Dados Não Recolhidos',
categoryNotCollectedItems:
'Contactos, SMS, Localização GPS precisa, Biometria, Dados publicitários',
categoryNotCollectedMethod: '',
rightsTitle: 'Os Seus Direitos',
rightAccess: 'Direito de Acesso',
rightAccessDesc: 'Tem o direito de saber que informações recolhemos',
rightCorrection: 'Direito de Retificação',
rightCorrectionDesc:
'Tem o direito de solicitar correção de informações inexatas',
rightDeletion: 'Direito de Eliminação',
rightDeletionDesc:
'Tem o direito de solicitar a eliminação dos seus dados pessoais',
rightExport: 'Direito de Exportação',
rightExportDesc: 'Tem o direito de exportar os seus dados pessoais',
rightWithdraw: 'Direito de Retirada',
rightWithdrawDesc:
'Tem o direito de retirar o consentimento para a recolha de dados',
footerTitle: 'Aviso Legal',
footerDesc:
'Podemos ajustar o âmbito de recolha conforme atualizações e notificaremos na app. Para questões, contacte-nos através da página "Sobre".',
),
),
about: TAbout(
appInfo: 'Informações do App',
learnUs: 'Sobre Nós',
learnUsSlogan: 'Conecte com palavras, expresse com o coração',
techStack: 'Tecnologias',
techLanguage: 'Linguagem',
techState: 'Gerenciamento de Estado',
techRouter: 'Roteamento',
techNetwork: 'Rede',
buildInfo: 'Info de Compilação',
version: 'Versão',
buildNumber: 'Número de Compilação',
buildTime: 'Data de Compilação',
deviceInfo: 'Info do Dispositivo',
os: 'SO',
deviceType: 'Tipo de Dispositivo',
deviceUnknown: 'Desconhecido',
deviceMobile: 'Móvel',
deviceDesktop: 'Desktop',
renderEngine: 'Motor de Renderização',
screenDetail: 'Detalhes da Tela',
screenSize: 'Tamanho da Tela',
pixelRatio: 'Proporção de Pixels',
platformCompat: 'Compatibilidade de Plataformas',
updateLog: 'Novidades',
updateLog1: 'Nova página Sobre com design de vidro líquido',
updateLog2: 'Exibição de informações multiplataforma',
updateLog3: 'Melhorias de desempenho e UX',
openSource: 'Licenças de Código Aberto',
footerSlogan: 'Feito com amor',
officialSiteTitle: 'Site Oficial',
officialSite: 'Página Inicial',
officialSiteDesc: 'Visite o site oficial para novidades e downloads',
businessSite: 'Site comercial',
otherProducts: 'Outros Produtos',
productPoetry: 'Poesia Cênica',
productPoetryDesc: 'Recomenda poesias conforme o momento e local',
productKitchen: 'Cozinha XiaoMa',
productKitchenDesc:
'10.000+ receitas, 1.000+ ingredientes, enciclopédia culinária',
developer: 'Desenvolvedor',
companyName: 'Micro storm studio',
companyDesc: 'Especializados em desenvolvimento de apps móveis',
contactEmail: 'E-mail de Contato',
viewEmails: 'Ver endereços de e-mail',
emailAnyContact: '📬 Pode nos contatar por qualquer e-mail',
emailReplyDays: '⏱ Respondemos em 1 a 3 dias normalmente',
emailTimeoutTip: '⏳ Sem resposta? Tente outro endereço de e-mail',
emailGroupChatTip: '💬 Participe do chat em grupo para respostas mais rápidas',
emailSubjectTip: '📝 Assunto: indique « App 闲言 Dúvida »',
emailCorrectionTip: '✏️ Também pode informar pela página de correções',
wechatAccount: 'Conta Oficial do WeChat',
teamInfo: 'Equipe',
roleDesign: 'Dev e Design',
roleUIUX: 'UI/UX',
roleBackend: 'Backend',
roleNative: 'Stack Nativo',
roleSupport: 'Suporte i18n',
member1: '无书的书',
member1Sig: 'Sempre quase lá',
member2: 'ayk',
member2Sig: '',
member3: '伯乐不相马',
member3Sig: 'De quem é esse roxo tão uau~',
member4: '泼茶香',
member4Sig: 'Criar gatos juntos, ver o mar',
member1Social: 'TikTok:@itbole',
member2Social: 'Twitter@Ayk_Ago',
member3Social: 'telegram@iboler',
qqGroup: 'Grupo QQ',
qqGroupDesc: 'Junte-se ao grupo para compartilhar sua experiência',
joinQQGroup: 'Entrar no Grupo QQ',
qqGroupConfirm:
'Você vai sair do app e abrir a página do grupo QQ. Continuar?',
qqGroupTelegram: 'Grupo Telegram',
qqGroupTelegramDesc: 'https://t.me/Windmill_CodeTalk',
icpInfo: 'APP Número de registro ICP',
icpInfoHint:
'Na China continental, o registro ICP para aplicativos conectados à Internet é obrigatório como medida de segurança. Verifica a identidade do desenvolvedor e permite rastreabilidade completa através de sites governamentais. Usuários estrangeiros podem ignorar.',
icpDesc: 'Número de registro ICP do MIIT',
viewIcpDetail: 'Ver Detalhes do Registro',
icpLaunchConfirm:
'Você vai sair do app e visitar o site de registro ICP. Continuar?',
contributors: 'Colaboradores',
contributorsDesc: 'Obrigado a todos os colaboradores',
specialThanks: 'Agradecimento Especial',
specialThanksDesc: 'Obrigado às seguintes organizações e pessoas',
contributorRole1: 'Desenvolvimento de Código',
contributorRole2: 'Design UI',
contributorRole3: 'Testes',
contributorRole4: 'Documentação',
contributorRole5: 'Testador Especial',
contributorRole5Name: '广州性感母蟑螂',
thanksFlutter:
'Obrigado à equipe Flutter pelo excelente framework multiplataforma',
thanksOpenSource:
'Obrigado à comunidade open source por contribuições e apoio',
thanksQQGroup: 'Obrigado aos membros do grupo QQ por feedback e sugestões',
thanksUsers: 'Obrigado a todos os usuários pelo apoio',
specialThanksTools: 'Ferramentas e Plugins',
bottomEnd: '— Fim —',
copied: 'Copiado para a área de transferência',
openLink: 'Abrir Link',
leaveAppHint: 'Você vai sair do Xianyan e abrir um link externo',
copyLink: 'Copiar Link',
goTo: 'Ir',
aboutTitle: 'Sobre',
basicInfo: 'Informações básicas',
softwareInfoDesc: 'Ver versão e detalhes',
learnUsMenuDesc: 'A história e visão do Xianyan',
usageGuide: 'Guia do usuário',
usageGuideDesc: 'Introdução e guia de operação',
interactionFeedback: 'Feedback',
userFeedback: 'Feedback do usuário',
userFeedbackDesc: 'Enviar opiniões ou sugestões',
rateAppMenu: 'Avaliar app',
rateAppMenuDesc: 'Avalie-nos na loja de apps',
contactEmailMenuDesc: 'Ver todos os e-mails',
rateDialogTitle: 'Dê-nos 5 estrelas!',
rateDialogContent1: 'Se você gosta do Xianyan, deixe uma avaliação!',
rateDialogContent2: 'Seu apoio é nossa motivação',
laterButton: 'Mais tarde',
huaweiStore: 'Huawei AppGallery',
appStore: 'Loja de aplicativos',
goRate: 'Avaliar',
emailHint1: 'Sem resposta em 24h, tente outro e-mail',
emailHint2: 'Qualquer e-mail serve para contato',
legalInfo: 'Informações legais',
softwareAgreement: 'Acordo de software',
softwareAgreementDesc: 'Política de privacidade, termos, etc.',
dataCollectionMenu: 'Coleta de dados',
dataCollectionMenuDesc: 'Ver quais informações coletamos',
softwarePermission: 'Permissões',
softwarePermissionDesc: 'Ver declaração de permissões',
openSourceDesc: 'Ver licenças open source',
updateLogMenuDesc: 'Ver histórico de atualizações',
checkUpdate: 'Verificar atualizações',
alreadyLatest: 'Já atualizado',
alreadyLatestDesc: 'Você já tem a versão mais recente',
okButton: 'OK',
comingSoon: 'Em breve',
distributionChannel: 'Canal de distribuição',
distAndroid: 'Baixado do site oficial do Xianyan',
distIOS: 'Distribuído via App Store',
distMacOS: 'Distribuído via App Store',
distHarmony: 'Distribuído via AppGallery',
distWeb: 'Solicitação necessária',
distWindows: 'Baixado do site oficial do Xianyan',
),
auth: TAuth(
welcomeBack: 'Bem-vindo de volta',
loginToAccount: 'Entre na sua conta Xianyan',
password: 'Senha',
verifyCode: 'Código',
token: 'Token',
legacyUser: 'Legado',
passwordLogin: 'Login com senha',
codeLogin: 'Login com código',
tokenLogin: 'Login com Token',
legacyLogin: 'Login legado',
noAccountRegister: 'Sem conta? Registre-se agora',
skipLogin: 'Pular login',
otherMethods: 'Outros métodos',
otherLoginMethods: 'Outros métodos de login',
webLogin: 'Login Web',
wechat: 'WeChat',
qrcode: 'Código QR',
loginAgreePrefix: 'Ao entrar, você concorda ',
registerAgreePrefix: 'Ao se registrar, você concorda ',
userAgreement: 'Termos de uso',
and: ' e ',
privacyPolicy: 'Política de privacidade',
resetPassword: 'Redefinir senha',
resetPasswordHint: 'Entre com código para alterar sua senha',
featureNotSupported: 'Este recurso não é suportado neste dispositivo',
loginSuccess: 'Login bem-sucedido, bem-vindo!',
pleaseAgreeTerms: 'Aceite os termos e a política de privacidade primeiro',
pleaseEnterAccount: 'Insira nome de usuário ou email',
pleaseEnterPassword: 'Insira a senha',
passwordTooShort: 'A senha deve ter pelo menos 6 caracteres',
pleaseEnterEmail: 'Insira o endereço de email',
pleaseEnterValidEmail: 'Insira um endereço de email válido',
pleaseEnterCode: 'Insira o código de verificação',
codeExpiredOrWrong: 'Código incorreto ou expirado',
codeLoginFailed: 'Falha no login com código',
pleaseEnterToken: 'Insira o Token',
tokenTooShort: 'Token muito curto, verifique e tente novamente',
tokenLoginFailed: 'Falha no login com Token',
legacyMigrating: 'Este método está em migração, use outro método',
openInBrowser: 'Abrir no navegador',
registerNotice: 'Aviso de registro',
iUnderstand: 'Entendi',
createAccount: 'Criar conta',
registerNewAccount: 'Registre-se para começar',
username: 'Nome de usuário',
usernameHint: '3-30 caracteres, letras/números/underline/CJK',
usernameTooShort: 'Username must be at least 3 characters',
usernameInvalidChars: 'Username can only contain letters, numbers, underscores and Chinese',
usernameChecking: 'Checking username...',
usernameTaken: 'This username is already taken',
emailRequired: 'Email (obrigatório)',
emailHint: 'Para verificação e recuperação de senha',
nextStep: 'Próximo',
prevStep: 'Voltar',
codeSentTo: 'Código enviado para',
enterCodeHint: 'Insira o código de 6 dígitos',
resend: 'Reenviar',
codeNotReceivedTip:
'Não recebeu o código? Verifique o spam. Contate o suporte se precisar.',
setPassword: 'Definir senha',
passwordHint: 'Senha de 6-30 caracteres',
confirmPassword: 'Confirmar senha',
confirmPasswordHint: 'Insira a senha novamente',
secQuestionOptional: 'Pergunta de segurança (opcional)',
selected: 'Selecionado',
enhanceSecurity: 'Melhorar segurança da conta',
selectSecQuestion: 'Selecionar pergunta de segurança',
enterSecAnswerHint: 'Insira a resposta (1-50 caracteres)',
subscribeEmail: 'Assinar emails da equipe Xianyan',
completeRegister: 'Concluir registro',
hasAccountLogin: 'Já tem conta? Entre',
pleaseFillRequired: 'Preencha todos os campos obrigatórios',
passwordMismatch: 'As senhas não coincidem',
codeError: 'Erro no código de verificação',
registerSuccess: 'Registro bem-sucedido, bem-vindo!',
codeSendFailed: 'Falha ao enviar código, verifique o email',
codeSent: 'Código de verificação enviado',
codeSendFailedShort: 'Falha ao enviar código',
emailRegistered: 'Email já registrado',
emailRegisteredHint:
'Este email ({email}) j\u00e1 est\u00e1 registrado. Ir para a p\u00e1gina de login?',
goLogin: 'Ir para login',
forgotPassword: 'Esqueceu a senha?',
rememberAccount: 'Lembrar conta',
accountOrEmail: 'Nome de usuário ou email',
emailAddress: 'Endereço de email',
emailVerifyCode: 'Código de verificação por email',
sendCode: 'Enviar código',
emailNotReceivedHint:
'Não recebeu o email? Verifique o spam ou tente mais tarde',
tokenLoginHint:
'Insira Token para login rápido\nIdeal para sincronização multi-dispositivo',
pasteOrEnterToken: 'Colar ou inserir Token',
tokenManageHint: 'Obtenha Token em Segurança e gerenciamento de Tokens',
legacyLoginTitle: 'Login legado',
legacyLoginSubtitle: 'Login com sistema de conta anterior',
aboutLegacyLogin: 'Sobre login legado',
legacyLoginNotice:
'Usuários registrados entre 2019 e junho 2023 são legados com benefícios:\n• Manter pontos e níveis\n• Badge e título exclusivos\n• Acesso prioritário a recursos premium\n\nEste método está em migração, use outro método.',
loginSuccessTitle: 'Login bem-sucedido',
redirecting: 'Redirecionando...',
selectOpenMethod: 'Selecione como abrir:',
browser: 'Navegador',
unableOpenBrowser: 'Não é possível abrir o navegador',
cannotVerifyEmail: 'Não consegue verificar o email?',
skipEmailVerifyTip: 'Você pode pular a verificação e definir uma pergunta de segurança no próximo passo. Perguntas de segurança servem para recuperação de senha.',
setSecQuestionToContinue: 'Definir pergunta de segurança para continuar',
warmTips: 'Dicas',
tipOpenWithoutLogin: 'XianYan permanece aberto — a maioria das funções funciona sem login',
tipServerMayFail: 'Problemas no servidor podem causar falhas no registro',
tipWillImprove: 'Melhoraremos o processo de registro em atualizações futuras',
tips: 'Dicas',
forgotPasswordTitle: 'Esqueceu a senha',
forgotPasswordSubtitle: 'Redefina sua senha por verificação',
resetBySecQuestion: 'Pergunta de segurança',
resetByVerifyCode: 'Código de verificação',
resetByContactService: 'Contatar suporte',
newPasswordHint: 'Insira nova senha (6-30 caracteres)',
resetCodeAccountHint: 'E-mail ou número de celular',
resetPasswordSuccess: 'Senha redefinida com sucesso',
resetPasswordFailed: 'Falha ao redefinir a senha',
contactServiceTitle: 'Contatar suporte',
contactServiceSubtitle: 'Se não conseguir redefinir sua senha pelos métodos acima, contate o suporte com as seguintes informações',
contactServiceInfoAccount: 'Conta/nome de usuário registrado',
contactServiceInfoEmail: 'E-mail registrado',
contactServiceInfoDevice: 'Informações do dispositivo (modelo/versão do SO)',
contactServiceInfoDescription: 'Descrição do problema (data de registro, uso, etc.)',
contactServiceMethod: 'Método de contato',
contactServiceMethodDetail: 'Contate o suporte pela página "Sobre" no app ou por e-mail oficial, fornecendo as informações acima para verificação de identidade e assistência.',
experimentalFeature: 'Recurso experimental',
experimentalFeatureDesc: 'A conta Xianyan é um recurso experimental. O registro e o login têm pouco impacto no uso e não são recomendados. A maioria dos recursos funciona sem login.',
dontShowAgain: 'Não mostrar novamente',
viewExperimentalFeatures: 'Ver recursos experimentais',
userBatchFlag: 'Lote: {flag}',
openPeriod: 'Aberto: {period}',
expireNotice: 'Fecha após {year}',
),
progress: TProgress(
title: 'Progresso',
inputHint: 'Digite o nome do progresso...',
noData: 'Sem dados de progresso',
addProgress: 'Adicionar Progresso',
editProgress: 'Editar Progresso',
deleteItem: 'Excluir Item',
clearAll: 'Limpar Todo Progresso Personalizado',
clearAllConfirm: 'Limpar Progresso Personalizado',
clearAllConfirmMsg:
'Tem certeza de que deseja excluir todos os progressos personalizados? Esta ação não pode ser desfeita.',
cancel: 'Cancelar',
add: 'Adicionar',
save: 'Salvar',
name: 'Nome',
nameHint: 'Ex: Contagem regressiva do exame',
tag: 'Etiqueta',
tagHint: 'Ex: Último esforço',
type: 'Tipo',
countdown: 'Contagem regressiva',
progress: 'Progresso',
targetDate: 'Data alvo',
displayStyle: 'Estilo de exibição',
custom: 'Personalizado',
system: 'Sistema',
settings: 'Configurações de Progresso',
styleSetting: 'Estilo de exibição',
styleSettingDesc: 'Personalizar o estilo de exibição do progresso',
dataManagement: 'Gerenciamento de Dados',
dataManagementDesc: 'Gerenciar dados de progresso personalizado',
shareCard: 'Compartilhar Cartão de Progresso',
shareCardDesc: 'Gerar relatório de progresso para compartilhar',
refreshData: 'Atualizar Dados',
refreshDataDesc: 'Recalcular progresso do sistema',
selectStyle: 'Selecionar Estilo de Exibição',
applyStyleTo: 'Aplicar "{style}" a',
applyAll: 'Aplicar a Todos',
current: 'Atual',
applied: '{style} aplicado',
allApplied: '{style} aplicado a todos',
noUserItems: 'Sem progressos personalizados',
noShareData: 'Sem dados de progresso para compartilhar',
saveToAlbum: 'Salvar no Álbum',
systemShare: 'Compartilhamento do Sistema',
saveFailed: 'Falha ao salvar',
shareFailed: 'Falha ao compartilhar',
savedToAlbum: 'Salvo no álbum',
progressReport: 'Relatório de Progresso Xianyan',
totalProgress: 'Progresso Total',
inProgress: 'Em Andamento',
completed: 'Concluído',
moreItems: 'Mais {n} itens',
done: 'Concluído',
progressLabel: 'Progresso',
deleted: 'Excluído',
cleared: 'Limpo',
updated: 'Atualizado',
refreshed: 'Atualizado',
styleDescProgressBar: 'Barra horizontal, mostra a proporção de conclusão',
styleDescRingProgress: 'Estilo anel, ideal para porcentagens',
styleDescCountdownGrid:
'Grade Dias/Horas/Min/Seg, contagem regressiva em tempo real',
styleDescTagOnly: 'Exibição simples de etiqueta, para itens expirados',
nameRequired: 'Por favor, insira o nome do progresso',
dateMustBeFuture: 'A data alvo deve ser posterior a hoje',
undo: 'Desfazer',
itemDeleted: 'Excluído "{name}"',
allCleared: 'Todo progresso personalizado foi limpo',
),
onboarding: TOnboarding(
welcomeTitle: 'Bem-vindo ao Xianyan',
welcomeSubtitle: 'Abrir a vida com palavras · Citações + Papéis de parede',
featureDailyQuote: 'Citação do dia',
featureDailyQuoteDesc:
'Uma citação selecionada todos os dias para começar sua leitura',
featureDailyQuoteDetail:
'Uma citação elegante selecionada para você diariamente, com favoritos, compartilhamento e criação de papéis',
featureWallpaper: 'Criador de papéis',
featureWallpaperDesc:
'Transforme citações em belos papéis de parede para compartilhar',
featureWallpaperDetail:
'Crie papéis de parede impressionantes de suas citações favoritas com vários modelos e estilos',
featureFileTransfer: 'Transferência de arquivos',
featureFileTransferDesc:
'Transferência rápida entre dispositivos via LAN/Bluetooth',
featureFileTransferDetail:
'Transfira arquivos rapidamente por LAN, com Bluetooth, WiFi Direct e mais',
featureChatFlow: 'Fluxo de chat',
featureChatFlowDesc: 'Inscreva-se em feeds RSS, agregue seu conteúdo',
featureChatFlowDetail:
'Inscreva-se em feeds RSS, agregue o conteúdo que você segue, recomendações inteligentes',
permissionEntry: 'Permissões do app',
dataCollectionEntry: 'Coleta de dados',
languageLabel: 'Idioma / Language',
startButton: 'Começar',
gotIt: 'Entendi',
dailyQuoteLabel: 'Citação de hoje',
collectAction: 'Favorito',
shareAction: 'Compartilhar',
makeWallpaperAction: 'Papel',
templateSimple: 'Minimalista',
templateGradient: 'Gradiente',
templateGlass: 'Fosco',
transferring: 'Transferindo 70%',
wifiDirect: 'WiFi Direct',
mobileDevice: 'Dispositivo móvel',
pcDevice: 'Dispositivo PC',
rssLabel: 'Feeds RSS',
addRssSource: 'Adicionar feed',
welcomeNavLabel: 'Bem-vindo',
agreementTitle: 'Acordos',
agreementSubtitle:
'Leia e concorde com os seguintes acordos para proteger seus direitos',
privacyPolicyTab: 'Política de privacidade',
userAgreementTab: 'Acordo do usuário',
permissionInfoTab: 'Permissões',
updateDateLabel: 'Atualizado: ',
permissionUsageTitle: 'Uso de permissões do app',
permissionUsageDesc:
'As permissões abaixo são solicitadas apenas ao usar funções relacionadas',
requiredWarning: 'Negar afetará as funções principais',
optionalLabel: 'Opcional',
systemManagedLabel: 'Gerenciado pelo sistema',
requiredBadge: 'Obrigatório',
systemBadge: 'Sistema',
agreeAllCheckbox:
'Li e concordo com o 《Acordo do usuário》 e a 《Política de privacidade》',
readPermissionCheckbox: 'Li o 《Uso de permissões do app》',
agreeAndContinue: 'Concordar e continuar',
rejectAndExit: 'Recusar e sair',
skipOnboarding: 'Pular',
agreementNavLabel: 'Acordos',
personalizationTitle: 'Personalização',
personalizationSubtitle:
'Crie sua experiência de leitura, ajustável a qualquer momento',
livePreview: 'Pré-visualização ao vivo',
appearance: 'Aparência',
features: 'Funções',
accentColor: 'Cor de destaque',
cardStyle: 'Estilo do cartão',
fontStyle: 'Fonte',
shaderBackground: 'Fundo com efeitos',
soundFeedback: 'Resposta sonora',
showOnNextLaunch: 'Mostrar introdução no próximo início',
completeSetup: 'Concluído, entrar no Xianyan',
),
theme: TTheme(
title: 'Personalização de tema',
presetSection: 'Predefinições de tema',
appearanceSection: 'Modo de aparência',
autoDarkSection: 'Escuro programado',
accentColorSection: 'Cor de destaque',
fontSection: 'Configurações de fonte',
glassEffectSection: 'Efeito vidro fosco',
animationSection: 'Intensidade de animação',
cornerRadiusSection: 'Estilo de arredondamento',
cardStyleSection: 'Estilo de cartão',
tabExpressionSection: 'Captura de luz',
tabCharacterSection: 'Preferência de forma Tab',
bubbleStyleSection: 'Estilo de bolha',
wallpaperSection: 'Papel de parede',
previewSection: 'Pré-visualização em tempo real',
shareSection: 'Compartilhar tema',
modeLight: 'Claro',
modeDark: 'Escuro',
modeAmoled: 'Preto puro',
modeSystem: 'Seguir sistema',
autoDarkOff: 'Desativado',
autoDarkSunset: 'Pôr do sol',
autoDarkCustom: 'Personalizado',
sunsetHint: 'Mudança automática ao pôr do sol (aprox. 18:00 06:30)',
accentPurple: 'Lavanda',
accentCoral: 'Coral',
accentTeal: 'Menta',
accentBlue: 'Azul céu',
accentOrange: 'Laranja quente',
accentPink: 'Flor de cerejeira',
accentGreen: 'Esmeralda',
accentRose: 'Ouro rosa',
accentNoir: 'Preto tinta',
accentCustom: 'Personalizado',
customAccentTitle: 'Cor de destaque personalizada',
hueLabel: 'Matiz',
applyLabel: 'Aplicar',
fontSizeLabel: 'Tamanho da fonte',
fontWeightLabel: 'Peso da fonte',
fontStyleLabel: 'Estilo da fonte',
fontSizeXs: 'Minúsculo',
fontSizeSmall: 'Pequeno',
fontSizeNormal: 'Padrão',
fontSizeLarge: 'Grande',
fontSizeXlarge: 'Muito grande',
fontWeightLight: 'Leve',
fontWeightRegular: 'Padrão',
fontWeightMedium: 'Médio',
fontWeightSemibold: 'Semi-negrito',
fontStyleSystem: 'Padrão do sistema',
fontStyleSerif: 'Serif',
fontStyleMono: 'Monoespaçado',
fontStyleRounded: 'Arredondado',
glassOff: 'Desativado',
glassLight: 'Suave',
glassMedium: 'Médio',
glassStrong: 'Intenso',
animNone: 'Nenhuma',
animSubtle: 'Sutil',
animNormal: 'Padrão',
animPlayful: 'Brincalhão',
cornerCompact: 'Compacto',
cornerStandard: 'Padrão',
cornerRounded: 'Arredondado',
cornerSuper: 'Extra redondo',
cornerRadiusPreview: 'Pré-visualização',
cardStandard: 'Padrão',
cardBorderless: 'Sem borda',
cardShadow: 'Sombra',
cardMinimal: 'Minimalista',
cardIos: 'Xianyan',
tabExpressionDesc: 'Expressividade dos ícones de navegação selecionados',
tabExpressionExaggerated: 'Captura de luz',
tabExpressionSubtle: 'Captura de luz·Sutil',
tabCharacterDesc:
'Estilo de personagem dos ícones de navegação, animal ou humano',
tabCharacterPet: 'Animal',
tabCharacterHuman: 'Humano',
tabCharacterCat: 'Miau',
tabCharacterDog: 'Au au',
tabCharacterBoy: 'Menino',
tabCharacterGirl: 'Menina',
bubbleStyleDesc: 'Aparência das bolhas de chat, efeito global',
bubbleStandard: 'Padrão',
bubbleMinimal: 'Minimalista',
bubbleGlass: 'Vidro fosco',
bubbleShadow: 'Sombra',
selectWallpaper: 'Escolher papel de parede',
clearWallpaper: 'Remover papel de parede',
wallpaperOnlineSet: 'Papel online definido',
wallpaperGallerySet: 'Papel da galeria definido',
wallpaperGradientSet: 'Gradiente definido',
wallpaperSolidSet: 'Cor sólida definida',
wallpaperDefaultSet: 'Papel de parede definido',
wallpaperOnline: 'Papel online',
wallpaperGradientPreset: 'Gradientes predefinidos',
wallpaperFromGallery: 'Escolher da galeria',
wallpaperSolidBackground: 'Fundo cor sólida',
gradientPresetTitle: 'Gradientes predefinidos',
solidColorTitle: 'Fundo cor sólida',
applyCustomColor: 'Aplicar cor personalizada',
wpStarry: 'Céu estrelado',
wpForest: 'Floresta',
wpOcean: 'Oceano',
wpDesert: 'Deserto',
wpAurora: 'Aurora',
wpSunset: 'Pôr do sol',
wpLavender: 'Lavanda',
wpMist: 'Neblina matutina',
solidInkBlack: 'Preto tinta',
solidDeepBlue: 'Azul profundo',
solidInkGreen: 'Verde tinta',
solidWarmGray: 'Cinza quente',
solidWineRed: 'Vermelho vinho',
solidIndigo: 'Índigo',
solidOffWhite: 'Branco natural',
solidLightGray: 'Cinza claro',
photoPermissionTitle: 'Acesso à galeria necessário',
photoPermissionDesc:
'Permita que Xianyan acesse a galeria nas configurações do sistema.',
goToSettings: 'Ir para configurações',
resetTitle: 'Redefinir tema',
resetConfirm:
'Redefinir todas as configurações do tema para os valores padrão?',
resetToDefault: 'Redefinir para padrão',
previewTitleText: 'Pré-visualização do título',
previewBodyText:
'Pré-visualização do texto — cor de destaque, tamanho e peso da fonte, arredondamento e efeito vidro visíveis aqui.',
exportJson: 'Exportar JSON',
importJson: 'Importar JSON',
themeConfigJson: 'Configuração de tema JSON',
closeLabel: 'Fechar',
copyLabel: 'Copiar',
importConfigTitle: 'Importar configuração de tema',
pasteJsonPlaceholder: 'Colar configuração JSON',
importLabel: 'Importar',
presetInk: 'Preto tinta',
presetLavender: 'Lavanda',
presetSunset: 'Quente',
presetMint: 'Menta',
presetMidnight: 'Meia-noite',
presetSakura: 'Flor de cerejeira',
systemDefaultFont: 'Padrão do sistema',
previewCornerRadius: 'Canto',
previewCardStyle: 'Cartão',
previewGlassEffect: 'Vidro',
fontPreviewSample: 'Olá mundo',
),
search: TSearch(
placeholder: 'Buscar citações, poesias, filmes, artigos...',
typeAll: 'Tudo',
typeSentence: 'Citações',
typePoetry: 'Poesias',
typeArticle: 'Artigos',
typeFilm: 'Filmes',
typeMusic: 'Música',
typeBook: 'Clássicos',
typeHanzi: 'Hanzi',
typeCy: 'Idiomas',
modeFuzzy: 'Difuso',
modeExact: 'Exato',
modeRelated: 'Relacionado',
typeRowLabel: 'Tipo de busca',
modeRowLabel: 'Modo de busca',
suggestions: 'Sugestões',
hotSearch: 'Em alta',
searchHistory: 'Histórico',
countTimes: '{0} vezes',
noResults: 'Nenhum resultado encontrado',
tryDifferentKeyword: 'Tente outra palavra-chave',
loadingMore: 'Carregando mais resultados...',
loading: 'Carregando...',
foundCountSearching: '{0} encontrados, buscando...',
foundCountResults: '{0} resultados encontrados',
modeLabel: 'Modo: {0}',
keywordHighlight: 'Destaques de palavras-chave',
hotSearchRank: 'Em alta',
periodToday: 'Hoje',
periodWeek: 'Esta semana',
periodMonth: 'Este mês',
loadFailed: 'Falha ao carregar',
noHotSearch: 'Sem tendências para {0}',
numberWan: 'w',
searchPreference: 'Preferências de busca',
noPreference: 'Sem preferências de busca',
preferenceHint:
'Suas preferências de tipo são registradas automaticamente ao buscar',
preferenceDetail: 'Detalhes das preferências',
preferenceOverview: 'Visão geral',
totalSearchCount: 'Total de buscas',
mostSearched: 'Mais buscados',
preferenceTypeCount: 'Tipos de preferências',
lastSearch: 'Última busca: {0}',
justNow: 'Agora mesmo',
minutesAgo: '{0} min atrás',
hoursAgo: '{0} h atrás',
daysAgo: '{0} dias atrás',
contentPreference: 'Preferências de conteúdo',
contentPreferenceHint:
'Tipos desativados serão excluídos das recomendações',
contentPoetry: 'Poesia clássica',
contentChengyu: 'Idiomas',
contentStory: 'Histórias',
contentWisdom: 'Citações',
contentRiddle: 'Charadas',
contentBrainteaser: 'Quebra-cabeças',
contentEfs: 'Provérbios',
clearPreferenceTitle: 'Limpar preferências',
clearPreferenceConfirm:
'Limpar todas as preferências de busca? Esta ação não pode ser desfeita.',
privacyTipPrefix: 'Podemos coletar seu histórico de busca, ',
privacyTipDataCollection: 'Saiba sobre a coleta de dados',
privacyTipAnd: ' e ',
privacyTipPrivacyPolicy: 'Política de privacidade',
),
accountSettings: TAccountSettings(
title: 'Configurações da conta',
nickname: 'Apelido',
notSet: 'Não definido',
bio: 'Biografia',
notFilled: 'Não preenchido',
bindEmail: 'Vincular email',
notBound: 'Não vinculado',
bindMobile: 'Vincular celular',
changePassword: 'Alterar senha',
securityQuestion: 'Pergunta de segurança',
alreadySet: 'Definido',
securityAndToken: 'Segurança e tokens',
exportPersonalInfo: 'Exportar dados pessoais',
deleteAccount: 'Excluir conta',
logout: 'Sair',
logoutConfirm: 'Tem certeza de que deseja sair?',
logoutButton: 'Sair',
verified: 'Verificado',
unverified: 'Não verificado',
dangerZone: 'Zona de perigo',
dangerZoneDesc: 'Após a exclusão da conta, todos os dados serão excluídos permanentemente e não poderão ser recuperados. Após o envio, há um período de revisão de 3 dias durante o qual você pode cancelar a qualquer momento.',
deletionStatus: 'Status da solicitação de exclusão',
currentStatus: 'Status atual',
deletionReason: 'Motivo da exclusão',
applicationTime: 'Hora da solicitação',
autoDeletion: 'Exclusão automática',
pendingReview: 'Revisão pendente',
cancelDeletionRequest: 'Cancelar solicitação de exclusão',
cancelDeletionConfirmDesc: 'Tem certeza de que deseja cancelar a solicitação de exclusão? Sua conta voltará ao normal após o cancelamento.',
confirmCancel: 'Confirmar cancelamento',
deletionCancelled: 'Solicitação de exclusão cancelada',
cancelFailed: 'Cancelamento falhou',
deletionWarningContent: 'Após a exclusão, os dados da sua conta não poderão ser recuperados:\n\n• Todos os favoritos e notas\n• Registros de check-in e pontos\n• Perfil e configurações\n• Artigos e dados de interação\n\nApós o envio, há um período de revisão de 3 dias.\nA conta será excluída permanentemente após aprovação ou timeout.\n\nEsta ação não pode ser desfeita.',
iUnderstandContinue: 'Entendi, continuar',
securityVerification: 'Verificação de segurança',
inputDeleteConfirm: 'Digite "DELETE" para confirmar a exclusão:',
inputDeletePlaceholder: 'Digite DELETE',
deletionReasonOptional: 'Motivo (opcional)',
submitDeletionRequest: 'Enviar solicitação de exclusão',
loginRequiredForDeletion: 'Login necessário para excluir conta',
loginRequiredForDeletionDesc: 'Faça login primeiro para solicitar a exclusão da conta',
historicalDeletionRecord: 'Registros de exclusão anteriores',
finalStatus: 'Status final',
unknown: 'Desconhecido',
requestDeletion: 'Solicitar exclusão de conta',
noPendingDeletionDesc: 'Você não tem solicitações de exclusão pendentes. Se desejar excluir sua conta, clique no botão abaixo.',
deletionProcess: 'Processo de exclusão:',
step1SubmitRequest: 'Enviar solicitação (verificação de segurança necessária)',
step2ReviewPeriod: 'Período de revisão de 3 dias',
step3AutoDeletion: 'Revisão do admin ou exclusão automática após timeout',
step4PermanentDeletion: 'Conta e todos os dados excluídos permanentemente',
importantNotes: 'Notas importantes',
note1DataIrreversible: 'Todos os dados não podem ser recuperados após a exclusão',
note2CancelAnytime: 'Você pode cancelar a solicitação a qualquer momento durante o período de revisão de 3 dias',
note3PermanentDeletion: 'A conta será excluída permanentemente após aprovação do admin ou timeout',
note4ContactAdmin: 'Em caso de dúvidas, entre em contato com o admin ou deixe feedback na página Sobre',
userInfoFailed: 'Falha ao obter informações do usuário',
userInitiatedDeletion: 'Exclusão iniciada pelo usuário',
deletionSubmitted: 'Solicitação de exclusão enviada',
reviewIn3Days: 'O admin revisará em 3 dias',
requestFailed: 'Solicitação falhou',
estimatedAutoDeletion: 'Exclusão automática estimada em {0}',
deletionRequestCancelled: 'Solicitação de exclusão cancelada',
),
dataManagement: TDataManagement(
title: 'Gerenciamento de dados',
storageOverview: 'Visão geral do armazenamento',
totalLocalData: '{count} registros locais',
favorites: 'Favoritos',
history: 'Histórico',
notes: 'Notas',
shares: 'Compartilhamentos',
entriesUnit: 'registros',
dataDistribution: 'Distribuição de dados',
dataCategories: 'Categorias de dados',
favoriteData: 'Dados de favoritos',
localFavorites: '{count} favoritos locais',
readingHistory: 'Histórico de navegação',
localHistory: '{count} registros locais',
noteData: 'Dados de notas',
localNotes: '{count} notas locais',
shareHistory: 'Histórico de compartilhamentos',
shareRecords: '{count} compartilhamentos',
imageCache: 'Cache de imagens',
hanziCache: 'Cache de Hanzi',
queryCache: '{count} cache de consultas',
offlineQueue: 'Fila offline',
pendingSync: '{count} pendentes de sincronização',
clearName: 'Limpar {name}',
clearConfirm: 'Limpar {name}? Esta ação não pode ser desfeita.',
cleared: '{name} limpo',
dangerZone: 'Zona de perigo',
clearAllData: 'Limpar todos os dados',
clearAllConfirm:
'Todos os dados locais serão removidos. Esta ação não pode ser desfeita!',
clearAll: 'Limpar tudo',
clearAllLocalData: 'Limpar todos os dados locais',
allDataCleared: 'Todos os dados foram limpos',
),
source: TSource(
title: 'Fonte de frases',
dataOverview: 'Visão geral dos dados',
totalContent: 'Conteúdo total',
openChannels: 'Canais abertos',
totalViews: 'Visualizações totais',
searchChannel: 'Buscar canais...',
channelManagement: 'Gerenciamento de canais',
enabledCount: 'Ativados',
manage: 'Gerenciar',
noChannelFound: 'Nenhum canal encontrado',
displaySettings: 'Configurações de exibição',
sortOrder: 'Ordem de classificação',
newestFirst: 'Mais recentes primeiro',
hottestFirst: 'Mais populares primeiro',
contentDedup: 'Deduplicação de conteúdo',
dedupSubtitle: 'Excluir conteúdo já visto ao atualizar',
mixMode: 'Modo misto',
perPage: 'Por página',
perPageUnit: '{count} registros',
homeCardSettings: 'Configurações de cartões',
cardSource: 'Fonte dos cartões',
cardSourceSubtitle: 'Configurar a fonte de conteúdo dos cartões',
cardMixMode: 'Modo misto dos cartões',
advanced: 'Avançado',
importSource: 'Importar fonte',
importSubtitle: 'Importar arquivo JSON / CSV',
moreSources: 'Mais fontes',
moreSourcesSubtitle: 'Descobrir mais canais de conteúdo',
enableAll: 'Ativar todos',
disableAll: 'Desativar todos',
contentCount: 'Conteúdo',
viewCount: 'Visualizações',
status: 'Status',
enabledStatus: 'Ativado',
disabledStatus: 'Desativado',
browseChannel: 'Navegar no canal',
channelInfo: '{count} registros · {views} visualizações',
importSentenceSource: 'Importar fonte de frases',
importComingSoon:
'Importação em breve!\n\nSuporte para:\n• Importação JSON / CSV\n• Assinatura URL para fontes remotas\n• Mapeamento de campos personalizado',
newest: 'Recentes',
hottest: 'Populares',
localMode: 'Local Mode',
localModeDesc: 'Imported content is stored locally only',
urlImport: 'URL Import',
fileImport: 'File Import',
channelManage: 'Channel Management',
validate: 'Validate',
inputUrl: 'Enter URL',
analyzeUrl: 'Analyze URL',
dataFormat: 'Data Format',
channelConfig: 'Channel Config',
channelName: 'Channel Name',
channelIcon: 'Channel Icon',
showOnHome: 'Show on Home',
createChannel: 'Create Channel',
preview: 'Preview',
uploadFile: 'Upload File',
downloadTemplate: 'Download Template',
customChannel: 'Custom Channel',
mergedChannel: 'Merged Channel',
urlBadge: 'URL',
fileBadge: 'File',
shareChannel: 'Share Channel',
configWithData: 'Config + Data',
configOnly: 'Config Only',
analysisReport: 'Analysis Report',
devicePerf: 'Device Performance',
urlValidation: 'URL Validation',
fileValidation: 'File Validation',
contentQuality: 'Content Quality',
frequencyLimit: 'Frequency Limit',
),
favorites: TFavorites(
title: 'Meus favoritos',
manage: 'Gerenciar',
favorites: 'Favoritos',
categories: 'Categorias',
noStats: 'Sem estatísticas',
searchFavorites: 'Buscar nos favoritos',
newestFav: 'Mais recentes',
oldestFav: 'Mais antigos',
sortByType: 'Por tipo',
newest: 'Recentes',
oldest: 'Antigos',
type: 'Tipo',
selectedCount: '{count} selecionados',
selectAll: 'Selecionar tudo',
unfavorite: 'Remover dos favoritos',
batchUnfavorite: 'Remoção em lote',
batchUnfavoriteConfirm: 'Remover {count} itens selecionados dos favoritos?',
unfavoriteSuccess: 'Removido dos favoritos',
unfavoriteConfirm: 'Remover dos favoritos',
unfavoriteItemConfirm: 'Remover "{title}" dos favoritos?',
thinkAgain: 'Cancelar',
copyContent: 'Copiar conteúdo',
share: 'Compartilhar',
addTag: 'Adicionar tag',
moveGroup: 'Mover para grupo',
article: 'Artigo',
tool: 'Ferramenta',
page: 'Página',
localMode: 'Modo local · Entre para sincronizar com a nuvem',
loginSync: 'Entrar e sincronizar',
noMatchingFavorites: 'Nenhum favorito correspondente',
noFavoritesYet: 'Nenhum favorito ainda',
tryOtherKeywords: 'Tente outras palavras-chave',
tapToFavorite: 'Toque em ícone de coração na página inicial para favoritar',
shareFavorite: 'Compartilhar favorito',
systemShare: 'Compartilhamento do sistema',
noContentToCopy: 'Nenhum conteúdo para copiar',
copiedToClipboard: 'Copiado para a área de transferência',
addTagTitle: 'Adicionar tag',
tagSeparatorHint: 'Separe as tags com vírgulas',
tagPlaceholder: 'ex: Motivação, Poesia, Vida',
tagSaved: 'Tag salva',
exportFavorites: 'Exportar favoritos',
exportAsText: 'Exportar como texto',
exportAsJson: 'Exportar como JSON',
exportAsCsv: 'Exportar como CSV',
noFavoritesToExport: 'Nenhum favorito para exportar',
exportHeader: 'Exportação de favoritos Xianyan',
formatCopied: '{format} copiado para a área de transferência',
moveToGroup: 'Mover para grupo',
defaultGroup: 'Grupo padrão',
newGroup: 'Novo grupo...',
movedToGroup: 'Movido para "{group}"',
moveFailed: 'Falha ao mover',
newGroupTitle: 'Novo grupo',
groupNamePlaceholder: 'Nome do grupo',
createAndMove: 'Criar e mover',
createdAndMoved: 'Criado e movido para "{name}"',
operationFailed: 'Operação falhou',
favoriteGroups: 'Grupos de favoritos',
createNew: 'Novo',
noGroups: 'Sem grupos',
tapToCreateGroup: 'Toque em + para criar um grupo',
deleteGroup: 'Excluir grupo',
deleteGroupConfirm:
'Excluir grupo "{name}"? Os favoritos serão movidos para o grupo padrão.',
groupDeleted: 'Grupo excluído',
deleteFailed: 'Falha ao excluir',
renameGroup: 'Renomear grupo',
newNamePlaceholder: 'Novo nome',
renamed: 'Renomeado',
renameFailed: 'Falha ao renomear',
groupCreated: 'Grupo criado',
createFailed: 'Falha ao criar',
noTitle: 'Sem título',
noContentToShare: 'Nenhum conteúdo para compartilhar',
shareCopied: 'Conteúdo de compartilhamento copiado',
thisContent: 'este conteúdo',
sourceLocal: 'Local',
sourceCloud: 'Nuvem',
syncStatusSyncing: 'Sincronizando',
syncStatusSynced: 'Sincronizado',
syncStatusConflict: 'Conflito',
sortByTitle: 'Por título',
sortByTag: 'Por tag',
sortByGroup: 'Por grupo',
filterByGroup: 'Filtrar por grupo',
allGroups: 'Todos os grupos',
tagCloud: 'Nuvem de tags',
noTags: 'Sem tags',
tagCount: '{count} tags',
exportSaved: 'Salvo em {path}',
exportSaveFailed: 'Falha ao salvar',
swipeToUnfavorite: 'Deslize para a esquerda para remover dos favoritos',
cardSwipeHint: 'Esquerda para remover · Direita para compartilhar',
manualSort: 'Ordenação manual',
preview: 'Visualização',
offlineMode: 'Modo offline',
offlineSyncHint: 'Sincronização automática ao conectar',
archive: 'Arquivar',
archived: 'Arquivado',
expiredReminder: 'Lembrete de favoritos',
expiredReminderMessage: 'Você tem {count} favoritos não visitados há mais de {days} dias',
viewExpired: 'Ver',
reminderSettings: 'Configurações de lembrete',
reminderEnabled: 'Ativar lembrete',
reminderDays: 'Dias de lembrete',
),
offline: TOffline(
title: 'Modo offline',
online: 'Online',
offline: 'Offline',
onlineDesc: 'Rede conectada, todas as funções disponíveis',
offlineDesc: 'Rede desconectada, apenas conteúdo em cache',
syncNow: 'Sincronizar agora',
pendingActions: 'Ações pendentes',
pendingSync: 'Pendente',
lastSync: 'Última sincronização',
successCount: '{count} bem-sucedidos',
noData: 'Nenhum',
syncAll: 'Sincronizar tudo',
clearQueue: 'Limpar fila',
preloadManagement: 'Gerenciamento de pré-carregamento',
wifiAutoPreload: 'Pré-carregamento WiFi automático',
wifiAutoPreloadSubtitle: 'Cache automático de recomendações no WiFi',
autoSyncOnReconnect: 'Sincronização automática ao reconectar',
autoSyncOnReconnectSubtitle:
'Sincronizar ações offline automaticamente ao voltar online',
preloadChannels: 'Canais de pré-carregamento',
preloadNow: 'Pré-carregar agora',
smartPreloadStrategy: 'Estratégia inteligente de pré-carregamento',
preloadMode: 'Modo de pré-carregamento',
preloadContent: 'Conteúdo de pré-carregamento',
preloadFrequency: 'Frequência de pré-carregamento',
batteryThreshold: 'Limite de bateria baixa',
smartMode: 'Inteligente',
wifiOnly: 'Somente WiFi',
disabledMode: 'Desativado',
textContent: 'Texto',
imageContent: 'Imagens',
audioContent: 'Áudio',
realtime: 'Tempo real',
hourly: 'A cada hora',
daily: 'Diariamente',
smartModeDesc:
'Modo inteligente: pré-carregamento completo no WiFi, somente texto no celular, pausa com bateria baixa',
cacheStrategy: 'Estratégia de cache',
offlineModeSwitch: 'Modo offline',
offlineModeSwitchSubtitle:
'Cache automático do conteúdo navegado quando ativado',
cacheLimit: 'Limite de cache',
cacheExpiryDays: 'Dias de validade do cache',
maxOfflineActions: 'Máximo de ações offline',
maxRetryCount: 'Máximo de tentativas',
daysUnit: 'dias',
clearQueueTitle: 'Limpar fila',
clearQueueConfirm:
'Limpar todas as ações pendentes? Esta ação não pode ser desfeita.',
syncComplete: 'Sincronização concluída, {count} bem-sucedidos',
syncNoSuccess: 'Sincronização concluída, nenhum item bem-sucedido',
syncFailed: 'Sincronização falhou, tente novamente mais tarde',
syncError: 'Erro de sincronização: {error}',
wifiPreloadDisabled: 'Pré-carregamento WiFi desativado, ative-o primeiro',
networkUnavailable: 'Rede indisponível, verifique sua conexão',
preloadComplete: 'Pré-carregamento concluído, {count} canais em cache',
preloadSkipped: '{count} canais já em cache, ignorados',
allChannelsCached: 'Todos os canais já estão em cache',
preloadFailed: 'Pré-carregamento falhou, verifique sua conexão',
preloadError: 'Erro de pré-carregamento: {error}',
preloadModeDisabledHint: 'Modo de pré-carregamento desativado',
wifiOnlyModeHint: 'Modo apenas WiFi ativado',
preloadNoNewContent: 'Sem novo conteúdo para pré-carregar',
),
accountInsights: TAccountInsights(
title: 'Insights da Conta',
markAllRead: 'Marcar Tudo como Lido',
close: 'Fechar',
testAccountWarning: 'Esta pode ser uma conta de teste oficial do Xianyan, usada por várias pessoas. Não altere a senha nem crie notas com esta conta. Registre sua própria conta se necessário',
ohosDeviceWarning: 'Alguns dispositivos podem apresentar anomalias de identificação, como exibir desconhecido ou erros de fator de segurança',
allNormal: 'Tudo Normal',
noSecurityIssues: 'Nenhum problema de segurança',
totalCount: '{0} total · {1} não lidos',
refresh: 'Atualizar',
markedAsRead: '"{0}" marcado como lido',
selectReminderMethod: 'Selecione o método de lembrete, ou cancele para manter o estado atual',
snooze7Days: 'Silenciar por 7 dias',
ignoreForever: 'Ignorar · Nunca lembrar novamente',
snoozeSet: 'Silenciado por 7 dias',
ignoredSet: 'Ignorado, não será lembrado novamente',
allMarkedAsRead: 'Todos marcados como lidos',
deleted2: 'Excluído',
markRead: 'Marcar como Lido',
highPriority: 'Alta Prioridade',
mediumPriority: 'Média Prioridade',
lowPriority: 'Baixa Prioridade',
justNow: 'Agora mesmo',
hoursAgo: '{0} horas atrás',
daysAgo: '{0} dias atrás',
monthsAgo: '{0} meses atrás',
),
note: TNote(
title: 'My Notes',
searchNotes: 'Search Notes',
editNote: 'Edit Note',
newNote: 'New Note',
loginRequired: 'Login required to view',
loginToUseNotes: 'Login to use the notes feature',
goLogin: 'Login',
searchPlaceholder: 'Search note title or content',
all: 'All',
note: 'Note',
excerpt: 'Excerpt',
checklist: 'Checklist',
sortBy: 'Sort By',
sortByUpdateTime: 'Update Time',
sortByCreateTime: 'Create Time',
sortByTitle: 'Title',
groupBy: 'Group By',
groupByDate: 'By Date',
groupByCategory: 'By Category',
groupByType: 'By Type',
groupBySource: 'By Source',
switchLayout: 'Switch Layout',
layoutList: 'List',
layoutGrid: 'Waterfall',
layoutTimeline: 'Timeline',
selectedCount: '{0} selected',
selectAll: 'Select All',
deselectAll: 'Deselect All',
batchSelect: 'Batch Select',
multiSelect: 'Multi-Select',
batchDelete: 'Batch Delete',
batchDeleteConfirm: 'Delete {0} selected notes?',
deletedCount: '{0} notes deleted',
dragReorder: 'Drag Reorder',
dragToReorder: 'Drag cards to reorder',
starFavorite: 'Favorite',
unfavorite: 'Unfavorite',
exportNote: 'Export',
copyNote: 'Copy',
newNoteMenu: 'New Note',
sortMenu: 'Sort',
groupMenu: 'Group',
showStarOnly: 'Favorites Only',
showAll: 'Show All',
statsPanel: 'Statistics',
reorderMenu: 'Drag Reorder',
confirmClear: 'Confirm Clear',
clearAllWarning: 'All notes will be deleted. This cannot be undone',
clearAll: 'Clear All',
allCleared: 'All notes cleared',
noNotes: 'No Notes',
tapToStart: 'Tap the button below to start',
reachedBottom: 'End of list',
notesCount: '{0} notes',
unknownDate: 'Unknown Date',
today: 'Today',
yesterday: 'Yesterday',
uncategorized: 'Uncategorized',
noSource: 'No Source',
noTitle: 'Untitled',
deleteNote: 'Delete Note',
deleteNoteConfirm: 'Delete "{0}"?',
noteLoadFailed: 'Failed to load note',
titlePlaceholder: 'Title (optional, auto-named if empty)',
categoryLabel: 'Category',
sourceLabel: 'Source',
publicLabel: 'Public',
optionalPlaceholder: 'Optional',
visibleToAll: 'Visible to everyone',
visibleToSelf: 'Only visible to you',
selectSourceType: 'Select Source Type',
excerptPlaceholder: 'Paste or enter excerpt content...',
checklistPlaceholder: '- [ ] Todo 1\n- [ ] Todo 2\n- [x] Done',
notePlaceholder: 'Start writing (Markdown supported)...',
noPreviewContent: 'No content to preview',
switchToEdit: 'Switch to edit mode to start writing',
selectPreviewFont: 'Select Preview Font',
systemDefault: 'System Default',
noTitleNote: 'Untitled Note',
noteSaved: 'Note saved',
unsaved: 'Unsaved',
saved: 'Saved',
charCount: '{0} chars',
sourcePoetry: 'Poetry',
sourceArticle: 'Article',
sourceHanzi: 'Hanzi',
sourceIdiom: 'Idiom',
bold: 'Bold',
italic: 'Italic',
heading: 'Heading',
list: 'List',
orderedList: 'Ordered',
quote: 'Quote',
link: 'Link',
code: 'Code',
divider: 'Divider',
noteStats: 'Note Statistics',
totalNotes: 'Total Notes',
weekNew: 'This Week',
totalWords: 'Total Words',
typeDistribution: 'Type Distribution',
categoryDistribution: 'Category Distribution',
noCategoryData: 'No category data',
starredNotes: 'Starred Notes',
exportTitle: 'Notes Export',
exportCountNote: '{0} notes total',
copiedToClipboard: 'Copied to clipboard',
exportTypeLabel: 'Type',
exportCategoryLabel: 'Category',
exportPublicYes: 'Yes',
exportSourceLabel: 'Source',
exportCreateTime: 'Created',
exportUpdateTime: 'Updated',
exportShareSubject: 'Notes Export ({0})',
pinToDiscover: 'Pin to Discover',
pinToDiscoverDesc: 'When enabled, the note will appear at the top of the Discover feed',
close: 'Close',
pinnedToDiscover: 'Pinned to Discover',
unpinnedFromDiscover: 'Unpinned from Discover',
confirmPin: 'Confirm Pin',
confirmUnpin: 'Confirm Unpin',
),
widget: TWidget(
title: 'Widgets de Desktop',
devDialogContent: 'O recurso de Widget está em desenvolvimento ativo. Algumas funcionalidades podem estar incompletas ou instáveis.\n\nAtualmente suportado: Exibição básica de widgets e push de dados\nEm breve: Mais estilos de widgets, interações, sincronização multiplataforma',
dontRemind: 'Não lembrar novamente',
viewExperimentalFeatures: 'Ver recursos experimentais',
iKnow: 'Eu entendo',
priorityCore: 'Widgets principais',
priorityRecommended: 'Recomendados',
priorityPractical: 'Widgets práticos',
priorityFun: 'Widgets divertidos',
addedToDesktop: '{0} adicionado à tela inicial',
addWidgetTitle: 'Adicionar "{0}"',
unsupportedAddHint: 'Adição rápida não suportada neste dispositivo. Adicione manualmente:',
failedAddHint: 'Adição rápida falhou. Adicione manualmente:',
harmonyStep1: '1⃣ Pressione longamente um espaço vazio na tela inicial',
harmonyStep2: '2⃣ Selecione "Cartões de serviço"',
harmonyStep3: '3⃣ Encontre "Xianyan"',
harmonyStep4: '4⃣ Selecione "{0}" e adicione à tela inicial',
androidStep1: '1⃣ Pressione longamente um espaço vazio na tela inicial',
androidStep2: '2⃣ Selecione "Widgets"',
androidStep3: '3⃣ Encontre "Xianyan"',
androidStep4: '4⃣ Arraste "{0}" para a tela inicial',
iosStep1: '1⃣ Deslize para a direita para a vista Hoje',
iosStep2: '2⃣ Role para baixo e toque em "Editar"',
iosStep3: '3⃣ Encontre "Xianyan"',
iosStep4: '4⃣ Selecione "{0}" e adicione',
pushData: 'Enviar dados',
pushedDataToWidget: 'Dados enviados para o widget {0}',
gotIt: 'Entendido',
syncTheme: 'Sincronizar tema',
pushedThemeToWidget: 'Tema atual enviado para os widgets',
platformCompatTitle: 'Compatibilidade de plataforma',
androidCompatDesc: 'Incompleto, problemas de comunicação nativa',
iosCompatDesc: 'WidgetKit + SwiftUI, interação requer iOS 17+',
harmonyCompatDesc: 'FormExtension + ArkUI, capacidades limitadas, o sistema limita a frequência de atualização',
syncThemeHint: 'Toque em "Sincronizar tema" para enviar o modo escuro/claro atual para todos os widgets instalados',
installed: 'Instalado',
add: 'Adicionar',
dataPreview: 'Visualização de dados',
refresh: 'Atualizar',
typeDailySentence: 'Citação diária',
typeReadlater: 'Ler depois',
typeDailyCard: 'Cartão diário',
typeDailyFortune: 'Fortuna do dia',
typeCountdown: 'Contagem regressiva',
typePomodoro: 'Pomodoro',
typeSolarTerm: 'Poesia de termos solares',
typeCheckin: 'Check-in diário',
typeDailyWithCharacter: 'Citação diária + Personagem',
subtitleDailySentence: 'Citação diária selecionada',
subtitleReadlater: 'Contagem de não lidos e pré-visualização recente',
subtitleDailyCard: 'Lindo cartão diário com data e citação',
subtitleDailyFortune: 'Horóscopo de hoje e palavras-chave da sorte',
subtitleCountdown: 'Eventos de contagem regressiva personalizados',
subtitlePomodoro: 'Temporizador de foco rápido na tela inicial',
subtitleSolarTerm: 'Termo solar atual e poesia relacionada',
subtitleCheckin: 'Dias consecutivos de check-in e check-in rápido',
subtitleDailyWithCharacter: 'Personagem + citação diária recomendada',
previewNoData: 'Sem dados',
previewReadlaterCount: '{0} não lidos',
previewPomodoroRemaining: '{0}s restantes',
previewCheckinDays: '{0} dias consecutivos',
previewDailyCard: 'Cartão diário',
badgeHarmony: 'Harmony',
),
fileTransfer: TFileTransfer(
generateCode: 'Generate Code',
generateCodeDesc: 'Generate a pairing code for the other device to enter',
generateCodeButton: '🔑 Generate Code',
pairingCode: 'Pairing Code',
waitingForInput: '⏳ Waiting for input...',
copyCode: 'Copy Code',
copiedTitle: '✅ Copied',
copiedContent: 'Pairing code {0} copied to clipboard',
inputCode: 'Enter Code',
inputCodeDesc: 'Enter the 4-digit pairing code from the other device',
pairingButton: '🔗 Pair & Connect',
pairingInProgress: 'Pairing...',
pairingSuccess: 'Pairing Successful',
connectedWith: 'Connected with {0}',
startChat: 'Start Chat',
inputIncomplete: 'Incomplete Input',
inputIncompleteDesc: 'Please enter a 4-digit pairing code',
notConnected: 'Not Connected',
connectServerFirst: 'Please connect to the signaling server first',
generateFailed: 'Generation Failed',
joinFailed: 'Join Failed',
p2pDirect: 'P2P Direct',
p2pConnected: '🔗 P2P Direct Connected',
p2pListening: '📡 P2P Waiting for Connection...',
p2pConnecting: '🔄 P2P Connecting...',
p2pError: '⚠️ P2P Connection Error',
p2pDisconnected: '🔗 P2P Direct Not Connected',
p2pNotSupported: '🔗 P2P Direct (Not Supported)',
localAddress: 'Local Address: {0}',
stopP2pService: 'Stop P2P Service',
startP2pService: 'Start P2P Service',
p2pStartFailed: 'Start Failed',
p2pStartFailedDesc: 'P2P service failed to start, please check network permissions',
or: 'or',
confirm: 'OK',
),
beta: TBeta(
pageTitle: '🧪 Beta',
back: 'Voltar',
previewTab: 'Pré-visualização',
issuesTab: 'Problemas',
confirmClose: 'Desativar "{0}"? Você não poderá usar este recurso experimental.',
confirmOpen: 'Ativar "{0}"? Este recurso pode ser instável.',
cancel: 'Cancelar',
close: 'Desativar',
open: 'Ativar',
emptyFeatures: 'Sem recursos experimentais',
reload: 'Recarregar',
loadFailed: 'Falha ao carregar',
retry: 'Tentar novamente',
filterAll: 'Todos',
filterPending: 'Pendente',
filterFixing: 'Em correção',
filterFixed: 'Corrigido',
emptyIssues: 'Sem problemas',
rolloutPercentage: 'Implantação {0}%',
targetGroup: 'Grupo: {0}',
issueStats: 'Problemas: {0} pendentes, {1} em correção, {2} corrigidos',
severityHigh: 'Alta',
severityMedium: 'Média',
severityLow: 'Baixa',
statusPending: 'Pendente',
statusFixing: 'Em correção',
statusFixed: 'Corrigido',
statusDeveloping: 'Em desenvolvimento',
statusTesting: 'Em testes',
statusPreview: 'Pré-visualização',
statusReleased: 'Lançado',
comingSoon: 'Em breve',
gotIt: 'Entendi',
// Questionário
questionnaireBtn: '📝 Preencher Questionário',
questionnaireTitle: 'Questionário Beta GMS',
q1KnowGooglePlay: 'Você está familiarizado com o Google Play?',
q2HasGmsDevice: 'Você tem um dispositivo com suporte a GMS (Google Mobile Services)?',
q3WillingToBeta: 'Gostaria de participar do beta GMS do Xianyan APP?',
q4EnterGmail: 'Insira seu endereço Gmail',
q4GmailHint: 'Após aprovação, você terá acesso ao beta GMS',
qYes: 'Sim',
qNo: 'Não',
qSubmit: 'Enviar',
qNext: 'Próximo',
qEndTitle: 'Questionário Concluído',
qEndThanks: '🎉 Obrigado por participar! Analisaremos sua inscrição em breve.',
qEndNotQualified: 'Infelizmente, você não atende aos requisitos do beta no momento.',
qInvalidEmail: 'Insira um endereço Gmail válido',
qSubmitting: 'Enviando...',
qSubmitSuccess: '✅ Enviado com sucesso',
qSubmitFailed: 'Falha no envio, tente novamente mais tarde',
qEndThankYou: 'Obrigado por participar',
),
submit: TSubmit(
title: 'Anonymous Submit',
contentLabel: 'Content',
titleLabel: 'Title',
authorLabel: 'Author',
categoryLabel: 'Category',
titleHint: 'Optional',
authorHint: 'Optional',
contentHint: 'Required, 10-100 chars',
submit: 'Submit',
submitting: 'Submitting…',
contentRequired: 'Please enter content',
contentTooShort: 'Content must be at least 10 characters',
contentTooLong: 'Content cannot exceed 100 characters',
reviewing: 'Under Review',
reviewDesc: 'Submission received, will be shown after approval',
historyTitle: 'Submission History',
historyEmpty: 'No submissions yet',
statusReviewing: 'Reviewing',
statusApproved: 'Approved',
statusRejected: 'Rejected',
catYiyan: 'One Word',
catXinde: 'Insight',
catYiju: 'One Line',
catSignature: 'Signature',
deleteRecord: 'Delete',
deleteConfirm: 'Delete this submission record?',
),
studyPlan: TStudyPlan(
pageTitle: 'Plano de Estudo',
emptyTitle: 'Comece Sua Jornada de Aprendizado',
emptySubtitle: 'Crie um plano de estudo, mantenha-o diariamente\nPequenos passos levam a grandes conquistas',
createFirst: 'Criar Primeiro Plano',
createPlan: 'Criar Plano',
createStudyPlan: 'Criar Plano de Estudo',
selectTemplate: 'Selecionar Modelo',
dailyGoal: 'Meta Diária',
perDay: '/dia',
addPlan: 'Adicionar Novo Plano',
completeOne: 'Completar 1',
more: 'Mais',
pausePlan: 'Pausar Plano',
resumePlan: 'Retomar Plano',
deletePlan: 'Excluir Plano',
confirmDelete: 'Confirmar Exclusão',
confirmDeleteMsg: 'Excluir "{0}"? Todos os registros de aprendizado também serão excluídos.',
cancel: 'Cancelar',
delete: 'Excluir',
readingGoal: 'Meta de Leitura',
todayViews: 'Visualizações Hoje',
todayFavorites: 'Favoritos Hoje',
todayNotes: 'Notas Hoje',
streakDays: 'Sequência',
setReadingGoal: 'Definir Meta de Leitura',
dailyViewGoal: 'Visualizações Diárias',
dailyFavoriteGoal: 'Favoritos Diários',
dailyNoteGoal: 'Notas Diárias',
streakGoal: 'Meta de Sequência',
todayProgress: 'Hoje',
totalCompleted: 'Total Concluído',
streakLabel: 'Dias Consecutivos',
startDate: 'Data de Início',
dailyTarget: 'Meta Diária',
recentRecords: 'Registros Recentes',
noRecords: 'Nenhum registro de aprendizado ainda',
completed: 'Concluído',
days: 'dias',
planDetail: 'Detalhes do Plano',
settings: 'Configurações',
managePlans: 'Gerenciar Planos de Estudo',
activePlans: 'Ativos',
pausedPlans: 'Pausados',
allPlans: 'Todos',
restructureTitle: 'Aviso de atualização de recurso',
restructureMessage: 'O plano de estudo será reestruturado na próxima versão e renomeado para «Plano de vida»\nAlgumas funcionalidades mudarão. Fique atento',
restructureConfirm: 'OK',
restructureDontRemind: 'Não lembrar mais',
restructureDetails: 'Saiba mais',
restructureDetailsTitle: 'Detalhes da atualização do plano de estudo',
restructureDetailsBody: '[Renomeação] "Plano de estudo" passará a ser "Plano de vida" com escopo ampliado\n[Novo] Metas de aprendizado personalizadas e lembretes\n[Melhorado] Interação da página de detalhes do plano\n[Melhorado] Categorias de modelos mais claras\nNota: Os dados existentes serão migrados automaticamente.',
catPoetry: 'Poesia',
catChengyu: 'Idioma',
catClassic: 'Clássico',
catWisdom: 'Sabedoria',
catCustom: 'Personalizado',
dailyPoetry5Title: 'Diário 5 Poemas',
dailyPoetry5Desc: 'Leia 5 poemas diariamente',
dailyPoetry3Title: 'Plano Leve de Poesia',
dailyPoetry3Desc: '3 poemas diários, fácil de manter',
dailyChengyu5Title: 'Mestre de Idiomas',
dailyChengyu5Desc: 'Aprenda 5 idiomas diariamente',
dailyWisdom3Title: 'Coleção de Sabedoria',
dailyWisdom3Desc: '3 citações diárias para inspirar sabedoria',
weeklyClassicTitle: 'Leitura Clássica',
weeklyClassicDesc: 'Leia uma citação clássica por semana',
dailyMix5Title: 'Aprendizado Misto',
dailyMix5Desc: '5 itens mistos diariamente para desenvolvimento integral',
),
correction: TCorrection(
pageTitle: 'Correção de conteúdo',
correctionType: 'Tipo de correção',
contentType: 'Tipo de conteúdo',
contentId: 'ID do conteúdo',
contentIdHint: 'Digite o número ID do conteúdo',
contentIdTip: 'Se não houver ID, digite 1',
contentIdTipConfirm: 'Entendi',
correctionDesc: 'Descrição da correção',
correctionDescHint: 'Descreva pelo menos 10 caracteres',
correctionDescMinLength: 'Descreva detalhadamente o conteúdo a corrigir (pelo menos 10 caracteres)...',
submit: 'Enviar correção',
submitSuccess: 'Enviado! Obrigado pelo feedback',
submitSuccessMessage: 'Enviado com sucesso! Obrigado pelo feedback, o administrador processará.',
submitFailed: 'Falha no envio',
typeError: 'Erro de conteúdo',
typeTypo: 'Erro de digitação',
typeMissing: 'Conteúdo ausente',
typeSuggestion: 'Sugestão de melhoria',
catArticle: 'Artigo',
catHanzi: 'Hanzi',
catChengyu: 'Chengyu',
catPoetry: 'Poesia',
catZc: 'Vocabulário',
catRiddle: 'Enigma',
catOther: 'Outro',
includeEmail: 'Incluir endereço de email',
contactEmail: 'Email de contato',
emailOptional: 'Opcional',
emailPlaceholder: 'Para contatá-lo (opcional)',
userLabel: 'Usuário',
securityVerify: 'Verificação de segurança',
captchaPrompt: 'Calcule o seguinte resultado',
captchaPlaceholder: 'Digite a resposta',
captchaCancel: 'Cancelar',
captchaConfirm: 'Confirmar',
captchaError: 'Captcha incorreto, reenvie',
records: 'Histórico de correções',
noRecords: 'Sem correções',
contactEmailFeedback: 'Contatar por email',
statusPending: 'Pendente',
statusProcessed: 'Processado',
statusRejected: 'Rejeitado',
statusUnknown: 'Desconhecido',
sourceLocal: '📱 Local',
sourceAdmin: '👤 Admin',
emptyContent: 'Digite a descrição da correção',
invalidId: 'Digite um ID de conteúdo válido',
),
leisure: TLeisure(
priceBudget: 'Económico',
priceMid: 'Médio',
pricePremium: 'Premium',
pricePaid: 'Pago',
priceCommercial: 'Comercial',
priceUnknown: 'Desconhecido',
filterLabel: 'Filtrar por tags',
filterBloom: 'Floração',
filterFood: 'Gastronomia',
filterAltitude: 'Alta altitude',
filterRisk: 'Risco',
filterSunrise: 'Nascer do sol',
filterSeaside: 'Costa',
heatExtremely: 'Muito popular',
heatHigh: 'Popular',
heatMedium: 'Moderado',
heatLow: 'Baixo',
heatCold: 'De nicho',
restructureTitle: 'Atualização em breve',
restructureMessage: 'Lazer será atualizado na próxima versão com mais tipos de cartões e filtros',
restructureConfirm: 'OK',
restructureDontRemind: 'Não lembrar mais',
restructureDetails: 'Detalhes',
restructureDetailsTitle: 'Notas de atualização do Lazer',
restructureDetailsBody: '[Novo] Níveis de preço ampliados para Económico/Médio/Premium\n[Novo] Tags de filtro multilingues\n[Otimizado] Exibição e interação de cartões\n[Otimizado] Suporte multilingue de popularidade',
),
);