en.ts 10.6 KB
export default {
  Home: 'Home',
  Labeling: 'Labeling',
  common: { back: 'Back', confirm: 'Confirm', cancel: 'Cancel', online: 'Online', loading: 'Loading…' },
  login: {
    appName: 'Food Label System',
    employeePortal: 'Employee Portal',
    email: 'Email',
    emailPlaceholder: "your.email{'@'}company.com",
    password: 'Password',
    passwordPlaceholder: 'Enter your password',
    rememberMe: 'Remember me',
    forgotPassword: 'Forgot Password?',
    resetTitle: 'Reset password',
    verificationCode: 'Verification code',
    verificationPlaceholder: 'Enter the code from email',
    sendCode: 'Send code',
    sendingCode: 'Sending…',
    resendIn: 'Resend ({s}s)',
    newPassword: 'New password',
    newPasswordPlaceholder: 'At least 6 characters',
    confirmNewPassword: 'Confirm new password',
    confirmPasswordPlaceholder: 'Re-enter new password',
    updatePassword: 'Update password',
    updatingPassword: 'Updating…',
    backToSignIn: 'Back to sign in',
    resetEmailRequired: 'Please enter your email',
    resetCodeSent: 'Verification code sent',
    resetCheckInbox: 'Check your inbox for the code.',
    resetSendFailed: 'Could not send code',
    resetMissingFields: 'Email and verification code are required',
    resetPasswordTooShort: 'Use at least 6 characters',
    resetPasswordMismatch: 'Passwords do not match',
    resetSuccess: 'Password updated',
    resetSuccessDesc: 'You can sign in with your new password.',
    resetFailed: 'Reset failed',
    resetNotAvailable: 'Password reset is not available on the server yet. Please contact an administrator.',
    signIn: 'Sign In',
    signingIn: 'Signing In...',
    loginSuccess: 'Login successful',
    loginFailed: 'Login failed',
    offlineLoginFailed: 'Offline sign-in failed. Sign in online and tap Sync first.',
    offlineLoginSuccess: 'Signed in offline',
    fillRequired: 'Please enter email and password',
    noStoresBound: 'No stores are linked to this account',
    refreshStoresFail: 'Could not refresh store list',
    copyright: '© 2026 Food Label System. All rights reserved.',
    selectStore: 'Select Store',
    welcomeUser: 'Welcome!',
    selectStoreDesc: 'Select the store where you\'ll be working today',
    selectStoreError: 'Please select a store',
    storeSelected: 'Store selected successfully',
    scopeCompany: 'Company',
    scopeRegion: 'Region',
    scopeLoading: 'Loading…',
    scopeNoCompanies: 'No companies available',
    scopeNoRegions: 'No regions for this company',
    selectCompanyRegionFirst: 'Select company and region first',
    scopeLoadFail: 'Could not load options',
    scopeSelectFail: 'Could not confirm store',
    store1: 'Downtown Kitchen', store2: 'Brooklyn Central', store3: 'Queens Food Hub', store4: 'Manhattan Express',
  },
  dashboard: {
    todaysLabels: "Today's Labels",
    pendingPrint: 'pending print',
    alerts: 'Alerts',
    expiringSoon: 'Expiring soon',
    devicesStatus: 'Devices Status',
    quickActions: 'Quick Actions',
    scanAndPrint: 'Scan & Print',
    batchPrint: 'Batch Print',
  },
  printers: {
    title: 'Printer Settings',
    available: 'printers available',
    nearby: 'Nearby Bluetooth Printers',
    scanning: 'Scanning...',
    stopScan: 'Stop Scan',
    startScan: 'Scan Bluetooth Printers',
    builtin: 'Built-in Printer',
    builtinDesc: 'Local Network / All-in-one (127.0.0.1)',
    connected: 'Connected',
    disconnected: 'Disconnected',
    connect: 'Connect',
    disconnect: 'Disconnect',
    connecting: 'Connecting...',
    testPrint: 'Test Print',
    testPrintSuccess: 'Test print command sent successfully',
    testPrintFail: 'Failed to send test command',
    connectSuccess: 'Connected successfully',
    connectFail: 'Connection failed',
    bleNotAvailable: 'Bluetooth not available',
    noDevices: 'No devices found',
    pairedDevices: 'Paired Devices',
    noPairedDevices: 'No paired Bluetooth devices',
    classic: 'Classic',
    ble: 'BLE',
    dual: 'Dual',
    printer1: { name: 'Kitchen Printer #1', location: 'Main Kitchen' },
    printer2: { name: 'Kitchen Printer #2', location: 'Main Kitchen' },
    printer3: { name: 'Prep Area Printer', location: 'Prep Station' },
    printer4: { name: 'Storage Printer', location: 'Cold Storage' }
  },
  labels: {
    title: 'Labels',
    selectType: 'Select a label type to print',
    selectFood: 'Select food item to print label',
    foodItems: 'food items',
    searchFood: 'Search food items...',
    noFoodFound: 'No Food Items Found',
    noFoodDesc: 'Try adjusting your search or browse by category',
    tabs: { create: 'Create', history: 'History' },
    history: { subtitle: 'View printed labels', empty: { title: 'No Labels Yet', desc: 'Labels you print will appear here' } },
    printedBy: 'Printed by',
    status: { active: 'Active', expired: 'Expired' },
    preview: {
      title: 'Label Preview',
      subtitle: 'Review before printing',
      labelPreview: 'Label Preview',
      printedBy: 'Printed By',
      printDate: 'Print Date',
      note: 'This preview shows how the label will appear when printed. Please verify all information before printing.',
    },
    print: { button: 'Print Label', printing: 'Printing...', success: 'Label printed successfully!' },
  },
  labelType: {
    nutrition: { name: 'Nutrition Label', desc: 'Print nutrition facts' },
    allergen: { name: 'Allergen Label', desc: 'Display allergen warnings' },
    storage: { name: 'Storage Label', desc: 'Show storage temperature' },
    expiry: { name: 'Expiry Date Label', desc: 'Print expiration dates' },
    batch: { name: 'Batch Tracking Label', desc: 'Track batch numbers' },
    preparation: { name: 'Preparation Label', desc: 'Document prep date, time' },
  },
  labelPreview: { nutrition: 'NUTRITION FACTS', allergen: 'ALLERGEN INFORMATION', storage: 'STORAGE INSTRUCTIONS', expiry: 'EXPIRATION DATE', batch: 'BATCH TRACKING', preparation: 'PREPARATION INFO' },
  nutrition: { servingSize: 'Serving Size', calories: 'Calories', totalFat: 'Total Fat', saturatedFat: 'Saturated Fat', transFat: 'Trans Fat', cholesterol: 'Cholesterol', sodium: 'Sodium', totalCarb: 'Total Carbohydrate', dietaryFiber: 'Dietary Fiber', sugars: 'Sugars', protein: 'Protein' },
  allergen: { contains: 'Contains', mayContain: 'May Contain', crossContamination: 'Cross-Contamination Risk', preparedIn: 'Prepared In', riskLow: 'Low' },
  storage: { temperature: 'Storage Temperature', location: 'Storage Location', shelfLife: 'Shelf Life', handling: 'Handling', tempRange: '°F (0-4°C)', daysFromPrep: 'days from prep date', instructions: 'Keep refrigerated. Use clean utensils.' },
  expiry: { prepDate: 'Prep Date', expiryDate: 'Expiry Date', batchNumber: 'Batch Number', preparedBy: 'Prepared By' },
  batch: { batchNumber: 'Batch Number', productionDate: 'Production Date', supplier: 'Supplier', lotNumber: 'Lot Number', supplierName: 'Fresh Foods Co.' },
  prep: { prepDate: 'Prep Date', prepTime: 'Prep Time', preparedBy: 'Prepared By', location: 'Location', useBy: 'Use By' },
  category: { meat: 'Meat', salads: 'Salads', seafood: 'Seafood', sauces: 'Sauces', vegetables: 'Vegetables', desserts: 'Desserts', prepared: 'Prepared Foods', frozen: 'Frozen Foods', dairy: 'Dairy', bakery: 'Bakery', beverages: 'Beverages', soups: 'Soups' },
  food: {
    chickenBreast: 'Grilled Chicken Breast', 'chickenBreast.desc': 'Fresh grilled chicken breast',
    caesarSalad: 'Caesar Salad', 'caesarSalad.desc': 'Classic Caesar salad',
    salmonFillet: 'Fresh Salmon Fillet', 'salmonFillet.desc': 'Atlantic salmon fillet',
    beefPatties: 'Ground Beef Patties', 'beefPatties.desc': 'Fresh ground beef patties',
    marinaraSauce: 'Marinara Sauce', 'marinaraSauce.desc': 'House-made marinara sauce',
    vegetables: 'Pre-cut Vegetables', 'vegetables.desc': 'Mixed fresh vegetables',
    brownie: 'Chocolate Brownie', 'brownie.desc': 'Rich chocolate brownie',
    shrimpPasta: 'Shrimp Pasta', 'shrimpPasta.desc': 'Linguine with shrimp',
    iceCream: 'Vanilla Ice Cream', 'iceCream.desc': 'Premium vanilla ice cream',
    clubSandwich: 'Club Sandwich', 'clubSandwich.desc': 'Triple-decker club sandwich',
    yogurt: 'Greek Yogurt', 'yogurt.desc': 'Plain Greek yogurt',
    bread: 'Whole Wheat Bread', 'bread.desc': 'Freshly baked whole wheat bread',
    smoothie: 'Mixed Berry Smoothie', 'smoothie.desc': 'Fresh mixed berry smoothie',
    turkey: 'Roasted Turkey Breast', 'turkey.desc': 'Oven-roasted turkey breast',
    tomatoSoup: 'Tomato Soup', 'tomatoSoup.desc': 'Creamy tomato soup with basil',
  },
  more: {
    title: 'More',
    profile: 'My Profile', 'profile.desc': 'View and edit your profile',
    report: 'Report',
    printLog: 'Print Log',
    labelReport: 'Label Report',
    printers: 'Printer Settings', 'printers.desc': 'Manage connected printers',
    location: 'Location', 'location.desc': 'Change your work location',
    sync: 'Sync Status', 'sync.desc': 'View sync status and data',
    language: 'Language / 语言', 'language.desc': 'Change app language',
    support: 'Support', 'support.desc': 'Get help and contact support',
    logout: 'Logout',
  },
  location: {
    title: 'Location',
    currentStore: 'Current Store',
    switchStore: 'Switch Store',
    selectNewStore: 'Select a new store',
    confirmSwitch: 'Confirm Switch',
    storeSwitched: 'Store switched successfully',
    contactInfo: 'Contact Information',
    storePhone: 'Store Phone',
    operatingHours: 'Operating Hours',
    storeManager: 'Store Manager',
    name: 'Name',
    phone: 'Phone',
  },
  sync: {
    title: 'Sync Status',
    lastSync: 'Last Sync',
    syncNow: 'Sync Now',
    syncing: 'Syncing...',
    synced: 'synced',
    allSynced: 'All data synced',
    details: 'Data Overview',
    labels: 'Labels',
    tasks: 'Tasks',
    photos: 'Photos',
    of: 'of',
    pending: 'Pending',
    syncSuccess: 'Sync completed successfully',
    autoSyncInfo: 'Data syncs automatically when you are online. Use Sync Now to manually refresh.',
  },
  language: { title: 'Language Settings', selectLanguage: 'Select Language', english: 'English', chinese: '中文(简体)', changed: 'Language changed successfully' },
  support: {
    title: 'Support',
    needHelp: 'Need Help?',
    email: 'Email Support',
    phone: 'Phone Support',
    userGuide: 'User Guide',
    faq: 'FAQ',
    phoneHint: 'Available 24/7',
    emailHint: 'Response within 24 hours',
    notConfigured: 'Not configured',
    emailCopied: 'Email copied to clipboard',
    loadFailed: 'Could not load support contacts.',
  },
  profile: { title: 'My Profile', name: 'Full Name', email: 'Email', phone: 'Phone', employeeId: 'Employee ID', saveChanges: 'Save Changes', editProfile: 'Edit Profile' },
  nav: { dashboard: 'Dashboard', labels: 'Labels', more: 'More' },
  common_note: 'Note',
}