MAIDR JavaScript API
    Preparing search index...

    Variable enConst

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

    Type Declaration

    • Readonlycommon.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.rotorNounLinkedNodes: "linked nodes"
    • Readonlymodel.networkLinkAxis: "Links"
    • Readonlymodel.networkAndMore: " and {count} more"
    • Readonlymodel.networkGroupPosition: "{index} of {total}, {size} nodes"
    • 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}"