Grapevine_Disease_Detection/VinEye/src/i18n/en.json
Yanis 05e28b3ebc feat(auth): onboarding flow + local auth (no backend)
Full local onboarding + auth stack (AsyncStorage only) :

types/auth.ts : User + AuthState
services/auth/
  - authStorage.ts : AsyncStorage wrapper avec clés vineye:auth:{user,onboarding-done,terms-accepted-at}
  - randomUser.ts : generateGuestUser() avec préfixes localisés FR/EN
    (Sommelier/Vendangeur/Caviste/... + suffix Anonyme/Anonymous + #XXXX)
  - authValidation.ts : Zod schema factory pour name/email
contexts/AuthContext.tsx : Provider + hook useAuth() avec login(),
  loginAsGuest(), logout(), resetAccount(), acceptTerms(),
  completeOnboarding(), isLoading hydraté au mount

components/onboarding/ :
  - OnboardingButton : variants primary/secondary, loading, disabled
  - TermsCheckbox : checkbox custom Reanimated avec scale + opacity anim
  - EmailNameForm : form contrôlé avec validation Zod live + erreurs
    affichées sous chaque champ après touch

screens/onboarding/ :
  - WelcomeScreen : logo + 3 feature cards (Camera/Leaf/Brain) FadeInDown
    stagger + CTA "Commencer"
  - TermsScreen : 5 sections CGU (usage, dataCollected avec mention
    explicite de la géoloc, responsibility, intellectualProperty, contact)
    + footer fixe avec checkbox + bouton continuer disabled tant que pas
    coché
  - AuthChoiceScreen : EmailNameForm + séparateur "ou" + bouton secondary
    "Continuer en invité"

navigation/ :
  - OnboardingNavigator : Stack Welcome -> Terms -> AuthChoice (animation
    fade)
  - RootNavigator : switch dynamique via useAuth().isOnboardingComplete ;
    isLoading -> ActivityIndicator centré ; sinon render conditionnel
    Onboarding ou Main

App.tsx : AuthProvider wrap autour de NetworkProvider

deps : zod ^4.4.1, expo-crypto ~15.0.9 (pour Crypto.randomUUID())

i18n FR + EN : blocs onboarding.{welcome,terms,authChoice} + auth.errors
+ settings.{account,language} (utilisés par le commit suivant)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 09:33:27 +02:00

665 lines
28 KiB
JSON

{
"common": {
"scan": "Scan",
"history": "History",
"profile": "Profile",
"home": "Home",
"viewAll": "View all",
"cancel": "Cancel",
"confirm": "Confirm",
"loading": "Loading...",
"error": "Error",
"retry": "Retry",
"map": "Map",
"notifications": "Notifications",
"settings": "Settings",
"details": "Details",
"readTime": "{{min}} min read",
"conditions": "Favorable conditions",
"prevention": "Prevention",
"curativeActions": "Curative actions",
"impactedParts": "Affected parts",
"spreadMethod": "Spread method",
"timeline": "Active period"
},
"search": {
"placeholder": "What are you looking for?",
"placeholderMap": "Search one of my plants...",
"recentTitle": "Recent searches",
"clearAll": "Clear all",
"noRecent": "No recent searches yet. Type to get started.",
"resultsTitle": "Results",
"noResults": "No results found.",
"nearbyPlantsTitle": "Located plants",
"noPlants": "No geolocated plant yet. Scan with location enabled.",
"filter": {
"all": "All",
"diseases": "Diseases",
"guides": "Guides",
"plants": "My plants"
},
"section": {
"diseases": "Diseases",
"guides": "Practical guides",
"plants": "My plants"
},
"tag": {
"disease": "Disease",
"guide": "Guide",
"plant": "Plant"
}
},
"home": {
"greeting": "Hello, Winemaker!",
"scanButton": "Scan a vine",
"searchPlaceholder": "Search a disease, a grape variety...",
"totalScans": "Total scans",
"uniqueGrapes": "Grapes found",
"currentStreak": "Current streak",
"progression": "Progression",
"statistics": "Statistics",
"bannerTitle": "Start your collection",
"bannerSubtitle": "Discover grape varieties and grow your wine knowledge",
"bannerButton": "Get started",
"lastScan": "Last scan",
"noScansYet": "No scans yet",
"startScanning": "Start scanning!",
"tapToStart": "Tap to scan",
"frequentDiseases": "Frequent diseases",
"recentScans": "My recent plants",
"seasonAlert": {
"title": "High downy mildew risk",
"message": "Rain and heat expected this week. Keep an eye on your leaves."
},
"practicalGuides": "Practical guides"
},
"diseases": {
"types": {
"fungal": "Fungal",
"bacterial": "Bacterial",
"pest": "Pest",
"abiotic": "Deficiency"
},
"mildiou": {
"name": "Downy mildew",
"description": "Downy mildew is caused by the fungus Plasmopara viticola. It attacks all green parts of the vine, mainly the leaves.",
"symptom1": "Oily yellow spots on the upper surface of leaves",
"symptom2": "White cottony down on the underside",
"symptom3": "Drying and premature leaf drop",
"treatment": "Preventive copper-based treatment (Bordeaux mixture). Apply before rain, renew every 10-14 days.",
"season": "May to August — favored by heat and humidity",
"condition1": "Humidity above 80%",
"condition2": "Temperatures between 18 and 25°C",
"condition3": "Frequent spring rains",
"preventive1": "Preventive copper treatment (Bordeaux mixture)",
"preventive2": "Improve air circulation through shoot thinning",
"preventive3": "Avoid excess nitrogen fertilization",
"curative1": "Apply a registered systemic fungicide",
"curative2": "Remove severely affected leaves",
"part1": "Leaves",
"part2": "Clusters",
"part3": "Shoots",
"spread": "Spores dispersed by wind and rain splash"
},
"oidium": {
"name": "Powdery mildew",
"description": "Powdery mildew is caused by Erysiphe necator. It develops in warm, dry weather, unlike downy mildew.",
"symptom1": "White-grey powder on leaves and clusters",
"symptom2": "Berries that crack or dry out",
"treatment": "Sulfur dusting or spraying. Preventive treatments from bud break.",
"season": "April to September — favored by warm, dry weather",
"condition1": "Hot and dry weather",
"condition2": "Temperatures between 25 and 30°C",
"condition3": "High day/night temperature difference",
"preventive1": "Preventive sulfur treatment",
"preventive2": "Promote cluster ventilation",
"preventive3": "Moderate leaf removal",
"curative1": "Apply an anti-powdery mildew fungicide",
"curative2": "Wettable sulfur as curative treatment",
"part1": "Leaves",
"part2": "Clusters",
"part3": "Young shoots",
"spread": "Spores carried by wind"
},
"blackRot": {
"name": "Black rot",
"description": "Black rot is caused by Guignardia bidwellii. It causes significant damage to berries.",
"symptom1": "Circular brown spots bordered with black on leaves",
"symptom2": "Mummified, black and wrinkled berries",
"treatment": "Remove mummified berries. Preventive fungicide treatments in spring.",
"season": "May to July — favored by spring rains",
"condition1": "Spring rainfall",
"condition2": "Temperatures between 20 and 30°C",
"condition3": "Presence of mummified berries from the previous year",
"preventive1": "Remove mummies (dried clusters) in winter",
"preventive2": "Preventive fungicide treatments from flowering",
"preventive3": "Maintain good air circulation",
"curative1": "No effective curative treatment",
"curative2": "Remove and destroy affected organs",
"part1": "Leaves",
"part2": "Clusters",
"part3": "Tendrils",
"spread": "Spores released from mummies by rain"
},
"esca": {
"name": "Esca",
"description": "Esca is a complex of wood diseases caused by several fungi. A chronic disease that can kill the vine.",
"symptom1": "Discoloration between leaf veins (tiger stripe pattern)",
"symptom2": "Sudden drying of foliage (apoplexy)",
"treatment": "No curative treatment. Cutting back affected vine. Protect pruning wounds.",
"season": "Symptoms visible in summer — June to September",
"condition1": "Old vines (over 10 years)",
"condition2": "Water stress",
"condition3": "Poorly healed pruning wounds",
"preventive1": "Protect pruning wounds with sealant paste",
"preventive2": "Prune late in the season",
"preventive3": "Avoid large cuts",
"curative1": "No registered curative treatment",
"curative2": "Wood curettage (experimental technique)",
"curative3": "Trunk renewal if the vine is not too affected",
"part1": "Leaves",
"part2": "Wood (trunk, arms)",
"part3": "Clusters (apoplexy)",
"spread": "Fungi enter through pruning wounds"
},
"botrytis": {
"name": "Botrytis (Grey mold)",
"description": "Grey mold is caused by Botrytis cinerea. It attacks clusters at maturity.",
"symptom1": "Soft grey rot on berries",
"symptom2": "Characteristic grey felt on clusters",
"treatment": "Promote cluster aeration. Leaf removal. Anti-botrytis treatments before cluster closure.",
"season": "August to harvest — favored by humidity",
"condition1": "Prolonged high humidity",
"condition2": "Temperatures between 15 and 25°C",
"condition3": "Compact, tight clusters",
"preventive1": "Leaf removal around clusters",
"preventive2": "Choose varieties with loose clusters",
"preventive3": "Limit vine vigor",
"curative1": "Apply a registered anti-botrytis product",
"curative2": "Harvest affected parts quickly",
"part1": "Clusters (berries)",
"part2": "Leaves (rare)",
"spread": "Airborne spores, favored by berry wounds"
},
"flavescence": {
"name": "Flavescence dorée",
"description": "Phytoplasma disease transmitted by the leafhopper Scaphoideus titanus. Regulated disease, mandatory reporting.",
"symptom1": "Leaf rolling with yellow or red coloration depending on variety",
"symptom2": "Non-lignification of shoots (remain rubbery)",
"treatment": "Mandatory uprooting of contaminated vines. Insecticide treatment against the vector leafhopper.",
"season": "Symptoms visible from July",
"condition1": "Presence of the leafhopper Scaphoideus titanus",
"condition2": "Vineyards not treated against the vector",
"condition3": "Contaminated areas nearby",
"preventive1": "Mandatory insecticide treatment against the leafhopper",
"preventive2": "Prospection and uprooting of affected vines",
"preventive3": "Use certified plant material",
"curative1": "No curative treatment",
"curative2": "Mandatory uprooting of contaminated vines",
"part1": "Leaves (rolling, discoloration)",
"part2": "Shoots (absent lignification)",
"part3": "Clusters (desiccation)",
"spread": "Transmitted by the leafhopper Scaphoideus titanus"
},
"leafBlight": {
"name": "Leaf Blight",
"description": "Leaf blight (Isariopsis Leaf Spot) is caused by the fungus Pseudocercospora vitis. It produces angular reddish-brown spots delimited by leaf veins.",
"symptom1": "Angular reddish-brown spots delimited by veins",
"symptom2": "Yellow halo around spots",
"symptom3": "Early defoliation in severe attacks",
"treatment": "Preventive copper or mancozeb-based fungicide treatment. Remove fallen leaves in autumn.",
"season": "July to September",
"condition1": "Prolonged high humidity",
"condition2": "Temperatures between 20 and 28°C",
"condition3": "Weakened or stressed vines",
"preventive1": "Preventive copper treatment",
"preventive2": "Remove infected leaves in autumn",
"preventive3": "Maintain good foliage ventilation",
"curative1": "Apply a mancozeb-based fungicide",
"curative2": "Remove severely affected leaves",
"part1": "Leaves",
"part2": "Shoots (rare)",
"spread": "Spores spread by rain and wind"
},
"chlorose": {
"name": "Iron chlorosis",
"description": "Leaf yellowing due to iron deficiency, often linked to overly calcareous soil.",
"symptom1": "Yellowing between veins, veins remaining green",
"symptom2": "General weakening of the vine",
"treatment": "Iron chelate application. Choose rootstock adapted to calcareous soils.",
"season": "Spring — especially on calcareous soils after heavy rain",
"condition1": "Active calcareous soil",
"condition2": "Compacted or waterlogged soil",
"condition3": "Excess water in spring",
"preventive1": "Choose rootstock adapted to calcareous soils",
"preventive2": "Improve drainage",
"preventive3": "Add organic matter",
"curative1": "Foliar spray of iron chelate",
"curative2": "Iron sulfate treatment",
"part1": "Leaves (interveinal yellowing)",
"spread": "Not contagious — nutritional deficiency linked to soil"
}
},
"notifications": {
"markAllRead": "All read",
"empty": {
"title": "Nothing new",
"body": "Your notifications will appear here. Scan a vine to get started!"
},
"mock": {
"mildewAlert": {
"title": "Mildew Alert",
"body": "Favorable conditions for downy mildew detected in your area. Watch for yellow spots on leaves."
},
"sulfurTip": {
"title": "Tip: Sulfur Treatment",
"body": "Now is a good time for preventive sulfur dusting against powdery mildew."
},
"scanReminder": {
"title": "Scan Reminder",
"body": "You haven't scanned in 3 days. Keep your streak alive!"
},
"botrytisAlert": {
"title": "Botrytis Risk",
"body": "High humidity favors grey rot. Consider aerating your clusters."
},
"pruningTip": {
"title": "Tip: Spring Pruning",
"body": "Protect pruning wounds with a sealing paste to prevent esca."
},
"updateAvailable": {
"title": "Update Available",
"body": "VinEye v2.1 is available with detection for 3 new diseases."
}
}
},
"library": {
"title": "My Library",
"plants": "plants",
"empty": {
"title": "No scanned plants",
"body": "Scan your first vine to start your collection!"
}
},
"myPlants": {
"title": "My Plants",
"tabLabel": "My Plants",
"searchPlaceholder": "Search a plant...",
"groups": {
"today": "Today",
"yesterday": "Yesterday",
"thisWeek": "This week",
"thisMonth": "This month",
"older": "Older"
},
"actions": {
"favorite": "Favorite",
"unfavorite": "Remove",
"delete": "Delete",
"deleteConfirmTitle": "Delete this scan?",
"deleteConfirmMessage": "This action cannot be undone.",
"cancel": "Cancel"
},
"toasts": {
"favorited": "Added to favorites",
"unfavorited": "Removed from favorites",
"deleted": "Scan deleted",
"renamed": "Name updated",
"locationAdded": "Location added to the plant"
},
"status": {
"healthy": "Healthy",
"infected": "Diseased",
"uncertain": "Uncertain"
},
"empty": {
"title": "No plants scanned yet",
"subtitle": "Scan your first plant to start your collection",
"cta": "Scan"
},
"detail": {
"results": {
"vine": "Vine identified",
"uncertain": "Uncertain result",
"notVine": "Not a vine",
"unidentified": "Unidentified plant"
},
"confidence": "Confidence",
"cepageSection": "Detected grape",
"scannedOn": "Scanned on",
"xpEarned": "XP earned",
"location": "Location",
"noLocation": "No location recorded",
"addLocation": "Add my location",
"locating": "Getting location...",
"share": "Share",
"delete": "Delete",
"shareConfirmTitle": "Share this scan?",
"shareConfirmMessage": "The photo and scan information will be shared.",
"shareAction": "Share",
"shareText": "My VinEye scan",
"shareError": "Could not share the scan",
"notFound": "Scan not found",
"goBack": "Go back",
"renameTitle": "Rename plant",
"renameSubtitle": "Give this plant a custom name so you can recognize it easily.",
"renamePlaceholder": "E.g. Garden vine",
"renameSave": "Save"
}
},
"guides": {
"screenTitle": "Guides & Tips",
"tabDiseases": "Diseases",
"tabGuides": "Practical Guides",
"severity": {
"critical": "Critical",
"moderate": "Moderate",
"low": "Low"
},
"riskLevel": {
"high": "High risk",
"medium": "Medium risk",
"low": "Low risk"
},
"healthyLeaf": {
"title": "Recognizing a healthy leaf",
"subtitle": "Basics for beginners",
"sections": {
"colorTexture": {
"title": "Color and texture",
"body": "A healthy vine leaf shows a uniform, vibrant and bright green. The upper surface is smooth while the underside is slightly downy. Veins are clear, well-defined and a slightly lighter green than the blade. Run your finger along the leaf: it should feel firm, supple and free of abnormal roughness.",
"tip": "A healthy leaf never has brown, yellow or powdery spots. If you see any, scan it immediately with VinEye."
},
"shape": {
"title": "Shape and symmetry",
"body": "Leaf shape varies by variety: 3 lobes (Merlot), 5 lobes (Cabernet Sauvignon) or nearly entire (Gamay). Regardless of variety, a healthy leaf is symmetrical with regular serrated edges. The sinuses (indentations between lobes) are clean. An asymmetric or deformed leaf may indicate a viral issue or herbicide damage."
},
"warning": {
"title": "When to worry",
"body": "Watch for these early signs: discoloration between veins (chlorosis), translucent oily spots (downy mildew), white powder (powdery mildew), downward leaf edge rolling (water stress or viral), brown necrosis (black rot). The earlier you act, the more effective the treatment.",
"tip": "Photograph the suspicious leaf with VinEye at the first symptoms. Early detection is the key to successful treatment."
}
}
},
"treatmentCalendar": {
"title": "Treatment calendar",
"subtitle": "When and how to treat",
"sections": {
"winter": {
"title": "Winter (December-February)",
"body": "This is the dormant period. Use this time to prune the vine, remove and burn dead wood (a source of inoculum). Apply a winter treatment with dormant oil to eliminate scale insect eggs and overwintering pest forms. Clean pruning tools between each vine to prevent esca spread."
},
"spring": {
"title": "Spring (March-May)",
"body": "Bud break marks the beginning of the vigilance season. From the 2-3 unfolded leaves stage, begin preventive treatments: Bordeaux mixture against downy mildew, sulfur against powdery mildew. Renew after each rainfall exceeding 10 mm. Watch for chlorosis on calcareous soils. This is also the time to treat against the leafhopper vector of flavescence dorée (mandatory treatment in regulated zones).",
"tip": "The first preventive treatment must be applied at the 2-3 unfolded leaves stage. Don't miss it — it's the most important of the season."
},
"summer": {
"title": "Summer (June-August)",
"body": "Active monitoring period. Downy mildew peaks in June, powdery mildew in July. Adapt your treatments to the weather: increase after rain for downy mildew, during heat waves for powdery mildew. Practice leaf removal to ventilate clusters and reduce botrytis risk. Watch for esca symptoms (tiger-striped leaves, sudden apoplexy).",
"tip": "After each rainfall over 10 mm, inspect your vines within 48 hours. This is when downy mildew infections occur."
},
"autumn": {
"title": "Autumn (September-November)",
"body": "Harvest time and final treatments. Watch for botrytis on ripe clusters, especially if humidity is high. After harvest, a final copper treatment can protect remaining foliage and reduce inoculum for the following year. Prepare for winter by collecting fallen leaves and plant debris."
}
}
},
"grapeVarieties": {
"title": "Bordeaux grape varieties",
"subtitle": "Merlot, Cabernet, Sauvignon...",
"sections": {
"reds": {
"title": "Iconic red varieties",
"body": "Merlot is the most planted red grape in Bordeaux. Soft and fruity, it dominates the right bank (Saint-Émilion, Pomerol). It is susceptible to downy mildew and botrytis. Cabernet Sauvignon reigns on the left bank (Médoc, Graves). More tannic and structured, it resists diseases better but is susceptible to powdery mildew. Cabernet Franc, the third Bordeaux variety, offers aromas of bell pepper and violet. It is more resistant to grey rot than Merlot."
},
"whites": {
"title": "White varieties",
"body": "Sauvignon Blanc brings freshness and citrus aromas. A vigorous variety, it requires careful leaf removal to avoid botrytis. Sémillon is the great variety of Sauternes sweet wines. Paradoxically, its susceptibility to 'noble rot' (Botrytis cinerea under controlled conditions) is what makes these wines great. Muscadelle, rarer, completes the blend with its floral notes."
},
"choosing": {
"title": "Choosing your variety",
"body": "The choice of variety depends on the terroir: Merlot prefers cool clay soils, Cabernet Sauvignon well-drained gravel soils. Climate matters too: late-ripening varieties like Cabernet Sauvignon need heat to ripen. Also consider disease susceptibility: in humid areas, favor varieties resistant to downy mildew.",
"tip": "Merlot is more tolerant of clay and cool soils, while Cabernet Sauvignon prefers well-drained, warm gravel. Match your choice to your terroir."
}
}
}
},
"scanner": {
"scanning": "Analyzing...",
"pointCamera": "Point the camera at a vine",
"confidence": "Confidence",
"capture": "Capture",
"analyzing": "Analyzing...",
"permissionRequired": "Camera permission required",
"permissionMessage": "VinEye needs camera access to detect grapevines.",
"grantPermission": "Grant camera access",
"identify": "Identify the plant"
},
"result": {
"vineDetected": "Vine detected!",
"notVine": "This is not a vine",
"uncertain": "Uncertain result",
"uncertainTitle": "Uncertain analysis",
"uncertainMessage": "The model is not confident enough. Take a sharper, well-lit photo centered on a leaf.",
"healthy": "Healthy vine",
"healthyTitle": "Healthy vine",
"healthyMessage": "No disease detected. Keep monitoring your vines regularly.",
"detectedDisease": "Disease detected",
"viewDiseaseDetail": "View disease details",
"allProbabilities": "Probabilities by class",
"confidence": "confidence",
"grape": "Probable variety",
"origin": "Origin",
"characteristics": "Characteristics",
"regions": "Typical regions",
"xpEarned": "XP earned",
"scanAgain": "Scan again",
"viewHistory": "View history",
"color": "Color",
"red": "Red",
"white": "White",
"rose": "Rosé"
},
"detection": {
"healthy": "Healthy vine"
},
"history": {
"title": "History",
"empty": "No scans in history",
"filter": {
"all": "All",
"vine": "Vine",
"notVine": "Not vine"
},
"search": "Search a variety...",
"sortBy": "Sort by",
"date": "Date",
"confidence": "Confidence",
"deleteConfirm": "Delete this scan?"
},
"profile": {
"title": "Profile",
"stats": "Statistics",
"totalScans": "Total scans",
"successRate": "Success rate",
"bestStreak": "Best streak",
"uniqueGrapes": "Unique grapes",
"badges": "Badges",
"nextLevel": "Next level",
"language": "Language",
"resetData": "Reset data",
"resetConfirm": "Are you sure you want to reset all data?",
"days": "days",
"xpTotal": "Total XP",
"level": "Level {{level}}",
"editTitle": "Edit profile",
"editButton": "Edit",
"saveButton": "Save",
"saved": "Profile saved",
"invalidEmail": "Invalid email",
"nameField": "Name",
"emailField": "Email",
"namePlaceholder": "Your name",
"emailPlaceholder": "you@email.com",
"avatarLabel": "Avatar"
},
"settings": {
"general": "General",
"app": "Application",
"editProfile": "Edit profile",
"privacy": "Privacy",
"premiumStatus": "Premium Status",
"inactive": "Inactive",
"appearance": "Appearance",
"helpCenter": "Help Center",
"terms": "Terms of Use",
"referTitle": "Refer a friend",
"referBody": "Share VinEye and earn bonus XP for every friend you invite.",
"developer": "Developer",
"seedTestData": "Add mock plants",
"seedDone": "5 mock plants added",
"notifications": {
"label": "Push notifications",
"enabled": "Notifications enabled",
"disabled": "Notifications disabled"
},
"language": {
"title": "Choose language",
"subtitle": "Select the application language."
},
"account": {
"sectionTitle": "Account",
"guestBadge": "Guest",
"resetAction": "Restart with a new account",
"resetConfirmTitle": "Restart?",
"resetConfirmMessage": "Your current account will be deleted. You will be redirected to the login screen to create a new account or continue as a guest.",
"resetConfirmCancel": "Cancel",
"resetConfirmOk": "Yes, log me out"
}
},
"auth": {
"errors": {
"nameTooShort": "Name must be at least 2 characters",
"nameTooLong": "Name is too long (max 50 characters)",
"emailInvalid": "Invalid email"
}
},
"onboarding": {
"welcome": {
"title": "Welcome to VinEye",
"subtitle": "AI for your vineyard. Identify diseases with a single scan.",
"feature1Title": "Quick scan",
"feature1Desc": "Photograph a leaf, get a diagnosis in seconds.",
"feature2Title": "Wine library",
"feature2Desc": "Diseases, grape varieties and practical guides at your fingertips.",
"feature3Title": "100% private",
"feature3Desc": "Your data stays on your phone, never sent to the internet.",
"cta": "Get started"
},
"terms": {
"title": "Terms of Use",
"checkboxLabel": "I have read and accept the terms of use",
"continueButton": "Continue",
"usage": {
"title": "1. Use of the application",
"body": "VinEye is a tool to help identify grapevine diseases. Results are indicative and based on a computer vision model. They do not replace a professional diagnosis from a certified œnologist or agronomist."
},
"dataCollected": {
"title": "2. Data collected",
"body": "VinEye runs 100% locally on your phone. Your name, email and scan history are stored only on your device and are never transmitted to the internet. If you enable geolocation when scanning, the GPS coordinates are saved locally with the scan so you can find your plants on the map."
},
"responsibility": {
"title": "3. Responsibility",
"body": "Diagnostics provided by VinEye are indicative. The publisher cannot be held responsible for treatment, removal or phytosanitary management decisions made on the basis of this information. For critical decisions, consult a professional."
},
"intellectualProperty": {
"title": "4. Intellectual property",
"body": "The VinEye app, its design, texts, AI model and logo are protected by intellectual property law. Any reproduction or commercial use without written authorization is prohibited."
},
"contact": {
"title": "5. Contact",
"body": "For any question, suggestion or bug report, contact the team at the email address indicated in the Help section. User feedback is essential to the continuous improvement of the application."
}
},
"authChoice": {
"title": "Create your identity",
"subtitle": "Your information stays on your phone, it is not sent to the internet.",
"nameLabel": "Name",
"namePlaceholder": "Your name or nickname",
"emailLabel": "Email",
"emailPlaceholder": "you@example.com",
"createAccount": "Create my account",
"or": "or",
"continueAsGuest": "Continue as guest",
"footerHint": "You can change your identity later in the settings."
}
},
"achievements": {
"firstScan": "First Scan",
"firstScanDesc": "First scan completed",
"connoisseur": "Connoisseur",
"connoisseurDesc": "10 different grapes identified",
"onFire": "On Fire",
"onFireDesc": "7-day consecutive streak",
"sharpEye": "Sharp Eye",
"sharpEyeDesc": "5 scans with confidence > 95%",
"explorer": "Explorer",
"explorerDesc": "Scans in 3 different regions",
"perfectionist": "Perfectionist",
"perfectionistDesc": "50 successful scans",
"master": "Master Ampelographer",
"masterDesc": "All badges unlocked",
"unlocked": "Badge unlocked!",
"locked": "Locked",
"xpEarned": "+{{xp}} XP"
},
"levels": {
"bud": "Bud",
"leaf": "Leaf",
"shoot": "Shoot",
"cluster": "Cluster",
"harvester": "Harvester",
"winemaker": "Winemaker",
"cellarMaster": "Cellar Master",
"level": "Level {{level}}",
"xpToNext": "{{xp}} XP to next level"
},
"map": {
"searchPlaceholder": "Search a scanned plant...",
"scannedPlants": "Scanned plants",
"plantCount_one": "{{count}} plant",
"plantCount_other": "{{count}} plants",
"filters": {
"myLocation": "My location"
},
"regions": {
"bordeaux": "Bordeaux",
"burgundy": "Burgundy",
"champagne": "Champagne"
},
"empty": {
"title": "No geolocated plant yet",
"subtitle": "Enable location, then scan a plant to see it appear on the map.",
"cta": "Scan a plant"
},
"comingSoon": "Coming soon",
"regionLoadFailed": "Could not load region outline",
"rename": {
"title": "Rename plant",
"subtitle": "Give this plant a custom name so you can recognize it easily.",
"placeholder": "E.g. Garden vine",
"save": "Save"
},
"preview": {
"title": "Preview",
"tapHint": "Tap again to view details"
}
},
"location": {
"permissionDenied": "Location access denied — your scans won't appear on the map",
"permissionDeniedTitle": "Location",
"settingsHint": "You can enable it in Settings"
}
}