import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; import 'app_localizations_de.dart'; import 'app_localizations_en.dart'; // ignore_for_file: type=lint /// Callers can lookup localized strings with an instance of AppLocalizations /// returned by `AppLocalizations.of(context)`. /// /// Applications need to include `AppLocalizations.delegate()` in their app's /// `localizationDelegates` list, and the locales they support in the app's /// `supportedLocales` list. For example: /// /// ```dart /// import 'l10n/app_localizations.dart'; /// /// return MaterialApp( /// localizationsDelegates: AppLocalizations.localizationsDelegates, /// supportedLocales: AppLocalizations.supportedLocales, /// home: MyApplicationHome(), /// ); /// ``` /// /// ## Update pubspec.yaml /// /// Please make sure to update your pubspec.yaml to include the following /// packages: /// /// ```yaml /// dependencies: /// # Internationalization support. /// flutter_localizations: /// sdk: flutter /// intl: any # Use the pinned version from flutter_localizations /// /// # Rest of dependencies /// ``` /// /// ## iOS Applications /// /// iOS applications define key application metadata, including supported /// locales, in an Info.plist file that is built into the application bundle. /// To configure the locales supported by your app, you’ll need to edit this /// file. /// /// First, open your project’s ios/Runner.xcworkspace Xcode workspace file. /// Then, in the Project Navigator, open the Info.plist file under the Runner /// project’s Runner folder. /// /// Next, select the Information Property List item, select Add Item from the /// Editor menu, then select Localizations from the pop-up menu. /// /// Select and expand the newly-created Localizations item then, for each /// locale your application supports, add a new item and select the locale /// you wish to add from the pop-up menu in the Value field. This list should /// be consistent with the languages listed in the AppLocalizations.supportedLocales /// property. abstract class AppLocalizations { AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString()); final String localeName; static AppLocalizations? of(BuildContext context) { return Localizations.of(context, AppLocalizations); } static const LocalizationsDelegate delegate = _AppLocalizationsDelegate(); /// A list of this localizations delegate along with the default localizations /// delegates. /// /// Returns a list of localizations delegates containing this delegate along with /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, /// and GlobalWidgetsLocalizations.delegate. /// /// Additional delegates can be added by appending to this list in /// MaterialApp. This list does not have to be used at all if a custom list /// of delegates is preferred or required. static const List> localizationsDelegates = >[ delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ]; /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ Locale('de'), Locale('en'), ]; /// App-bar title in the OS task switcher. /// /// In en, this message translates to: /// **'F∆I Studio'** String get appTitle; /// No description provided for @navWelcome. /// /// In en, this message translates to: /// **'Welcome'** String get navWelcome; /// No description provided for @welcomeHeroTitle. /// /// In en, this message translates to: /// **'F∆I Platform'** String get welcomeHeroTitle; /// No description provided for @welcomeHeroSubtitle. /// /// In en, this message translates to: /// **'Deterministic workflow engine for AI-assisted document processing in regulated environments.'** String get welcomeHeroSubtitle; /// No description provided for @welcomePillarHubTitle. /// /// In en, this message translates to: /// **'Hub'** String get welcomePillarHubTitle; /// No description provided for @welcomePillarHubBody. /// /// In en, this message translates to: /// **'One Rust binary that loads modules and runs flows. SQLite for state. No Docker, no message broker, no background services to babysit.'** String get welcomePillarHubBody; /// No description provided for @welcomePillarModuleTitle. /// /// In en, this message translates to: /// **'Module'** String get welcomePillarModuleTitle; /// No description provided for @welcomePillarModuleBody. /// /// In en, this message translates to: /// **'A small WebAssembly component that does one thing. Declares the network endpoints, files, and environment variables it touches; the hub enforces the list.'** String get welcomePillarModuleBody; /// No description provided for @welcomePillarFlowTitle. /// /// In en, this message translates to: /// **'Flow'** String get welcomePillarFlowTitle; /// No description provided for @welcomePillarFlowBody. /// /// In en, this message translates to: /// **'A YAML file that chains modules together. Inputs go in, modules run in declared order, outputs come out — every step recorded in a hash-chained audit log.'** String get welcomePillarFlowBody; /// No description provided for @welcomeTrustHeader. /// /// In en, this message translates to: /// **'TRUST POSTURE'** String get welcomeTrustHeader; /// No description provided for @welcomeTrustSandboxTitle. /// /// In en, this message translates to: /// **'Sandbox by default'** String get welcomeTrustSandboxTitle; /// No description provided for @welcomeTrustSandboxBody. /// /// In en, this message translates to: /// **'Every module ships with an explicit permission list — network endpoints, files, environment variables. The hub enforces it; nothing reaches outside the sandbox without operator approval.'** String get welcomeTrustSandboxBody; /// No description provided for @welcomeTrustAuditTitle. /// /// In en, this message translates to: /// **'Tamper-evident audit log'** String get welcomeTrustAuditTitle; /// No description provided for @welcomeTrustAuditBody. /// /// In en, this message translates to: /// **'Flow runs, install / uninstall actions, approval decisions — all of them write into a hash-chained audit log. The Doctor page verifies the chain end-to-end on every load.'** String get welcomeTrustAuditBody; /// No description provided for @welcomeTrustAirgapTitle. /// /// In en, this message translates to: /// **'Air-gap ready'** String get welcomeTrustAirgapTitle; /// No description provided for @welcomeTrustAirgapBody. /// /// In en, this message translates to: /// **'The whole hub fits in a single binary that runs on Linux, macOS and Windows. Once a module is installed, the flow it powers runs without further network access — perfect for regulated environments.'** String get welcomeTrustAirgapBody; /// No description provided for @welcomeDocsHeader. /// /// In en, this message translates to: /// **'DOCUMENTATION'** String get welcomeDocsHeader; /// No description provided for @welcomeDocsBody. /// /// In en, this message translates to: /// **'Operator-facing explainers, rendered inline. No browser, no external link — air-gap-friendly.'** String get welcomeDocsBody; /// No description provided for @welcomeDocArchitectureTitle. /// /// In en, this message translates to: /// **'Architecture in one paragraph'** String get welcomeDocArchitectureTitle; /// No description provided for @welcomeDocArchitectureBlurb. /// /// In en, this message translates to: /// **'Hub, Module, Flow — and how the three fit together.'** String get welcomeDocArchitectureBlurb; /// No description provided for @welcomeDocSecurityTitle. /// /// In en, this message translates to: /// **'Sandbox model'** String get welcomeDocSecurityTitle; /// No description provided for @welcomeDocSecurityBlurb. /// /// In en, this message translates to: /// **'What a module declares, what the operator caps, what the hub enforces.'** String get welcomeDocSecurityBlurb; /// No description provided for @welcomeDocAuditTitle. /// /// In en, this message translates to: /// **'Tamper-evident audit log'** String get welcomeDocAuditTitle; /// No description provided for @welcomeDocAuditBlurb. /// /// In en, this message translates to: /// **'How the hash chain works and why WORM-1 is enough for KRITIS.'** String get welcomeDocAuditBlurb; /// No description provided for @welcomeDocFlowsTitle. /// /// In en, this message translates to: /// **'Flow composition'** String get welcomeDocFlowsTitle; /// No description provided for @welcomeDocFlowsBlurb. /// /// In en, this message translates to: /// **'YAML basics, templating reference, the extract→summarize example.'** String get welcomeDocFlowsBlurb; /// No description provided for @welcomeDocClose. /// /// In en, this message translates to: /// **'Close'** String get welcomeDocClose; /// No description provided for @welcomeDocFailedToLoad. /// /// In en, this message translates to: /// **'Could not load documentation: {error}'** String welcomeDocFailedToLoad(String error); /// No description provided for @welcomeChecklistHeader. /// /// In en, this message translates to: /// **'GETTING STARTED'** String get welcomeChecklistHeader; /// No description provided for @welcomeChecklistBody. /// /// In en, this message translates to: /// **'Four steps to a working hub. Live state — refresh after changing anything.'** String get welcomeChecklistBody; /// No description provided for @welcomeChecklistAi. /// /// In en, this message translates to: /// **'Configure System AI'** String get welcomeChecklistAi; /// No description provided for @welcomeChecklistAiHint. /// /// In en, this message translates to: /// **'Settings → System AI. Required for the AI search and inline failure explanations.'** String get welcomeChecklistAiHint; /// No description provided for @welcomeChecklistMcp. /// /// In en, this message translates to: /// **'Add a public capability source'** String get welcomeChecklistMcp; /// No description provided for @welcomeChecklistMcpHint. /// /// In en, this message translates to: /// **'Store → Today hero, or Settings → MCP Clients. DeepWiki and Semgrep are one click each.'** String get welcomeChecklistMcpHint; /// No description provided for @welcomeChecklistModule. /// /// In en, this message translates to: /// **'Install a text module'** String get welcomeChecklistModule; /// No description provided for @welcomeChecklistModuleHint. /// /// In en, this message translates to: /// **'Store → search \"text\" → Install. Try text.extract for PDFs and DOCX.'** String get welcomeChecklistModuleHint; /// No description provided for @welcomeChecklistFlow. /// /// In en, this message translates to: /// **'Run a saved flow'** String get welcomeChecklistFlow; /// No description provided for @welcomeChecklistFlowHint. /// /// In en, this message translates to: /// **'Flows → pick one → Run. The bundled extract-summarize.yaml is a good first run.'** String get welcomeChecklistFlowHint; /// No description provided for @welcomeChecklistAllDone. /// /// In en, this message translates to: /// **'All four steps complete.'** String get welcomeChecklistAllDone; /// No description provided for @welcomeChecklistDismiss. /// /// In en, this message translates to: /// **'Hide checklist'** String get welcomeChecklistDismiss; /// No description provided for @welcomeChecklistRefresh. /// /// In en, this message translates to: /// **'Refresh'** String get welcomeChecklistRefresh; /// No description provided for @welcomeChecklistRefreshing. /// /// In en, this message translates to: /// **'Checking…'** String get welcomeChecklistRefreshing; /// No description provided for @welcomeChecklistDone. /// /// In en, this message translates to: /// **'Done'** String get welcomeChecklistDone; /// No description provided for @welcomeChecklistTodo. /// /// In en, this message translates to: /// **'Pending'** String get welcomeChecklistTodo; /// No description provided for @navDoctor. /// /// In en, this message translates to: /// **'Doctor'** String get navDoctor; /// No description provided for @navModules. /// /// In en, this message translates to: /// **'Modules'** String get navModules; /// No description provided for @navStore. /// /// In en, this message translates to: /// **'Store'** String get navStore; /// No description provided for @navFlows. /// /// In en, this message translates to: /// **'Flows'** String get navFlows; /// No description provided for @navAudit. /// /// In en, this message translates to: /// **'Audit'** String get navAudit; /// No description provided for @navApprovals. /// /// In en, this message translates to: /// **'Approvals'** String get navApprovals; /// No description provided for @connectionConnected. /// /// In en, this message translates to: /// **'connected'** String get connectionConnected; /// No description provided for @connectionUnreachable. /// /// In en, this message translates to: /// **'unreachable'** String get connectionUnreachable; /// No description provided for @connectionConnecting. /// /// In en, this message translates to: /// **'connecting…'** String get connectionConnecting; /// No description provided for @connectionStartHub. /// /// In en, this message translates to: /// **'Start hub'** String get connectionStartHub; /// No description provided for @buttonCancel. /// /// In en, this message translates to: /// **'Cancel'** String get buttonCancel; /// No description provided for @buttonSave. /// /// In en, this message translates to: /// **'Save'** String get buttonSave; /// No description provided for @buttonClose. /// /// In en, this message translates to: /// **'Close'** String get buttonClose; /// No description provided for @buttonRetry. /// /// In en, this message translates to: /// **'Retry'** String get buttonRetry; /// No description provided for @buttonRefresh. /// /// In en, this message translates to: /// **'Refresh'** String get buttonRefresh; /// No description provided for @buttonInstall. /// /// In en, this message translates to: /// **'Install'** String get buttonInstall; /// No description provided for @buttonUninstall. /// /// In en, this message translates to: /// **'Uninstall'** String get buttonUninstall; /// No description provided for @buttonDetails. /// /// In en, this message translates to: /// **'Details'** String get buttonDetails; /// No description provided for @buttonAdd. /// /// In en, this message translates to: /// **'Add'** String get buttonAdd; /// No description provided for @buttonRemove. /// /// In en, this message translates to: /// **'Remove'** String get buttonRemove; /// No description provided for @buttonOpen. /// /// In en, this message translates to: /// **'Open'** String get buttonOpen; /// No description provided for @buttonExplain. /// /// In en, this message translates to: /// **'Explain'** String get buttonExplain; /// No description provided for @buttonReadDocs. /// /// In en, this message translates to: /// **'Read docs'** String get buttonReadDocs; /// No description provided for @buttonCopy. /// /// In en, this message translates to: /// **'Copy to clipboard'** String get buttonCopy; /// No description provided for @buttonCopied. /// /// In en, this message translates to: /// **'Copied'** String get buttonCopied; /// No description provided for @settingsTitle. /// /// In en, this message translates to: /// **'Hub endpoint'** String get settingsTitle; /// No description provided for @settingsHost. /// /// In en, this message translates to: /// **'Host'** String get settingsHost; /// No description provided for @settingsPort. /// /// In en, this message translates to: /// **'Port'** String get settingsPort; /// No description provided for @settingsTls. /// /// In en, this message translates to: /// **'TLS'** String get settingsTls; /// No description provided for @settingsSaveAndConnect. /// /// In en, this message translates to: /// **'Save & connect'** String get settingsSaveAndConnect; /// No description provided for @settingsLanguage. /// /// In en, this message translates to: /// **'Language'** String get settingsLanguage; /// No description provided for @settingsLanguageHint. /// /// In en, this message translates to: /// **'App language. Affects every page; bilingual store entries also flip via this toggle.'** String get settingsLanguageHint; /// No description provided for @settingsHubEndpointHint. /// /// In en, this message translates to: /// **'Where should Studio connect? Default is the local hub at 127.0.0.1:50051.'** String get settingsHubEndpointHint; /// No description provided for @settingsTlsSubtitle. /// /// In en, this message translates to: /// **'https/grpc-secure'** String get settingsTlsSubtitle; /// No description provided for @settingsPortError. /// /// In en, this message translates to: /// **'port must be 1–65535'** String get settingsPortError; /// No description provided for @channelsBlurb. /// /// In en, this message translates to: /// **'Switch hub channel (writes ~/.fai/current-channel and restarts the daemon). Connect just changes Studio\'s wire.'** String get channelsBlurb; /// No description provided for @channelsActionsTooltip. /// /// In en, this message translates to: /// **'Channel actions'** String get channelsActionsTooltip; /// No description provided for @systemAiHeader. /// /// In en, this message translates to: /// **'SYSTEM AI'** String get systemAiHeader; /// No description provided for @systemAiEnabled. /// /// In en, this message translates to: /// **'enabled'** String get systemAiEnabled; /// No description provided for @systemAiOff. /// /// In en, this message translates to: /// **'off'** String get systemAiOff; /// No description provided for @systemAiEdit. /// /// In en, this message translates to: /// **'Edit…'** String get systemAiEdit; /// No description provided for @systemAiConfigure. /// /// In en, this message translates to: /// **'Configure…'** String get systemAiConfigure; /// No description provided for @systemAiOffBlurb. /// /// In en, this message translates to: /// **'Off — failure explanations on the audit page are disabled. Click Configure… to pick a provider (Ollama / OpenAI / LM Studio / vLLM / Custom). Operator config is rewritten in place; no daemon restart needed.'** String get systemAiOffBlurb; /// No description provided for @mcpServersCount. /// /// In en, this message translates to: /// **'{n} {n, plural, =1{server} other{servers}}'** String mcpServersCount(int n); /// No description provided for @mcpRediscoverTooltip. /// /// In en, this message translates to: /// **'Re-run discovery'** String get mcpRediscoverTooltip; /// No description provided for @mcpAddTooltip. /// /// In en, this message translates to: /// **'Add MCP server'** String get mcpAddTooltip; /// No description provided for @mcpRemoveTooltip. /// /// In en, this message translates to: /// **'Remove server'** String get mcpRemoveTooltip; /// No description provided for @mcpToolsCount. /// /// In en, this message translates to: /// **'{n} {n, plural, =1{tool} other{tools}}'** String mcpToolsCount(int n); /// No description provided for @n8nEndpointsCount. /// /// In en, this message translates to: /// **'{n} {n, plural, =1{endpoint} other{endpoints}}'** String n8nEndpointsCount(int n); /// No description provided for @n8nWorkflowsCount. /// /// In en, this message translates to: /// **'{n} {n, plural, =1{workflow} other{workflows}}'** String n8nWorkflowsCount(int n); /// No description provided for @n8nRediscoverTooltip. /// /// In en, this message translates to: /// **'Re-run discovery'** String get n8nRediscoverTooltip; /// No description provided for @n8nAddTooltip. /// /// In en, this message translates to: /// **'Add n8n endpoint'** String get n8nAddTooltip; /// No description provided for @n8nRemoveTooltip. /// /// In en, this message translates to: /// **'Remove endpoint'** String get n8nRemoveTooltip; /// No description provided for @addMcpTitle. /// /// In en, this message translates to: /// **'Add MCP server'** String get addMcpTitle; /// No description provided for @addMcpIntro. /// /// In en, this message translates to: /// **'Tools the server advertises via `tools/list` appear in the Store as `mcp..` capabilities.'** String get addMcpIntro; /// No description provided for @addMcpSuggestionsLabel. /// /// In en, this message translates to: /// **'Suggested servers — click to pre-fill'** String get addMcpSuggestionsLabel; /// No description provided for @addMcpNameLabel. /// /// In en, this message translates to: /// **'Name (no dots)'** String get addMcpNameLabel; /// No description provided for @addMcpNameHint. /// /// In en, this message translates to: /// **'filesystem'** String get addMcpNameHint; /// No description provided for @addMcpEndpointLabel. /// /// In en, this message translates to: /// **'Endpoint'** String get addMcpEndpointLabel; /// No description provided for @addMcpEndpointHint. /// /// In en, this message translates to: /// **'http://127.0.0.1:3001/mcp'** String get addMcpEndpointHint; /// No description provided for @addMcpApiKeyLabel. /// /// In en, this message translates to: /// **'API key env var (optional)'** String get addMcpApiKeyLabel; /// No description provided for @addMcpApiKeyHint. /// /// In en, this message translates to: /// **'MCP_FILESYSTEM_TOKEN'** String get addMcpApiKeyHint; /// No description provided for @addMcpNotesLabel. /// /// In en, this message translates to: /// **'Notes (optional)'** String get addMcpNotesLabel; /// No description provided for @addMcpAddButton. /// /// In en, this message translates to: /// **'Add + discover'** String get addMcpAddButton; /// No description provided for @addN8nTitle. /// /// In en, this message translates to: /// **'Add n8n endpoint'** String get addN8nTitle; /// No description provided for @addN8nIntro. /// /// In en, this message translates to: /// **'Active workflows surface in the Store as `n8n..` capabilities.'** String get addN8nIntro; /// No description provided for @addN8nNameLabel. /// /// In en, this message translates to: /// **'Name (no dots)'** String get addN8nNameLabel; /// No description provided for @addN8nNameHint. /// /// In en, this message translates to: /// **'ops'** String get addN8nNameHint; /// No description provided for @addN8nBaseUrlLabel. /// /// In en, this message translates to: /// **'Base URL (without /api/v1)'** String get addN8nBaseUrlLabel; /// No description provided for @addN8nBaseUrlHint. /// /// In en, this message translates to: /// **'https://n8n.example.com'** String get addN8nBaseUrlHint; /// No description provided for @addN8nApiKeyLabel. /// /// In en, this message translates to: /// **'API key env var (optional)'** String get addN8nApiKeyLabel; /// No description provided for @addN8nApiKeyHint. /// /// In en, this message translates to: /// **'N8N_OPS_KEY'** String get addN8nApiKeyHint; /// No description provided for @addN8nNotesLabel. /// /// In en, this message translates to: /// **'Notes (optional)'** String get addN8nNotesLabel; /// No description provided for @addN8nAddButton. /// /// In en, this message translates to: /// **'Add + discover'** String get addN8nAddButton; /// No description provided for @addedMcpToast. /// /// In en, this message translates to: /// **'Added MCP server \"{name}\".'** String addedMcpToast(String name); /// No description provided for @addedN8nToast. /// /// In en, this message translates to: /// **'Added n8n endpoint \"{name}\".'** String addedN8nToast(String name); /// No description provided for @addFailedToast. /// /// In en, this message translates to: /// **'Add failed: {error}'** String addFailedToast(String error); /// No description provided for @removeFailedToast. /// /// In en, this message translates to: /// **'Remove failed: {error}'** String removeFailedToast(String error); /// No description provided for @refreshFailedToast. /// /// In en, this message translates to: /// **'Refresh failed: {error}'** String refreshFailedToast(String error); /// No description provided for @channelsHeader. /// /// In en, this message translates to: /// **'CHANNELS'** String get channelsHeader; /// No description provided for @channelsActive. /// /// In en, this message translates to: /// **'active'** String get channelsActive; /// No description provided for @channelsRunning. /// /// In en, this message translates to: /// **'running'** String get channelsRunning; /// No description provided for @channelsStopped. /// /// In en, this message translates to: /// **'stopped'** String get channelsStopped; /// No description provided for @channelsConnect. /// /// In en, this message translates to: /// **'Connect Studio to this channel'** String get channelsConnect; /// No description provided for @channelsSwitch. /// /// In en, this message translates to: /// **'Make this the active channel'** String get channelsSwitch; /// No description provided for @channelsEnableAutostart. /// /// In en, this message translates to: /// **'Enable autostart at login'** String get channelsEnableAutostart; /// No description provided for @channelsDisableAutostart. /// /// In en, this message translates to: /// **'Disable autostart'** String get channelsDisableAutostart; /// No description provided for @storeSearchHint. /// /// In en, this message translates to: /// **'Search modules — name, tagline, tag, capability…'** String get storeSearchHint; /// No description provided for @storeAskHint. /// /// In en, this message translates to: /// **'What do you need? Try \"a module that reads tabular data\" or just type a keyword.'** String get storeAskHint; /// No description provided for @storeAskSubmit. /// /// In en, this message translates to: /// **'Search'** String get storeAskSubmit; /// No description provided for @storeAskAi. /// /// In en, this message translates to: /// **'Ask the AI'** String get storeAskAi; /// No description provided for @storeAskClear. /// /// In en, this message translates to: /// **'Clear question'** String get storeAskClear; /// No description provided for @storeAskAiThinking. /// /// In en, this message translates to: /// **'Looking through modules…'** String get storeAskAiThinking; /// No description provided for @storeAskAiUnavailable. /// /// In en, this message translates to: /// **'Configure a System AI in Settings to ask questions in plain language.'** String get storeAskAiUnavailable; /// No description provided for @storeAskNoMatches. /// /// In en, this message translates to: /// **'No matches yet — refine the question or browse the grid below.'** String get storeAskNoMatches; /// No description provided for @storeAskAnswerLabel. /// /// In en, this message translates to: /// **'AI suggestion'** String get storeAskAnswerLabel; /// No description provided for @storeAskAnswerWhy. /// /// In en, this message translates to: /// **'Why this matches'** String get storeAskAnswerWhy; /// No description provided for @storeAskMatchPill. /// /// In en, this message translates to: /// **'match'** String get storeAskMatchPill; /// No description provided for @storeFilterLabel. /// /// In en, this message translates to: /// **'Filter'** String get storeFilterLabel; /// No description provided for @storeFilterActiveCount. /// /// In en, this message translates to: /// **'{n} active'** String storeFilterActiveCount(int n); /// No description provided for @storeFilterReset. /// /// In en, this message translates to: /// **'Reset filters'** String get storeFilterReset; /// No description provided for @storeFilterApply. /// /// In en, this message translates to: /// **'Done'** String get storeFilterApply; /// No description provided for @storeFilterStatusGroup. /// /// In en, this message translates to: /// **'Status'** String get storeFilterStatusGroup; /// No description provided for @storeFilterSourceGroup. /// /// In en, this message translates to: /// **'Source'** String get storeFilterSourceGroup; /// No description provided for @storeFilterInstalledGroup. /// /// In en, this message translates to: /// **'Show only installed'** String get storeFilterInstalledGroup; /// No description provided for @storeFeatured. /// /// In en, this message translates to: /// **'FEATURED'** String get storeFeatured; /// No description provided for @storeFeaturedHint. /// /// In en, this message translates to: /// **'curated picks · click for details'** String get storeFeaturedHint; /// No description provided for @storeNoMatches. /// /// In en, this message translates to: /// **'No matches'** String get storeNoMatches; /// No description provided for @storeNoMatchesHint. /// /// In en, this message translates to: /// **'Adjust the filters or clear the search to see all entries.'** String get storeNoMatchesHint; /// No description provided for @storeClearFilters. /// /// In en, this message translates to: /// **'Clear filters'** String get storeClearFilters; /// No description provided for @storeStatusAll. /// /// In en, this message translates to: /// **'All'** String get storeStatusAll; /// No description provided for @storeStatusPublished. /// /// In en, this message translates to: /// **'stable'** String get storeStatusPublished; /// No description provided for @storeStatusAlpha. /// /// In en, this message translates to: /// **'experimental'** String get storeStatusAlpha; /// No description provided for @storeStatusPlanned. /// /// In en, this message translates to: /// **'coming soon'** String get storeStatusPlanned; /// No description provided for @storeInstalledOnly. /// /// In en, this message translates to: /// **'Installed'** String get storeInstalledOnly; /// No description provided for @storeCategoryLabel. /// /// In en, this message translates to: /// **'Category'** String get storeCategoryLabel; /// No description provided for @storeCategoryAll. /// /// In en, this message translates to: /// **'All categories'** String get storeCategoryAll; /// No description provided for @storeCategoryBridge. /// /// In en, this message translates to: /// **'Connectors'** String get storeCategoryBridge; /// No description provided for @storeCategoryDebug. /// /// In en, this message translates to: /// **'Sample modules'** String get storeCategoryDebug; /// No description provided for @storeCategoryText. /// /// In en, this message translates to: /// **'Text'** String get storeCategoryText; /// No description provided for @storeCategoryLlm. /// /// In en, this message translates to: /// **'AI models'** String get storeCategoryLlm; /// No description provided for @storeCategorySystem. /// /// In en, this message translates to: /// **'System'** String get storeCategorySystem; /// No description provided for @storeCategoryAuth. /// /// In en, this message translates to: /// **'Authentication'** String get storeCategoryAuth; /// No description provided for @storeCategoryStorage. /// /// In en, this message translates to: /// **'Storage'** String get storeCategoryStorage; /// No description provided for @storeCategoryChannel. /// /// In en, this message translates to: /// **'Channels'** String get storeCategoryChannel; /// No description provided for @storeCategoryWeb. /// /// In en, this message translates to: /// **'Web'** String get storeCategoryWeb; /// No description provided for @storeCategoryOrchestrator. /// /// In en, this message translates to: /// **'Orchestration'** String get storeCategoryOrchestrator; /// No description provided for @storeNResults. /// /// In en, this message translates to: /// **'{n} result{n, plural, =1{} other{s}}'** String storeNResults(int n); /// No description provided for @storeReloadTooltip. /// /// In en, this message translates to: /// **'Reload'** String get storeReloadTooltip; /// No description provided for @storeTodayBadge. /// /// In en, this message translates to: /// **'TODAY'** String get storeTodayBadge; /// No description provided for @storeTodayDeck. /// /// In en, this message translates to: /// **'From the F∆I editor'** String get storeTodayDeck; /// No description provided for @storeTodayDismissTooltip. /// /// In en, this message translates to: /// **'Hide for this session'** String get storeTodayDismissTooltip; /// No description provided for @storePillInstalled. /// /// In en, this message translates to: /// **'installed'** String get storePillInstalled; /// No description provided for @storePillUpdate. /// /// In en, this message translates to: /// **'update'** String get storePillUpdate; /// No description provided for @storeUpdateButton. /// /// In en, this message translates to: /// **'Update to {version}'** String storeUpdateButton(String version); /// No description provided for @storeUpdateTooltip. /// /// In en, this message translates to: /// **'Installed {installed} — store has v{best}'** String storeUpdateTooltip(String installed, String best); /// No description provided for @storeNoTagline. /// /// In en, this message translates to: /// **'(no tagline)'** String get storeNoTagline; /// No description provided for @storeUninstallTitle. /// /// In en, this message translates to: /// **'Uninstall module?'** String get storeUninstallTitle; /// No description provided for @storeUninstallBody. /// /// In en, this message translates to: /// **'Removes {name} from this hub. Flows that reference it will fail at the next run.'** String storeUninstallBody(String name); /// No description provided for @storeInstalledToast. /// /// In en, this message translates to: /// **'{name} v{version} installed.'** String storeInstalledToast(String name, String version); /// No description provided for @storeInstallFailedToast. /// /// In en, this message translates to: /// **'Install failed: {error}'** String storeInstallFailedToast(String error); /// No description provided for @storeUninstalledToast. /// /// In en, this message translates to: /// **'{name} v{version} uninstalled.'** String storeUninstalledToast(String name, String version); /// No description provided for @storeUninstallFailedToast. /// /// In en, this message translates to: /// **'Uninstall failed: {error}'** String storeUninstallFailedToast(String error); /// No description provided for @storeOpenBrowserFailed. /// /// In en, this message translates to: /// **'Could not open browser: {error}'** String storeOpenBrowserFailed(String error); /// No description provided for @storeSectionTags. /// /// In en, this message translates to: /// **'Tags'** String get storeSectionTags; /// No description provided for @storeSectionRequiredCapabilities. /// /// In en, this message translates to: /// **'Required capabilities'** String get storeSectionRequiredCapabilities; /// No description provided for @storeSectionRequiredHostServices. /// /// In en, this message translates to: /// **'Required host services'** String get storeSectionRequiredHostServices; /// No description provided for @storeSectionScreenshots. /// /// In en, this message translates to: /// **'Screenshots'** String get storeSectionScreenshots; /// No description provided for @storeSectionDocumentation. /// /// In en, this message translates to: /// **'Documentation'** String get storeSectionDocumentation; /// No description provided for @storeSectionSource. /// /// In en, this message translates to: /// **'Source'** String get storeSectionSource; /// No description provided for @storeSectionPermissions. /// /// In en, this message translates to: /// **'Declared permissions'** String get storeSectionPermissions; /// No description provided for @storeSectionDirectory. /// /// In en, this message translates to: /// **'Module directory'** String get storeSectionDirectory; /// No description provided for @storeSectionPermissionsNone. /// /// In en, this message translates to: /// **'(none — pure-computation module)'** String get storeSectionPermissionsNone; /// No description provided for @storeInstallingButton. /// /// In en, this message translates to: /// **'Installing…'** String get storeInstallingButton; /// No description provided for @storeNotInstallable. /// /// In en, this message translates to: /// **'Not installable'** String get storeNotInstallable; /// No description provided for @storeNotInstallableTooltip. /// /// In en, this message translates to: /// **'Status \"{status}\" — install path not yet wired.'** String storeNotInstallableTooltip(String status); /// No description provided for @storeInstallProgressTitle. /// /// In en, this message translates to: /// **'Installing {name}'** String storeInstallProgressTitle(String name); /// No description provided for @storeInstallProgressBody. /// /// In en, this message translates to: /// **'Fetching, verifying, unpacking…'** String get storeInstallProgressBody; /// No description provided for @storeLoadDocs. /// /// In en, this message translates to: /// **'Load documentation'** String get storeLoadDocs; /// No description provided for @storeDocsHint. /// /// In en, this message translates to: /// **'README rendered inline; uses the hub\'s registry token when needed.'** String get storeDocsHint; /// No description provided for @storeDocsFetching. /// /// In en, this message translates to: /// **'Fetching README…'** String get storeDocsFetching; /// No description provided for @storeOpenRepoButton. /// /// In en, this message translates to: /// **'Open repository in browser'** String get storeOpenRepoButton; /// No description provided for @storeDocsErrorNotFound. /// /// In en, this message translates to: /// **'This module is not in the hub\'s store index.'** String get storeDocsErrorNotFound; /// No description provided for @storeDocsErrorNoDocs. /// /// In en, this message translates to: /// **'No repository URL is recorded for this module.'** String get storeDocsErrorNoDocs; /// No description provided for @storeDocsErrorAuth. /// /// In en, this message translates to: /// **'The registry requires authentication to fetch this README. Set FAI_REGISTRY_TOKEN in the daemon\'s environment and restart the hub.'** String get storeDocsErrorAuth; /// No description provided for @storeDocsErrorNetwork. /// /// In en, this message translates to: /// **'Network error while fetching the README. {detail}'** String storeDocsErrorNetwork(String detail); /// No description provided for @storeDocsErrorParse. /// /// In en, this message translates to: /// **'README is not valid UTF-8.'** String get storeDocsErrorParse; /// No description provided for @storeDocsErrorGeneric. /// /// In en, this message translates to: /// **'Could not load README.'** String get storeDocsErrorGeneric; /// No description provided for @storeSourceLabel. /// /// In en, this message translates to: /// **'Source'** String get storeSourceLabel; /// No description provided for @storeSourceAll. /// /// In en, this message translates to: /// **'All sources'** String get storeSourceAll; /// No description provided for @storeSourceNative. /// /// In en, this message translates to: /// **'Native'** String get storeSourceNative; /// No description provided for @storeSourceMcp. /// /// In en, this message translates to: /// **'MCP'** String get storeSourceMcp; /// No description provided for @storeSourceN8n. /// /// In en, this message translates to: /// **'n8n'** String get storeSourceN8n; /// No description provided for @storeProvenanceNative. /// /// In en, this message translates to: /// **'native'** String get storeProvenanceNative; /// No description provided for @storeProvenanceMcp. /// /// In en, this message translates to: /// **'mcp · {provider}'** String storeProvenanceMcp(String provider); /// No description provided for @storeProvenanceN8n. /// /// In en, this message translates to: /// **'n8n · {provider}'** String storeProvenanceN8n(String provider); /// No description provided for @storeRecommendedTitle. /// /// In en, this message translates to: /// **'Add a public source — one click'** String get storeRecommendedTitle; /// No description provided for @storeRecommendedBody. /// /// In en, this message translates to: /// **'Curated MCP servers reachable over HTTPS. No subprocess, no API key, no Node. Federated capabilities appear in the store immediately.'** String get storeRecommendedBody; /// No description provided for @storeRecommendedAddTooltip. /// /// In en, this message translates to: /// **'Add and discover'** String get storeRecommendedAddTooltip; /// No description provided for @storeRecommendedAdding. /// /// In en, this message translates to: /// **'Adding…'** String get storeRecommendedAdding; /// No description provided for @storeRecommendedDeepWikiTagline. /// /// In en, this message translates to: /// **'GitHub repo documentation search (AI-powered)'** String get storeRecommendedDeepWikiTagline; /// No description provided for @storeRecommendedSemgrepTagline. /// /// In en, this message translates to: /// **'Security scanning for code vulnerabilities'** String get storeRecommendedSemgrepTagline; /// No description provided for @storeProviderAddedToast. /// /// In en, this message translates to: /// **'Added {name} — {n} federated {n, plural, =1{capability} other{capabilities}}.'** String storeProviderAddedToast(String name, int n); /// No description provided for @storeProviderAddedZeroToast. /// /// In en, this message translates to: /// **'{name} registered, but the server returned no capabilities yet. Open Settings → MCP Clients to retry discovery or check the server.'** String storeProviderAddedZeroToast(String name); /// No description provided for @storeProviderAddFailed. /// /// In en, this message translates to: /// **'Could not add {name}: {error}'** String storeProviderAddFailed(String name, String error); /// No description provided for @auditTitle. /// /// In en, this message translates to: /// **'Audit'** String get auditTitle; /// No description provided for @auditNoEvents. /// /// In en, this message translates to: /// **'No events yet'** String get auditNoEvents; /// No description provided for @auditNoEventsHint. /// /// In en, this message translates to: /// **'Run a flow to populate the audit stream.\nEvents appear here within seconds.'** String get auditNoEventsHint; /// No description provided for @auditFilterAll. /// /// In en, this message translates to: /// **'all'** String get auditFilterAll; /// No description provided for @auditFilterFlow. /// /// In en, this message translates to: /// **'flow'** String get auditFilterFlow; /// No description provided for @auditFilterStep. /// /// In en, this message translates to: /// **'step'** String get auditFilterStep; /// No description provided for @auditFilterModule. /// /// In en, this message translates to: /// **'module'** String get auditFilterModule; /// No description provided for @auditClearLogTooltip. /// /// In en, this message translates to: /// **'Clear log (local/dev channels only)'** String get auditClearLogTooltip; /// No description provided for @auditClearedToast. /// /// In en, this message translates to: /// **'Cleared {n} events on channel \"{channel}\". Chain reseeded with marker.'** String auditClearedToast(int n, String channel); /// No description provided for @auditClearFailed. /// /// In en, this message translates to: /// **'Clear failed: {detail}'** String auditClearFailed(String detail); /// No description provided for @auditExplain. /// /// In en, this message translates to: /// **'Explain'** String get auditExplain; /// No description provided for @auditReask. /// /// In en, this message translates to: /// **'Re-ask'** String get auditReask; /// No description provided for @auditAsking. /// /// In en, this message translates to: /// **'Asking…'** String get auditAsking; /// No description provided for @auditSystemAi. /// /// In en, this message translates to: /// **'SYSTEM AI'** String get auditSystemAi; /// No description provided for @auditCachedPill. /// /// In en, this message translates to: /// **'cached'** String get auditCachedPill; /// No description provided for @auditOriginalLatency. /// /// In en, this message translates to: /// **'orig {ms} ms'** String auditOriginalLatency(int ms); /// No description provided for @auditLatency. /// /// In en, this message translates to: /// **'{ms} ms'** String auditLatency(int ms); /// No description provided for @auditRegenerateTooltip. /// /// In en, this message translates to: /// **'Regenerate — skip cache, ask the model again'** String get auditRegenerateTooltip; /// No description provided for @auditLiveStatus. /// /// In en, this message translates to: /// **'live · polling 2s · {n} {n, plural, =1{event} other{events}}'** String auditLiveStatus(int n); /// No description provided for @auditDisconnected. /// /// In en, this message translates to: /// **'disconnected · {error}'** String auditDisconnected(String error); /// No description provided for @auditHashChainVerified. /// /// In en, this message translates to: /// **'hash chain verified'** String get auditHashChainVerified; /// No description provided for @auditDetailHeader. /// /// In en, this message translates to: /// **'DETAIL'** String get auditDetailHeader; /// No description provided for @auditAskingFull. /// /// In en, this message translates to: /// **'Asking the configured System AI…'** String get auditAskingFull; /// No description provided for @auditFixLabel. /// /// In en, this message translates to: /// **'FIX'** String get auditFixLabel; /// No description provided for @auditCachedTooltipKnown. /// /// In en, this message translates to: /// **'Served from the local cache. Originally generated on {at}{hits}.'** String auditCachedTooltipKnown(String at, String hits); /// No description provided for @auditCachedTooltipUnknown. /// /// In en, this message translates to: /// **'Served from the local cache. Originally generated at unknown time{hits}.'** String auditCachedTooltipUnknown(String hits); /// No description provided for @auditCachedTooltipHits. /// /// In en, this message translates to: /// **' · {n} hits'** String auditCachedTooltipHits(int n); /// No description provided for @auditConfigureSystemAi. /// /// In en, this message translates to: /// **'Configure System AI in Settings (Cmd+,)'** String get auditConfigureSystemAi; /// No description provided for @auditClearDialogTitle. /// /// In en, this message translates to: /// **'Clear audit log?'** String get auditClearDialogTitle; /// No description provided for @auditClearDialogBody. /// /// In en, this message translates to: /// **'Wipes every audit event on the active channel and seeds a fresh chain.reset marker carrying reviewer + reason. Refused on beta / production. Irreversible.'** String get auditClearDialogBody; /// No description provided for @auditClearReviewerLabel. /// /// In en, this message translates to: /// **'Reviewer'** String get auditClearReviewerLabel; /// No description provided for @auditClearReasonLabel. /// /// In en, this message translates to: /// **'Reason (recorded in chain.reset marker)'** String get auditClearReasonLabel; /// No description provided for @auditClearReasonHelper. /// /// In en, this message translates to: /// **'Required — auditors will read this.'** String get auditClearReasonHelper; /// No description provided for @auditClearLogButton. /// /// In en, this message translates to: /// **'Clear log'** String get auditClearLogButton; /// No description provided for @modulesTitle. /// /// In en, this message translates to: /// **'Modules'** String get modulesTitle; /// No description provided for @modulesNoneTitle. /// /// In en, this message translates to: /// **'No modules yet'** String get modulesNoneTitle; /// No description provided for @modulesNoneHint. /// /// In en, this message translates to: /// **'Run `fai install ` or check ~/.fai/modules/.'** String get modulesNoneHint; /// No description provided for @modulesReloadTooltip. /// /// In en, this message translates to: /// **'Reload'** String get modulesReloadTooltip; /// No description provided for @modulesRecentActivity. /// /// In en, this message translates to: /// **'RECENT ACTIVITY'** String get modulesRecentActivity; /// No description provided for @modulesRecentActivityHint. /// /// In en, this message translates to: /// **'last {n} install/uninstall events from the audit log'** String modulesRecentActivityHint(int n); /// No description provided for @modulesActivityInstalled. /// /// In en, this message translates to: /// **'installed'** String get modulesActivityInstalled; /// No description provided for @modulesActivityUninstalled. /// /// In en, this message translates to: /// **'uninstalled'** String get modulesActivityUninstalled; /// No description provided for @modulesCapabilitiesLabel. /// /// In en, this message translates to: /// **'Capabilities'** String get modulesCapabilitiesLabel; /// No description provided for @modulesUninstallTitle. /// /// In en, this message translates to: /// **'Uninstall module?'** String get modulesUninstallTitle; /// No description provided for @modulesUninstallBody. /// /// In en, this message translates to: /// **'Removes {name} v{version} from this hub. Flows that reference it will fail at the next run. A `module.uninstalled` audit event is recorded.'** String modulesUninstallBody(String name, String version); /// No description provided for @modulesUninstalledToast. /// /// In en, this message translates to: /// **'Uninstalled {name} v{version}.'** String modulesUninstalledToast(String name, String version); /// No description provided for @modulesUninstallFailed. /// /// In en, this message translates to: /// **'Uninstall failed: {error}'** String modulesUninstallFailed(String error); /// No description provided for @modulesUninstalling. /// /// In en, this message translates to: /// **'Uninstalling…'** String get modulesUninstalling; /// No description provided for @moduleSheetFailedToLoad. /// /// In en, this message translates to: /// **'Failed to load: {error}'** String moduleSheetFailedToLoad(String error); /// No description provided for @moduleSheetCapabilities. /// /// In en, this message translates to: /// **'Capabilities'** String get moduleSheetCapabilities; /// No description provided for @moduleSheetPermissions. /// /// In en, this message translates to: /// **'Declared permissions'** String get moduleSheetPermissions; /// No description provided for @moduleSheetNoPermissions. /// /// In en, this message translates to: /// **'(none — pure-computation module)'** String get moduleSheetNoPermissions; /// No description provided for @flowsTitle. /// /// In en, this message translates to: /// **'Flows'** String get flowsTitle; /// No description provided for @flowsReloadTooltip. /// /// In en, this message translates to: /// **'Reload'** String get flowsReloadTooltip; /// No description provided for @flowsNoneTitle. /// /// In en, this message translates to: /// **'No saved flows'** String get flowsNoneTitle; /// No description provided for @flowsNoneHint. /// /// In en, this message translates to: /// **'Save a flow with `fai admin flows save ` and it shows up here.'** String get flowsNoneHint; /// No description provided for @flowsRunDialogTitle. /// /// In en, this message translates to: /// **'Run {name}'** String flowsRunDialogTitle(String name); /// No description provided for @flowsRunDialogBody. /// /// In en, this message translates to: /// **'Inputs as key=value, one per line. All values are sent as text payloads. For binary inputs use the `fai run` CLI.'** String get flowsRunDialogBody; /// No description provided for @flowsInputsHint. /// /// In en, this message translates to: /// **'name=World\ntarget_language=English\nsummary_style=three bullet points'** String get flowsInputsHint; /// No description provided for @flowsRunButton. /// /// In en, this message translates to: /// **'Run'** String get flowsRunButton; /// No description provided for @flowsRunningTitle. /// /// In en, this message translates to: /// **'Running {name}'** String flowsRunningTitle(String name); /// No description provided for @flowsRunning. /// /// In en, this message translates to: /// **'Flow running…'** String get flowsRunning; /// No description provided for @flowsNoOutputs. /// /// In en, this message translates to: /// **'Flow completed with no declared outputs.'** String get flowsNoOutputs; /// No description provided for @approvalsTitle. /// /// In en, this message translates to: /// **'Approvals'** String get approvalsTitle; /// No description provided for @approvalsTabPending. /// /// In en, this message translates to: /// **'Pending'** String get approvalsTabPending; /// No description provided for @approvalsTabHistory. /// /// In en, this message translates to: /// **'History'** String get approvalsTabHistory; /// No description provided for @approvalsInboxZero. /// /// In en, this message translates to: /// **'Inbox zero'** String get approvalsInboxZero; /// No description provided for @approvalsInboxHint. /// /// In en, this message translates to: /// **'All caught up. New `system.approval@^0` steps land here automatically.'** String get approvalsInboxHint; /// No description provided for @approvalsReloadTooltip. /// /// In en, this message translates to: /// **'Reload'** String get approvalsReloadTooltip; /// No description provided for @approvalsPillPending. /// /// In en, this message translates to: /// **'pending'** String get approvalsPillPending; /// No description provided for @approvalsPillApproved. /// /// In en, this message translates to: /// **'approved'** String get approvalsPillApproved; /// No description provided for @approvalsPillRejected. /// /// In en, this message translates to: /// **'rejected'** String get approvalsPillRejected; /// No description provided for @approvalsPillExpired. /// /// In en, this message translates to: /// **'expired'** String get approvalsPillExpired; /// No description provided for @approvalsPayloadPreview. /// /// In en, this message translates to: /// **'PAYLOAD PREVIEW'** String get approvalsPayloadPreview; /// No description provided for @approvalsApproveButton. /// /// In en, this message translates to: /// **'Approve'** String get approvalsApproveButton; /// No description provided for @approvalsRejectButton. /// /// In en, this message translates to: /// **'Reject'** String get approvalsRejectButton; /// No description provided for @approvalsRejectDialogTitle. /// /// In en, this message translates to: /// **'Reject approval'** String get approvalsRejectDialogTitle; /// No description provided for @approvalsRejectReasonLabel. /// /// In en, this message translates to: /// **'Reason (recorded in audit log)'** String get approvalsRejectReasonLabel; /// No description provided for @approvalsApprovedToast. /// /// In en, this message translates to: /// **'approved · {flow} › {step}'** String approvalsApprovedToast(String flow, String step); /// No description provided for @approvalsRejectedToast. /// /// In en, this message translates to: /// **'rejected · {flow} › {step}'** String approvalsRejectedToast(String flow, String step); /// No description provided for @approvalsApproveFailed. /// /// In en, this message translates to: /// **'approve failed: {error}'** String approvalsApproveFailed(String error); /// No description provided for @approvalsRejectFailed. /// /// In en, this message translates to: /// **'reject failed: {error}'** String approvalsRejectFailed(String error); /// No description provided for @approvalsHistoryEmpty. /// /// In en, this message translates to: /// **'No history yet'** String get approvalsHistoryEmpty; /// No description provided for @approvalsHistoryEmptyHint. /// /// In en, this message translates to: /// **'Decided approvals (approved / rejected / expired) appear here.\nThe audit log keeps the full hash-chained record.'** String get approvalsHistoryEmptyHint; /// No description provided for @approvalsDialogDecided. /// /// In en, this message translates to: /// **'decided'** String get approvalsDialogDecided; /// No description provided for @approvalsDialogCreated. /// /// In en, this message translates to: /// **'created'** String get approvalsDialogCreated; /// No description provided for @approvalsDialogReason. /// /// In en, this message translates to: /// **'reason'** String get approvalsDialogReason; /// No description provided for @approvalsDialogPrompt. /// /// In en, this message translates to: /// **'PROMPT'** String get approvalsDialogPrompt; /// No description provided for @approvalsExpiresIn. /// /// In en, this message translates to: /// **'{minutes}m'** String approvalsExpiresIn(int minutes); /// No description provided for @approvalsExpiresInHours. /// /// In en, this message translates to: /// **'{hours}h'** String approvalsExpiresInHours(int hours); /// No description provided for @doctorTitle. /// /// In en, this message translates to: /// **'Doctor'** String get doctorTitle; /// No description provided for @doctorSummaryModules. /// /// In en, this message translates to: /// **'Modules'** String get doctorSummaryModules; /// No description provided for @doctorSummaryApprovals. /// /// In en, this message translates to: /// **'Approvals'** String get doctorSummaryApprovals; /// No description provided for @doctorSummaryAudit. /// /// In en, this message translates to: /// **'Audit'** String get doctorSummaryAudit; /// No description provided for @doctorSummaryServices. /// /// In en, this message translates to: /// **'Services'** String get doctorSummaryServices; /// No description provided for @doctorSummaryCapabilities. /// /// In en, this message translates to: /// **'{n} capabilities'** String doctorSummaryCapabilities(int n); /// No description provided for @doctorSummaryPending. /// /// In en, this message translates to: /// **'pending'** String get doctorSummaryPending; /// No description provided for @doctorSummaryChain. /// /// In en, this message translates to: /// **'{verified}/{total} chain'** String doctorSummaryChain(int verified, int total); /// No description provided for @doctorSummaryDeclared. /// /// In en, this message translates to: /// **'declared'** String get doctorSummaryDeclared; /// No description provided for @doctorModulesPanelSummary. /// /// In en, this message translates to: /// **'{n} modules · {m} capabilities'** String doctorModulesPanelSummary(int n, int m); /// No description provided for @doctorApprovalsNone. /// /// In en, this message translates to: /// **'No pending approvals'** String get doctorApprovalsNone; /// No description provided for @doctorApprovalsCount. /// /// In en, this message translates to: /// **'{n, plural, =1{1 approval awaiting review} other{{n} approvals awaiting review}}'** String doctorApprovalsCount(int n); /// No description provided for @doctorApprovalsAttentionPill. /// /// In en, this message translates to: /// **'attention'** String get doctorApprovalsAttentionPill; /// No description provided for @doctorServicesEmpty. /// /// In en, this message translates to: /// **'No host services declared'** String get doctorServicesEmpty; /// No description provided for @doctorServicesEmptyHint. /// /// In en, this message translates to: /// **'add to ~/.fai/config.yaml under services:'** String get doctorServicesEmptyHint; /// No description provided for @doctorPillLoaded. /// /// In en, this message translates to: /// **'loaded'** String get doctorPillLoaded; /// No description provided for @doctorPillEmpty. /// /// In en, this message translates to: /// **'empty'** String get doctorPillEmpty; /// No description provided for @doctorRecheckTooltip. /// /// In en, this message translates to: /// **'Re-check'** String get doctorRecheckTooltip; /// No description provided for @doctorEventLogSection. /// /// In en, this message translates to: /// **'Event log'** String get doctorEventLogSection; /// No description provided for @doctorModulesApprovalsSection. /// /// In en, this message translates to: /// **'Modules & approvals'** String get doctorModulesApprovalsSection; /// No description provided for @doctorHostServicesSection. /// /// In en, this message translates to: /// **'Host services'** String get doctorHostServicesSection; /// No description provided for @doctorDaemonFilesSection. /// /// In en, this message translates to: /// **'Daemon files'** String get doctorDaemonFilesSection; /// No description provided for @doctorDaemonControlSection. /// /// In en, this message translates to: /// **'Daemon control'** String get doctorDaemonControlSection; /// No description provided for @doctorChainIntact. /// /// In en, this message translates to: /// **'Hash chain intact'** String get doctorChainIntact; /// No description provided for @doctorChainIntactDetail. /// /// In en, this message translates to: /// **'{n} events · prev_event_sha256 verified end-to-end'** String doctorChainIntactDetail(int n); /// No description provided for @doctorChainTampered. /// /// In en, this message translates to: /// **'Tampering detected'** String get doctorChainTampered; /// No description provided for @doctorChainTamperedDetail. /// /// In en, this message translates to: /// **'{verified} of {total} verified before mismatch at {id}'** String doctorChainTamperedDetail(int verified, int total, String id); /// No description provided for @doctorChainPillOk. /// /// In en, this message translates to: /// **'WORM-1'** String get doctorChainPillOk; /// No description provided for @doctorChainPillTamper. /// /// In en, this message translates to: /// **'TAMPER'** String get doctorChainPillTamper; /// No description provided for @doctorVerifyNow. /// /// In en, this message translates to: /// **'Verify now'** String get doctorVerifyNow; /// No description provided for @doctorRestart. /// /// In en, this message translates to: /// **'Restart'** String get doctorRestart; /// No description provided for @doctorStart. /// /// In en, this message translates to: /// **'Start'** String get doctorStart; /// No description provided for @doctorStop. /// /// In en, this message translates to: /// **'Stop'** String get doctorStop; /// No description provided for @doctorStatusAction. /// /// In en, this message translates to: /// **'Status'** String get doctorStatusAction; /// No description provided for @doctorRunningOn. /// /// In en, this message translates to: /// **'Running on {name}: {endpoint}'** String doctorRunningOn(String name, String endpoint); /// No description provided for @doctorStoppedOn. /// /// In en, this message translates to: /// **'{name} daemon stopped'** String doctorStoppedOn(String name); /// No description provided for @doctorStatusUnknown. /// /// In en, this message translates to: /// **'Daemon status: …'** String get doctorStatusUnknown; /// No description provided for @doctorPillRunning. /// /// In en, this message translates to: /// **'running'** String get doctorPillRunning; /// No description provided for @doctorPillStopped. /// /// In en, this message translates to: /// **'stopped'** String get doctorPillStopped; /// No description provided for @doctorDaemonControlHint. /// /// In en, this message translates to: /// **'Studio shells out to the platform binary — mirrors `fai daemon …` exactly so the CLI and UI stay in lockstep.'** String get doctorDaemonControlHint; /// No description provided for @doctorDaemonControlWorking. /// /// In en, this message translates to: /// **'Working…'** String get doctorDaemonControlWorking; /// No description provided for @doctorPathLog. /// /// In en, this message translates to: /// **'Log'** String get doctorPathLog; /// No description provided for @doctorPathConfig. /// /// In en, this message translates to: /// **'Config'** String get doctorPathConfig; /// No description provided for @doctorPathDb. /// /// In en, this message translates to: /// **'Audit DB'** String get doctorPathDb; /// No description provided for @doctorPathModules. /// /// In en, this message translates to: /// **'Modules dir'** String get doctorPathModules; /// No description provided for @doctorPathFlows. /// /// In en, this message translates to: /// **'Flows dir'** String get doctorPathFlows; /// No description provided for @doctorPathPid. /// /// In en, this message translates to: /// **'PID file'** String get doctorPathPid; /// No description provided for @doctorPathsEmpty. /// /// In en, this message translates to: /// **'Daemon did not report file paths. Update the running hub via `fai daemon restart`.'** String get doctorPathsEmpty; /// No description provided for @doctorOpenError. /// /// In en, this message translates to: /// **'Could not open: {detail}'** String doctorOpenError(String detail); /// No description provided for @doctorUpdateAvailable. /// /// In en, this message translates to: /// **'Update available — {version}'** String doctorUpdateAvailable(String version); /// No description provided for @doctorUpdateBody. /// /// In en, this message translates to: /// **'Channel {channel} now offers {version}. Apply via the button — Studio shells out to `fai update apply --channel {channel}`.'** String doctorUpdateBody(String channel, String version); /// No description provided for @doctorUpdateUnreachable. /// /// In en, this message translates to: /// **'Release host unreachable'** String get doctorUpdateUnreachable; /// No description provided for @doctorUpdateUnreachableBody. /// /// In en, this message translates to: /// **'Could not contact the release feed for {channel}.'** String doctorUpdateUnreachableBody(String channel); /// No description provided for @doctorReleaseNotes. /// /// In en, this message translates to: /// **'notes: {url}'** String doctorReleaseNotes(String url); /// No description provided for @doctorPillNew. /// /// In en, this message translates to: /// **'new'** String get doctorPillNew; /// No description provided for @doctorPillOffline. /// /// In en, this message translates to: /// **'offline'** String get doctorPillOffline; /// No description provided for @doctorApplyUpdate. /// /// In en, this message translates to: /// **'Apply update'** String get doctorApplyUpdate; /// No description provided for @doctorApplying. /// /// In en, this message translates to: /// **'Applying…'** String get doctorApplying; /// No description provided for @doctorApplyDone. /// /// In en, this message translates to: /// **'Update applied. Restart Studio to see the new daemon version.'** String get doctorApplyDone; /// No description provided for @mcpHeader. /// /// In en, this message translates to: /// **'MCP CLIENTS'** String get mcpHeader; /// No description provided for @mcpHint. /// /// In en, this message translates to: /// **'External MCP servers federate their tools as `mcp..` capabilities. Configure once, see them in the Store.'** String get mcpHint; /// No description provided for @mcpEmpty. /// /// In en, this message translates to: /// **'No MCP servers configured. Click + to add one.'** String get mcpEmpty; /// No description provided for @n8nHeader. /// /// In en, this message translates to: /// **'N8N ENDPOINTS'** String get n8nHeader; /// No description provided for @n8nHint. /// /// In en, this message translates to: /// **'Active n8n workflows surface as `n8n..` capabilities. Configure once, see them in the Store.'** String get n8nHint; /// No description provided for @n8nEmpty. /// /// In en, this message translates to: /// **'No n8n endpoints configured. Click + to add one.'** String get n8nEmpty; /// No description provided for @hubUnreachable. /// /// In en, this message translates to: /// **'Hub unreachable'** String get hubUnreachable; /// No description provided for @hubUnreachableHint. /// /// In en, this message translates to: /// **'Start the hub with `fai serve`.'** String get hubUnreachableHint; /// No description provided for @languageEnglish. /// /// In en, this message translates to: /// **'English'** String get languageEnglish; /// No description provided for @languageGerman. /// /// In en, this message translates to: /// **'Deutsch'** String get languageGerman; /// No description provided for @searchHint. /// /// In en, this message translates to: /// **'Jump anywhere — modules, store, flows, pages…'** String get searchHint; /// No description provided for @searchIndexing. /// /// In en, this message translates to: /// **'Indexing…'** String get searchIndexing; /// No description provided for @searchNoMatches. /// /// In en, this message translates to: /// **'No matches.'** String get searchNoMatches; /// No description provided for @searchHintNavigate. /// /// In en, this message translates to: /// **'↑↓ navigate'** String get searchHintNavigate; /// No description provided for @searchHintOpen. /// /// In en, this message translates to: /// **'enter open'** String get searchHintOpen; /// No description provided for @searchHintClose. /// /// In en, this message translates to: /// **'esc close'** String get searchHintClose; /// No description provided for @searchGroupPages. /// /// In en, this message translates to: /// **'Pages'** String get searchGroupPages; /// No description provided for @searchGroupModules. /// /// In en, this message translates to: /// **'Modules'** String get searchGroupModules; /// No description provided for @searchGroupStore. /// /// In en, this message translates to: /// **'Store'** String get searchGroupStore; /// No description provided for @searchGroupFlows. /// /// In en, this message translates to: /// **'Flows'** String get searchGroupFlows; /// No description provided for @searchSettingsLabel. /// /// In en, this message translates to: /// **'Settings'** String get searchSettingsLabel; /// No description provided for @searchPageHint. /// /// In en, this message translates to: /// **'page · ⌘{n}'** String searchPageHint(int n); /// No description provided for @searchSettingsHint. /// /// In en, this message translates to: /// **'hub endpoint, channels, system AI · ⌘;'** String get searchSettingsHint; /// No description provided for @searchInstalledModuleHint. /// /// In en, this message translates to: /// **'installed module · v{version}'** String searchInstalledModuleHint(String version); /// No description provided for @searchStoreUncategorized. /// /// In en, this message translates to: /// **'uncategorized'** String get searchStoreUncategorized; /// No description provided for @searchStoreHintWithTagline. /// /// In en, this message translates to: /// **'store · {tagline}'** String searchStoreHintWithTagline(String tagline); /// No description provided for @searchStoreHintWithCategory. /// /// In en, this message translates to: /// **'store · {category}'** String searchStoreHintWithCategory(String category); /// No description provided for @searchSavedFlowHint. /// /// In en, this message translates to: /// **'saved flow'** String get searchSavedFlowHint; /// No description provided for @systemAiTitle. /// /// In en, this message translates to: /// **'System AI'** String get systemAiTitle; /// No description provided for @systemAiIntro. /// /// In en, this message translates to: /// **'The hub-internal LLM the platform itself uses for inline failure explanations and operator help. Off by default; configure here. See docs/architecture/system-ai.md for what crosses the wire.'** String get systemAiIntro; /// No description provided for @systemAiProviderLabel. /// /// In en, this message translates to: /// **'Provider'** String get systemAiProviderLabel; /// No description provided for @systemAiEndpointLabel. /// /// In en, this message translates to: /// **'Endpoint URL (up to /v1)'** String get systemAiEndpointLabel; /// No description provided for @systemAiApiKeyRequired. /// /// In en, this message translates to: /// **'API key env var (required)'** String get systemAiApiKeyRequired; /// No description provided for @systemAiApiKeyOptional. /// /// In en, this message translates to: /// **'API key env var (optional)'** String get systemAiApiKeyOptional; /// No description provided for @systemAiApiKeyDisclaimer. /// /// In en, this message translates to: /// **'Studio never reads or stores the key value — only its env-var name. The hub reads `\${name}` at request time.'** String systemAiApiKeyDisclaimer(String name); /// No description provided for @systemAiTestConnection. /// /// In en, this message translates to: /// **'Test connection'** String get systemAiTestConnection; /// No description provided for @systemAiTesting. /// /// In en, this message translates to: /// **'Testing…'** String get systemAiTesting; /// No description provided for @systemAiSave. /// /// In en, this message translates to: /// **'Save'** String get systemAiSave; /// No description provided for @systemAiPrivacyHeader. /// /// In en, this message translates to: /// **'PRIVACY MODE'** String get systemAiPrivacyHeader; /// No description provided for @systemAiPrivacyOffLabel. /// /// In en, this message translates to: /// **'Off'** String get systemAiPrivacyOffLabel; /// No description provided for @systemAiPrivacyOffDesc. /// /// In en, this message translates to: /// **'Feature disabled. No requests leave the hub.'** String get systemAiPrivacyOffDesc; /// No description provided for @systemAiPrivacyRedactedLabel. /// /// In en, this message translates to: /// **'Redacted'** String get systemAiPrivacyRedactedLabel; /// No description provided for @systemAiPrivacyRedactedDesc. /// /// In en, this message translates to: /// **'Only event_type / error / module names. KRITIS-friendly default.'** String get systemAiPrivacyRedactedDesc; /// No description provided for @systemAiPrivacyFullLabel. /// /// In en, this message translates to: /// **'Full'** String get systemAiPrivacyFullLabel; /// No description provided for @systemAiPrivacyFullDesc. /// /// In en, this message translates to: /// **'Includes the audit detail JSON (hash-only — no raw payloads).'** String get systemAiPrivacyFullDesc; /// No description provided for @systemAiConnectionOk. /// /// In en, this message translates to: /// **'Connection ok'** String get systemAiConnectionOk; /// No description provided for @systemAiConnectionFailed. /// /// In en, this message translates to: /// **'Connection failed'** String get systemAiConnectionFailed; /// No description provided for @systemAiReplyPrefix. /// /// In en, this message translates to: /// **'Reply: {text}'** String systemAiReplyPrefix(String text); /// No description provided for @systemAiModelLabel. /// /// In en, this message translates to: /// **'Model (required)'** String get systemAiModelLabel; /// No description provided for @systemAiModelHintFallback. /// /// In en, this message translates to: /// **'model identifier the provider expects'** String get systemAiModelHintFallback; /// No description provided for @systemAiModelHelperBase. /// /// In en, this message translates to: /// **'Required: pick from the list (Refresh) or type one.'** String get systemAiModelHelperBase; /// No description provided for @systemAiModelHelperOllama. /// /// In en, this message translates to: /// **'Required: pick from the list (Refresh) or type one. Use Pull to download from Ollama.'** String get systemAiModelHelperOllama; /// No description provided for @systemAiRefresh. /// /// In en, this message translates to: /// **'Refresh'** String get systemAiRefresh; /// No description provided for @systemAiPull. /// /// In en, this message translates to: /// **'Pull'** String get systemAiPull; /// No description provided for @systemAiPulling. /// /// In en, this message translates to: /// **'Pulling…'** String get systemAiPulling; /// No description provided for @systemAiCouldNotListModels. /// /// In en, this message translates to: /// **'Could not list models: {error}'** String systemAiCouldNotListModels(String error); /// No description provided for @systemAiNoModelsOllama. /// /// In en, this message translates to: /// **'No models on the Ollama server yet. Type one above and click Pull.'** String get systemAiNoModelsOllama; /// No description provided for @systemAiNoModelsGeneric. /// /// In en, this message translates to: /// **'Provider returned no models.'** String get systemAiNoModelsGeneric; /// No description provided for @systemAiSuitabilityRecommended. /// /// In en, this message translates to: /// **'recommended'** String get systemAiSuitabilityRecommended; /// No description provided for @systemAiSuitabilityBalanced. /// /// In en, this message translates to: /// **'balanced'** String get systemAiSuitabilityBalanced; /// No description provided for @systemAiSuitabilitySmall. /// /// In en, this message translates to: /// **'small — quality may be limited'** String get systemAiSuitabilitySmall; /// No description provided for @systemAiSuitabilityLarge. /// /// In en, this message translates to: /// **'large — slower'** String get systemAiSuitabilityLarge; /// No description provided for @systemAiSuitabilityHuge. /// /// In en, this message translates to: /// **'huge — likely too slow on a laptop'** String get systemAiSuitabilityHuge; /// No description provided for @systemAiSuitabilityUnknown. /// /// In en, this message translates to: /// **'size unknown'** String get systemAiSuitabilityUnknown; /// No description provided for @systemAiHwDetected. /// /// In en, this message translates to: /// **'Detected: {summary}'** String systemAiHwDetected(String summary); /// No description provided for @systemAiHwReviewed. /// /// In en, this message translates to: /// **' · curation reviewed {date}'** String systemAiHwReviewed(String date); /// No description provided for @systemAiLegendRecommended. /// /// In en, this message translates to: /// **'recommended for this hardware{tier}'** String systemAiLegendRecommended(String tier); /// No description provided for @systemAiLegendBalanced. /// /// In en, this message translates to: /// **'balanced (4-8B)'** String get systemAiLegendBalanced; /// No description provided for @systemAiLegendSmallLarge. /// /// In en, this message translates to: /// **'small <3B / large 9-15B / above hardware'** String get systemAiLegendSmallLarge; /// No description provided for @systemAiLegendHuge. /// /// In en, this message translates to: /// **'huge >15B'** String get systemAiLegendHuge; /// No description provided for @systemAiLegendUnknown. /// /// In en, this message translates to: /// **'size unknown'** String get systemAiLegendUnknown; /// No description provided for @systemAiCacheRow. /// /// In en, this message translates to: /// **'Cache: {n} cached {n, plural, =1{explanation} other{explanations}}. Identical prompts hit the cache; switching model or privacy mode flushes automatically.'** String systemAiCacheRow(int n); /// No description provided for @systemAiCacheClear. /// /// In en, this message translates to: /// **'Clear'** String get systemAiCacheClear; /// No description provided for @systemAiCacheClearedToast. /// /// In en, this message translates to: /// **'Cleared {n} cached System-AI explanations.'** String systemAiCacheClearedToast(int n); /// No description provided for @systemAiCacheClearFailed. /// /// In en, this message translates to: /// **'Cache clear failed: {error}'** String systemAiCacheClearFailed(String error); /// No description provided for @systemAiPullEmptyError. /// /// In en, this message translates to: /// **'Type a model id (e.g. gemma3:4b) first.'** String get systemAiPullEmptyError; /// No description provided for @systemAiPullFailedError. /// /// In en, this message translates to: /// **'Pull failed: {error}'** String systemAiPullFailedError(String error); } class _AppLocalizationsDelegate extends LocalizationsDelegate { const _AppLocalizationsDelegate(); @override Future load(Locale locale) { return SynchronousFuture(lookupAppLocalizations(locale)); } @override bool isSupported(Locale locale) => ['de', 'en'].contains(locale.languageCode); @override bool shouldReload(_AppLocalizationsDelegate old) => false; } AppLocalizations lookupAppLocalizations(Locale locale) { // Lookup logic when only language code is specified. switch (locale.languageCode) { case 'de': return AppLocalizationsDe(); case 'en': return AppLocalizationsEn(); } throw FlutterError( 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' 'an issue with the localizations generation tool. Please file an issue ' 'on GitHub with a reproducible sample app and the gen-l10n configuration ' 'that was used.', ); }