Refactor BottomNav to use localized labels for navigation items; added support for dynamic language selection based on device state. Updated locale files for English, Traditional Chinese, and Simplified Chinese to include bottom navigation labels.

This commit is contained in:
yangy
2026-05-11 17:42:18 +08:00
parent 68f06344dc
commit ae4ce8bb07
7 changed files with 552 additions and 192 deletions
+63 -2
View File
@@ -1,6 +1,7 @@
{
"home": {
"audioSet": "Audio setting",
"systemSet": "System",
"power": "Power",
"input": "Input",
"output": "Output",
@@ -12,6 +13,16 @@
"powerOffToastDemo": "Demo mode: disconnected from the device.",
"powerOffToastSent": "Shutdown command sent."
},
"vuPage": {
"title": "VU meter gallery"
},
"bottomNav": {
"community": "Community",
"hpEq": "HP-EQ",
"home": "Home",
"effects": "Effects",
"myAi": "My AI"
},
"source": {
"label": "Input/Output",
"input": {
@@ -134,7 +145,7 @@
"Standard": "Standard equalizer preset",
"edit": "Batch Edit",
"headset": "Add HeadSet",
"preamp": "Preamp",
"preamp": "Total gain",
"filters": {
"label": "Filters",
"options": [
@@ -203,7 +214,57 @@
"gain": "GAIN",
"q": "Q value",
"loadDeviceBtn": "confirm",
"peqNoneItem": "Unconfigured"
"peqNoneItem": "Unconfigured",
"eqUi": {
"batchEditTitle": "Batch edit",
"batchEditHint": "11 lines total: line 1 is Preamp, lines 211 are Filter 110. Saving overwrites the current headphone preset.",
"cancel": "Cancel",
"save": "Save",
"tabBrands": "Brands",
"tabModels": "Models",
"tabTarget": "Target",
"searchPlaceholder": "Search brand or model",
"searching": "Searching…",
"noSearchResults": "No matching brand or model",
"loading": "Loading…",
"noBrandMatch": "No matching brands",
"selectBrandFirst": "Choose a brand on the Brands tab first",
"brandLabel": "Brand:",
"modelFromSearchLabel": "Model from search:",
"noModelsForBrand": "No models for this brand",
"targetBrand": "Brand:",
"targetModel": "Model:",
"targetForm": "Form:",
"formAll": "All",
"confirmLoading": "Working…",
"confirmButton": "Confirm",
"selectModelFirst": "Select a model first",
"noTargets": "No target curves available",
"closeDrawer": "Close",
"toastBatchApplied": "Batch edit applied",
"toastBatchParseError": "Invalid batch edit format",
"toastBrandsFail": "Failed to load brands",
"toastModelsFail": "Failed to load models",
"toastCurveFail": "Failed to load curve",
"toastNewEqOk": "New headphone EQ saved",
"toastTargetSelected": "Target selected: {{name}}",
"deleteConfirm": "Delete headphone \"{{name}}\"?",
"toastDeleted": "Headphone removed",
"toastDeleteFail": "Failed to delete headphone",
"bassBoost": "Bass boost: fc {{fc}}, q {{q}}, gain {{gain}} dB",
"errMinLines": "At least 11 lines required (Preamp + 10 filters)",
"errPreampFirstLine": "Line 1 must look like Preamp:-5.96dB",
"errPreampValue": "Invalid Preamp value",
"errFilterLine": "Line {{line}} does not match the Filter format",
"errFilterNoRange": "Filter number {{no}} is out of range",
"errFilterType": "Invalid type for filter {{no}} ({{type}})",
"errFilterNumbers": "Invalid numbers for filter {{no}}",
"errFilterAll": "Filters 110 must all be present",
"chartCopyTo": "Copy to {{mode}}",
"chartLoadToDevice": "Load to device",
"toastChartCopied": "Copied to {{mode}}",
"toastChartLoadedDevice": "Loaded to device"
}
},
"dac": {
"balance": "Left-right balance",