- Surse complete web (React/Vite) + mobil (React Native/Expo) + extensie (MV3) - Documentație de livrare: ghid utilizare, matrice trasabilitate cerințe, raport testare furnizor - Artefacte binare: imagine Docker didi-frontend:lot3-1.0, APK, extensie v3.2.6 + SHA256SUMS - Configurare adresă platformă externalizată (build args / .env / config.js) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
343 lines
12 KiB
TypeScript
343 lines
12 KiB
TypeScript
const en = {
|
|
// Common
|
|
back: 'Back',
|
|
cancel: 'Cancel',
|
|
delete: 'Delete',
|
|
error: 'Error',
|
|
loading: 'Loading...',
|
|
goBack: 'Go Back',
|
|
settings: 'Settings',
|
|
signOut: 'Sign Out',
|
|
signIn: 'Sign In',
|
|
createAccount: 'Create Account',
|
|
analyze: 'Analyze',
|
|
confirm: 'Confirm',
|
|
|
|
// Main / Auth
|
|
appName: 'didi',
|
|
appSubtitle: 'Content Analysis Tool',
|
|
authenticating: 'Authenticating...',
|
|
redirectingToLogin: 'Redirecting to login...',
|
|
authError: 'Authentication Error',
|
|
authDenied: 'Authorization was denied. Please try again.',
|
|
securityError: 'Security Error',
|
|
invalidAuthResponse: 'Invalid authentication response. Please try again.',
|
|
noAuthCode: 'No authorization code received',
|
|
authFailed: 'Authentication Failed',
|
|
authFailedMessage: 'Could not complete login. Please try again.',
|
|
changePassword: 'Change Password',
|
|
redirecting: 'Redirecting...',
|
|
|
|
// Dashboard
|
|
analysis: 'Analysis',
|
|
fullPipelineAnalysis: 'Full pipeline analysis',
|
|
skills: 'Skills',
|
|
individualComponents: 'Individual analysis components',
|
|
history: 'History',
|
|
pastAnalyses: 'Past analyses',
|
|
accountPreferences: 'Account & preferences',
|
|
signOutConfirm: 'Are you sure you want to sign out?',
|
|
signOutSubtitle: 'Sign out of your account on this device',
|
|
|
|
// Pipeline
|
|
fullAnalysis: 'Full Analysis',
|
|
runAllComponents: 'Run all components at once',
|
|
textToAnalyze: 'Text to Analyze',
|
|
enterTextHint: 'Enter text, article, or paste content',
|
|
pasteTextPlaceholder: 'Paste text content here...',
|
|
characters: 'characters',
|
|
urlToAnalyze: 'URL to Analyze',
|
|
enterUrlHint: 'Enter a webpage URL',
|
|
urlPlaceholder: 'https://example.com/article',
|
|
imageToAnalyze: 'Image to Analyze',
|
|
takePhotoOrSelect: 'Take a photo or select from gallery',
|
|
gallery: 'Gallery',
|
|
camera: 'Camera',
|
|
audioToAnalyze: 'Audio to Analyze',
|
|
selectAudioHint: 'Select an audio file for analysis',
|
|
selectAudio: 'Select Audio',
|
|
videoToAnalyze: 'Video to Analyze',
|
|
selectVideoHint: 'Select a video file for analysis',
|
|
selectVideo: 'Select Video',
|
|
runFullAnalysis: 'Run Full Analysis',
|
|
submitting: 'Submitting...',
|
|
uploadingMedia: 'Uploading media...',
|
|
startingAnalysis: 'Starting analysis...',
|
|
invalidFile: 'Invalid File',
|
|
permissionRequired: 'Permission required',
|
|
cameraPermission: 'Camera access is needed to take photos.',
|
|
analysisError: 'Analysis Error',
|
|
failedToStartAnalysis: 'Failed to start analysis.',
|
|
contentUnavailable: 'Content Unavailable',
|
|
contentNotExtracted: 'Content could not be extracted from this URL.',
|
|
uploadManually: 'Upload Manually',
|
|
|
|
// Tabs
|
|
tabText: 'Text',
|
|
tabImage: 'Image',
|
|
tabAudio: 'Audio',
|
|
tabVideo: 'Video',
|
|
tabUrl: 'URL',
|
|
|
|
// Pipeline Results
|
|
analysisResults: 'Analysis Results',
|
|
processingMedia: 'Processing media...',
|
|
generatingVerdict: 'Generating verdict...',
|
|
processingProgress: 'Processing ({done}/{total})...',
|
|
percentComplete: '{percent}% complete',
|
|
analyzing: 'Analyzing...',
|
|
noResults: 'No results available',
|
|
analysisTimedOut: 'Analysis timed out. Please try again.',
|
|
connectionLost: 'Connection lost. Please check your network and try again.',
|
|
serverError: 'Analysis server error. Please try again later.',
|
|
sessionNotFound: 'Analysis session not found.',
|
|
|
|
// Component Labels
|
|
manipulationTechniques: 'Manipulation Techniques',
|
|
claimsVerification: 'Claims Verification',
|
|
aiDetection: 'AI Detection',
|
|
sourceAssessment: 'Source Assessment',
|
|
contextAnalysis: 'Context Analysis',
|
|
|
|
// Skills Screen
|
|
analyzeIndividualAspects: 'Analyze individual aspects',
|
|
detectManipulation: 'Detect persuasion and manipulation tactics',
|
|
evaluateSource: 'Evaluate source credibility and trustworthiness',
|
|
aiTamperDetection: 'AI Tamper Detection',
|
|
detectAiContent: 'Detect AI-generated or manipulated content',
|
|
claimsAnalysis: 'Claims Analysis',
|
|
verifyClaims: 'Verify claims and check credibility',
|
|
enterTextToAnalyze: 'Enter text content to analyze',
|
|
|
|
// History
|
|
noAnalysesYet: 'No analyses yet',
|
|
runFirstAnalysis: 'Run your first analysis to see it here',
|
|
justNow: 'Just now',
|
|
minutesAgo: '{min}m ago',
|
|
hoursAgo: '{hr}h ago',
|
|
daysAgo: '{day}d ago',
|
|
mediaAnalysis: '(media analysis)',
|
|
deleteAnalysis: 'Delete Analysis',
|
|
deleteConfirm: 'Are you sure you want to delete this analysis?',
|
|
failedToLoadHistory: 'Failed to load history',
|
|
failedToLoadDetails: 'Failed to load details',
|
|
failedToDelete: 'Failed to delete',
|
|
|
|
// Verdict Card
|
|
verdict: 'Verdict',
|
|
riskScore: 'Risk Score',
|
|
confidence: 'Confidence',
|
|
recommendedAction: 'Recommended Action',
|
|
|
|
// Component Scores
|
|
componentScores: 'Component Scores',
|
|
scoreManipulation: 'Manipulation',
|
|
scoreClaims: 'Claims',
|
|
scoreAiGenerated: 'AI Generated',
|
|
scoreSource: 'Source',
|
|
scoreContext: 'Context',
|
|
|
|
// Claims Card
|
|
credibilityScore: 'Credibility Score',
|
|
total: 'Total',
|
|
trueLabel: 'True',
|
|
falseLabel: 'False',
|
|
unverified: 'Unverified',
|
|
sources: 'Sources',
|
|
stance: 'Stance',
|
|
|
|
// Claim Status Labels
|
|
claimVerifiedTrue: 'Verified True',
|
|
claimVerifiedFalse: 'Verified False',
|
|
claimLikelyFalse: 'Likely False',
|
|
claimLikelyTrue: 'Likely True',
|
|
claimPartiallyVerified: 'Partially Verified',
|
|
claimUnverified: 'Unverified',
|
|
claimNotVerifiable: 'Not Verifiable',
|
|
claimOpinion: 'Opinion',
|
|
|
|
// Claim Type Labels
|
|
claimFactual: 'Factual',
|
|
claimCausal: 'Causal',
|
|
claimPredictive: 'Predictive',
|
|
claimQuote: 'Quote',
|
|
claimStatistical: 'Statistical',
|
|
claimOpinionType: 'Opinion',
|
|
claimOpinionAsFact: 'Opinion as Fact',
|
|
claimHistorical: 'Historical',
|
|
claimAttribution: 'Attribution',
|
|
claimRE: 'RE',
|
|
|
|
// AI Detection Card
|
|
aiProbability: 'AI Probability',
|
|
verdictLikelyAi: 'LIKELY AI',
|
|
verdictPossiblyAi: 'POSSIBLY AI',
|
|
verdictMixed: 'MIXED',
|
|
verdictLikelyHuman: 'LIKELY HUMAN',
|
|
verdictUnknown: 'UNKNOWN',
|
|
aiDisclosureFound: 'AI Disclosure Found',
|
|
indicators: 'Indicators',
|
|
|
|
// Domain Card
|
|
domainAnalysis: 'Domain Analysis',
|
|
trustScore: 'Trust Score',
|
|
domainAge: 'Domain Age',
|
|
days: 'days',
|
|
ssl: 'SSL',
|
|
sslValid: 'Valid',
|
|
sslInvalid: 'Invalid',
|
|
blacklisted: 'Blacklisted',
|
|
yes: 'Yes',
|
|
no: 'No',
|
|
registrar: 'Registrar',
|
|
organization: 'Organization',
|
|
country: 'Country',
|
|
redFlags: 'Red Flags',
|
|
warnings: 'Warnings',
|
|
|
|
// Source Assessment Card
|
|
risk: 'Risk',
|
|
publication: 'Publication',
|
|
author: 'Author',
|
|
platform: 'Platform',
|
|
domain: 'Domain',
|
|
confirmed: 'Confirmed',
|
|
unconfirmed: 'Unconfirmed',
|
|
scoreBreakdown: 'Score Breakdown',
|
|
|
|
// Techniques Card
|
|
manipulationScore: 'Manipulation Score',
|
|
techniquesDetected: '{count} techniques detected',
|
|
noTechniquesDetected: 'No manipulation techniques detected',
|
|
tapForDetails: 'Tap for details',
|
|
tapToCollapse: 'Tap to collapse',
|
|
severity: 'Severity',
|
|
description: 'Description',
|
|
|
|
// Virality Card
|
|
viralityPotential: 'Virality Potential',
|
|
showFactors: 'Show {count} factors',
|
|
hideFactors: 'Hide factors',
|
|
|
|
// Did You Know Card
|
|
didYouKnow: 'Did you know?',
|
|
|
|
// Settings
|
|
profile: 'Profile',
|
|
username: 'Username',
|
|
firstName: 'First Name',
|
|
lastName: 'Last Name',
|
|
email: 'Email',
|
|
updatePassword: 'Update your account password',
|
|
subscriptionCredits: 'Subscription & Credits',
|
|
active: 'Active',
|
|
inactive: 'Inactive',
|
|
credits: 'Credits',
|
|
remaining: 'Remaining',
|
|
spent: 'Spent',
|
|
planLimits: 'Plan Limits',
|
|
creditsCycle: 'Credits/cycle',
|
|
maxImages: 'Max images',
|
|
videoMinutes: 'Video minutes',
|
|
storage: 'Storage',
|
|
language: 'Language',
|
|
languageSubtitle: 'Choose your preferred language',
|
|
english: 'English',
|
|
romanian: 'Română',
|
|
|
|
// Social Share
|
|
socialShare: 'Social Share',
|
|
socialShareDesc: 'When enabled, URLs shared from these platforms will be automatically analyzed. When disabled, the URL will be pre-filled but you must tap Analyze manually.',
|
|
facebook: 'Facebook',
|
|
autoAnalyzeFacebook: 'Auto-analyze shared Facebook links',
|
|
xTwitter: 'X (Twitter)',
|
|
autoAnalyzeX: 'Auto-analyze shared X/Twitter links',
|
|
tiktok: 'TikTok',
|
|
autoAnalyzeTiktok: 'Auto-analyze shared TikTok links',
|
|
socialShareNote: 'Share a URL from any social app and didi will appear in your device\'s share menu. Requires an EAS build — not available in Expo Go.',
|
|
|
|
// User Profile Widget
|
|
creditsLabel: '{count} credits',
|
|
perMonth: '/mo',
|
|
|
|
// Notifications
|
|
analysisComplete: 'Analysis Complete',
|
|
notifRiskScore: 'Risk: {score}/100 ({category})',
|
|
tapToViewResults: 'Tap to view results',
|
|
|
|
// Validation
|
|
valMinChars: 'Minimum 20 characters ({len}/20)',
|
|
valMaxChars: 'Maximum 50,000 characters exceeded',
|
|
valUrlTooLong: 'URL too long',
|
|
valUrlMustStart: 'URL must start with http://, https://, or www.',
|
|
valInvalidUrl: 'Invalid URL format',
|
|
valUrlHostname: 'URL must contain a hostname',
|
|
valUrlNotAllowed: 'URL not allowed',
|
|
valUrlValidDomain: 'URL must contain a valid domain',
|
|
valUrlTld: 'URL must have a valid top-level domain',
|
|
valUrlInvalidHost: 'URL contains an invalid hostname segment',
|
|
valInvalidDomain: 'Invalid domain format',
|
|
valFileEmpty: 'File is empty',
|
|
valFileTooLarge: 'File too large ({size}). Maximum: {maxSize}',
|
|
valFileTypeNotAllowed: 'File type .{ext} is not allowed',
|
|
valAcceptedFormats: 'Accepted {category} formats: {formats}',
|
|
valAudioTooLong: 'Audio too long ({duration}s). Maximum: {max}s',
|
|
valVideoTooLong: 'Video too long ({duration}s). Maximum: {max}s',
|
|
|
|
// Share Action
|
|
analyzeUrl: 'Analyze URL',
|
|
analyzeText: 'Analyze Text',
|
|
analyzeImage: 'Analyze Image',
|
|
chooseAnalysisType: 'Choose analysis type',
|
|
url: 'URL',
|
|
sharedTextLabel: 'Shared text',
|
|
sharedImageLabel: 'Shared image',
|
|
domainAnalysisSkill: 'Domain Analysis',
|
|
checkDomainReputation: 'Check website trust and domain reputation',
|
|
|
|
// Upload consent
|
|
uploadConsentTitle: 'Consent to media upload',
|
|
uploadConsentBody: 'To analyze this file, it will be uploaded to the DiDi analysis servers. The file is used exclusively to run the requested analysis, is processed confidentially and is not shared with third parties. You can delete the analysis (and the associated content) at any time from History.',
|
|
uploadConsentCheckbox: 'I agree that my file will be uploaded and processed for analysis, as described in the privacy note above.',
|
|
uploadConsentAccept: 'I agree, continue',
|
|
uploadConsentReminder: 'By submitting, your file is uploaded for analysis according to your previously given consent.',
|
|
|
|
// Dimension Names
|
|
dimContentPackaging: 'Content & Packaging',
|
|
dimSourceAttribution: 'Source & Attribution',
|
|
dimMediaSynthetic: 'Media & Synthetic',
|
|
dimEmotionalPsych: 'Emotional & Psychological',
|
|
dimSocialNetwork: 'Social & Network',
|
|
dimPlatformTech: 'Platform & Technical',
|
|
dimTemporalContext: 'Temporal & Context',
|
|
dimTargetingVuln: 'Targeting & Vulnerability',
|
|
|
|
// Editorial layout
|
|
inputLabel: 'Content ({type})',
|
|
inputAnalyzed: 'Analyzed input',
|
|
riskAnalyzed: 'Risk analyzed',
|
|
topIssue: 'Top issue',
|
|
otherSignals: 'Other signals',
|
|
technicalDetails: 'Technical details',
|
|
doNotShare: 'Do not share',
|
|
readCritically: 'Read critically',
|
|
doNotShareHeadline: 'Do not share this article',
|
|
readCarefullyHeadline: 'Read carefully',
|
|
noteHeadline: 'Note',
|
|
showMore: 'Show more',
|
|
hide: 'Hide',
|
|
showOtherSignals: 'Show {count} more {plural}',
|
|
hideOtherSignals: 'Hide other signals',
|
|
cleanContent: 'Clean content',
|
|
noManipulationDetected: 'No manipulation techniques detected',
|
|
noClaimsToVerify: 'No verifiable claims found',
|
|
trustedSourceLabel: 'Trusted',
|
|
neutralSourceLabel: 'Neutral',
|
|
suspiciousSourceLabel: 'Suspicious',
|
|
untrustedSourceLabel: 'Untrusted',
|
|
withAiDisclosure: 'with AI disclosure',
|
|
withoutAiDisclosure: 'without AI disclosure',
|
|
};
|
|
|
|
export type TranslationKeys = keyof typeof en;
|
|
export default en;
|