ConstReadonlycommon.missing: "missing"How an absent value is named wherever a trace has nothing to report.
Readonlydescription.statOrientation: "Orientation"Readonlydescription.statSubtitle: "Subtitle"Readonlydescription.statCaption: "Caption"Readonlydescription.statCurrentlyOn: "Currently on"Readonlydescription.statChartTypes: "Chart types"Readonlydescription.multiPanelFigure: "Multi-panel figure"Readonlydescription.valueInfinity: "infinity"Readonlydescription.valueNegativeInfinity: "negative infinity"Readonlydescription.subplotPosition: "subplot {index} of {total}"Readonlydescription.chartTypeCount: "{kind} ({count})"Readonlydescription.title: "Chart Description"Readonlydescription.close: "Close"Readonlydescription.chartTypePrefix: "Chart Type: "Readonlydescription.titleLabel: "Title"Readonlydescription.titleLabelSubplot: "Subplot title"Readonlydescription.titleLabelFigure: "Figure title"Readonlydescription.axesHeading: "Axes"Readonlydescription.axisEntry: "{axis} axis: {label}"Readonlydescription.summaryHeading: "Summary"Readonlydescription.subplotsHeading: "Subplots ({count})"Readonlydescription.subplotUnknown: "unknown"Readonlydescription.subplotCurrent: " (current)"Readonlydescription.layersHeading: "Layers ({count})"Readonlydescription.showingLayer: "Showing layer {index} of {total}"Readonlydescription.layerHint: "Use the left and right arrow keys to move between layers and Space to open one."Readonlydescription.layerUpdated: "Description updated for layer {index} of {total}"Readonlydescription.rowOne: "row"Readonlydescription.rowMany: "rows"Readonlydescription.tableCaption: "Data: {total} {rows}"Readonlydescription.tableCaptionTruncated: "Data: showing {shown} of {total} {rows}"Readonlydescription.tableShowMore: "Show {count} more of {total} {rows}"Readonlydescription.tableColumn: "Column {index}"Readonlydialogs.chatTitle: "Chart Assistant"Readonlydialogs.chatClose: "Close chat dialog"Readonlydialogs.chatMessagesRegion: "Chat messages"Readonlydialogs.chatInputRegion: "Message input"Readonlydialogs.chatPlaceholder: "What can I help you with?"Readonlydialogs.chatInputLabel: "Type your message to the AI assistant"Readonlydialogs.chatSend: "Send message to AI assistant"Readonlydialogs.chatSuggestionsRegion: "Suggested responses"Readonlydialogs.chatSuggestion: "Suggestion: {text}"Readonlydialogs.chatUserMessage: "Your message"Readonlydialogs.chatAssistantMessage: "AI Assistant message"Readonlydialogs.chatMessageFrom: " from {model}"Readonlydialogs.chatMessageTyping: " (typing)"Readonlydialogs.chatModelName: "Model: {model}"Readonlydialogs.chatOpenSettings: "Open Settings"Readonlydialogs.chatOpenSettingsLabel: "Open settings"Readonlydialogs.chatSentAt: "Sent at {time}"Readonlydialogs.chatTyping: "AI is typing"Readonlydialogs.chatCodeBlock: "Code block"Readonlydialogs.chatImageAlt: "Image in message"Readonlydialogs.chatSelectVersion: "Select {name} version"Readonlydialogs.extremaTitle: "Go To"Readonlydialogs.extremaClose: "Close dialog"Readonlydialogs.extremaDescription: "Navigate to points of interest within the current {traceType}"Readonlydialogs.extremaDescriptionFallback: "Navigate to points of interest"Readonlydialogs.extremaTargets: "Navigation targets"Readonlydialogs.extremaXValues: "Available X values"Readonlydialogs.extremaSearchOption: "Search and navigate to specific X value"Readonlydialogs.extremaSearchCombobox: "Search and select X value"Readonlydialogs.extremaSearchLabel: "Search X values"Readonlydialogs.extremaSearchPlaceholder: "Type to search {count} values"Readonlydialogs.extremaOpenDropdown: "Open dropdown"Readonlydialogs.extremaCloseDropdown: "Close dropdown"Readonlydialogs.extremaPointIntersection: "Point intersection"Readonlydialogs.extremaSlopeIntersection: "Slope intersection"Readonlydialogs.extremaIntersection: "Intersection"Readonlydialogs.extremaIntersectionAt: "{prefix} with {otherLines} at {coords}"Readonlydialogs.extremaValueAt: "{label} Value: {value} at {x}"Readonlydialogs.extremaValue: "{label} Value: {value}"Readonlydialogs.extremaCell: "{x}, {y}"Readonlydialogs.extremaMovedToSearch: "Moved to search. Type to filter X values."Readonlydialogs.extremaFirstOption: "At first extrema option"Readonlydialogs.extremaNoResults: "No search results"Readonlydialogs.extremaLastResult: "At last search result"Readonlydialogs.extremaSelectedResult: "Selected: {label}"Readonlydialogs.extremaReturningTo: "Returning to extrema options: {label}"Readonlydialogs.extremaReturning: "Returning to extrema options"Readonlykeybinding.accessLabels: "Access Labels"Readonlykeybinding.activateCurrentSubplot: "Activate Current Subplot"Readonlykeybinding.announceCaption: "Announce Caption"Readonlykeybinding.announceCurrentSubplot: "Announce Current Subplot"Readonlykeybinding.announcePlotTitle: "Announce Plot Title"Readonlykeybinding.announcePosition: "Announce Position"Readonlykeybinding.announceSubtitle: "Announce Subtitle"Readonlykeybinding.announceXLabel: "Announce X Label"Readonlykeybinding.announceYLabel: "Announce Y Label"Readonlykeybinding.announceZLabel: "Announce Z Label"Readonlykeybinding.autoplayBackward: "Autoplay Backward"Readonlykeybinding.autoplayDownward: "Autoplay Downward"Readonlykeybinding.autoplayForward: "Autoplay Forward"Readonlykeybinding.autoplayUpward: "Autoplay Upward"Readonlykeybinding.changeReferenceLine: "Change Reference Line"Readonlykeybinding.chooseCandlestickReferenceLine: "Choose Candlestick Reference Line"Readonlykeybinding.close: "Close"Readonlykeybinding.closeChartDescription: "Close Chart Description"Readonlykeybinding.closeChat: "Close Chat"Readonlykeybinding.closeHelp: "Close Help"Readonlykeybinding.closeReferencePicker: "Close Reference Picker"Readonlykeybinding.enterGridCell: "Enter Grid Cell"Readonlykeybinding.exitBrailleMode: "Exit Braille Mode"Readonlykeybinding.exitComparisonAndReturnToChart: "Exit Comparison and Return to Chart"Readonlykeybinding.exitGridCell: "Exit Grid Cell"Readonlykeybinding.exitLabelMode: "Exit Label Mode"Readonlykeybinding.exitReviewMode: "Exit Review Mode"Readonlykeybinding.goToExtrema: "Go To Extrema"Readonlykeybinding.goToBottomExtreme: "Go to Bottom Extreme"Readonlykeybinding.goToLeftExtreme: "Go to Left Extreme"Readonlykeybinding.goToMaximumValue: "Go to Maximum Value"Readonlykeybinding.goToMinimumValue: "Go to Minimum Value"Readonlykeybinding.goToRightExtreme: "Go to Right Extreme"Readonlykeybinding.goToTopExtreme: "Go to Top Extreme"Readonlykeybinding.moveDown: "Move Down"Readonlykeybinding.moveLeft: "Move Left"Readonlykeybinding.moveRight: "Move Right"Readonlykeybinding.moveUp: "Move Up"Readonlykeybinding.moveToNextLayer: "Move to Next Layer"Readonlykeybinding.moveToPreviousLayer: "Move to Previous Layer"Readonlykeybinding.navigateDown: "Navigate Down"Readonlykeybinding.navigateLeft: "Navigate Left"Readonlykeybinding.navigateLeftInCell: "Navigate Left in Cell"Readonlykeybinding.navigateRight: "Navigate Right"Readonlykeybinding.navigateRightInCell: "Navigate Right in Cell"Readonlykeybinding.navigateUp: "Navigate Up"Readonlykeybinding.nextNavigationMode: "Next Navigation Mode (Rotor)"Readonlykeybinding.nextReferenceLine: "Next Reference Line"Readonlykeybinding.openChartDescription: "Open Chart Description"Readonlykeybinding.openChat: "Open Chat"Readonlykeybinding.openCommandPalette: "Open Command Palette"Readonlykeybinding.openSettings: "Open Settings"Readonlykeybinding.openCloseHelp: "Open/Close Help"Readonlykeybinding.previousNavigationMode: "Previous Navigation Mode (Rotor)"Readonlykeybinding.previousReferenceLine: "Previous Reference Line"Readonlykeybinding.replayCurrentPoint: "Replay Current Point"Readonlykeybinding.resetAutoplaySpeed: "Reset Autoplay Speed"Readonlykeybinding.resetTactileDisplayZoom: "Reset Tactile Display Zoom"Readonlykeybinding.returnToSubplot: "Return to Subplot"Readonlykeybinding.select: "Select"Readonlykeybinding.selectReferenceLine: "Select Reference Line"Readonlykeybinding.speedDownAutoplay: "Speed Down Autoplay"Readonlykeybinding.speedUpAutoplay: "Speed Up Autoplay"Readonlykeybinding.standardTextSelection: "Standard Text Selection"Readonlykeybinding.stopAutoplay: "Stop Autoplay"Readonlykeybinding.toggleBrailleMode: "Toggle Braille Mode"Readonlykeybinding.toggleCandlestickReferenceComparison: "Toggle Candlestick Reference Comparison"Readonlykeybinding.toggleHighContrastMode: "Toggle High Contrast Mode"Readonlykeybinding.toggleMonitorMode: "Toggle Monitor Mode (Live Charts)"Readonlykeybinding.toggleReviewMode: "Toggle Review Mode"Readonlykeybinding.toggleSonificationMode: "Toggle Sonification Mode"Readonlykeybinding.toggleTextMode: "Toggle Text Mode"Readonlykeybinding.turnOffReferenceComparison: "Turn Off Reference Comparison"Readonlykeybinding.zoomInTactileDisplay: "Zoom In Tactile Display"Readonlykeybinding.zoomOutTactileDisplay: "Zoom Out Tactile Display"Readonlykeybinding.helpTitle: "Keyboard Shortcuts"Readonlykeybinding.helpCloseButton: "Close"Readonlykeybinding.commandPaletteTitle: "Command Palette"Readonlykeybinding.commandPaletteInstructions: "Type to search commands, use arrow keys to navigate the list, and press Enter to execute a command"Readonlykeybinding.commandPaletteSearchPlaceholder: "Search commands..."Readonlykeybinding.commandPaletteSearchLabel: "Search commands"Readonlykeybinding.commandPaletteListLabel: "Available commands"Readonlyllm.welcome: "Welcome to the Chart Assistant. You can select and switch between different AI models using the dropdowns below. Currently enabled: {models}."Readonlyllm.welcomeNoAgents: "No agents are enabled. Please enable at least one agent and provide an API key (or a local Ollama server) in the settings page."Readonlyllm.processing: "Processing request..."Readonlyllm.messageError: "Error: {error}"Readonlyllm.fallbackModelName: "AI Assistant"Readonlyllm.suggestionExplain: "Can you explain that in more detail?"Readonlyllm.suggestionCurrentPoint: "What can you say about the current datapoint?"Readonlyllm.suggestionCompare: "How does this compare to other data points?"Readonlyllm.suggestionStatistics: "Can you perform a statistical analysis of this data?"Readonlyllm.suggestionOutliers: "What are the potential outliers in this dataset?"Readonlyllm.errorProcessing: "Error processing request"Readonlyllm.errorUnknown: "Unknown error occurred"Readonlyllm.errorResponseUnavailable: "Response unavailable"Readonlyllm.errorAborted: "Chat request aborted"Readonlyllm.errorInvalidFormat: "Invalid response format"Readonlyllm.errorApi: "API Error: {status} - {statusText}"Readonlyllm.errorGeminiKeyRequired: "API key is required for Gemini API"Readonlyllm.errorOllamaUrl: "Invalid Ollama server URL: it must start with http:// or https://"Readonlyllm.errorOllamaProxy: "Ollama requests cannot be routed through the MAIDR proxy"Readonlyllm.errorOllamaUnreachable: "Cannot reach Ollama server. Make sure Ollama is running and, for non-localhost pages, that OLLAMA_ORIGINS allows this site."Readonlyllm.errorInvalidModelKey: "Invalid model key"Readonlyllm.errorProviderTimeout: "The provider did not respond in time. Check your network connection and try again."Readonlyllm.errorProviderUnreachable: "Could not reach the provider. Check your network connection."Readonlyllm.errorInvalidApiKey: "Invalid API key"Readonlyllm.errorProviderStatus: "The provider returned {status}. This is not a problem with your key; try again later."Readonlymodel.boxSectionLowerOutlier: "Lower outlier(s)"Readonlymodel.boxSectionMin: "Minimum"Readonlymodel.boxSectionQ1: "25%"Readonlymodel.boxSectionQ2: "50%"Readonlymodel.boxSectionQ3: "75%"Readonlymodel.boxSectionMax: "Maximum"Readonlymodel.boxSectionUpperOutlier: "Upper outlier(s)"Readonlymodel.boxSectionMean: "Mean"Readonlymodel.chartTypeArea: "Area Chart"Readonlymodel.chartTypeBar: "Bar Chart"Readonlymodel.chartTypeBump: "Bump Chart"Readonlymodel.chartTypeBox: "Box Plot"Readonlymodel.chartTypeBoxen: "Letter-Value Plot"Readonlymodel.chartTypeAlluvial: "Alluvial Diagram"Readonlymodel.chartTypeCandlestick: "Candlestick Chart"Readonlymodel.chartTypeChord: "Chord Diagram"Readonlymodel.chartTypeSankey: "Sankey Diagram"Readonlymodel.chartTypeNetwork: "Network Diagram"Readonlymodel.chartTypeCandlestickDelta: "Candlestick Reference Delta"Readonlymodel.chartTypeChoropleth: "Choropleth Map"Readonlymodel.chartTypeContour: "Contour Plot"Readonlymodel.chartTypeDiverging: "Diverging Bar Chart"Readonlymodel.chartTypeDodged: "Dodged Bar Chart"Readonlymodel.chartTypeDot: "Dot Plot"Readonlymodel.chartTypeDumbbell: "Dumbbell Chart"Readonlymodel.chartTypeErrorBar: "Error Bar Chart"Readonlymodel.chartTypeForest: "Forest Plot"Readonlymodel.chartTypeGantt: "Gantt Chart"Readonlymodel.chartTypeFunnel: "Funnel Chart"Readonlymodel.chartTypeGauge: "Gauge"Readonlymodel.chartTypeHeatmap: "Heatmap"Readonlymodel.chartTypeHexbin: "Hexbin Plot"Readonlymodel.chartTypeHistogram: "Histogram"Readonlymodel.chartTypeLine: "Line Chart"Readonlymodel.chartTypeLollipop: "Lollipop Chart"Readonlymodel.chartTypeMosaic: "Mosaic Plot"Readonlymodel.chartTypeNormalized: "Normalized Stacked Bar Chart"Readonlymodel.chartTypeNormalizedArea: "Normalized Stacked Area Chart"Readonlymodel.chartTypeParallel: "Parallel Coordinates Plot"Readonlymodel.chartTypePie: "Pie Chart"Readonlymodel.chartTypePolarArea: "Polar Area Chart"Readonlymodel.chartTypeRadar: "Radar Chart"Readonlymodel.chartTypeRidgeline: "Ridgeline Plot"Readonlymodel.chartTypeScatter: "Scatter Plot"Readonlymodel.chartTypeSunflower: "Sunflower Plot"Readonlymodel.chartTypeSmooth: "Smooth Line Chart"Readonlymodel.chartTypeStacked: "Stacked Bar Chart"Readonlymodel.chartTypeStackedArea: "Stacked Area Chart"Readonlymodel.chartTypeStep: "Step Plot"Readonlymodel.chartTypeSurvival: "Survival Curve"Readonlymodel.chartTypeIcicle: "Icicle Chart"Readonlymodel.chartTypeSunburst: "Sunburst Chart"Readonlymodel.chartTypeTree: "Tree Diagram"Readonlymodel.chartTypePack: "Circle Packing"Readonlymodel.chartTypeTreemap: "Treemap"Readonlymodel.chartTypeViolinBox: "Violin Box Plot"Readonlymodel.chartTypeViolinKde: "Violin Plot"Readonlymodel.chartTypeManhattan: "Manhattan Plot"Readonlymodel.chartTypeVolcano: "Volcano Plot"Readonlymodel.chartTypeWaterfall: "Waterfall Chart"Readonlymodel.chartTypeWordCloud: "Word Cloud"Readonlymodel.plotTypeArea: "area"Readonlymodel.plotTypeAlluvial: "alluvial"Readonlymodel.plotTypeBar: "bar"Readonlymodel.plotTypeBump: "bump"Readonlymodel.plotTypeBox: "box"Readonlymodel.plotTypeBoxen: "boxen"Readonlymodel.plotTypeCandlestick: "candlestick"Readonlymodel.plotTypeCandlestickDelta: "candlestick_delta"Readonlymodel.plotTypeChord: "chord"Readonlymodel.plotTypeChoropleth: "choropleth"Readonlymodel.plotTypeContour: "contour"Readonlymodel.plotTypeDiverging: "diverging_bar"Readonlymodel.plotTypeDodged: "dodged_bar"Readonlymodel.plotTypeDot: "dot"Readonlymodel.plotTypeDumbbell: "dumbbell"Readonlymodel.plotTypeErrorBar: "error_bar"Readonlymodel.plotTypeForest: "forest"Readonlymodel.plotTypeGantt: "gantt"Readonlymodel.plotTypeFunnel: "funnel"Readonlymodel.plotTypeGauge: "gauge"Readonlymodel.plotTypeHeatmap: "heat"Readonlymodel.plotTypeHexbin: "hexbin"Readonlymodel.plotTypeHistogram: "hist"Readonlymodel.plotTypeIcicle: "icicle"Readonlymodel.plotTypeLine: "line"Readonlymodel.plotTypeLollipop: "lollipop"Readonlymodel.plotTypeManhattan: "manhattan"Readonlymodel.plotTypeMosaic: "mosaic"Readonlymodel.plotTypeNetwork: "network"Readonlymodel.plotTypeNormalized: "stacked_normalized_bar"Readonlymodel.plotTypeNormalizedArea: "stacked_normalized_area"Readonlymodel.plotTypeParallel: "parallel_coordinates"Readonlymodel.plotTypePie: "pie"Readonlymodel.plotTypePolarArea: "polar_area"Readonlymodel.plotTypeRadar: "radar"Readonlymodel.plotTypeRidgeline: "ridgeline"Readonlymodel.plotTypeSankey: "sankey"Readonlymodel.plotTypeScatter: "point"Readonlymodel.plotTypeSmooth: "smooth"Readonlymodel.plotTypeSunflower: "sunflower"Readonlymodel.plotTypeStacked: "stacked_bar"Readonlymodel.plotTypeStackedArea: "stacked_area"Readonlymodel.plotTypeStep: "step"Readonlymodel.plotTypeTreemap: "treemap"Readonlymodel.plotTypeTree: "tree"Readonlymodel.plotTypePack: "pack"Readonlymodel.plotTypeSunburst: "sunburst"Readonlymodel.plotTypeSurvival: "survival"Readonlymodel.plotTypeViolinBox: "violin_box"Readonlymodel.plotTypeViolinKde: "violin_kde"Readonlymodel.plotTypeVolcano: "volcano"Readonlymodel.plotTypeWaterfall: "waterfall"Readonlymodel.plotTypeWordCloud: "word_cloud"Readonlymodel.plotTypeMultiline: "multiline"Readonlymodel.plotTypeSingleLine: "single line"Readonlymodel.plotTypeDivergingBarSpoken: "diverging bar"Readonlymodel.plotTypeParallelCoordinatesSpoken: "parallel coordinates"Readonlymodel.plotTypePolarAreaSpoken: "polar area"Readonlymodel.plotTypeStackedAreaSpoken: "stacked area"Readonlymodel.plotTypeNormalizedAreaSpoken: "100% stacked area"Readonlymodel.defaultXAxis: "X"Readonlymodel.defaultYAxis: "Y"Readonlymodel.defaultZAxis: "Level"Readonlymodel.orientationHorizontal: "horizontal"Readonlymodel.orientationVertical: "vertical"Readonlymodel.plotTypeHorizontal: "horizontal {type}"Readonlymodel.plotTypeVertical: "vertical {type}"Readonlymodel.spanConstant: "constant {value}"Readonlymodel.spanRange: "{min} to {max}"Readonlymodel.instructionNoInfo: "No {type} info available"Readonlymodel.instructionClickPrompt: "Click to activate."Readonlymodel.instructionFigure: "This is a maidr figure containing {size} subplots. {clickPrompt}\n Use arrow keys to navigate subplots and press 'ENTER'."Readonlymodel.instructionSubplot: "This is a maidr plot containing {size} layers, and\n this is layer {index} of {size}: {plotType} plot. {clickPrompt}\n Use Arrows to navigate data points. Toggle B for Braille, T for Text,\n S for Sonification, and R for Review mode."Readonlymodel.instructionTrace: "This is a maidr plot of type: {displayType}{groupCount}. {clickPrompt} Use Arrows to navigate data points. Toggle B for Braille, T for Text, S for Sonification, and R for Review mode."Readonlymodel.instructionGroupCount: " with {count} groups"Readonlymodel.levelFigure: "figure"Readonlymodel.levelSubplot: "subplot"Readonlymodel.levelTrace: "trace"Readonlymodel.initialInstructionFigure: "This is a maidr figure containing {size} subplots. {clickPrompt} Use arrow keys to navigate subplots and press 'ENTER'."Readonlymodel.initialInstructionSubplot: "This is a maidr plot containing {size} layers, and this is layer {index} of {size}: {plotType} plot. {clickPrompt} Use Arrows to navigate data points. Toggle B for Braille, T for Text, S for Sonification, and R for Review mode."Readonlymodel.candleShapeMarubozu: "marubozu"Readonlymodel.candleShapeDoji: "doji"Readonlymodel.candleShapeDragonflyDoji: "dragonfly doji"Readonlymodel.candleShapeGravestoneDoji: "gravestone doji"Readonlymodel.candleShapeSpinningTop: "spinning top"Readonlymodel.candlePatternBullishEngulfing: "bullish engulfing"Readonlymodel.candlePatternBearishEngulfing: "bearish engulfing"Readonlymodel.candlePatternPiercingLine: "piercing line"Readonlymodel.candlePatternDarkCloudCover: "dark cloud cover"Readonlymodel.candlePatternTweezerBottom: "tweezer bottom"Readonlymodel.candlePatternTweezerTop: "tweezer top"Readonlymodel.candlePatternHammer: "hammer"Readonlymodel.candlePatternHangingMan: "hanging man"Readonlymodel.candlePatternMorningStar: "morning star"Readonlymodel.candlePatternEveningStar: "evening star"Readonlymodel.candlePatternThreeWhiteSoldiers: "three white soldiers"Readonlymodel.candlePatternThreeBlackCrows: "three black crows"Readonlymodel.candlePatternUpsideTasukiGap: "upside tasuki gap"Readonlymodel.candlePatternUpsideTasukiGapFilled: "upside tasuki gap filled"Readonlymodel.candlePatternThreeInsideDown: "three inside down"Readonlymodel.candlePatternThreeOutsideDown: "three outside down"Readonlymodel.rotorNounLowerValue: "lower value"Readonlymodel.rotorNounHigherValue: "higher value"Readonlymodel.plotTypeUnknownChart: "chart"Readonlymodel.statMinValue: "Min value"Readonlymodel.statMaxValue: "Max value"Readonlymodel.statMinCount: "Min count"Readonlymodel.statMaxCount: "Max count"Readonlymodel.statMinBarSize: "Min bar size"Readonlymodel.statMaxBarSize: "Max bar size"Readonlymodel.statMinSegmentValue: "Min segment value"Readonlymodel.statMaxSegmentValue: "Max segment value"Readonlymodel.statLargest: "Largest"Readonlymodel.statSmallest: "Smallest"Readonlymodel.statNumberOfMarks: "Number of {noun}"Readonlymodel.statMarksWithNoValue: "{noun} with no value"Readonlymodel.valueAtName: "{value} at {name}"Readonlymodel.markNounBars: "bars"Readonlymodel.markNounDots: "dots"Readonlymodel.markNounLollipops: "lollipops"Readonlymodel.markNounStages: "stages"Readonlymodel.markNounLeadingBars: "Bars"Readonlymodel.markNounLeadingDots: "Dots"Readonlymodel.markNounLeadingLollipops: "Lollipops"Readonlymodel.markNounLeadingStages: "Stages"Readonlymodel.extremaMaxBar: "Max Bar"Readonlymodel.extremaMinBar: "Min Bar"Readonlymodel.extremaAt: "{name} at {where}"Readonlymodel.extremaCell: "{x}, {y}"Readonlymodel.fallbackPoint: "Point {index}"Readonlymodel.statNumberOfBins: "Number of bins"Readonlymodel.statBinRange: "Bin range"Readonlymodel.statTotalObservations: "Total observations"Readonlymodel.statModalBin: "Modal bin"Readonlymodel.statBinWidth: "Bin width"Readonlymodel.statModalBinValue: "{range}, {count}"Readonlymodel.tableBinMin: "Bin Min"Readonlymodel.tableBinMax: "Bin Max"Readonlymodel.asidePercentage: "Percentage"Readonlymodel.statNumberOfSlices: "Number of slices"Readonlymodel.statTotal: "Total"Readonlymodel.statLargestSlice: "Largest slice"Readonlymodel.statSmallestSlice: "Smallest slice"Readonlymodel.statSlicesWithNoValue: "Slices with no value"Readonlymodel.statNote: "Note"Readonlymodel.pieNegativeNote: "This pie contains a negative value, so a slice cannot be a share of the total. Percentages are shares of the circle as drawn, out of {basis}."Readonlymodel.pieSliceSummary: "{name}, {value} ({share})"Readonlymodel.statNumberOfGroups: "Number of groups"Readonlymodel.statGroupNames: "Group names"Readonlymodel.statOutliers: "Outliers"Readonlymodel.statMinimum: "Minimum"Readonlymodel.statLowestMinimum: "Lowest minimum"Readonlymodel.statMaximum: "Maximum"Readonlymodel.statHighestMaximum: "Highest maximum"Readonlymodel.statMedian: "Median"Readonlymodel.statLowestMedian: "Lowest median"Readonlymodel.statHighestMedian: "Highest median"Readonlymodel.statInterquartileRange: "Interquartile range"Readonlymodel.statNumberOfViolins: "Number of violins"Readonlymodel.statViolinNames: "Violin names"Readonlymodel.statSections: "Sections"Readonlymodel.extremeValueWithGroup: "{value} ({name})"Readonlymodel.nounGroup: "Group"Readonlymodel.nounViolin: "Violin"Readonlymodel.fallbackNumbered: "{noun} {index}"Readonlymodel.correlationNone: "none"Readonlymodel.correlationPositive: "positive"Readonlymodel.correlationNegative: "negative"Readonlymodel.correlationVeryWeak: "very weak {direction}"Readonlymodel.correlationWeak: "weak {direction}"Readonlymodel.correlationModerate: "moderate {direction}"Readonlymodel.correlationStrong: "strong {direction}"Readonlymodel.correlationVeryStrong: "very strong {direction}"Readonlymodel.quadrantUpperRight: "upper right"Readonlymodel.quadrantUpperLeft: "upper left"Readonlymodel.quadrantLowerLeft: "lower left"Readonlymodel.quadrantLowerRight: "lower right"Readonlymodel.asideName: "Name"Readonlymodel.statTotalPoints: "Total points"Readonlymodel.statUniqueAxisValues: "Unique {axis} values"Readonlymodel.statAxisCategories: "{axis} categories"Readonlymodel.statAxisRange: "{axis} range"Readonlymodel.statMostPointsAtOne: "Most points at one {axis}"Readonlymodel.statGrid: "Grid"Readonlymodel.statGridValue: "{rows} by {cols} cells"Readonlymodel.statTableRows: "Table rows"Readonlymodel.statTableRowsFirstOf: "first {shown} of {total}"Readonlymodel.statCorrelation: "Correlation"Readonlymodel.statCorrelationValue: "{strength} (r = {r}, n = {n})"Readonlymodel.statMostPoints: "Most points"Readonlymodel.quadrantsEvenSpread: "spread evenly across the four quadrants"Readonlymodel.quadrantDensest: "{share}% in the {quadrants}"Readonlymodel.quadrantNamed: "{where} (quadrant {number})"Readonlymodel.quadrantJoin: " and the "Readonlymodel.statPointsByQuadrant: "Points by quadrant"Readonlymodel.quadrantShare: "{number} {where} {share}%"Readonlymodel.statQuadrantsSplitAt: "Quadrants split at"Readonlymodel.quadrantSplitValue: "{xAxis} {x}, {yAxis} {y}"Readonlymodel.listedAndMore: "{names}, and {count} more"Readonlymodel.statRows: "Rows"Readonlymodel.statColumns: "Columns"Readonlymodel.statCellsWithAValue: "Cells with a value"Readonlymodel.countOfTotal: "{count} of {total}"Readonlymodel.statHighestCell: "Highest cell"Readonlymodel.statLowestCell: "Lowest cell"Readonlymodel.fallbackColumn: "Column {index}"Readonlymodel.heatmapCellName: "{column}, {row}"Readonlymodel.extremaGlobalMaximum: "Global Maximum"Readonlymodel.extremaGlobalMinimum: "Global Minimum"Readonlymodel.extremaRowMaximum: "Row Maximum"Readonlymodel.extremaRowMinimum: "Row Minimum"Readonlymodel.extremaColumnMaximum: "Column Maximum"Readonlymodel.extremaColumnMinimum: "Column Minimum"Readonlymodel.seriesColumnLine: "Line"Readonlymodel.statNumberOfLines: "Number of lines"Readonlymodel.statPointsPerLine: "Points per line"Readonlymodel.statLineNames: "Line names"Readonlymodel.statMissingValues: "Missing values"Readonlymodel.statNarrowestInterval: "Narrowest interval"Readonlymodel.statWidestInterval: "Widest interval"Readonlymodel.extremaMaxPoint: "Max point"Readonlymodel.extremaMinPoint: "Min point"Readonlymodel.intersectionPoint: "Point intersection"Readonlymodel.intersectionSlope: "Slope intersection"Readonlymodel.extremaIntersectionAt: "{kind} at {coords}"Readonlymodel.intersectionCoords: "x={x}, y={y}"Readonlymodel.intersectionAtLines: "intersection at ({lines})"Readonlymodel.nounBand: "Band"Readonlymodel.statNumberOfBands: "Number of bands"Readonlymodel.statPointsPerBand: "Points per band"Readonlymodel.statBandNames: "Band names"Readonlymodel.nounCompetitor: "Competitor"Readonlymodel.statNumberOfCompetitors: "Number of competitors"Readonlymodel.statPeriods: "Periods"Readonlymodel.statCompetitorNames: "Competitor names"Readonlymodel.nounContour: "Contour"Readonlymodel.statNumberOfLevels: "Number of levels"Readonlymodel.statPointsPerLevel: "Points per level"Readonlymodel.statLevels: "Levels"Readonlymodel.nounObservation: "Observation"Readonlymodel.statNumberOfObservations: "Number of observations"Readonlymodel.statAxesPerObservation: "Axes per observation"Readonlymodel.statObservationNames: "Observation names"Readonlymodel.nounSeries: "Series"Readonlymodel.statNumberOfSeries: "Number of series"Readonlymodel.statSeriesNames: "Series names"Readonlymodel.statNounPerSeries: "{noun} per series"Readonlymodel.nounCurve: "Curve"Readonlymodel.statNumberOfCurves: "Number of curves"Readonlymodel.statSamplesPerCurve: "Samples per curve"Readonlymodel.statCurveNames: "Curve names"Readonlymodel.nounArm: "Arm"Readonlymodel.statNumberOfArms: "Number of arms"Readonlymodel.statTimesPerArm: "Times per arm"Readonlymodel.statArmNames: "Arm names"Readonlymodel.nounSpokes: "Spokes"Readonlymodel.nounSectors: "Sectors"Readonlymodel.statNounInOrder: "{noun}, in order"Readonlymodel.statStepDirection: "Step direction"Readonlymodel.stepDirectionHv: "value holds until the next x value, then jumps"Readonlymodel.stepDirectionVh: "value jumps at the current x value, then holds"Readonlymodel.stepDirectionMid: "value jumps midway between x values"Readonlymodel.statTotalRange: "Total range"Readonlymodel.rotorUnitTransitions: "Transitions"Readonlymodel.rotorNounTransitions: "transitions"Readonlymodel.statTransitions: "Transitions{scope}"Readonlymodel.statLongestRun: "Longest run{scope}"Readonlymodel.statScopeIn: " in {group}"Readonlymodel.statDistinctLevels: "Distinct levels"Readonlymodel.rotorUnitRankGained: "Rank gained"Readonlymodel.rotorNounRankGain: "rank gain"Readonlymodel.rotorUnitRankLost: "Rank lost"Readonlymodel.rotorNounRankLoss: "rank loss"Readonlymodel.asidePlacesGained: "Places gained"Readonlymodel.asidePlacesLost: "Places lost"Readonlymodel.asideChange: "Change"Readonlymodel.statRanksShown: "Ranks shown"Readonlymodel.statRankChanges: "Rank changes"Readonlymodel.statLedAtTheStart: "Led at the start"Readonlymodel.statLedAtTheEnd: "Led at the end"Readonlymodel.statClimbedFurthest: "Climbed furthest"Readonlymodel.statFellFurthest: "Fell furthest"Readonlymodel.nameWithValue: "{name}, {value}"Readonlymodel.placesOne: "{count} place"Readonlymodel.placesMany: "{count} places"Readonlymodel.rotorUnitCensored: "Censored"Readonlymodel.rotorNounCensoredTimes: "censored times"Readonlymodel.survivalNotReached: "not reached"Readonlymodel.statMedianSurvival: "Median survival"Readonlymodel.statCensoredTimes: "Censored times"Readonlymodel.armWithValue: "{arm}: {value}"Readonlymodel.statSeparationAtEnd: "Separation at the end of shared follow-up"Readonlymodel.survivalSeparation: "{gap} at {at}{between}"Readonlymodel.survivalSeparationBetween: ", {high} above {low}"Readonlymodel.tableCensored: "Censored"Readonlymodel.sectionCensored: "censored"Readonlymodel.boxenPercentile: "{percent}th percentile"Readonlymodel.boxenMedianRung: "median"Readonlymodel.statNumberOfDistributions: "Number of distributions"Readonlymodel.statDistributionNames: "Distribution names"Readonlymodel.statQuantileLevels: "Quantile levels"Readonlymodel.statQuantileRange: "Quantile range"Readonlymodel.statMedianOfEachDistribution: "Median of each distribution"Readonlymodel.nameAtValue: "{name} at {value}"Readonlymodel.nounDistribution: "Distribution"Readonlymodel.statOutlierRange: "Outlier range"Readonlymodel.tableQuantile: "Quantile"Readonlymodel.boxenLowerOutlier: "lower outlier"Readonlymodel.boxenUpperOutlier: "upper outlier"Readonlymodel.asideBalance: "Balance"Readonlymodel.divergingLevel: "level"Readonlymodel.divergingAhead: "{side} ahead"Readonlymodel.divergingAheadBy: "{side} ahead by {gap}"Readonlymodel.divergingBalanceLevel: "{balance}, level"Readonlymodel.divergingBalanceAhead: "{balance}, {side} ahead"Readonlymodel.divergingSideLeft: "left"Readonlymodel.divergingSideRight: "right"Readonlymodel.nounSeriesNumbered: "Series {index}"Readonlymodel.statSideTotal: "{side} total"Readonlymodel.statOverallBalance: "Overall balance"Readonlymodel.statWidestGap: "Widest gap"Readonlymodel.divergingWidestGapValue: "{side} ahead by {gap} at {band}"Readonlymodel.statAxisCategoriesNamed: "{axis} categories"Readonlymodel.statSeriesNamesFallback: "Series names"Readonlymodel.asideSum: "Sum"Readonlymodel.extremaMaxGroup: "Max {group}"Readonlymodel.extremaMinGroup: "Min {group}"Readonlymodel.segmentedTotalGroup: "Total"Readonlymodel.segmentedGroupNamed: "{axis}: '{value}'"Readonlymodel.fallbackGroupIndexed: "Group {index}"Readonlymodel.fallbackCategory: "Category {index}"Readonlymodel.statNumberOfCategories: "Number of categories"Readonlymodel.statNumberOfSegments: "Number of segments"Readonlymodel.statLargestBarTotal: "Largest bar total"Readonlymodel.statSmallestBarTotal: "Smallest bar total"Readonlymodel.statSegmentsWithNoValue: "Segments with no value"Readonlymodel.asideShareOfAll: "Share of all"Readonlymodel.asideCount: "Count"Readonlymodel.statShareOfAllObservations: "Share of all observations"Readonlymodel.mosaicShare: "{name} {share}"Readonlymodel.mosaicSeeTable: "{count} groups; see the data table"Readonlymodel.statLargestGroup: "Largest group"Readonlymodel.statSmallestGroup: "Smallest group"Readonlymodel.dumbbellStart: "start"Readonlymodel.dumbbellEnd: "end"Readonlymodel.rankNoChange: "No change"Readonlymodel.rankLargestIncrease: "Largest increase"Readonlymodel.rankSmallestDecrease: "Smallest decrease"Readonlymodel.rankLargestDecrease: "Largest decrease"Readonlymodel.rankSmallestIncrease: "Smallest increase"Readonlymodel.asideIncrease: "Increase"Readonlymodel.asideDecrease: "Decrease"Readonlymodel.statNumberOfPairs: "Number of pairs"Readonlymodel.statIncreased: "Increased"Readonlymodel.statDecreased: "Decreased"Readonlymodel.statUnchanged: "Unchanged"Readonlymodel.tableChange: "Change"Readonlymodel.asideRetained: "Retained"Readonlymodel.asideEntered: "Entered"Readonlymodel.statEntryStage: "Entry stage"Readonlymodel.funnelEntryWithCount: "{stage} ({count})"Readonlymodel.statOverallConversion: "Overall conversion"Readonlymodel.funnelConversionRange: "{share} ({from} to {to})"Readonlymodel.statSteepestDrop: "Steepest drop"Readonlymodel.funnelStageRetained: "{stage}, {share} retained"Readonlymodel.tableShareOfEntry: "Share of entry"Readonlymodel.funnelEntryStageCell: "entry stage"Readonlymodel.gaugeMeasureFallback: "Measure"Readonlymodel.gaugeValueFallback: "Value"Readonlymodel.gaugeAboveAllBands: "above every band"Readonlymodel.gaugeBandEdge: "{label} up to {edge}"Readonlymodel.asideRange: "Range"Readonlymodel.asideTarget: "Target"Readonlymodel.statPositionInRange: "Position in range"Readonlymodel.statBand: "Band"Readonlymodel.statAllBands: "All bands"Readonlymodel.statVersusTarget: "Versus target"Readonlymodel.gaugeOnTarget: "on target"Readonlymodel.statAboveTargetBy: "Above target by"Readonlymodel.statBelowTargetBy: "Below target by"Readonlymodel.percentValue: "{value}%"Readonlymodel.errorBarSectionLower: "lower bound"Readonlymodel.errorBarSectionValue: "value"Readonlymodel.errorBarSectionUpper: "upper bound"Readonlymodel.statNumberOfPoints: "Number of points"Readonlymodel.statEstimateRange: "Estimate range"Readonlymodel.tableLower: "Lower"Readonlymodel.tableUpper: "Upper"Readonlymodel.errorBarWhere: "{x}, {group}"Readonlymodel.extremaMaxSection: "Max {section}"Readonlymodel.extremaMinSection: "Min {section}"Readonlymodel.forestPooledSection: "pooled {section}"Readonlymodel.forestPooledEstimate: "pooled estimate"Readonlymodel.forestEstimate: "estimate"Readonlymodel.forestCrossesNull: ", crosses the null"Readonlymodel.forestDoesNotCrossNull: ", does not cross the null"Readonlymodel.forestSection: "{kind}{verdict}"Readonlymodel.asideWeight: "Weight"Readonlymodel.statNumberOfStudies: "Number of studies"Readonlymodel.statPooledEstimate: "Pooled estimate"Readonlymodel.forestPooledValue: "{name}, {value}{interval}{verdict}"Readonlymodel.forestInterval: " ({min} to {max})"Readonlymodel.statNoEffectValue: "No-effect value"Readonlymodel.statStudiesCrossingNull: "Studies crossing the null"Readonlymodel.statHeaviestStudy: "Heaviest study"Readonlymodel.waterfallKindIncrease: "increase"Readonlymodel.waterfallKindDecrease: "decrease"Readonlymodel.waterfallKindTotal: "total"Readonlymodel.asideRunningTotal: "Running total"Readonlymodel.statNumberOfSteps: "Number of steps"Readonlymodel.statIncreases: "Increases"Readonlymodel.statDecreases: "Decreases"Readonlymodel.statTotals: "Totals"Readonlymodel.statStartingValue: "Starting value"Readonlymodel.statEndingValue: "Ending value"Readonlymodel.statNetChange: "Net change"Readonlymodel.statLargestIncrease: "Largest increase"Readonlymodel.statLargestDecrease: "Largest decrease"Readonlymodel.tableKind: "Kind"Readonlymodel.extremaLargestIncrease: "Largest increase"Readonlymodel.extremaLargestDecrease: "Largest decrease"Readonlymodel.statNumberOfTerms: "Number of terms"Readonlymodel.statHeaviestTerm: "Heaviest term"Readonlymodel.statLightestTerm: "Lightest term"Readonlymodel.statTotalWeight: "Total weight"Readonlymodel.statTermsWithNoWeight: "Terms with no weight"Readonlymodel.statOrder: "Order"Readonlymodel.wordCloudOrderNote: "Terms are listed heaviest first, not as authored"Readonlymodel.tableTerm: "Term"Readonlymodel.tableWeight: "Weight"Readonlymodel.tableShareOfTotal: "Share of total"Readonlymodel.wordCloudTermSummary: "{term} ({weight})"Readonlymodel.extremaHeaviestTerm: "Heaviest term"Readonlymodel.extremaLightestTerm: "Lightest term"Readonlymodel.rotorUnitSignificant: "Significant"Readonlymodel.rotorNounSignificantPoints: "significant points"Readonlymodel.asideRegion: "Region"Readonlymodel.asideThreshold: "Threshold"Readonlymodel.volcanoCleared: "cleared"Readonlymodel.volcanoNotCleared: "not cleared"Readonlymodel.statPointsClearingThreshold: "Points clearing the threshold"Readonlymodel.statTopBySignificance: "Top {count} by significance"Readonlymodel.statClearingThresholdNamed: "Clearing the threshold, named"Readonlymodel.statTopRegionsByHits: "Top {count} regions by hits"Readonlymodel.statRegionsWithHits: "Regions with hits"Readonlymodel.volcanoRegionCount: "{region} ({count})"Readonlymodel.statRegions: "Regions"Readonlymodel.statSignificanceThreshold: "Significance threshold"Readonlymodel.volcanoAtOrAbove: "at or above"Readonlymodel.volcanoAtOrBelow: "at or below"Readonlymodel.volcanoSignificanceValue: "{axis} {direction} {value}"Readonlymodel.statEffectThreshold: "Effect threshold"Readonlymodel.volcanoEffectValue: "{axis} of magnitude {value} or more"Readonlymodel.statPointsPerCurve: "Points per curve"Readonlymodel.statPeakOfEachViolin: "Peak of each violin"Readonlymodel.tableDensity: "Density"Readonlymodel.asideVolume: "volume"Readonlymodel.statGroups: "Groups"Readonlymodel.statSamplesPerGroup: "Samples per group"Readonlymodel.statPeakOfEachGroup: "Peak of each group"Readonlymodel.statPeaksSpan: "Peaks span"Readonlymodel.statTallestRidge: "Tallest ridge"Readonlymodel.ridgelinePeakDensity: "{group}, peak density {density}"Readonlymodel.asideSpacing: "Spacing"Readonlymodel.contourSpacingValue: "{distance} to level {level}"Readonlymodel.statMinimumAxis: "Minimum {axis}"Readonlymodel.statMaximumAxis: "Maximum {axis}"Readonlymodel.statLevel: "Level"Readonlymodel.statLevelRange: "Level range"Readonlymodel.statLevelStep: "Level step"Readonlymodel.contourStepVaries: "varies"Readonlymodel.statClosestApproach: "Closest approach between levels"Readonlymodel.statWidestSeparation: "Widest separation between levels"Readonlymodel.contourGapPhrase: "{distance} at {xAxis} {x}, {yAxis} {y}"Readonlymodel.parallelNothingMeasured: "no readings"Readonlymodel.tableAxis: "Axis"Readonlymodel.tableValue: "Value"Readonlymodel.statNumberOfAxes: "Number of axes"Readonlymodel.statAxesInOrder: "Axes, in order"Readonlymodel.parallelSpanFrom: "{span}, from {readings} of {total} observations"Readonlymodel.statOccupiedBins: "Occupied bins"Readonlymodel.statDensestBin: "Densest bin"Readonlymodel.hexbinBinPosition: "{xAxis} {x}, {yAxis} {y}"Readonlymodel.rotorUnitNeighbours: "Neighbours"Readonlymodel.rotorNounBorderingRegions: "bordering regions"Readonlymodel.choroplethAllLower: "{count}, all lower"Readonlymodel.choroplethAllHigher: "{count}, all higher"Readonlymodel.choroplethSomeHigher: "{count}, {higher} higher"Readonlymodel.asideNeighbours: "Neighbours"Readonlymodel.statNumberOfRegions: "Number of regions"Readonlymodel.statLayout: "Layout"Readonlymodel.choroplethLayoutCompass: "South to north, then west to east"Readonlymodel.choroplethLayoutDeclared: "Declared order; no centroids, so the arrows do not follow the compass"Readonlymodel.statRegionsWithBorders: "Regions with declared borders"Readonlymodel.statHighest: "Highest"Readonlymodel.statLowest: "Lowest"Readonlymodel.statSharpestBorders: "Sharpest borders"Readonlymodel.choroplethJump: "{from} to {to}, {jump}"Readonlymodel.statLargestHighCluster: "Largest cluster of high regions"Readonlymodel.choroplethCluster: "{count} regions, {names}"Readonlymodel.nounLane: "Lane"Readonlymodel.asideIntervals: "Intervals"Readonlymodel.ganttLabelled: "{name}, {label}"Readonlymodel.asideLength: "Length"Readonlymodel.ganttLengthWithUnit: "{value} {unit}"Readonlymodel.statNumberOfLanes: "Number of lanes"Readonlymodel.statNumberOfIntervals: "Number of intervals"Readonlymodel.statEmptyLanes: "Empty lanes"Readonlymodel.statShortest: "Shortest"Readonlymodel.statLongest: "Longest"Readonlymodel.statSpans: "Spans"Readonlymodel.statMostIntervalsAtOnce: "Most intervals at once"Readonlymodel.ganttBusiest: "{count} from {at}"Readonlymodel.ganttLengthHeader: "Length ({unit})"Readonlymodel.tableLabel: "Label"Readonlymodel.tableStart: "Start"Readonlymodel.tableEnd: "End"Readonlymodel.rotorUnitLevel: "Level"Readonlymodel.rotorNounNodesOnLevel: "nodes on this level"Readonlymodel.tableNode: "Node"Readonlymodel.asidePath: "Path"Readonlymodel.asideShareOfParent: "Share of {parent}"Readonlymodel.asideShareOfTotal: "Share of total"Readonlymodel.asideChildren: "Children"Readonlymodel.statNumberOfNodes: "Number of nodes"Readonlymodel.statNumberOfLeaves: "Number of leaves"Readonlymodel.statNodesPerLevel: "Nodes per level"Readonlymodel.statLeafRange: "Leaf range"Readonlymodel.statTopLevel: "Top level"Readonlymodel.statInsideNode: "Inside {name}"Readonlymodel.treemapShare: "{name} {share}"Readonlymodel.treemapAndMore: "{shown}, and {count} more"Readonlymodel.statLargestLeaf: "Largest leaf"Readonlymodel.treemapLargestLeaf: "{path}, {value}{share}"Readonlymodel.treemapShareOfTotal: ", {share} of total"Readonlymodel.rotorUnitOutgoing: "Outgoing"Readonlymodel.rotorNounOutgoingFlows: "outgoing flows"Readonlymodel.rotorUnitIncoming: "Incoming"Readonlymodel.rotorNounIncomingFlows: "incoming flows"Readonlymodel.asideAlong: "Along"Readonlymodel.flowAlongValue: "{source} to {target}, {value}{share}"Readonlymodel.flowShareOfSource: ", {share} of {source}"Readonlymodel.asideInAndOut: "In and out"Readonlymodel.flowInOut: "{in}, {out}"Readonlymodel.asideSplitsInto: "Splits into"Readonlymodel.statNumberOfFlows: "Number of flows"Readonlymodel.statStages: "Stages"Readonlymodel.flowCycle: "none, the flows form a cycle"Readonlymodel.statTotalFlow: "Total flow"Readonlymodel.statTotalOfAllFlows: "Total of all flows"Readonlymodel.statSourcesAndSinks: "Sources and sinks"Readonlymodel.flowSourcesSinks: "{sources}, {sinks}"Readonlymodel.statBusiestNode: "Busiest node"Readonlymodel.statLargestFlow: "Largest flow"Readonlymodel.flowLargest: "{from} to {to}, {value}"Readonlymodel.statMainRoute: "Main route"Readonlymodel.flowRouteJoin: " to "Readonlymodel.flowRouteTruncated: "{path}, and on"Readonlymodel.tableFrom: "From"Readonlymodel.tableTo: "To"Readonlymodel.rotorUnitLinks: "Links"Readonlymodel.rotorNounLinkedNodes: "linked nodes"Readonlymodel.networkLinkAxis: "Links"Readonlymodel.asideLinks: "Links"Readonlymodel.networkNoLinks: "none"Readonlymodel.networkLinkList: "{count}, to {names}{more}"Readonlymodel.networkAndMore: " and {count} more"Readonlymodel.networkGroupPosition: "{index} of {total}, {size} nodes"Readonlymodel.statNumberOfLinks: "Number of links"Readonlymodel.statSelfLinks: "Self links"Readonlymodel.statSeparateGroups: "Separate groups"Readonlymodel.statLinksPerNode: "Links per node"Readonlymodel.statMostConnected: "Most connected"Readonlymodel.networkNodeDegree: "{name} {count}"Readonlymodel.statLinkedGroupSizes: "Linked group sizes"Readonlymodel.networkAndMoreList: "{shown}, and {count} more"Readonlymodel.statUnconnected: "Unconnected"Readonlymodel.networkIsolatedList: "{count}: {shown}"Readonlymodel.networkIsolatedListMore: "{count}: {shown}, and {more} more"Readonlymodel.tableLinkedTo: "Linked to"Readonlymodel.networkGroupCell: "{index} of {total}"Readonlymodel.asideTrend: "trend"Readonlymodel.asideShape: "shape"Readonlymodel.asidePattern: "pattern"Readonlymodel.candlestickBullishMode: "BULLISH POINT NAVIGATION"Readonlymodel.candlestickBearishMode: "BEARISH POINT NAVIGATION"Readonlymodel.candlestickNeutralMode: "NEUTRAL POINT NAVIGATION"Readonlymodel.rotorNounBullishPoint: "bullish point"Readonlymodel.rotorNounBearishPoint: "bearish point"Readonlymodel.rotorNounNeutralPoint: "neutral point"Readonlymodel.candlestickSectionVolatility: "volatility"Readonlymodel.candlestickSectionOpen: "open"Readonlymodel.candlestickSectionHigh: "high"Readonlymodel.candlestickSectionLow: "low"Readonlymodel.candlestickSectionClose: "close"Readonlymodel.candlestickTrendBull: "Bull"Readonlymodel.candlestickTrendBear: "Bear"Readonlymodel.candlestickTrendNeutral: "Neutral"Readonlymodel.statNumberOfPeriods: "Number of periods"Readonlymodel.statPriceRange: "Price range"Readonlymodel.statBullCount: "Bull count"Readonlymodel.statBearCount: "Bear count"Readonlymodel.statNeutralCount: "Neutral count"Readonlymodel.statPeriodCovered: "Period covered"Readonlymodel.candlestickNetChange: "{change}{percent}"Readonlymodel.candlestickPercent: " ({value}%)"Readonlymodel.tableVolatility: "Volatility"Readonlymodel.tableOpen: "Open"Readonlymodel.tableHigh: "High"Readonlymodel.tableLow: "Low"Readonlymodel.tableClose: "Close"Readonlymodel.tableVolume: "Volume"Readonlymodel.tableTrend: "Trend"Readonlymodel.extremaMaxVolatility: "Max Volatility"Readonlymodel.extremaMinVolatility: "Min Volatility"Readonlymodel.extremaMaxSegment: "Max {segment}"Readonlymodel.extremaMinSegment: "Min {segment}"Readonlymodel.candlestickAboveLineMode: "ABOVE LINE NAVIGATION"Readonlymodel.candlestickBelowLineMode: "BELOW LINE NAVIGATION"Readonlymodel.candlestickOnLineMode: "ON LINE NAVIGATION"Readonlymodel.candlestickDeltaPointMode: "DELTA POINT NAVIGATION"Readonlymodel.deltaAboveLine: "above line"Readonlymodel.deltaBelowLine: "below line"Readonlymodel.deltaOnLine: "on line"Readonlymodel.rotorNounPointOnLine: "point on the line"Readonlymodel.deltaReferenceFallback: "Reference line"Readonlymodel.asideDelta: "delta"Readonlymodel.asidePosition: "position"Readonlymodel.statReferenceLine: "Reference line"Readonlymodel.statComparedPrice: "Compared price"Readonlymodel.statPointsAboveLine: "Points above line"Readonlymodel.statPointsBelowLine: "Points below line"Readonlymodel.statPointsOnLine: "Points on line"Readonlymodel.statDeltaRange: "Delta range"Readonlymodel.statLargestGapAbove: "Largest gap above line"Readonlymodel.statLargestGapBelow: "Largest gap below line"Readonlymodel.rotorNounPointBelowLine: "point below the line"Readonlymodel.rotorNounPointAboveLine: "point above the line"Readonlymodel.tableDelta: "Delta"Readonlymodel.tablePosition: "Position"Readonlymodel.tableCrossesNull: "Crosses null"Readonlymodel.tableRow: "Row"Readonlymodel.forestCrosses: "crosses"Readonlymodel.forestDoesNotCross: "does not cross"Readonlymodel.forestRowPooled: "pooled"Readonlymodel.forestRowStudy: "study"Readonlymodel.extremaMaxDelta: "Max Delta"Readonlymodel.extremaMinDelta: "Min Delta"Readonlynotification.speedUp: "Speed up"Readonlynotification.maxSpeed: "Max speed"Readonlynotification.speedDown: "Speed down"Readonlynotification.minSpeed: "Min speed"Readonlynotification.resetSpeed: "Reset speed"Readonlynotification.soundIs: "Sound is {mode}"Readonlynotification.audioModeOff: "off"Readonlynotification.audioModeOn: "on"Readonlynotification.audioModeCombined: "combined"Readonlynotification.audioModeSeparate: "separate"Readonlynotification.brailleIsOn: "Braille is on"Readonlynotification.brailleIsOff: "Braille is off"Readonlynotification.brailleNoInfo: "No info for braille"Readonlynotification.brailleNotSupported: "Braille is not supported for plot type: {type}"Readonlynotification.brailleDisplay: "Braille display"Readonlynotification.monitoringLiveOnly: "Monitoring is available only for live charts"Readonlynotification.monitoringOn: "Monitoring on"Readonlynotification.monitoringOff: "Monitoring off"Readonlynotification.highContrastOn: "High Contrast Mode on"Readonlynotification.highContrastOff: "High Contrast Mode off"Readonlynotification.deltaCandlestickOnly: "Reference comparison is only available on candlestick charts."Readonlynotification.deltaNeedsLineLayer: "Reference comparison is only available on candlestick charts with a line layer."Readonlynotification.deltaReferenceUnavailable: "The selected reference line is unavailable."Readonlynotification.deltaNoMatchingX: "No matching x values between the candlestick chart and {reference}."Readonlynotification.deltaKeepingComparison: "Keeping the current comparison: {reference} does not reach {x}. Move to a candle it covers, then choose it again."Readonlynotification.deltaNoComparisonAtX: "No reference comparison at {x}: {reference} does not reach this candle. Move to a candle the moving average covers, then press Alt L."Readonlynotification.deltaActivationFailed: "Reference comparison could not be activated here."Readonlynotification.deltaActivated: "Reference comparison on: OHLC price minus {reference}, {count} points, starting on {field}. Positive values are above the line, negative below. Use Left and Right arrows to move between candles, Up and Down to switch between open, high, low and close. Press Alt L to turn the comparison off, G for extrema, and the rotor to browse above-line, below-line, or on-line points. Press Escape to return to the chart."Readonlynotification.deltaClosed: "Reference comparison closed. Returned to the chart layer. Press Alt L to compare again."Readonlynotification.deltaClosedByUpdate: "Reference comparison closed by a data update."Readonlynotification.deltaNoReferenceChosen: "No reference line chosen yet. Use the list to pick a moving average line and press Enter to compare. Press Escape to cancel."Readonlynotification.deltaTraceTitle: "OHLC price vs {reference}"Readonlynotification.deltaYAxisLabel: "{axis} delta"Readonlynotification.deltaPickerTitle: "Compare to Reference Line"Readonlynotification.deltaPickerClose: "Close reference picker"Readonlynotification.deltaPickerDescription: "Choose a reference line to compare each candle against. Use the Up and Down arrows to move, then press Enter. Once chosen, press Alt L to turn the comparison on or off."Readonlynotification.deltaPickerListLabel: "Reference lines"Readonlyrotor.higherValueMode: "HIGHER VALUE NAVIGATION"Readonlyrotor.lowerValueMode: "LOWER VALUE NAVIGATION"Readonlyrotor.dataMode: "DATA POINT NAVIGATION"Readonlyrotor.rowColMode: "ROW AND COLUMN NAVIGATION"Readonlyrotor.gridMode: "GRID NAVIGATION"Readonlyrotor.intersectionMode: "INTERSECTING POINT NAVIGATION"Readonlyrotor.pointMode: "POINT NAVIGATION"Readonlyrotor.gridModeDimensions: "GRID NAVIGATION: {rows}×{cols} GRID"Readonlyrotor.directionAbove: "above"Readonlyrotor.directionBelow: "below"Readonlyrotor.directionLeft: "left"Readonlyrotor.directionRight: "right"Readonlyrotor.lowerValueNoun: "lower value"Readonlyrotor.higherValueNoun: "higher value"Readonlyrotor.pointNoun: "point"Readonlyrotor.gridValueNoun: "grid value"Readonlyrotor.noneFoundVerticalTerse: "No {noun} found {direction}"Readonlyrotor.noneFoundVerticalVerbose: "No {noun} found {direction} the current value."Readonlyrotor.noneFoundHorizontalTerse: "No {noun} found on the {direction}"Readonlyrotor.noneFoundHorizontalVerbose: "No {noun} found to the {direction} of the current value."Readonlyrotor.filterVerticalUnavailableTerse: "Up/down unavailable in {noun} mode"Readonlyrotor.filterVerticalUnavailableVerbose: "Up and down navigation is not available in {noun} mode."Readonlyrotor.intersectionVerticalUnavailableTerse: "Up/down unavailable in intersection mode"Readonlyrotor.intersectionVerticalUnavailableVerbose: "Up and down navigation is not available in intersection point mode."Readonlyrotor.intersectionUnavailableTerse: "Intersection mode unavailable"Readonlyrotor.intersectionUnavailableVerbose: "Intersection navigation is not available in the current context."Readonlyrotor.noIntersectionTerse: "No intersection to the {direction}"Readonlyrotor.noIntersectionVerbose: "No intersection found to the {direction} of the current point."Readonlysettings.title: "Settings"Readonlysettings.sections: "Settings sections"Readonlysettings.tabGeneral: "General"Readonlysettings.tabAudio: "Audio"Readonlysettings.tabVisual: "Visual"Readonlysettings.tabBraille: "Braille & Tactile"Readonlysettings.tabAi: "AI"Readonlysettings.tabAbout: "About"Readonlysettings.needsAttention: " needs attention"Readonlysettings.language: "Language"Readonlysettings.languageAuto: "Browser default"Readonlysettings.autoplayDurationRow: "Autoplay Duration (ms)"Readonlysettings.autoplayDuration: "Autoplay Duration"Readonlysettings.ariaMode: "ARIA Mode"Readonlysettings.ariaAssertive: "Assertive"Readonlysettings.ariaPolite: "Polite"Readonlysettings.hoverMode: "Hover Mode"Readonlysettings.hoverOnHover: "Hover"Readonlysettings.hoverOnClick: "Click"Readonlysettings.volume: "Volume"Readonlysettings.minFrequencyRow: "Min Frequency (Hz)"Readonlysettings.minFrequency: "Minimum Frequency"Readonlysettings.maxFrequencyRow: "Max Frequency (Hz)"Readonlysettings.maxFrequency: "Maximum Frequency"Readonlysettings.echoCount: "3D Echo Count"Readonlysettings.echoVolume: "Echo Volume"Readonlysettings.echoDuration: "Echo Duration (s)"Readonlysettings.outlineColor: "Outline Color"Readonlysettings.highlightColor: "Highlight Color"Readonlysettings.highContrastMode: "High Contrast Mode"Readonlysettings.on: "On"Readonlysettings.off: "Off"Readonlysettings.highContrastLevels: "High Contrast Levels"Readonlysettings.highContrastLightColor: "High Contrast Light Color"Readonlysettings.highContrastDarkColor: "High Contrast Dark Color"Readonlysettings.brailleDisplay: "Braille Display"Readonlysettings.brailleSingleLine: "Single line"Readonlysettings.brailleMultiLine: "Multi-line"Readonlysettings.brailleManual: "Configure manually"Readonlysettings.singleLineDisplay: "Single-Line Display"Readonlysettings.selectSingleLineDisplay: "Select a single-line display"Readonlysettings.multiLineDisplay: "Multi-Line Display"Readonlysettings.selectMultiLineDisplay: "Select a multi-line display"Readonlysettings.braillePresetHint: "Don't see your display? Choose \"Configure manually\"."Readonlysettings.manualBrailleGroup: "Manual braille display configuration"Readonlysettings.brailleDisplaySize: "Braille Display Size"Readonlysettings.brailleDisplaySizeHelp: "Cells per row on a physical braille display (1-{max})."Readonlysettings.brailleDisplayLines: "Braille Display Lines"Readonlysettings.brailleDisplayLinesHelp: "Number of rows on a physical braille display (1-{max}). Set above 1 to enable multi-line output."Readonlysettings.tactileDisplay: "Tactile Graphics Display"Readonlysettings.selectTactileDisplay: "Select a tactile display"Readonlysettings.connectBluetooth: "Connect over Bluetooth"Readonlysettings.connectUsb: "Connect over USB"Readonlysettings.disconnect: "Disconnect"Readonlysettings.tactileConnectedBluetooth: "Connected to {device} over Bluetooth. Press b on the chart to show it."Readonlysettings.tactileConnectedUsb: "Connected to {device} over USB. Press b on the chart to show it."Readonlysettings.tactileGenericDevice: "a tactile display"Readonlysettings.tactileConnecting: "Connecting…"Readonlysettings.tactileRetry: "{message} Select the device again to retry."Readonlysettings.tactileNotConnected: "Not connected."Readonlysettings.braillePresetSingle: "{label} — {manufacturer} ({cells} cells)"Readonlysettings.braillePresetMulti: "{label} — {manufacturer} ({lines} lines × {cells} cells)"Readonlysettings.enableProvider: "Enable {name}"Readonlysettings.providerApiKey: "{name} API Key"Readonlysettings.providerServerUrl: "{name} Server URL"Readonlysettings.providerModelVersion: "{name} Model Version"Readonlysettings.apiKeyPlaceholder: "Enter {name} API Key"Readonlysettings.ollamaUrlPlaceholder: "Enter Ollama server URL (e.g. http://localhost:11434)"Readonlysettings.checkingOllamaServerHelp: "Checking Ollama server..."Readonlysettings.validatingApiKeyHelp: "Validating API key..."Readonlysettings.ollamaUnreachableHelp: "Ollama server is unreachable. Make sure Ollama is running and, for non-localhost pages, that OLLAMA_ORIGINS allows this site."Readonlysettings.providerApiKeyInvalid: "{name} API key is invalid"Readonlysettings.ollamaReachable: "Ollama server is reachable"Readonlysettings.providerApiKeyValid: "{name} API key is valid"Readonlysettings.checkingOllamaServer: "Checking Ollama server"Readonlysettings.validatingApiKey: "Validating API key"Readonlysettings.apiKeyValid: "API key is valid"Readonlysettings.ollamaUnreachable: "Ollama server is unreachable"Readonlysettings.apiKeyInvalid: "API key is invalid"Readonlysettings.modelRetired: "\"{version}\" is not in {name}'s current model list — it may have been retired. Consider selecting another model."Readonlysettings.expertiseLevel: "Expertise Level"Readonlysettings.expertiseBasic: "Basic"Readonlysettings.expertiseIntermediate: "Intermediate"Readonlysettings.expertiseAdvanced: "Advanced"Readonlysettings.expertiseCustom: "Custom"Readonlysettings.customInstructions: "Custom Instructions"Readonlysettings.customInstructionPlaceholder: "Enter custom instruction..."Readonlysettings.customInstructionTooShort: "Custom instructions must be at least {min} characters long"Readonlysettings.customInstructionTooShortOnAiTab: "Custom instructions on the AI tab must be at least {min} characters long"Readonlysettings.maidrVersion: "maidr.js Version"Readonlysettings.loadedFrom: "Loaded From"Readonlysettings.browser: "Browser"Readonlysettings.operatingSystem: "Operating System"Readonlysettings.diagnostics: "Diagnostics"Readonlysettings.copyDiagnostics: "Copy diagnostics"Readonlysettings.copyDiagnosticsAria: "Copy diagnostics to clipboard"Readonlysettings.copiedToClipboard: "Copied to clipboard"Readonlysettings.copyFailed: "Could not copy — select the values above and copy them manually"Readonlysettings.sourceLocal: "Local assets"Readonlysettings.sourceInline: "Embedded in the page"Readonlysettings.sourceUnknown: "Unknown"Readonlysettings.reset: "Reset"Readonlysettings.resetAria: "Reset Settings"Readonlysettings.close: "Close"Readonlysettings.closeAria: "Close Settings with no changes"Readonlysettings.save: "Save & Close"Readonlysettings.saveAria: "Save & Close Settings"Readonlytactile.viewWholePlot: "Whole plot"Readonlytactile.viewZoomed: "Zoom {zoom}x, centred {x}% across and {y}% down"Readonlytactile.viewEmpty: "{view}; nothing is in view"Readonlytactile.viewUnchanged: "{view}; the pins are unchanged"Readonlytactile.noView: "Nothing is on the tactile display yet"Readonlytactile.zoomAtClosest: "Already at the closest zoom"Readonlytactile.zoomAtWholePlot: "Already showing the whole plot"Readonlytactile.panWholePlot: "The whole plot is already shown; zoom in to pan"Readonlytactile.panEdgeUp: "No more to show above"Readonlytactile.panEdgeDown: "No more to show below"Readonlytactile.panEdgeLeft: "No more to show to the left"Readonlytactile.panEdgeRight: "No more to show to the right"Readonlytactile.brailleOff: "Turn braille on to use the tactile display"Readonlytactile.notConnected: "No tactile display is connected"Readonlytactile.lineWholeShown: "The whole line is already shown"Readonlytactile.lineStart: "Start of the line"Readonlytactile.lineEnd: "End of the line"Readonlytactile.linePart: "Line part {index} of {total}"Readonlytactile.lineUncontracted: "Contracted braille is unavailable, so the tactile display's text line is uncontracted"Readonlytactile.deviceDisconnected: "DotPad disconnected"Readonlytactile.deviceNoBluetooth: "This page cannot reach a DotPad over Bluetooth. Web Bluetooth needs a Chromium browser, and a page — or an iframe — permitted to use it."Readonlytactile.deviceNoUsb: "This page cannot reach a DotPad over USB. Web Serial needs a Chromium browser on desktop, and a page — or an iframe — permitted to use it."Readonlytactile.deviceNoSdk: "The DotPad SDK was not found on this page."Readonlytactile.deviceNoneSelected: "No DotPad was selected."Readonlytactile.deviceConnectFailed: "Could not connect to the DotPad."Readonlytactile.deviceNotPermitted: "This page is not permitted to reach a DotPad. It needs to be served over HTTPS, and an iframe needs the matching allow attribute."Readonlytext.labelIsValue: "{label} is {value}"Readonlytext.labelAreValues: "{label} are {values}"Readonlytext.labelIsRange: "{label} is {min} through {max}"Readonlytext.rangeThrough: "{min} through {max}"Readonlytext.sectionLabel: "{section} {label}"Readonlytext.plotOfType: "{type} plot"Readonlytext.gridCell: "Cell [{row},{col}]"Readonlytext.layerOfSize: "Layer {index} of {size}: {identity}"Readonlytext.layerSwitchAt: "{layer} at {details}"Readonlytext.noAdditionalLayer: "No additional layer"Readonlytext.noPlotInfo: "No plot info to display"Readonlytext.noFigureInfo: "No figure info to display"Readonlytext.figureSingleType: "This is a {type} plot"Readonlytext.figureMultiType: "This is a multi-layered plot containing {types} plots"Readonlytext.subplotOfSize: "Subplot {index} of {size}"Readonlytext.subplotOfSizeTitled: "Subplot {index} of {size}, {title}"Readonlytext.subplotIndex: "Subplot {index}"Readonlytext.figureLobbyDetails: "{position}: {details}. {prompt}"Readonlytext.pressEnterToSelect: "Press 'ENTER' to select this subplot."Readonlytext.enteredSubplot: "Entered subplot {index} of {size}."Readonlytext.enteredSubplotTitled: "Entered subplot {index} of {size}, {title}."Readonlytext.enteredSubplotTyped: "Entered subplot {index} of {size}, {type} plot."Readonlytext.enteredSubplotTitledTyped: "Entered subplot {index} of {size}, {title}, {type} plot."Readonlytext.terseEmptySubplot: "{label}, empty"Readonlytext.subplotEmpty: "Subplot {index} of {size} is empty, nothing to describe."Readonlytext.subplotEmptyTitled: "Subplot {index} of {size}, {title} is empty, nothing to describe."Readonlytext.figureTerse: "Figure"Readonlytext.figureTerseTitled: "Figure, {title}"Readonlytext.figureTerseSubplot: "Figure, subplot {index}"Readonlytext.returnedToFigure: "Returned to figure overview."Readonlytext.returnedToFigureSubplot: "Returned to figure overview, subplot {index} of {size}."Readonlytext.returnedToFigureSubplotTitled: "Returned to figure overview, subplot {index} of {size}, {title}."Readonlytext.noOutliersFor: "no {section} for {label}"Readonlytext.outliersForOne: "{section} for {label} is {values}"Readonlytext.outliersForMany: "{section} for {label} are {values}"Readonlytext.terseNoOutliers: "{value}, no {section}"Readonlytext.terseOutliers: "{value}, {count} {section} {values}"Readonlytext.shareOfTotal: "{percent}% of it"Readonlytext.intervalRange: "interval {min} through {max}"Readonlytext.intervalFrom: "interval from {min}"Readonlytext.intervalUpTo: "interval up to {max}"Readonlytext.noPoints: "no points"Readonlytext.pointIsOne: "point is: {points}"Readonlytext.pointsAreMany: "points are: {points}"Readonlytext.tersePoints: "points: {points}"Readonlytext.noPointsInCell: "No points in this cell"Readonlytext.noMoreData: "No more data"Readonlytext.noMoreDataVerbose: "No more data to display"Readonlytext.noMoreSubplots: "No more subplots"Readonlytext.noMoreSubplotsVerbose: "No more subplots to display"Readonlytext.textMode: "Text mode is {mode}"Readonlytext.modeOff: "off"Readonlytext.modeTerse: "terse"Readonlytext.modeVerbose: "verbose"Readonlytext.textModeOffHint: "Text mode is off. To enable, press the T key."Readonlytext.trendBull: "bull"Readonlytext.trendBear: "bear"Readonlytext.trendNeutral: "neutral"Readonlytext.noInfoForReview: "No info for review"Readonlytext.reviewMode: "Review is {mode}"Readonlytext.reviewOn: "on"Readonlytext.reviewOff: "off"Readonlytext.modifierControl: "Control"Readonlytext.modifierCommand: "Command"Readonlytext.invalidKey: "Invalid key. Press {modifier} Slash for keyboard help."Readonlytext.brailleUnavailableHere: "Braille is not available here. Press Enter to select a subplot first."Readonlytext.subplotPrefix: "Subplot {index}, "Readonlytext.figureAxisLabelIs: "Figure {axis} label is {label}"Readonlytext.axisLabelIs: "{axis} label is {label}"Readonlytext.axisLabelUnavailable: "{axis} label is not available"Readonlytext.unavailable: "unavailable"Readonlytext.figureTitle: "Figure title"Readonlytext.subplotTitleIndexed: "Subplot {index} title"Readonlytext.subplotTitle: "Subplot title"Readonlytext.title: "Title"Readonlytext.noTitleAvailable: "No title available"Readonlytext.subtitle: "Subtitle"Readonlytext.noSubtitleAvailable: "No subtitle available"Readonlytext.caption: "Caption"Readonlytext.noCaptionAvailable: "No caption available"Readonlytext.notInChart: "Not in a chart, unable to show position."Readonlytext.indexOfSize: "{index} of {size}"Readonlytext.positionIs: "Position is {position} of {total}"Readonlytext.positionIsColumnRow: "Position is column {col} of {cols}, row {row} of {rows}"Readonlytext.positionInSection: "Position is {position} of {total} in {section}"Readonlytext.positionOfTotalWith: "Position is {position} of {total}, {detail}"Readonlytext.level: "Level"Readonlytext.violinOfTotal: "Violin {index} of {total}"Readonlytext.seriesOfTotal: "{noun} {index} of {total}"Readonlytext.seriesNounLine: "Line"Readonlytext.seriesNounObservation: "Observation"Readonlytext.seriesNounCompetitor: "Competitor"Readonlytext.seriesNounSeries: "Series"Readonlytext.columnRowPosition: "Column {col} of {cols}, row {row} of {rows}"Readonlytext.wholeCircle: "the whole circle"Readonlytext.nearlyWholeCircle: "nearly the whole circle"Readonlytext.atClockHour: "at {hour} o'clock"Readonlytext.fromClockHourTo: "from {start} o'clock to {end} o'clock"Readonlytext.noMinimumValue: "No minimum value to go to in this layer"Readonlytext.noMaximumValue: "No maximum value to go to in this layer"Readonlytext.pointPosition: "{point}, {position} of {total}"
The English dictionary, which defines the set of message keys.
Split by the area of the code that speaks each message so a translator can work one area at a time. Keys are namespaced the same way (
text.,settings., …) so two areas cannot define the same key.