committed by
GitHub
35 changed files with 2051 additions and 1978 deletions
@ -1,3 +1,3 @@ |
|||||
{ |
{ |
||||
"recommendations": ["bradlc.vscode-tailwindcss", "biomejs.biome"] |
"recommendations": ["bradlc.vscode-tailwindcss", "biomejs.biome"] |
||||
} |
} |
||||
|
|||||
@ -1,10 +1,10 @@ |
|||||
{ |
{ |
||||
"editor.formatOnSave": true, |
"editor.formatOnSave": true, |
||||
"editor.codeActionsOnSave": { |
"editor.codeActionsOnSave": { |
||||
"source.fixAll.biome": "explicit", |
"source.fixAll.biome": "explicit" |
||||
}, |
}, |
||||
"search.exclude": { |
"search.exclude": { |
||||
"**/i18n/locales/*-*/**": true, |
"**/i18n/locales/*-*/**": true |
||||
}, |
}, |
||||
"vitest.workspaceConfig": "vitest.config.ts", |
"vitest.workspaceConfig": "vitest.config.ts" |
||||
} |
} |
||||
|
|||||
@ -1,44 +1,71 @@ |
|||||
{ |
{ |
||||
"files": { |
"files": { |
||||
"includes": ["**/*.ts", "**/*.tsx", "!**/*.test.ts", "!**/*.test.tsx", "!npm_modules/**", "!dist/**", "!npm/**"], |
"includes": [ |
||||
"ignoreUnknown": false |
"**/*.ts", |
||||
}, |
"**/*.tsx", |
||||
"formatter": { |
"!npm_modules/**", |
||||
"enabled": true, |
"!dist/**", |
||||
"formatWithErrors": false, |
"!npm/**", |
||||
"indentStyle": "space", |
"**/*.json", |
||||
"indentWidth": 2, |
"!**/locales/*-*/*.json" |
||||
"lineWidth": 80, |
], |
||||
"attributePosition": "auto" |
"ignoreUnknown": false |
||||
}, |
}, |
||||
"linter": { |
"formatter": { |
||||
"enabled": true, |
"enabled": true, |
||||
|
"formatWithErrors": false, |
||||
|
"indentStyle": "space", |
||||
|
"indentWidth": 2, |
||||
|
"lineWidth": 80, |
||||
|
"attributePosition": "auto" |
||||
|
}, |
||||
|
"linter": { |
||||
|
"enabled": true, |
||||
"includes": ["**", "!test/**"], |
"includes": ["**", "!test/**"], |
||||
"rules": { |
"rules": { |
||||
"recommended": true, |
"recommended": true, |
||||
"suspicious": { |
"suspicious": { |
||||
"noExplicitAny": "error", |
"noExplicitAny": "error", |
||||
"noDebugger": "error" |
"noDebugger": "error" |
||||
}, |
}, |
||||
"style": { |
"style": { |
||||
"useBlockStatements": "error", |
"useBlockStatements": "error", |
||||
"useSingleVarDeclarator": "off" |
"useSingleVarDeclarator": "off" |
||||
}, |
}, |
||||
"correctness": { |
"correctness": { |
||||
"noUnusedVariables": "error", |
"noUnusedVariables": "error", |
||||
"noUnusedImports": "error" |
"noUnusedImports": "error" |
||||
} |
} |
||||
} |
} |
||||
}, |
}, |
||||
"javascript": { |
"javascript": { |
||||
"formatter": { |
"formatter": { |
||||
"quoteStyle": "double", |
"quoteStyle": "double", |
||||
"semicolons": "always" |
"semicolons": "always" |
||||
} |
} |
||||
}, |
}, |
||||
"json": { |
"json": { |
||||
"formatter": { |
"formatter": { |
||||
"enabled": false |
"enabled": true |
||||
|
} |
||||
|
}, |
||||
|
"overrides": [ |
||||
|
{ |
||||
|
"includes": [ |
||||
|
"**/*.test.ts", |
||||
|
"**/*.test.tsx", |
||||
|
"**/__tests__/**/*.{ts,tsx}" |
||||
|
], |
||||
|
"linter": { |
||||
|
"rules": { |
||||
|
"suspicious": { |
||||
|
"noExplicitAny": "off" |
||||
|
}, |
||||
|
"style": { |
||||
|
"noNonNullAssertion": "off" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
} |
} |
||||
} |
] |
||||
} |
} |
||||
|
|||||
@ -1,52 +1,52 @@ |
|||||
{ |
{ |
||||
"name": "@meshtastic/web", |
"name": "@meshtastic/web", |
||||
"version": "2.7.0-0", |
"version": "2.7.0-0", |
||||
"type": "module", |
"type": "module", |
||||
"description": "Meshtastic web client monorepo", |
"description": "Meshtastic web client monorepo", |
||||
"license": "GPL-3.0-only", |
"license": "GPL-3.0-only", |
||||
"repository": { |
"repository": { |
||||
"type": "git", |
"type": "git", |
||||
"url": "git+https://github.com/meshtastic/web.git" |
"url": "git+https://github.com/meshtastic/web.git" |
||||
}, |
}, |
||||
"bugs": { |
"bugs": { |
||||
"url": "https://github.com/meshtastic/web/issues" |
"url": "https://github.com/meshtastic/web/issues" |
||||
}, |
}, |
||||
"homepage": "https://meshtastic.org", |
"homepage": "https://meshtastic.org", |
||||
"simple-git-hooks": { |
"simple-git-hooks": { |
||||
"pre-commit": "pnpm run check:fix" |
"pre-commit": "pnpm run check:fix" |
||||
}, |
}, |
||||
"scripts": { |
"scripts": { |
||||
"preinstall": "npx only-allow pnpm", |
"preinstall": "npx only-allow pnpm", |
||||
"lint": "biome lint", |
"lint": "biome lint", |
||||
"lint:fix": "biome lint --write", |
"lint:fix": "biome lint --write", |
||||
"format": "biome format", |
"format": "biome format", |
||||
"format:fix": "biome format . --write", |
"format:fix": "biome format . --write", |
||||
"check": "biome check", |
"check": "biome check", |
||||
"check:fix": "biome check --write", |
"check:fix": "biome check --write", |
||||
"build:all": "pnpm run --filter '*' build", |
"build:all": "pnpm run --filter '*' build", |
||||
"clean:all": "pnpm run --filter '*' clean", |
"clean:all": "pnpm run --filter '*' clean", |
||||
"publish:packages": "pnpm run build --filter 'packages/transport-*'", |
"publish:packages": "pnpm run build --filter 'packages/transport-*'", |
||||
"test": "vitest" |
"test": "vitest" |
||||
}, |
}, |
||||
"dependencies": { |
"dependencies": { |
||||
"@bufbuild/protobuf": "^2.6.1", |
"@bufbuild/protobuf": "^2.6.1", |
||||
"@meshtastic/protobufs": "npm:@jsr/meshtastic__protobufs@^2.7.0", |
"@meshtastic/protobufs": "npm:@jsr/meshtastic__protobufs@^2.7.0", |
||||
"ste-simple-events": "^3.0.11", |
"ste-simple-events": "^3.0.11", |
||||
"tslog": "^4.9.3" |
"tslog": "^4.9.3" |
||||
}, |
}, |
||||
"devDependencies": { |
"devDependencies": { |
||||
"@types/node": "^22.16.4", |
"@types/node": "^22.16.4", |
||||
"@biomejs/biome": "2.0.6", |
"@biomejs/biome": "2.0.6", |
||||
"tsdown": "^0.13.4", |
"tsdown": "^0.13.4", |
||||
"typescript": "^5.8.3", |
"typescript": "^5.8.3", |
||||
"vitest": "^3.2.4" |
"vitest": "^3.2.4" |
||||
}, |
}, |
||||
"pnpm": { |
"pnpm": { |
||||
"onlyBuiltDependencies": [ |
"onlyBuiltDependencies": [ |
||||
"@tailwindcss/oxide", |
"@tailwindcss/oxide", |
||||
"core-js", |
"core-js", |
||||
"esbuild", |
"esbuild", |
||||
"simple-git-hooks" |
"simple-git-hooks" |
||||
] |
] |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,7 +1,7 @@ |
|||||
{ |
{ |
||||
"name": "@meshtastic/core", |
"name": "@meshtastic/core", |
||||
"version": "2.6.6", |
"version": "2.6.6", |
||||
"exports": { |
"exports": { |
||||
".": "./mod.ts" |
".": "./mod.ts" |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,112 +1,112 @@ |
|||||
{ |
{ |
||||
"name": "meshtastic-web", |
"name": "meshtastic-web", |
||||
"version": "2.6.6-0", |
"version": "2.6.6-0", |
||||
"type": "module", |
"type": "module", |
||||
"description": "Meshtastic web client", |
"description": "Meshtastic web client", |
||||
"license": "GPL-3.0-only", |
"license": "GPL-3.0-only", |
||||
"repository": { |
"repository": { |
||||
"type": "git", |
"type": "git", |
||||
"url": "git+https://github.com/meshtastic/web.git" |
"url": "git+https://github.com/meshtastic/web.git" |
||||
}, |
}, |
||||
"bugs": { |
"bugs": { |
||||
"url": "https://github.com/meshtastic/web/issues" |
"url": "https://github.com/meshtastic/web/issues" |
||||
}, |
}, |
||||
"homepage": "https://meshtastic.org", |
"homepage": "https://meshtastic.org", |
||||
"scripts": { |
"scripts": { |
||||
"preinstall": "npx only-allow pnpm", |
"preinstall": "npx only-allow pnpm", |
||||
"build": "vite build", |
"build": "vite build", |
||||
"build:analyze": "BUNDLE_ANALYZE=true bun run build", |
"build:analyze": "BUNDLE_ANALYZE=true bun run build", |
||||
"check": "biome check src/", |
"check": "biome check src/", |
||||
"check:fix": "biome check --write src/", |
"check:fix": "biome check --write src/", |
||||
"dev": "vite", |
"dev": "vite", |
||||
"test": "vitest", |
"test": "vitest", |
||||
"ts:check": "bun run tsc --noEmit", |
"ts:check": "bun run tsc --noEmit", |
||||
"preview": "vite preview", |
"preview": "vite preview", |
||||
"docker:build": "docker build -t meshtastic-web:latest -f ./infra/Containerfile .", |
"docker:build": "docker build -t meshtastic-web:latest -f ./infra/Containerfile .", |
||||
"generate:routes": "bun @tanstack/router-cli generate --outDir src/ routes --rootRoutePath /", |
"generate:routes": "bun @tanstack/router-cli generate --outDir src/ routes --rootRoutePath /", |
||||
"package": "gzipper c -i html,js,css,png,ico,svg,json,webmanifest,txt dist dist/output && tar -cvf dist/build.tar -C ./dist/output/ ." |
"package": "gzipper c -i html,js,css,png,ico,svg,json,webmanifest,txt dist dist/output && tar -cvf dist/build.tar -C ./dist/output/ ." |
||||
}, |
}, |
||||
"dependencies": { |
"dependencies": { |
||||
"@bufbuild/protobuf": "^2.6.0", |
"@bufbuild/protobuf": "^2.6.0", |
||||
"@hookform/resolvers": "^5.1.1", |
"@hookform/resolvers": "^5.1.1", |
||||
"@meshtastic/core": "workspace:*", |
"@meshtastic/core": "workspace:*", |
||||
"@meshtastic/transport-http": "workspace:*", |
"@meshtastic/transport-http": "workspace:*", |
||||
"@meshtastic/transport-web-bluetooth": "workspace:*", |
"@meshtastic/transport-web-bluetooth": "workspace:*", |
||||
"@meshtastic/transport-web-serial": "workspace:*", |
"@meshtastic/transport-web-serial": "workspace:*", |
||||
"@noble/curves": "^1.9.2", |
"@noble/curves": "^1.9.2", |
||||
"@radix-ui/react-accordion": "^1.2.11", |
"@radix-ui/react-accordion": "^1.2.11", |
||||
"@radix-ui/react-checkbox": "^1.3.2", |
"@radix-ui/react-checkbox": "^1.3.2", |
||||
"@radix-ui/react-dialog": "^1.1.14", |
"@radix-ui/react-dialog": "^1.1.14", |
||||
"@radix-ui/react-dropdown-menu": "^2.1.15", |
"@radix-ui/react-dropdown-menu": "^2.1.15", |
||||
"@radix-ui/react-label": "^2.1.7", |
"@radix-ui/react-label": "^2.1.7", |
||||
"@radix-ui/react-menubar": "^1.1.15", |
"@radix-ui/react-menubar": "^1.1.15", |
||||
"@radix-ui/react-popover": "^1.1.14", |
"@radix-ui/react-popover": "^1.1.14", |
||||
"@radix-ui/react-scroll-area": "^1.2.9", |
"@radix-ui/react-scroll-area": "^1.2.9", |
||||
"@radix-ui/react-select": "^2.2.5", |
"@radix-ui/react-select": "^2.2.5", |
||||
"@radix-ui/react-separator": "^1.1.7", |
"@radix-ui/react-separator": "^1.1.7", |
||||
"@radix-ui/react-slider": "^1.3.5", |
"@radix-ui/react-slider": "^1.3.5", |
||||
"@radix-ui/react-switch": "^1.2.5", |
"@radix-ui/react-switch": "^1.2.5", |
||||
"@radix-ui/react-tabs": "^1.1.12", |
"@radix-ui/react-tabs": "^1.1.12", |
||||
"@radix-ui/react-toast": "^1.2.14", |
"@radix-ui/react-toast": "^1.2.14", |
||||
"@radix-ui/react-toggle-group": "^1.1.10", |
"@radix-ui/react-toggle-group": "^1.1.10", |
||||
"@radix-ui/react-tooltip": "^1.2.7", |
"@radix-ui/react-tooltip": "^1.2.7", |
||||
"@radix-ui/react-visually-hidden": "^1.2.3", |
"@radix-ui/react-visually-hidden": "^1.2.3", |
||||
"@tailwindcss/vite": "^4.1.11", |
"@tailwindcss/vite": "^4.1.11", |
||||
"@tanstack/react-router": "^1.127.9", |
"@tanstack/react-router": "^1.127.9", |
||||
"@tanstack/react-router-devtools": "^1.127.9", |
"@tanstack/react-router-devtools": "^1.127.9", |
||||
"@tanstack/router-cli": "^1.127.8", |
"@tanstack/router-cli": "^1.127.8", |
||||
"@tanstack/router-devtools": "^1.127.9", |
"@tanstack/router-devtools": "^1.127.9", |
||||
"@turf/turf": "^7.2.0", |
"@turf/turf": "^7.2.0", |
||||
"@types/node": "^24.0.14", |
"@types/node": "^24.0.14", |
||||
"@types/web-bluetooth": "^0.0.21", |
"@types/web-bluetooth": "^0.0.21", |
||||
"base64-js": "^1.5.1", |
"base64-js": "^1.5.1", |
||||
"class-variance-authority": "^0.7.1", |
"class-variance-authority": "^0.7.1", |
||||
"clsx": "^2.1.1", |
"clsx": "^2.1.1", |
||||
"cmdk": "^1.1.1", |
"cmdk": "^1.1.1", |
||||
"crypto-random-string": "^5.0.0", |
"crypto-random-string": "^5.0.0", |
||||
"i18next": "^25.3.2", |
"i18next": "^25.3.2", |
||||
"i18next-browser-languagedetector": "^8.2.0", |
"i18next-browser-languagedetector": "^8.2.0", |
||||
"i18next-http-backend": "^3.0.2", |
"i18next-http-backend": "^3.0.2", |
||||
"idb-keyval": "^6.2.2", |
"idb-keyval": "^6.2.2", |
||||
"immer": "^10.1.1", |
"immer": "^10.1.1", |
||||
"js-cookie": "^3.0.5", |
"js-cookie": "^3.0.5", |
||||
"lucide-react": "^0.525.0", |
"lucide-react": "^0.525.0", |
||||
"maplibre-gl": "5.6.1", |
"maplibre-gl": "5.6.1", |
||||
"react": "^19.1.0", |
"react": "^19.1.0", |
||||
"react-dom": "^19.1.0", |
"react-dom": "^19.1.0", |
||||
"react-error-boundary": "^6.0.0", |
"react-error-boundary": "^6.0.0", |
||||
"react-hook-form": "^7.60.0", |
"react-hook-form": "^7.60.0", |
||||
"react-i18next": "^15.6.0", |
"react-i18next": "^15.6.0", |
||||
"react-map-gl": "8.0.4", |
"react-map-gl": "8.0.4", |
||||
"react-qrcode-logo": "^3.0.0", |
"react-qrcode-logo": "^3.0.0", |
||||
"rfc4648": "^1.5.4", |
"rfc4648": "^1.5.4", |
||||
"vite-plugin-html": "^3.2.2", |
"vite-plugin-html": "^3.2.2", |
||||
"vite": "^7.0.4", |
"vite": "^7.0.4", |
||||
"zod": "^4.0.5", |
"zod": "^4.0.5", |
||||
"zustand": "5.0.6" |
"zustand": "5.0.6" |
||||
}, |
}, |
||||
"devDependencies": { |
"devDependencies": { |
||||
"@tanstack/router-plugin": "^1.127.9", |
"@tanstack/router-plugin": "^1.127.9", |
||||
"@testing-library/jest-dom": "^6.6.3", |
"@testing-library/jest-dom": "^6.6.3", |
||||
"@testing-library/react": "^16.3.0", |
"@testing-library/react": "^16.3.0", |
||||
"@testing-library/user-event": "^14.6.1", |
"@testing-library/user-event": "^14.6.1", |
||||
"@types/chrome": "^0.1.0", |
"@types/chrome": "^0.1.0", |
||||
"@types/js-cookie": "^3.0.6", |
"@types/js-cookie": "^3.0.6", |
||||
"@types/react": "^19.1.8", |
"@types/react": "^19.1.8", |
||||
"@types/react-dom": "^19.1.6", |
"@types/react-dom": "^19.1.6", |
||||
"@types/serviceworker": "^0.0.142", |
"@types/serviceworker": "^0.0.142", |
||||
"@types/w3c-web-serial": "^1.0.8", |
"@types/w3c-web-serial": "^1.0.8", |
||||
"@vitejs/plugin-react": "^4.6.0", |
"@vitejs/plugin-react": "^4.6.0", |
||||
"autoprefixer": "^10.4.21", |
"autoprefixer": "^10.4.21", |
||||
"gzipper": "^8.2.1", |
"gzipper": "^8.2.1", |
||||
"happy-dom": "^18.0.1", |
"happy-dom": "^18.0.1", |
||||
"simple-git-hooks": "^2.13.0", |
"simple-git-hooks": "^2.13.0", |
||||
"tailwind-merge": "^3.3.1", |
"tailwind-merge": "^3.3.1", |
||||
"tailwindcss": "^4.1.11", |
"tailwindcss": "^4.1.11", |
||||
"tailwindcss-animate": "^1.0.7", |
"tailwindcss-animate": "^1.0.7", |
||||
"tar": "^7.4.3", |
"tar": "^7.4.3", |
||||
"testing-library": "^0.0.2", |
"testing-library": "^0.0.2", |
||||
"typescript": "^5.8.3", |
"typescript": "^5.8.3", |
||||
"vitest": "^3.2.4" |
"vitest": "^3.2.4" |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,69 +1,69 @@ |
|||||
{ |
{ |
||||
"page": { |
"page": { |
||||
"sectionLabel": "Channels", |
"sectionLabel": "Channels", |
||||
"channelName": "Channel: {{channelName}}", |
"channelName": "Channel: {{channelName}}", |
||||
"broadcastLabel": "Primary", |
"broadcastLabel": "Primary", |
||||
"channelIndex": "Ch {{index}}" |
"channelIndex": "Ch {{index}}" |
||||
}, |
}, |
||||
"validation": { |
"validation": { |
||||
"pskInvalid": "Please enter a valid {{bits}} bit PSK." |
"pskInvalid": "Please enter a valid {{bits}} bit PSK." |
||||
}, |
}, |
||||
"settings": { |
"settings": { |
||||
"label": "Channel Settings", |
"label": "Channel Settings", |
||||
"description": "Crypto, MQTT & misc settings" |
"description": "Crypto, MQTT & misc settings" |
||||
}, |
}, |
||||
"role": { |
"role": { |
||||
"label": "Role", |
"label": "Role", |
||||
"description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed", |
"description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed", |
||||
"options": { |
"options": { |
||||
"primary": "PRIMARY", |
"primary": "PRIMARY", |
||||
"disabled": "DISABLED", |
"disabled": "DISABLED", |
||||
"secondary": "SECONDARY" |
"secondary": "SECONDARY" |
||||
} |
} |
||||
}, |
}, |
||||
"psk": { |
"psk": { |
||||
"label": "Pre-Shared Key", |
"label": "Pre-Shared Key", |
||||
"description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)", |
"description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)", |
||||
"generate": "Generate" |
"generate": "Generate" |
||||
}, |
}, |
||||
"name": { |
"name": { |
||||
"label": "Name", |
"label": "Name", |
||||
"description": "A unique name for the channel <12 bytes, leave blank for default" |
"description": "A unique name for the channel <12 bytes, leave blank for default" |
||||
}, |
}, |
||||
"uplinkEnabled": { |
"uplinkEnabled": { |
||||
"label": "Uplink Enabled", |
"label": "Uplink Enabled", |
||||
"description": "Send messages from the local mesh to MQTT" |
"description": "Send messages from the local mesh to MQTT" |
||||
}, |
}, |
||||
"downlinkEnabled": { |
"downlinkEnabled": { |
||||
"label": "Downlink Enabled", |
"label": "Downlink Enabled", |
||||
"description": "Send messages from MQTT to the local mesh" |
"description": "Send messages from MQTT to the local mesh" |
||||
}, |
}, |
||||
"positionPrecision": { |
"positionPrecision": { |
||||
"label": "Location", |
"label": "Location", |
||||
"description": "The precision of the location to share with the channel. Can be disabled.", |
"description": "The precision of the location to share with the channel. Can be disabled.", |
||||
"options": { |
"options": { |
||||
"none": "Do not share location", |
"none": "Do not share location", |
||||
"precise": "Precise Location", |
"precise": "Precise Location", |
||||
"metric_km23": "Within 23 kilometers", |
"metric_km23": "Within 23 kilometers", |
||||
"metric_km12": "Within 12 kilometers", |
"metric_km12": "Within 12 kilometers", |
||||
"metric_km5_8": "Within 5.8 kilometers", |
"metric_km5_8": "Within 5.8 kilometers", |
||||
"metric_km2_9": "Within 2.9 kilometers", |
"metric_km2_9": "Within 2.9 kilometers", |
||||
"metric_km1_5": "Within 1.5 kilometers", |
"metric_km1_5": "Within 1.5 kilometers", |
||||
"metric_m700": "Within 700 meters", |
"metric_m700": "Within 700 meters", |
||||
"metric_m350": "Within 350 meters", |
"metric_m350": "Within 350 meters", |
||||
"metric_m200": "Within 200 meters", |
"metric_m200": "Within 200 meters", |
||||
"metric_m90": "Within 90 meters", |
"metric_m90": "Within 90 meters", |
||||
"metric_m50": "Within 50 meters", |
"metric_m50": "Within 50 meters", |
||||
"imperial_mi15": "Within 15 miles", |
"imperial_mi15": "Within 15 miles", |
||||
"imperial_mi7_3": "Within 7.3 miles", |
"imperial_mi7_3": "Within 7.3 miles", |
||||
"imperial_mi3_6": "Within 3.6 miles", |
"imperial_mi3_6": "Within 3.6 miles", |
||||
"imperial_mi1_8": "Within 1.8 miles", |
"imperial_mi1_8": "Within 1.8 miles", |
||||
"imperial_mi0_9": "Within 0.9 miles", |
"imperial_mi0_9": "Within 0.9 miles", |
||||
"imperial_mi0_5": "Within 0.5 miles", |
"imperial_mi0_5": "Within 0.5 miles", |
||||
"imperial_mi0_2": "Within 0.2 miles", |
"imperial_mi0_2": "Within 0.2 miles", |
||||
"imperial_ft600": "Within 600 feet", |
"imperial_ft600": "Within 600 feet", |
||||
"imperial_ft300": "Within 300 feet", |
"imperial_ft300": "Within 300 feet", |
||||
"imperial_ft150": "Within 150 feet" |
"imperial_ft150": "Within 150 feet" |
||||
} |
} |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,113 +1,113 @@ |
|||||
{ |
{ |
||||
"button": { |
"button": { |
||||
"apply": "Apply", |
"apply": "Apply", |
||||
"backupKey": "Backup Key", |
"backupKey": "Backup Key", |
||||
"cancel": "Cancel", |
"cancel": "Cancel", |
||||
"clearMessages": "Clear Messages", |
"clearMessages": "Clear Messages", |
||||
"close": "Close", |
"close": "Close", |
||||
"confirm": "Confirm", |
"confirm": "Confirm", |
||||
"delete": "Delete", |
"delete": "Delete", |
||||
"dismiss": "Dismiss", |
"dismiss": "Dismiss", |
||||
"download": "Download", |
"download": "Download", |
||||
"export": "Export", |
"export": "Export", |
||||
"generate": "Generate", |
"generate": "Generate", |
||||
"regenerate": "Regenerate", |
"regenerate": "Regenerate", |
||||
"import": "Import", |
"import": "Import", |
||||
"message": "Message", |
"message": "Message", |
||||
"now": "Now", |
"now": "Now", |
||||
"ok": "OK", |
"ok": "OK", |
||||
"print": "Print", |
"print": "Print", |
||||
"remove": "Remove", |
"remove": "Remove", |
||||
"requestNewKeys": "Request New Keys", |
"requestNewKeys": "Request New Keys", |
||||
"requestPosition": "Request Position", |
"requestPosition": "Request Position", |
||||
"reset": "Reset", |
"reset": "Reset", |
||||
"save": "Save", |
"save": "Save", |
||||
"scanQr": "Scan QR Code", |
"scanQr": "Scan QR Code", |
||||
"traceRoute": "Trace Route", |
"traceRoute": "Trace Route", |
||||
"submit": "Submit" |
"submit": "Submit" |
||||
}, |
}, |
||||
"app": { |
"app": { |
||||
"title": "Meshtastic", |
"title": "Meshtastic", |
||||
"fullTitle": "Meshtastic Web Client" |
"fullTitle": "Meshtastic Web Client" |
||||
}, |
}, |
||||
"loading": "Loading...", |
"loading": "Loading...", |
||||
"unit": { |
"unit": { |
||||
"cps": "CPS", |
"cps": "CPS", |
||||
"dbm": "dBm", |
"dbm": "dBm", |
||||
"hertz": "Hz", |
"hertz": "Hz", |
||||
"hop": { |
"hop": { |
||||
"one": "Hop", |
"one": "Hop", |
||||
"plural": "Hops" |
"plural": "Hops" |
||||
}, |
}, |
||||
"hopsAway": { |
"hopsAway": { |
||||
"one": "{{count}} hop away", |
"one": "{{count}} hop away", |
||||
"plural": "{{count}} hops away", |
"plural": "{{count}} hops away", |
||||
"unknown": "Unknown hops away" |
"unknown": "Unknown hops away" |
||||
}, |
}, |
||||
"megahertz": "MHz", |
"megahertz": "MHz", |
||||
"raw": "raw", |
"raw": "raw", |
||||
"meter": { "one": "Meter", "plural": "Meters", "suffix": "m" }, |
"meter": { "one": "Meter", "plural": "Meters", "suffix": "m" }, |
||||
"minute": { "one": "Minute", "plural": "Minutes" }, |
"minute": { "one": "Minute", "plural": "Minutes" }, |
||||
"hour": { "one": "Hour", "plural": "Hours" }, |
"hour": { "one": "Hour", "plural": "Hours" }, |
||||
"millisecond": { |
"millisecond": { |
||||
"one": "Millisecond", |
"one": "Millisecond", |
||||
"plural": "Milliseconds", |
"plural": "Milliseconds", |
||||
"suffix": "ms" |
"suffix": "ms" |
||||
}, |
}, |
||||
"second": { "one": "Second", "plural": "Seconds" }, |
"second": { "one": "Second", "plural": "Seconds" }, |
||||
"day": { "one": "Day", "plural": "Days" }, |
"day": { "one": "Day", "plural": "Days" }, |
||||
"month": { "one": "Month", "plural": "Months" }, |
"month": { "one": "Month", "plural": "Months" }, |
||||
"year": { "one": "Year", "plural": "Years" }, |
"year": { "one": "Year", "plural": "Years" }, |
||||
"snr": "SNR", |
"snr": "SNR", |
||||
"volt": { "one": "Volt", "plural": "Volts", "suffix": "V" }, |
"volt": { "one": "Volt", "plural": "Volts", "suffix": "V" }, |
||||
"record": { "one": "Records", "plural": "Records" } |
"record": { "one": "Records", "plural": "Records" } |
||||
}, |
}, |
||||
"security": { |
"security": { |
||||
"0bit": "Empty", |
"0bit": "Empty", |
||||
"8bit": "8 bit", |
"8bit": "8 bit", |
||||
"128bit": "128 bit", |
"128bit": "128 bit", |
||||
"256bit": "256 bit" |
"256bit": "256 bit" |
||||
}, |
}, |
||||
"unknown": { |
"unknown": { |
||||
"longName": "Unknown", |
"longName": "Unknown", |
||||
"shortName": "UNK", |
"shortName": "UNK", |
||||
"notAvailable": "N/A", |
"notAvailable": "N/A", |
||||
"num": "??" |
"num": "??" |
||||
}, |
}, |
||||
"nodeUnknownPrefix": "!", |
"nodeUnknownPrefix": "!", |
||||
"unset": "UNSET", |
"unset": "UNSET", |
||||
"fallbackName": "Meshtastic {{last4}}", |
"fallbackName": "Meshtastic {{last4}}", |
||||
"node": "Node", |
"node": "Node", |
||||
"formValidation": { |
"formValidation": { |
||||
"unsavedChanges": "Unsaved changes", |
"unsavedChanges": "Unsaved changes", |
||||
"tooBig": { |
"tooBig": { |
||||
"string": "Too long, expected less than or equal to {{maximum}} characters.", |
"string": "Too long, expected less than or equal to {{maximum}} characters.", |
||||
"number": "Too big, expected a number smaller than or equal to {{maximum}}.", |
"number": "Too big, expected a number smaller than or equal to {{maximum}}.", |
||||
"bytes": "Too big, expected less than or equal to {{params.maximum}} bytes." |
"bytes": "Too big, expected less than or equal to {{params.maximum}} bytes." |
||||
}, |
}, |
||||
"tooSmall": { |
"tooSmall": { |
||||
"string": "Too short, expected more than or equal to {{minimum}} characters.", |
"string": "Too short, expected more than or equal to {{minimum}} characters.", |
||||
"number": "Too small, expected a number larger than or equal to {{minimum}}." |
"number": "Too small, expected a number larger than or equal to {{minimum}}." |
||||
}, |
}, |
||||
"invalidFormat": { |
"invalidFormat": { |
||||
"ipv4": "Invalid format, expected an IPv4 address.", |
"ipv4": "Invalid format, expected an IPv4 address.", |
||||
"key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)." |
"key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)." |
||||
}, |
}, |
||||
"invalidType": { |
"invalidType": { |
||||
"number": "Invalid type, expected a number." |
"number": "Invalid type, expected a number." |
||||
}, |
}, |
||||
"pskLength": { |
"pskLength": { |
||||
"0bit": "Key is required to be empty.", |
"0bit": "Key is required to be empty.", |
||||
"8bit": "Key is required to be an 8 bit pre-shared key (PSK).", |
"8bit": "Key is required to be an 8 bit pre-shared key (PSK).", |
||||
"128bit": "Key is required to be a 128 bit pre-shared key (PSK).", |
"128bit": "Key is required to be a 128 bit pre-shared key (PSK).", |
||||
"256bit": "Key is required to be a 256 bit pre-shared key (PSK)." |
"256bit": "Key is required to be a 256 bit pre-shared key (PSK)." |
||||
}, |
}, |
||||
"required": { |
"required": { |
||||
"generic": "This field is required.", |
"generic": "This field is required.", |
||||
"managed": "At least one admin key is requred if the node is managed.", |
"managed": "At least one admin key is requred if the node is managed.", |
||||
"key": "Key is required." |
"key": "Key is required." |
||||
} |
} |
||||
}, |
}, |
||||
"yes": "Yes", |
"yes": "Yes", |
||||
"no": "No" |
"no": "No" |
||||
} |
} |
||||
|
|||||
@ -1,12 +1,12 @@ |
|||||
{ |
{ |
||||
"dashboard": { |
"dashboard": { |
||||
"title": "Connected Devices", |
"title": "Connected Devices", |
||||
"description": "Manage your connected Meshtastic devices.", |
"description": "Manage your connected Meshtastic devices.", |
||||
"connectionType_ble": "BLE", |
"connectionType_ble": "BLE", |
||||
"connectionType_serial": "Serial", |
"connectionType_serial": "Serial", |
||||
"connectionType_network": "Network", |
"connectionType_network": "Network", |
||||
"noDevicesTitle": "No devices connected", |
"noDevicesTitle": "No devices connected", |
||||
"noDevicesDescription": "Connect a new device to get started.", |
"noDevicesDescription": "Connect a new device to get started.", |
||||
"button_newConnection": "New Connection" |
"button_newConnection": "New Connection" |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,428 +1,428 @@ |
|||||
{ |
{ |
||||
"page": { |
"page": { |
||||
"title": "Configuration", |
"title": "Configuration", |
||||
"tabBluetooth": "Bluetooth", |
"tabBluetooth": "Bluetooth", |
||||
"tabDevice": "Device", |
"tabDevice": "Device", |
||||
"tabDisplay": "Display", |
"tabDisplay": "Display", |
||||
"tabLora": "LoRa", |
"tabLora": "LoRa", |
||||
"tabNetwork": "Network", |
"tabNetwork": "Network", |
||||
"tabPosition": "Position", |
"tabPosition": "Position", |
||||
"tabPower": "Power", |
"tabPower": "Power", |
||||
"tabSecurity": "Security" |
"tabSecurity": "Security" |
||||
}, |
}, |
||||
"sidebar": { |
"sidebar": { |
||||
"label": "Modules" |
"label": "Modules" |
||||
}, |
}, |
||||
"device": { |
"device": { |
||||
"title": "Device Settings", |
"title": "Device Settings", |
||||
"description": "Settings for the device", |
"description": "Settings for the device", |
||||
"buttonPin": { |
"buttonPin": { |
||||
"description": "Button pin override", |
"description": "Button pin override", |
||||
"label": "Button Pin" |
"label": "Button Pin" |
||||
}, |
}, |
||||
"buzzerPin": { |
"buzzerPin": { |
||||
"description": "Buzzer pin override", |
"description": "Buzzer pin override", |
||||
"label": "Buzzer Pin" |
"label": "Buzzer Pin" |
||||
}, |
}, |
||||
"disableTripleClick": { |
"disableTripleClick": { |
||||
"description": "Disable triple click", |
"description": "Disable triple click", |
||||
"label": "Disable Triple Click" |
"label": "Disable Triple Click" |
||||
}, |
}, |
||||
"doubleTapAsButtonPress": { |
"doubleTapAsButtonPress": { |
||||
"description": "Treat double tap as button press", |
"description": "Treat double tap as button press", |
||||
"label": "Double Tap as Button Press" |
"label": "Double Tap as Button Press" |
||||
}, |
}, |
||||
"ledHeartbeatDisabled": { |
"ledHeartbeatDisabled": { |
||||
"description": "Disable default blinking LED", |
"description": "Disable default blinking LED", |
||||
"label": "LED Heartbeat Disabled" |
"label": "LED Heartbeat Disabled" |
||||
}, |
}, |
||||
"nodeInfoBroadcastInterval": { |
"nodeInfoBroadcastInterval": { |
||||
"description": "How often to broadcast node info", |
"description": "How often to broadcast node info", |
||||
"label": "Node Info Broadcast Interval" |
"label": "Node Info Broadcast Interval" |
||||
}, |
}, |
||||
"posixTimezone": { |
"posixTimezone": { |
||||
"description": "The POSIX timezone string for the device", |
"description": "The POSIX timezone string for the device", |
||||
"label": "POSIX Timezone" |
"label": "POSIX Timezone" |
||||
}, |
}, |
||||
"rebroadcastMode": { |
"rebroadcastMode": { |
||||
"description": "How to handle rebroadcasting", |
"description": "How to handle rebroadcasting", |
||||
"label": "Rebroadcast Mode" |
"label": "Rebroadcast Mode" |
||||
}, |
}, |
||||
"role": { |
"role": { |
||||
"description": "What role the device performs on the mesh", |
"description": "What role the device performs on the mesh", |
||||
"label": "Role" |
"label": "Role" |
||||
} |
} |
||||
}, |
}, |
||||
"bluetooth": { |
"bluetooth": { |
||||
"title": "Bluetooth Settings", |
"title": "Bluetooth Settings", |
||||
"description": "Settings for the Bluetooth module", |
"description": "Settings for the Bluetooth module", |
||||
"note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.", |
"note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.", |
||||
"enabled": { |
"enabled": { |
||||
"description": "Enable or disable Bluetooth", |
"description": "Enable or disable Bluetooth", |
||||
"label": "Enabled" |
"label": "Enabled" |
||||
}, |
}, |
||||
"pairingMode": { |
"pairingMode": { |
||||
"description": "Pin selection behaviour.", |
"description": "Pin selection behaviour.", |
||||
"label": "Pairing mode" |
"label": "Pairing mode" |
||||
}, |
}, |
||||
"pin": { |
"pin": { |
||||
"description": "Pin to use when pairing", |
"description": "Pin to use when pairing", |
||||
"label": "Pin" |
"label": "Pin" |
||||
} |
} |
||||
}, |
}, |
||||
"display": { |
"display": { |
||||
"description": "Settings for the device display", |
"description": "Settings for the device display", |
||||
"title": "Display Settings", |
"title": "Display Settings", |
||||
"headingBold": { |
"headingBold": { |
||||
"description": "Bolden the heading text", |
"description": "Bolden the heading text", |
||||
"label": "Bold Heading" |
"label": "Bold Heading" |
||||
}, |
}, |
||||
"carouselDelay": { |
"carouselDelay": { |
||||
"description": "How fast to cycle through windows", |
"description": "How fast to cycle through windows", |
||||
"label": "Carousel Delay" |
"label": "Carousel Delay" |
||||
}, |
}, |
||||
"compassNorthTop": { |
"compassNorthTop": { |
||||
"description": "Fix north to the top of compass", |
"description": "Fix north to the top of compass", |
||||
"label": "Compass North Top" |
"label": "Compass North Top" |
||||
}, |
}, |
||||
"displayMode": { |
"displayMode": { |
||||
"description": "Screen layout variant", |
"description": "Screen layout variant", |
||||
"label": "Display Mode" |
"label": "Display Mode" |
||||
}, |
}, |
||||
"displayUnits": { |
"displayUnits": { |
||||
"description": "Display metric or imperial units", |
"description": "Display metric or imperial units", |
||||
"label": "Display Units" |
"label": "Display Units" |
||||
}, |
}, |
||||
"flipScreen": { |
"flipScreen": { |
||||
"description": "Flip display 180 degrees", |
"description": "Flip display 180 degrees", |
||||
"label": "Flip Screen" |
"label": "Flip Screen" |
||||
}, |
}, |
||||
"gpsDisplayUnits": { |
"gpsDisplayUnits": { |
||||
"description": "Coordinate display format", |
"description": "Coordinate display format", |
||||
"label": "GPS Display Units" |
"label": "GPS Display Units" |
||||
}, |
}, |
||||
"oledType": { |
"oledType": { |
||||
"description": "Type of OLED screen attached to the device", |
"description": "Type of OLED screen attached to the device", |
||||
"label": "OLED Type" |
"label": "OLED Type" |
||||
}, |
}, |
||||
"screenTimeout": { |
"screenTimeout": { |
||||
"description": "Turn off the display after this long", |
"description": "Turn off the display after this long", |
||||
"label": "Screen Timeout" |
"label": "Screen Timeout" |
||||
}, |
}, |
||||
"twelveHourClock": { |
"twelveHourClock": { |
||||
"description": "Use 12-hour clock format", |
"description": "Use 12-hour clock format", |
||||
"label": "12-Hour Clock" |
"label": "12-Hour Clock" |
||||
}, |
}, |
||||
"wakeOnTapOrMotion": { |
"wakeOnTapOrMotion": { |
||||
"description": "Wake the device on tap or motion", |
"description": "Wake the device on tap or motion", |
||||
"label": "Wake on Tap or Motion" |
"label": "Wake on Tap or Motion" |
||||
} |
} |
||||
}, |
}, |
||||
"lora": { |
"lora": { |
||||
"title": "Mesh Settings", |
"title": "Mesh Settings", |
||||
"description": "Settings for the LoRa mesh", |
"description": "Settings for the LoRa mesh", |
||||
"bandwidth": { |
"bandwidth": { |
||||
"description": "Channel bandwidth in MHz", |
"description": "Channel bandwidth in MHz", |
||||
"label": "Bandwidth" |
"label": "Bandwidth" |
||||
}, |
}, |
||||
"boostedRxGain": { |
"boostedRxGain": { |
||||
"description": "Boosted RX gain", |
"description": "Boosted RX gain", |
||||
"label": "Boosted RX Gain" |
"label": "Boosted RX Gain" |
||||
}, |
}, |
||||
"codingRate": { |
"codingRate": { |
||||
"description": "The denominator of the coding rate", |
"description": "The denominator of the coding rate", |
||||
"label": "Coding Rate" |
"label": "Coding Rate" |
||||
}, |
}, |
||||
"frequencyOffset": { |
"frequencyOffset": { |
||||
"description": "Frequency offset to correct for crystal calibration errors", |
"description": "Frequency offset to correct for crystal calibration errors", |
||||
"label": "Frequency Offset" |
"label": "Frequency Offset" |
||||
}, |
}, |
||||
"frequencySlot": { |
"frequencySlot": { |
||||
"description": "LoRa frequency channel number", |
"description": "LoRa frequency channel number", |
||||
"label": "Frequency Slot" |
"label": "Frequency Slot" |
||||
}, |
}, |
||||
"hopLimit": { |
"hopLimit": { |
||||
"description": "Maximum number of hops", |
"description": "Maximum number of hops", |
||||
"label": "Hop Limit" |
"label": "Hop Limit" |
||||
}, |
}, |
||||
"ignoreMqtt": { |
"ignoreMqtt": { |
||||
"description": "Don't forward MQTT messages over the mesh", |
"description": "Don't forward MQTT messages over the mesh", |
||||
"label": "Ignore MQTT" |
"label": "Ignore MQTT" |
||||
}, |
}, |
||||
"modemPreset": { |
"modemPreset": { |
||||
"description": "Modem preset to use", |
"description": "Modem preset to use", |
||||
"label": "Modem Preset" |
"label": "Modem Preset" |
||||
}, |
}, |
||||
"okToMqtt": { |
"okToMqtt": { |
||||
"description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT", |
"description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT", |
||||
"label": "OK to MQTT" |
"label": "OK to MQTT" |
||||
}, |
}, |
||||
"overrideDutyCycle": { |
"overrideDutyCycle": { |
||||
"description": "Override Duty Cycle", |
"description": "Override Duty Cycle", |
||||
"label": "Override Duty Cycle" |
"label": "Override Duty Cycle" |
||||
}, |
}, |
||||
"overrideFrequency": { |
"overrideFrequency": { |
||||
"description": "Override frequency", |
"description": "Override frequency", |
||||
"label": "Override Frequency" |
"label": "Override Frequency" |
||||
}, |
}, |
||||
"region": { |
"region": { |
||||
"description": "Sets the region for your node", |
"description": "Sets the region for your node", |
||||
"label": "Region" |
"label": "Region" |
||||
}, |
}, |
||||
"spreadingFactor": { |
"spreadingFactor": { |
||||
"description": "Indicates the number of chirps per symbol", |
"description": "Indicates the number of chirps per symbol", |
||||
"label": "Spreading Factor" |
"label": "Spreading Factor" |
||||
}, |
}, |
||||
"transmitEnabled": { |
"transmitEnabled": { |
||||
"description": "Enable/Disable transmit (TX) from the LoRa radio", |
"description": "Enable/Disable transmit (TX) from the LoRa radio", |
||||
"label": "Transmit Enabled" |
"label": "Transmit Enabled" |
||||
}, |
}, |
||||
"transmitPower": { |
"transmitPower": { |
||||
"description": "Max transmit power", |
"description": "Max transmit power", |
||||
"label": "Transmit Power" |
"label": "Transmit Power" |
||||
}, |
}, |
||||
"usePreset": { |
"usePreset": { |
||||
"description": "Use one of the predefined modem presets", |
"description": "Use one of the predefined modem presets", |
||||
"label": "Use Preset" |
"label": "Use Preset" |
||||
}, |
}, |
||||
"meshSettings": { |
"meshSettings": { |
||||
"description": "Settings for the LoRa mesh", |
"description": "Settings for the LoRa mesh", |
||||
"label": "Mesh Settings" |
"label": "Mesh Settings" |
||||
}, |
}, |
||||
"waveformSettings": { |
"waveformSettings": { |
||||
"description": "Settings for the LoRa waveform", |
"description": "Settings for the LoRa waveform", |
||||
"label": "Waveform Settings" |
"label": "Waveform Settings" |
||||
}, |
}, |
||||
"radioSettings": { |
"radioSettings": { |
||||
"label": "Radio Settings", |
"label": "Radio Settings", |
||||
"description": "Settings for the LoRa radio" |
"description": "Settings for the LoRa radio" |
||||
} |
} |
||||
}, |
}, |
||||
"network": { |
"network": { |
||||
"title": "WiFi Config", |
"title": "WiFi Config", |
||||
"description": "WiFi radio configuration", |
"description": "WiFi radio configuration", |
||||
"note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.", |
"note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.", |
||||
"addressMode": { |
"addressMode": { |
||||
"description": "Address assignment selection", |
"description": "Address assignment selection", |
||||
"label": "Address Mode" |
"label": "Address Mode" |
||||
}, |
}, |
||||
"dns": { |
"dns": { |
||||
"description": "DNS Server", |
"description": "DNS Server", |
||||
"label": "DNS" |
"label": "DNS" |
||||
}, |
}, |
||||
"ethernetEnabled": { |
"ethernetEnabled": { |
||||
"description": "Enable or disable the Ethernet port", |
"description": "Enable or disable the Ethernet port", |
||||
"label": "Enabled" |
"label": "Enabled" |
||||
}, |
}, |
||||
"gateway": { |
"gateway": { |
||||
"description": "Default Gateway", |
"description": "Default Gateway", |
||||
"label": "Gateway" |
"label": "Gateway" |
||||
}, |
}, |
||||
"ip": { |
"ip": { |
||||
"description": "IP Address", |
"description": "IP Address", |
||||
"label": "IP" |
"label": "IP" |
||||
}, |
}, |
||||
"psk": { |
"psk": { |
||||
"description": "Network password", |
"description": "Network password", |
||||
"label": "PSK" |
"label": "PSK" |
||||
}, |
}, |
||||
"ssid": { |
"ssid": { |
||||
"description": "Network name", |
"description": "Network name", |
||||
"label": "SSID" |
"label": "SSID" |
||||
}, |
}, |
||||
"subnet": { |
"subnet": { |
||||
"description": "Subnet Mask", |
"description": "Subnet Mask", |
||||
"label": "Subnet" |
"label": "Subnet" |
||||
}, |
}, |
||||
"wifiEnabled": { |
"wifiEnabled": { |
||||
"description": "Enable or disable the WiFi radio", |
"description": "Enable or disable the WiFi radio", |
||||
"label": "Enabled" |
"label": "Enabled" |
||||
}, |
}, |
||||
"meshViaUdp": { |
"meshViaUdp": { |
||||
"label": "Mesh via UDP" |
"label": "Mesh via UDP" |
||||
}, |
}, |
||||
"ntpServer": { |
"ntpServer": { |
||||
"label": "NTP Server" |
"label": "NTP Server" |
||||
}, |
}, |
||||
"rsyslogServer": { |
"rsyslogServer": { |
||||
"label": "Rsyslog Server" |
"label": "Rsyslog Server" |
||||
}, |
}, |
||||
"ethernetConfigSettings": { |
"ethernetConfigSettings": { |
||||
"description": "Ethernet port configuration", |
"description": "Ethernet port configuration", |
||||
"label": "Ethernet Config" |
"label": "Ethernet Config" |
||||
}, |
}, |
||||
"ipConfigSettings": { |
"ipConfigSettings": { |
||||
"description": "IP configuration", |
"description": "IP configuration", |
||||
"label": "IP Config" |
"label": "IP Config" |
||||
}, |
}, |
||||
"ntpConfigSettings": { |
"ntpConfigSettings": { |
||||
"description": "NTP configuration", |
"description": "NTP configuration", |
||||
"label": "NTP Config" |
"label": "NTP Config" |
||||
}, |
}, |
||||
"rsyslogConfigSettings": { |
"rsyslogConfigSettings": { |
||||
"description": "Rsyslog configuration", |
"description": "Rsyslog configuration", |
||||
"label": "Rsyslog Config" |
"label": "Rsyslog Config" |
||||
}, |
}, |
||||
"udpConfigSettings": { |
"udpConfigSettings": { |
||||
"description": "UDP over Mesh configuration", |
"description": "UDP over Mesh configuration", |
||||
"label": "UDP Config" |
"label": "UDP Config" |
||||
} |
} |
||||
}, |
}, |
||||
"position": { |
"position": { |
||||
"title": "Position Settings", |
"title": "Position Settings", |
||||
"description": "Settings for the position module", |
"description": "Settings for the position module", |
||||
"broadcastInterval": { |
"broadcastInterval": { |
||||
"description": "How often your position is sent out over the mesh", |
"description": "How often your position is sent out over the mesh", |
||||
"label": "Broadcast Interval" |
"label": "Broadcast Interval" |
||||
}, |
}, |
||||
"enablePin": { |
"enablePin": { |
||||
"description": "GPS module enable pin override", |
"description": "GPS module enable pin override", |
||||
"label": "Enable Pin" |
"label": "Enable Pin" |
||||
}, |
}, |
||||
"fixedPosition": { |
"fixedPosition": { |
||||
"description": "Don't report GPS position, but a manually-specified one", |
"description": "Don't report GPS position, but a manually-specified one", |
||||
"label": "Fixed Position" |
"label": "Fixed Position" |
||||
}, |
}, |
||||
"gpsMode": { |
"gpsMode": { |
||||
"description": "Configure whether device GPS is Enabled, Disabled, or Not Present", |
"description": "Configure whether device GPS is Enabled, Disabled, or Not Present", |
||||
"label": "GPS Mode" |
"label": "GPS Mode" |
||||
}, |
}, |
||||
"gpsUpdateInterval": { |
"gpsUpdateInterval": { |
||||
"description": "How often a GPS fix should be acquired", |
"description": "How often a GPS fix should be acquired", |
||||
"label": "GPS Update Interval" |
"label": "GPS Update Interval" |
||||
}, |
}, |
||||
"positionFlags": { |
"positionFlags": { |
||||
"description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.", |
"description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.", |
||||
"label": "Position Flags" |
"label": "Position Flags" |
||||
}, |
}, |
||||
"receivePin": { |
"receivePin": { |
||||
"description": "GPS module RX pin override", |
"description": "GPS module RX pin override", |
||||
"label": "Receive Pin" |
"label": "Receive Pin" |
||||
}, |
}, |
||||
"smartPositionEnabled": { |
"smartPositionEnabled": { |
||||
"description": "Only send position when there has been a meaningful change in location", |
"description": "Only send position when there has been a meaningful change in location", |
||||
"label": "Enable Smart Position" |
"label": "Enable Smart Position" |
||||
}, |
}, |
||||
"smartPositionMinDistance": { |
"smartPositionMinDistance": { |
||||
"description": "Minimum distance (in meters) that must be traveled before a position update is sent", |
"description": "Minimum distance (in meters) that must be traveled before a position update is sent", |
||||
"label": "Smart Position Minimum Distance" |
"label": "Smart Position Minimum Distance" |
||||
}, |
}, |
||||
"smartPositionMinInterval": { |
"smartPositionMinInterval": { |
||||
"description": "Minimum interval (in seconds) that must pass before a position update is sent", |
"description": "Minimum interval (in seconds) that must pass before a position update is sent", |
||||
"label": "Smart Position Minimum Interval" |
"label": "Smart Position Minimum Interval" |
||||
}, |
}, |
||||
"transmitPin": { |
"transmitPin": { |
||||
"description": "GPS module TX pin override", |
"description": "GPS module TX pin override", |
||||
"label": "Transmit Pin" |
"label": "Transmit Pin" |
||||
}, |
}, |
||||
"intervalsSettings": { |
"intervalsSettings": { |
||||
"description": "How often to send position updates", |
"description": "How often to send position updates", |
||||
"label": "Intervals" |
"label": "Intervals" |
||||
}, |
}, |
||||
"flags": { |
"flags": { |
||||
"placeholder": "Select position flags...", |
"placeholder": "Select position flags...", |
||||
"altitude": "Altitude", |
"altitude": "Altitude", |
||||
"altitudeGeoidalSeparation": "Altitude Geoidal Separation", |
"altitudeGeoidalSeparation": "Altitude Geoidal Separation", |
||||
"altitudeMsl": "Altitude is Mean Sea Level", |
"altitudeMsl": "Altitude is Mean Sea Level", |
||||
"dop": "Dilution of precision (DOP) PDOP used by default", |
"dop": "Dilution of precision (DOP) PDOP used by default", |
||||
"hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP", |
"hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP", |
||||
"numSatellites": "Number of satellites", |
"numSatellites": "Number of satellites", |
||||
"sequenceNumber": "Sequence number", |
"sequenceNumber": "Sequence number", |
||||
"timestamp": "Timestamp", |
"timestamp": "Timestamp", |
||||
"unset": "Unset", |
"unset": "Unset", |
||||
"vehicleHeading": "Vehicle heading", |
"vehicleHeading": "Vehicle heading", |
||||
"vehicleSpeed": "Vehicle speed" |
"vehicleSpeed": "Vehicle speed" |
||||
} |
} |
||||
}, |
}, |
||||
"power": { |
"power": { |
||||
"adcMultiplierOverride": { |
"adcMultiplierOverride": { |
||||
"description": "Used for tweaking battery voltage reading", |
"description": "Used for tweaking battery voltage reading", |
||||
"label": "ADC Multiplier Override ratio" |
"label": "ADC Multiplier Override ratio" |
||||
}, |
}, |
||||
"ina219Address": { |
"ina219Address": { |
||||
"description": "Address of the INA219 battery monitor", |
"description": "Address of the INA219 battery monitor", |
||||
"label": "INA219 Address" |
"label": "INA219 Address" |
||||
}, |
}, |
||||
"lightSleepDuration": { |
"lightSleepDuration": { |
||||
"description": "How long the device will be in light sleep for", |
"description": "How long the device will be in light sleep for", |
||||
"label": "Light Sleep Duration" |
"label": "Light Sleep Duration" |
||||
}, |
}, |
||||
"minimumWakeTime": { |
"minimumWakeTime": { |
||||
"description": "Minimum amount of time the device will stay awake for after receiving a packet", |
"description": "Minimum amount of time the device will stay awake for after receiving a packet", |
||||
"label": "Minimum Wake Time" |
"label": "Minimum Wake Time" |
||||
}, |
}, |
||||
"noConnectionBluetoothDisabled": { |
"noConnectionBluetoothDisabled": { |
||||
"description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long", |
"description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long", |
||||
"label": "No Connection Bluetooth Disabled" |
"label": "No Connection Bluetooth Disabled" |
||||
}, |
}, |
||||
"powerSavingEnabled": { |
"powerSavingEnabled": { |
||||
"description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.", |
"description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.", |
||||
"label": "Enable power saving mode" |
"label": "Enable power saving mode" |
||||
}, |
}, |
||||
"shutdownOnBatteryDelay": { |
"shutdownOnBatteryDelay": { |
||||
"description": "Automatically shutdown node after this long when on battery, 0 for indefinite", |
"description": "Automatically shutdown node after this long when on battery, 0 for indefinite", |
||||
"label": "Shutdown on battery delay" |
"label": "Shutdown on battery delay" |
||||
}, |
}, |
||||
"superDeepSleepDuration": { |
"superDeepSleepDuration": { |
||||
"description": "How long the device will be in super deep sleep for", |
"description": "How long the device will be in super deep sleep for", |
||||
"label": "Super Deep Sleep Duration" |
"label": "Super Deep Sleep Duration" |
||||
}, |
}, |
||||
"powerConfigSettings": { |
"powerConfigSettings": { |
||||
"description": "Settings for the power module", |
"description": "Settings for the power module", |
||||
"label": "Power Config" |
"label": "Power Config" |
||||
}, |
}, |
||||
"sleepSettings": { |
"sleepSettings": { |
||||
"description": "Sleep settings for the power module", |
"description": "Sleep settings for the power module", |
||||
"label": "Sleep Settings" |
"label": "Sleep Settings" |
||||
} |
} |
||||
}, |
}, |
||||
"security": { |
"security": { |
||||
"description": "Settings for the Security configuration", |
"description": "Settings for the Security configuration", |
||||
"title": "Security Settings", |
"title": "Security Settings", |
||||
"button_backupKey": "Backup Key", |
"button_backupKey": "Backup Key", |
||||
"adminChannelEnabled": { |
"adminChannelEnabled": { |
||||
"description": "Allow incoming device control over the insecure legacy admin channel", |
"description": "Allow incoming device control over the insecure legacy admin channel", |
||||
"label": "Allow Legacy Admin" |
"label": "Allow Legacy Admin" |
||||
}, |
}, |
||||
"enableDebugLogApi": { |
"enableDebugLogApi": { |
||||
"description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth", |
"description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth", |
||||
"label": "Enable Debug Log API" |
"label": "Enable Debug Log API" |
||||
}, |
}, |
||||
"managed": { |
"managed": { |
||||
"description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.", |
"description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.", |
||||
"label": "Managed" |
"label": "Managed" |
||||
}, |
}, |
||||
"privateKey": { |
"privateKey": { |
||||
"description": "Used to create a shared key with a remote device", |
"description": "Used to create a shared key with a remote device", |
||||
"label": "Private Key" |
"label": "Private Key" |
||||
}, |
}, |
||||
"publicKey": { |
"publicKey": { |
||||
"description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key", |
"description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key", |
||||
"label": "Public Key" |
"label": "Public Key" |
||||
}, |
}, |
||||
"primaryAdminKey": { |
"primaryAdminKey": { |
||||
"description": "The primary public key authorized to send admin messages to this node", |
"description": "The primary public key authorized to send admin messages to this node", |
||||
"label": "Primary Admin Key" |
"label": "Primary Admin Key" |
||||
}, |
}, |
||||
"secondaryAdminKey": { |
"secondaryAdminKey": { |
||||
"description": "The secondary public key authorized to send admin messages to this node", |
"description": "The secondary public key authorized to send admin messages to this node", |
||||
"label": "Secondary Admin Key" |
"label": "Secondary Admin Key" |
||||
}, |
}, |
||||
"serialOutputEnabled": { |
"serialOutputEnabled": { |
||||
"description": "Serial Console over the Stream API", |
"description": "Serial Console over the Stream API", |
||||
"label": "Serial Output Enabled" |
"label": "Serial Output Enabled" |
||||
}, |
}, |
||||
"tertiaryAdminKey": { |
"tertiaryAdminKey": { |
||||
"description": "The tertiary public key authorized to send admin messages to this node", |
"description": "The tertiary public key authorized to send admin messages to this node", |
||||
"label": "Tertiary Admin Key" |
"label": "Tertiary Admin Key" |
||||
}, |
}, |
||||
"adminSettings": { |
"adminSettings": { |
||||
"description": "Settings for Admin", |
"description": "Settings for Admin", |
||||
"label": "Admin Settings" |
"label": "Admin Settings" |
||||
}, |
}, |
||||
"loggingSettings": { |
"loggingSettings": { |
||||
"description": "Settings for Logging", |
"description": "Settings for Logging", |
||||
"label": "Logging Settings" |
"label": "Logging Settings" |
||||
} |
} |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,194 +1,194 @@ |
|||||
{ |
{ |
||||
"deleteMessages": { |
"deleteMessages": { |
||||
"description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?", |
"description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?", |
||||
"title": "Clear All Messages" |
"title": "Clear All Messages" |
||||
}, |
}, |
||||
"deviceName": { |
"deviceName": { |
||||
"description": "The Device will restart once the config is saved.", |
"description": "The Device will restart once the config is saved.", |
||||
"longName": "Long Name", |
"longName": "Long Name", |
||||
"shortName": "Short Name", |
"shortName": "Short Name", |
||||
"title": "Change Device Name", |
"title": "Change Device Name", |
||||
"validation": { |
"validation": { |
||||
"longNameMax": "Long name must not be more than 40 characters", |
"longNameMax": "Long name must not be more than 40 characters", |
||||
"shortNameMax": "Short name must not be more than 4 characters", |
"shortNameMax": "Short name must not be more than 4 characters", |
||||
"longNameMin": "Long name must have at least 1 character", |
"longNameMin": "Long name must have at least 1 character", |
||||
"shortNameMin": "Short name must have at least 1 character" |
"shortNameMin": "Short name must have at least 1 character" |
||||
} |
} |
||||
}, |
}, |
||||
"import": { |
"import": { |
||||
"description": "The current LoRa configuration will be overridden.", |
"description": "The current LoRa configuration will be overridden.", |
||||
"error": { |
"error": { |
||||
"invalidUrl": "Invalid Meshtastic URL" |
"invalidUrl": "Invalid Meshtastic URL" |
||||
}, |
}, |
||||
"channelPrefix": "Channel: ", |
"channelPrefix": "Channel: ", |
||||
"channelSetUrl": "Channel Set/QR Code URL", |
"channelSetUrl": "Channel Set/QR Code URL", |
||||
"channels": "Channels:", |
"channels": "Channels:", |
||||
"usePreset": "Use Preset?", |
"usePreset": "Use Preset?", |
||||
"title": "Import Channel Set" |
"title": "Import Channel Set" |
||||
}, |
}, |
||||
"locationResponse": { |
"locationResponse": { |
||||
"title": "Location: {{identifier}}", |
"title": "Location: {{identifier}}", |
||||
"altitude": "Altitude: ", |
"altitude": "Altitude: ", |
||||
"coordinates": "Coordinates: ", |
"coordinates": "Coordinates: ", |
||||
"noCoordinates": "No Coordinates" |
"noCoordinates": "No Coordinates" |
||||
}, |
}, |
||||
"pkiRegenerateDialog": { |
"pkiRegenerateDialog": { |
||||
"title": "Regenerate Pre-Shared Key?", |
"title": "Regenerate Pre-Shared Key?", |
||||
"description": "Are you sure you want to regenerate the pre-shared key?", |
"description": "Are you sure you want to regenerate the pre-shared key?", |
||||
"regenerate": "Regenerate" |
"regenerate": "Regenerate" |
||||
}, |
}, |
||||
"newDeviceDialog": { |
"newDeviceDialog": { |
||||
"title": "Connect New Device", |
"title": "Connect New Device", |
||||
"https": "https", |
"https": "https", |
||||
"http": "http", |
"http": "http", |
||||
"tabHttp": "HTTP", |
"tabHttp": "HTTP", |
||||
"tabBluetooth": "Bluetooth", |
"tabBluetooth": "Bluetooth", |
||||
"tabSerial": "Serial", |
"tabSerial": "Serial", |
||||
|
|
||||
"useHttps": "Use HTTPS", |
"useHttps": "Use HTTPS", |
||||
"connecting": "Connecting...", |
"connecting": "Connecting...", |
||||
"connect": "Connect", |
"connect": "Connect", |
||||
"connectionFailedAlert": { |
"connectionFailedAlert": { |
||||
"title": "Connection Failed", |
"title": "Connection Failed", |
||||
"descriptionPrefix": "Could not connect to the device. ", |
"descriptionPrefix": "Could not connect to the device. ", |
||||
"httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ", |
"httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ", |
||||
"openLinkPrefix": "Please open ", |
"openLinkPrefix": "Please open ", |
||||
"openLinkSuffix": " in a new tab", |
"openLinkSuffix": " in a new tab", |
||||
"acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again", |
"acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again", |
||||
"learnMoreLink": "Learn more" |
"learnMoreLink": "Learn more" |
||||
}, |
}, |
||||
"httpConnection": { |
"httpConnection": { |
||||
"label": "IP Address/Hostname", |
"label": "IP Address/Hostname", |
||||
"placeholder": "000.000.000.000 / meshtastic.local" |
"placeholder": "000.000.000.000 / meshtastic.local" |
||||
}, |
}, |
||||
"serialConnection": { |
"serialConnection": { |
||||
"noDevicesPaired": "No devices paired yet.", |
"noDevicesPaired": "No devices paired yet.", |
||||
"newDeviceButton": "New device", |
"newDeviceButton": "New device", |
||||
"deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}" |
"deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}" |
||||
}, |
}, |
||||
"bluetoothConnection": { |
"bluetoothConnection": { |
||||
"noDevicesPaired": "No devices paired yet.", |
"noDevicesPaired": "No devices paired yet.", |
||||
"newDeviceButton": "New device", |
"newDeviceButton": "New device", |
||||
"connectionFailed": "Connection failed", |
"connectionFailed": "Connection failed", |
||||
"deviceDisconnected": "Device disconnected", |
"deviceDisconnected": "Device disconnected", |
||||
"unknownDevice": "Unknown Device", |
"unknownDevice": "Unknown Device", |
||||
"errorLoadingDevices": "Error loading devices", |
"errorLoadingDevices": "Error loading devices", |
||||
"unknownErrorLoadingDevices": "Unknown error loading devices" |
"unknownErrorLoadingDevices": "Unknown error loading devices" |
||||
}, |
}, |
||||
"validation": { |
"validation": { |
||||
"requiresWebBluetooth": "This connection type requires <0>Web Bluetooth</0>. Please use a supported browser, like Chrome or Edge.", |
"requiresWebBluetooth": "This connection type requires <0>Web Bluetooth</0>. Please use a supported browser, like Chrome or Edge.", |
||||
"requiresWebSerial": "This connection type requires <0>Web Serial</0>. Please use a supported browser, like Chrome or Edge.", |
"requiresWebSerial": "This connection type requires <0>Web Serial</0>. Please use a supported browser, like Chrome or Edge.", |
||||
"requiresSecureContext": "This application requires a <0>secure context</0>. Please connect using HTTPS or localhost.", |
"requiresSecureContext": "This application requires a <0>secure context</0>. Please connect using HTTPS or localhost.", |
||||
"additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context</0>. Please connect using HTTPS or localhost." |
"additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context</0>. Please connect using HTTPS or localhost." |
||||
} |
} |
||||
}, |
}, |
||||
"nodeDetails": { |
"nodeDetails": { |
||||
"message": "Message", |
"message": "Message", |
||||
"requestPosition": "Request Position", |
"requestPosition": "Request Position", |
||||
"traceRoute": "Trace Route", |
"traceRoute": "Trace Route", |
||||
"airTxUtilization": "Air TX utilization", |
"airTxUtilization": "Air TX utilization", |
||||
"allRawMetrics": "All Raw Metrics:", |
"allRawMetrics": "All Raw Metrics:", |
||||
"batteryLevel": "Battery level", |
"batteryLevel": "Battery level", |
||||
"channelUtilization": "Channel utilization", |
"channelUtilization": "Channel utilization", |
||||
"details": "Details:", |
"details": "Details:", |
||||
"deviceMetrics": "Device Metrics:", |
"deviceMetrics": "Device Metrics:", |
||||
"hardware": "Hardware: ", |
"hardware": "Hardware: ", |
||||
"lastHeard": "Last Heard: ", |
"lastHeard": "Last Heard: ", |
||||
"nodeHexPrefix": "Node Hex: ", |
"nodeHexPrefix": "Node Hex: ", |
||||
"nodeNumber": "Node Number: ", |
"nodeNumber": "Node Number: ", |
||||
"position": "Position:", |
"position": "Position:", |
||||
"role": "Role: ", |
"role": "Role: ", |
||||
"uptime": "Uptime: ", |
"uptime": "Uptime: ", |
||||
"voltage": "Voltage", |
"voltage": "Voltage", |
||||
"title": "Node Details for {{identifier}}", |
"title": "Node Details for {{identifier}}", |
||||
"ignoreNode": "Ignore node", |
"ignoreNode": "Ignore node", |
||||
"removeNode": "Remove node", |
"removeNode": "Remove node", |
||||
"unignoreNode": "Unignore node", |
"unignoreNode": "Unignore node", |
||||
"security": "Security:", |
"security": "Security:", |
||||
"publicKey": "Public Key: ", |
"publicKey": "Public Key: ", |
||||
"messageable": "Messageable: ", |
"messageable": "Messageable: ", |
||||
"KeyManuallyVerifiedTrue": "Public Key has been manually verified", |
"KeyManuallyVerifiedTrue": "Public Key has been manually verified", |
||||
"KeyManuallyVerifiedFalse": "Public Key is not manually verified" |
"KeyManuallyVerifiedFalse": "Public Key is not manually verified" |
||||
}, |
}, |
||||
"pkiBackup": { |
"pkiBackup": { |
||||
"loseKeysWarning": "If you lose your keys, you will need to reset your device.", |
"loseKeysWarning": "If you lose your keys, you will need to reset your device.", |
||||
"secureBackup": "Its important to backup your public and private keys and store your backup securely!", |
"secureBackup": "Its important to backup your public and private keys and store your backup securely!", |
||||
"footer": "=== END OF KEYS ===", |
"footer": "=== END OF KEYS ===", |
||||
"header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===", |
"header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===", |
||||
"privateKey": "Private Key:", |
"privateKey": "Private Key:", |
||||
"publicKey": "Public Key:", |
"publicKey": "Public Key:", |
||||
"fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt", |
"fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt", |
||||
"title": "Backup Keys" |
"title": "Backup Keys" |
||||
}, |
}, |
||||
"pkiBackupReminder": { |
"pkiBackupReminder": { |
||||
"description": "We recommend backing up your key data regularly. Would you like to back up now?", |
"description": "We recommend backing up your key data regularly. Would you like to back up now?", |
||||
"title": "Backup Reminder", |
"title": "Backup Reminder", |
||||
"remindLaterPrefix": "Remind me in", |
"remindLaterPrefix": "Remind me in", |
||||
"remindNever": "Never remind me", |
"remindNever": "Never remind me", |
||||
"backupNow": "Back up now" |
"backupNow": "Back up now" |
||||
}, |
}, |
||||
"pkiRegenerate": { |
"pkiRegenerate": { |
||||
"description": "Are you sure you want to regenerate key pair?", |
"description": "Are you sure you want to regenerate key pair?", |
||||
"title": "Regenerate Key Pair" |
"title": "Regenerate Key Pair" |
||||
}, |
}, |
||||
"qr": { |
"qr": { |
||||
"addChannels": "Add Channels", |
"addChannels": "Add Channels", |
||||
"replaceChannels": "Replace Channels", |
"replaceChannels": "Replace Channels", |
||||
"description": "The current LoRa configuration will also be shared.", |
"description": "The current LoRa configuration will also be shared.", |
||||
"sharableUrl": "Sharable URL", |
"sharableUrl": "Sharable URL", |
||||
"title": "Generate QR Code" |
"title": "Generate QR Code" |
||||
}, |
}, |
||||
"reboot": { |
"reboot": { |
||||
"title": "Reboot device", |
"title": "Reboot device", |
||||
"description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.", |
"description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.", |
||||
"ota": "Reboot into OTA mode", |
"ota": "Reboot into OTA mode", |
||||
"enterDelay": "Enter delay", |
"enterDelay": "Enter delay", |
||||
"scheduled": "Reboot has been scheduled", |
"scheduled": "Reboot has been scheduled", |
||||
"schedule": "Schedule reboot", |
"schedule": "Schedule reboot", |
||||
"now": "Reboot now", |
"now": "Reboot now", |
||||
"cancel": "Cancel scheduled reboot" |
"cancel": "Cancel scheduled reboot" |
||||
}, |
}, |
||||
"refreshKeys": { |
"refreshKeys": { |
||||
"description": { |
"description": { |
||||
"acceptNewKeys": "This will remove the node from device and request new keys.", |
"acceptNewKeys": "This will remove the node from device and request new keys.", |
||||
"keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.", |
"keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.", |
||||
"unableToSendDmPrefix": "Your node is unable to send a direct message to node: " |
"unableToSendDmPrefix": "Your node is unable to send a direct message to node: " |
||||
}, |
}, |
||||
"acceptNewKeys": "Accept New Keys", |
"acceptNewKeys": "Accept New Keys", |
||||
"title": "Keys Mismatch - {{identifier}}" |
"title": "Keys Mismatch - {{identifier}}" |
||||
}, |
}, |
||||
"removeNode": { |
"removeNode": { |
||||
"description": "Are you sure you want to remove this Node?", |
"description": "Are you sure you want to remove this Node?", |
||||
"title": "Remove Node?" |
"title": "Remove Node?" |
||||
}, |
}, |
||||
"shutdown": { |
"shutdown": { |
||||
"title": "Schedule Shutdown", |
"title": "Schedule Shutdown", |
||||
"description": "Turn off the connected node after x minutes." |
"description": "Turn off the connected node after x minutes." |
||||
}, |
}, |
||||
"traceRoute": { |
"traceRoute": { |
||||
"routeToDestination": "Route to destination:", |
"routeToDestination": "Route to destination:", |
||||
"routeBack": "Route back:" |
"routeBack": "Route back:" |
||||
}, |
}, |
||||
"tracerouteResponse": { |
"tracerouteResponse": { |
||||
"title": "Traceroute: {{identifier}}" |
"title": "Traceroute: {{identifier}}" |
||||
}, |
}, |
||||
"unsafeRoles": { |
"unsafeRoles": { |
||||
"confirmUnderstanding": "Yes, I know what I'm doing", |
"confirmUnderstanding": "Yes, I know what I'm doing", |
||||
"conjunction": " and the blog post about ", |
"conjunction": " and the blog post about ", |
||||
"postamble": " and understand the implications of changing the role.", |
"postamble": " and understand the implications of changing the role.", |
||||
"preamble": "I have read the ", |
"preamble": "I have read the ", |
||||
"choosingRightDeviceRole": "Choosing The Right Device Role", |
"choosingRightDeviceRole": "Choosing The Right Device Role", |
||||
"deviceRoleDocumentation": "Device Role Documentation", |
"deviceRoleDocumentation": "Device Role Documentation", |
||||
"title": "Are you sure?" |
"title": "Are you sure?" |
||||
}, |
}, |
||||
"managedMode": { |
"managedMode": { |
||||
"confirmUnderstanding": "Yes, I know what I'm doing", |
"confirmUnderstanding": "Yes, I know what I'm doing", |
||||
"title": "Are you sure?", |
"title": "Are you sure?", |
||||
"description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration." |
"description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration." |
||||
}, |
}, |
||||
"clientNotification": { |
"clientNotification": { |
||||
"title": "Client Notification", |
"title": "Client Notification", |
||||
"TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds", |
"TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds", |
||||
"Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated." |
"Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated." |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,40 +1,40 @@ |
|||||
{ |
{ |
||||
"page": { |
"page": { |
||||
"title": "Messages: {{chatName}}", |
"title": "Messages: {{chatName}}", |
||||
"placeholder": "Enter Message" |
"placeholder": "Enter Message" |
||||
}, |
}, |
||||
"emptyState": { |
"emptyState": { |
||||
"title": "Select a Chat", |
"title": "Select a Chat", |
||||
"text": "No messages yet." |
"text": "No messages yet." |
||||
}, |
}, |
||||
"selectChatPrompt": { |
"selectChatPrompt": { |
||||
"text": "Select a channel or node to start messaging." |
"text": "Select a channel or node to start messaging." |
||||
}, |
}, |
||||
"sendMessage": { |
"sendMessage": { |
||||
"placeholder": "Enter your message here...", |
"placeholder": "Enter your message here...", |
||||
"sendButton": "Send" |
"sendButton": "Send" |
||||
}, |
}, |
||||
"actionsMenu": { |
"actionsMenu": { |
||||
"addReactionLabel": "Add Reaction", |
"addReactionLabel": "Add Reaction", |
||||
"replyLabel": "Reply" |
"replyLabel": "Reply" |
||||
}, |
}, |
||||
|
|
||||
"deliveryStatus": { |
"deliveryStatus": { |
||||
"delivered": { |
"delivered": { |
||||
"label": "Message delivered", |
"label": "Message delivered", |
||||
"displayText": "Message delivered" |
"displayText": "Message delivered" |
||||
}, |
}, |
||||
"failed": { |
"failed": { |
||||
"label": "Message delivery failed", |
"label": "Message delivery failed", |
||||
"displayText": "Delivery failed" |
"displayText": "Delivery failed" |
||||
}, |
}, |
||||
"unknown": { |
"unknown": { |
||||
"label": "Message status unknown", |
"label": "Message status unknown", |
||||
"displayText": "Unknown state" |
"displayText": "Unknown state" |
||||
}, |
}, |
||||
"waiting": { |
"waiting": { |
||||
"label": "Sending message", |
"label": "Sending message", |
||||
"displayText": "Waiting for delivery" |
"displayText": "Waiting for delivery" |
||||
} |
} |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,448 +1,448 @@ |
|||||
{ |
{ |
||||
"page": { |
"page": { |
||||
"tabAmbientLighting": "Ambient Lighting", |
"tabAmbientLighting": "Ambient Lighting", |
||||
"tabAudio": "Audio", |
"tabAudio": "Audio", |
||||
"tabCannedMessage": "Canned", |
"tabCannedMessage": "Canned", |
||||
"tabDetectionSensor": "Detection Sensor", |
"tabDetectionSensor": "Detection Sensor", |
||||
"tabExternalNotification": "Ext Notif", |
"tabExternalNotification": "Ext Notif", |
||||
"tabMqtt": "MQTT", |
"tabMqtt": "MQTT", |
||||
"tabNeighborInfo": "Neighbor Info", |
"tabNeighborInfo": "Neighbor Info", |
||||
"tabPaxcounter": "Paxcounter", |
"tabPaxcounter": "Paxcounter", |
||||
"tabRangeTest": "Range Test", |
"tabRangeTest": "Range Test", |
||||
"tabSerial": "Serial", |
"tabSerial": "Serial", |
||||
"tabStoreAndForward": "S&F", |
"tabStoreAndForward": "S&F", |
||||
"tabTelemetry": "Telemetry" |
"tabTelemetry": "Telemetry" |
||||
}, |
}, |
||||
"ambientLighting": { |
"ambientLighting": { |
||||
"title": "Ambient Lighting Settings", |
"title": "Ambient Lighting Settings", |
||||
"description": "Settings for the Ambient Lighting module", |
"description": "Settings for the Ambient Lighting module", |
||||
"ledState": { |
"ledState": { |
||||
"label": "LED State", |
"label": "LED State", |
||||
"description": "Sets LED to on or off" |
"description": "Sets LED to on or off" |
||||
}, |
}, |
||||
"current": { |
"current": { |
||||
"label": "Current", |
"label": "Current", |
||||
"description": "Sets the current for the LED output. Default is 10" |
"description": "Sets the current for the LED output. Default is 10" |
||||
}, |
}, |
||||
"red": { |
"red": { |
||||
"label": "Red", |
"label": "Red", |
||||
"description": "Sets the red LED level. Values are 0-255" |
"description": "Sets the red LED level. Values are 0-255" |
||||
}, |
}, |
||||
"green": { |
"green": { |
||||
"label": "Green", |
"label": "Green", |
||||
"description": "Sets the green LED level. Values are 0-255" |
"description": "Sets the green LED level. Values are 0-255" |
||||
}, |
}, |
||||
"blue": { |
"blue": { |
||||
"label": "Blue", |
"label": "Blue", |
||||
"description": "Sets the blue LED level. Values are 0-255" |
"description": "Sets the blue LED level. Values are 0-255" |
||||
} |
} |
||||
}, |
}, |
||||
"audio": { |
"audio": { |
||||
"title": "Audio Settings", |
"title": "Audio Settings", |
||||
"description": "Settings for the Audio module", |
"description": "Settings for the Audio module", |
||||
"codec2Enabled": { |
"codec2Enabled": { |
||||
"label": "Codec 2 Enabled", |
"label": "Codec 2 Enabled", |
||||
"description": "Enable Codec 2 audio encoding" |
"description": "Enable Codec 2 audio encoding" |
||||
}, |
}, |
||||
"pttPin": { |
"pttPin": { |
||||
"label": "PTT Pin", |
"label": "PTT Pin", |
||||
"description": "GPIO pin to use for PTT" |
"description": "GPIO pin to use for PTT" |
||||
}, |
}, |
||||
"bitrate": { |
"bitrate": { |
||||
"label": "Bitrate", |
"label": "Bitrate", |
||||
"description": "Bitrate to use for audio encoding" |
"description": "Bitrate to use for audio encoding" |
||||
}, |
}, |
||||
"i2sWs": { |
"i2sWs": { |
||||
"label": "i2S WS", |
"label": "i2S WS", |
||||
"description": "GPIO pin to use for i2S WS" |
"description": "GPIO pin to use for i2S WS" |
||||
}, |
}, |
||||
"i2sSd": { |
"i2sSd": { |
||||
"label": "i2S SD", |
"label": "i2S SD", |
||||
"description": "GPIO pin to use for i2S SD" |
"description": "GPIO pin to use for i2S SD" |
||||
}, |
}, |
||||
"i2sDin": { |
"i2sDin": { |
||||
"label": "i2S DIN", |
"label": "i2S DIN", |
||||
"description": "GPIO pin to use for i2S DIN" |
"description": "GPIO pin to use for i2S DIN" |
||||
}, |
}, |
||||
"i2sSck": { |
"i2sSck": { |
||||
"label": "i2S SCK", |
"label": "i2S SCK", |
||||
"description": "GPIO pin to use for i2S SCK" |
"description": "GPIO pin to use for i2S SCK" |
||||
} |
} |
||||
}, |
}, |
||||
"cannedMessage": { |
"cannedMessage": { |
||||
"title": "Canned Message Settings", |
"title": "Canned Message Settings", |
||||
"description": "Settings for the Canned Message module", |
"description": "Settings for the Canned Message module", |
||||
"moduleEnabled": { |
"moduleEnabled": { |
||||
"label": "Module Enabled", |
"label": "Module Enabled", |
||||
"description": "Enable Canned Message" |
"description": "Enable Canned Message" |
||||
}, |
}, |
||||
"rotary1Enabled": { |
"rotary1Enabled": { |
||||
"label": "Rotary Encoder #1 Enabled", |
"label": "Rotary Encoder #1 Enabled", |
||||
"description": "Enable the rotary encoder" |
"description": "Enable the rotary encoder" |
||||
}, |
}, |
||||
"inputbrokerPinA": { |
"inputbrokerPinA": { |
||||
"label": "Encoder Pin A", |
"label": "Encoder Pin A", |
||||
"description": "GPIO Pin Value (1-39) For encoder port A" |
"description": "GPIO Pin Value (1-39) For encoder port A" |
||||
}, |
}, |
||||
"inputbrokerPinB": { |
"inputbrokerPinB": { |
||||
"label": "Encoder Pin B", |
"label": "Encoder Pin B", |
||||
"description": "GPIO Pin Value (1-39) For encoder port B" |
"description": "GPIO Pin Value (1-39) For encoder port B" |
||||
}, |
}, |
||||
"inputbrokerPinPress": { |
"inputbrokerPinPress": { |
||||
"label": "Encoder Pin Press", |
"label": "Encoder Pin Press", |
||||
"description": "GPIO Pin Value (1-39) For encoder Press" |
"description": "GPIO Pin Value (1-39) For encoder Press" |
||||
}, |
}, |
||||
"inputbrokerEventCw": { |
"inputbrokerEventCw": { |
||||
"label": "Clockwise event", |
"label": "Clockwise event", |
||||
"description": "Select input event." |
"description": "Select input event." |
||||
}, |
}, |
||||
"inputbrokerEventCcw": { |
"inputbrokerEventCcw": { |
||||
"label": "Counter Clockwise event", |
"label": "Counter Clockwise event", |
||||
"description": "Select input event." |
"description": "Select input event." |
||||
}, |
}, |
||||
"inputbrokerEventPress": { |
"inputbrokerEventPress": { |
||||
"label": "Press event", |
"label": "Press event", |
||||
"description": "Select input event" |
"description": "Select input event" |
||||
}, |
}, |
||||
"updown1Enabled": { |
"updown1Enabled": { |
||||
"label": "Up Down enabled", |
"label": "Up Down enabled", |
||||
"description": "Enable the up / down encoder" |
"description": "Enable the up / down encoder" |
||||
}, |
}, |
||||
"allowInputSource": { |
"allowInputSource": { |
||||
"label": "Allow Input Source", |
"label": "Allow Input Source", |
||||
"description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'" |
"description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'" |
||||
}, |
}, |
||||
"sendBell": { |
"sendBell": { |
||||
"label": "Send Bell", |
"label": "Send Bell", |
||||
"description": "Sends a bell character with each message" |
"description": "Sends a bell character with each message" |
||||
} |
} |
||||
}, |
}, |
||||
"detectionSensor": { |
"detectionSensor": { |
||||
"title": "Detection Sensor Settings", |
"title": "Detection Sensor Settings", |
||||
"description": "Settings for the Detection Sensor module", |
"description": "Settings for the Detection Sensor module", |
||||
"enabled": { |
"enabled": { |
||||
"label": "Enabled", |
"label": "Enabled", |
||||
"description": "Enable or disable Detection Sensor Module" |
"description": "Enable or disable Detection Sensor Module" |
||||
}, |
}, |
||||
"minimumBroadcastSecs": { |
"minimumBroadcastSecs": { |
||||
"label": "Minimum Broadcast Seconds", |
"label": "Minimum Broadcast Seconds", |
||||
"description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected" |
"description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected" |
||||
}, |
}, |
||||
"stateBroadcastSecs": { |
"stateBroadcastSecs": { |
||||
"label": "State Broadcast Seconds", |
"label": "State Broadcast Seconds", |
||||
"description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes" |
"description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes" |
||||
}, |
}, |
||||
"sendBell": { |
"sendBell": { |
||||
"label": "Send Bell", |
"label": "Send Bell", |
||||
"description": "Send ASCII bell with alert message" |
"description": "Send ASCII bell with alert message" |
||||
}, |
}, |
||||
"name": { |
"name": { |
||||
"label": "Friendly Name", |
"label": "Friendly Name", |
||||
"description": "Used to format the message sent to mesh, max 20 Characters" |
"description": "Used to format the message sent to mesh, max 20 Characters" |
||||
}, |
}, |
||||
"monitorPin": { |
"monitorPin": { |
||||
"label": "Monitor Pin", |
"label": "Monitor Pin", |
||||
"description": "The GPIO pin to monitor for state changes" |
"description": "The GPIO pin to monitor for state changes" |
||||
}, |
}, |
||||
"detectionTriggerType": { |
"detectionTriggerType": { |
||||
"label": "Detection Triggered Type", |
"label": "Detection Triggered Type", |
||||
"description": "The type of trigger event to be used" |
"description": "The type of trigger event to be used" |
||||
}, |
}, |
||||
"usePullup": { |
"usePullup": { |
||||
"label": "Use Pullup", |
"label": "Use Pullup", |
||||
"description": "Whether or not use INPUT_PULLUP mode for GPIO pin" |
"description": "Whether or not use INPUT_PULLUP mode for GPIO pin" |
||||
} |
} |
||||
}, |
}, |
||||
"externalNotification": { |
"externalNotification": { |
||||
"title": "External Notification Settings", |
"title": "External Notification Settings", |
||||
"description": "Configure the external notification module", |
"description": "Configure the external notification module", |
||||
"enabled": { |
"enabled": { |
||||
"label": "Module Enabled", |
"label": "Module Enabled", |
||||
"description": "Enable External Notification" |
"description": "Enable External Notification" |
||||
}, |
}, |
||||
"outputMs": { |
"outputMs": { |
||||
"label": "Output MS", |
"label": "Output MS", |
||||
"description": "Output MS" |
"description": "Output MS" |
||||
}, |
}, |
||||
"output": { |
"output": { |
||||
"label": "Output", |
"label": "Output", |
||||
"description": "Output" |
"description": "Output" |
||||
}, |
}, |
||||
"outputVibra": { |
"outputVibra": { |
||||
"label": "Output Vibrate", |
"label": "Output Vibrate", |
||||
"description": "Output Vibrate" |
"description": "Output Vibrate" |
||||
}, |
}, |
||||
"outputBuzzer": { |
"outputBuzzer": { |
||||
"label": "Output Buzzer", |
"label": "Output Buzzer", |
||||
"description": "Output Buzzer" |
"description": "Output Buzzer" |
||||
}, |
}, |
||||
"active": { |
"active": { |
||||
"label": "Active", |
"label": "Active", |
||||
"description": "Active" |
"description": "Active" |
||||
}, |
}, |
||||
"alertMessage": { |
"alertMessage": { |
||||
"label": "Alert Message", |
"label": "Alert Message", |
||||
"description": "Alert Message" |
"description": "Alert Message" |
||||
}, |
}, |
||||
"alertMessageVibra": { |
"alertMessageVibra": { |
||||
"label": "Alert Message Vibrate", |
"label": "Alert Message Vibrate", |
||||
"description": "Alert Message Vibrate" |
"description": "Alert Message Vibrate" |
||||
}, |
}, |
||||
"alertMessageBuzzer": { |
"alertMessageBuzzer": { |
||||
"label": "Alert Message Buzzer", |
"label": "Alert Message Buzzer", |
||||
"description": "Alert Message Buzzer" |
"description": "Alert Message Buzzer" |
||||
}, |
}, |
||||
"alertBell": { |
"alertBell": { |
||||
"label": "Alert Bell", |
"label": "Alert Bell", |
||||
"description": "Should an alert be triggered when receiving an incoming bell?" |
"description": "Should an alert be triggered when receiving an incoming bell?" |
||||
}, |
}, |
||||
"alertBellVibra": { |
"alertBellVibra": { |
||||
"label": "Alert Bell Vibrate", |
"label": "Alert Bell Vibrate", |
||||
"description": "Alert Bell Vibrate" |
"description": "Alert Bell Vibrate" |
||||
}, |
}, |
||||
"alertBellBuzzer": { |
"alertBellBuzzer": { |
||||
"label": "Alert Bell Buzzer", |
"label": "Alert Bell Buzzer", |
||||
"description": "Alert Bell Buzzer" |
"description": "Alert Bell Buzzer" |
||||
}, |
}, |
||||
"usePwm": { |
"usePwm": { |
||||
"label": "Use PWM", |
"label": "Use PWM", |
||||
"description": "Use PWM" |
"description": "Use PWM" |
||||
}, |
}, |
||||
"nagTimeout": { |
"nagTimeout": { |
||||
"label": "Nag Timeout", |
"label": "Nag Timeout", |
||||
"description": "Nag Timeout" |
"description": "Nag Timeout" |
||||
}, |
}, |
||||
"useI2sAsBuzzer": { |
"useI2sAsBuzzer": { |
||||
"label": "Use I²S Pin as Buzzer", |
"label": "Use I²S Pin as Buzzer", |
||||
"description": "Designate I²S Pin as Buzzer Output" |
"description": "Designate I²S Pin as Buzzer Output" |
||||
} |
} |
||||
}, |
}, |
||||
"mqtt": { |
"mqtt": { |
||||
"title": "MQTT Settings", |
"title": "MQTT Settings", |
||||
"description": "Settings for the MQTT module", |
"description": "Settings for the MQTT module", |
||||
"enabled": { |
"enabled": { |
||||
"label": "Enabled", |
"label": "Enabled", |
||||
"description": "Enable or disable MQTT" |
"description": "Enable or disable MQTT" |
||||
}, |
}, |
||||
"address": { |
"address": { |
||||
"label": "MQTT Server Address", |
"label": "MQTT Server Address", |
||||
"description": "MQTT server address to use for default/custom servers" |
"description": "MQTT server address to use for default/custom servers" |
||||
}, |
}, |
||||
"username": { |
"username": { |
||||
"label": "MQTT Username", |
"label": "MQTT Username", |
||||
"description": "MQTT username to use for default/custom servers" |
"description": "MQTT username to use for default/custom servers" |
||||
}, |
}, |
||||
"password": { |
"password": { |
||||
"label": "MQTT Password", |
"label": "MQTT Password", |
||||
"description": "MQTT password to use for default/custom servers" |
"description": "MQTT password to use for default/custom servers" |
||||
}, |
}, |
||||
"encryptionEnabled": { |
"encryptionEnabled": { |
||||
"label": "Encryption Enabled", |
"label": "Encryption Enabled", |
||||
"description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data." |
"description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data." |
||||
}, |
}, |
||||
"jsonEnabled": { |
"jsonEnabled": { |
||||
"label": "JSON Enabled", |
"label": "JSON Enabled", |
||||
"description": "Whether to send/consume JSON packets on MQTT" |
"description": "Whether to send/consume JSON packets on MQTT" |
||||
}, |
}, |
||||
"tlsEnabled": { |
"tlsEnabled": { |
||||
"label": "TLS Enabled", |
"label": "TLS Enabled", |
||||
"description": "Enable or disable TLS" |
"description": "Enable or disable TLS" |
||||
}, |
}, |
||||
"root": { |
"root": { |
||||
"label": "Root topic", |
"label": "Root topic", |
||||
"description": "MQTT root topic to use for default/custom servers" |
"description": "MQTT root topic to use for default/custom servers" |
||||
}, |
}, |
||||
"proxyToClientEnabled": { |
"proxyToClientEnabled": { |
||||
"label": "MQTT Client Proxy Enabled", |
"label": "MQTT Client Proxy Enabled", |
||||
"description": "Utilizes the network connection to proxy MQTT messages to the client." |
"description": "Utilizes the network connection to proxy MQTT messages to the client." |
||||
}, |
}, |
||||
"mapReportingEnabled": { |
"mapReportingEnabled": { |
||||
"label": "Map Reporting Enabled", |
"label": "Map Reporting Enabled", |
||||
"description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name." |
"description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name." |
||||
}, |
}, |
||||
"mapReportSettings": { |
"mapReportSettings": { |
||||
"publishIntervalSecs": { |
"publishIntervalSecs": { |
||||
"label": "Map Report Publish Interval (s)", |
"label": "Map Report Publish Interval (s)", |
||||
"description": "Interval in seconds to publish map reports" |
"description": "Interval in seconds to publish map reports" |
||||
}, |
}, |
||||
"positionPrecision": { |
"positionPrecision": { |
||||
"label": "Approximate Location", |
"label": "Approximate Location", |
||||
"description": "Position shared will be accurate within this distance", |
"description": "Position shared will be accurate within this distance", |
||||
"options": { |
"options": { |
||||
"metric_km23": "Within 23 km", |
"metric_km23": "Within 23 km", |
||||
"metric_km12": "Within 12 km", |
"metric_km12": "Within 12 km", |
||||
"metric_km5_8": "Within 5.8 km", |
"metric_km5_8": "Within 5.8 km", |
||||
"metric_km2_9": "Within 2.9 km", |
"metric_km2_9": "Within 2.9 km", |
||||
"metric_km1_5": "Within 1.5 km", |
"metric_km1_5": "Within 1.5 km", |
||||
"metric_m700": "Within 700 m", |
"metric_m700": "Within 700 m", |
||||
"metric_m350": "Within 350 m", |
"metric_m350": "Within 350 m", |
||||
"metric_m200": "Within 200 m", |
"metric_m200": "Within 200 m", |
||||
"metric_m90": "Within 90 m", |
"metric_m90": "Within 90 m", |
||||
"metric_m50": "Within 50 m", |
"metric_m50": "Within 50 m", |
||||
"imperial_mi15": "Within 15 miles", |
"imperial_mi15": "Within 15 miles", |
||||
"imperial_mi7_3": "Within 7.3 miles", |
"imperial_mi7_3": "Within 7.3 miles", |
||||
"imperial_mi3_6": "Within 3.6 miles", |
"imperial_mi3_6": "Within 3.6 miles", |
||||
"imperial_mi1_8": "Within 1.8 miles", |
"imperial_mi1_8": "Within 1.8 miles", |
||||
"imperial_mi0_9": "Within 0.9 miles", |
"imperial_mi0_9": "Within 0.9 miles", |
||||
"imperial_mi0_5": "Within 0.5 miles", |
"imperial_mi0_5": "Within 0.5 miles", |
||||
"imperial_mi0_2": "Within 0.2 miles", |
"imperial_mi0_2": "Within 0.2 miles", |
||||
"imperial_ft600": "Within 600 feet", |
"imperial_ft600": "Within 600 feet", |
||||
"imperial_ft300": "Within 300 feet", |
"imperial_ft300": "Within 300 feet", |
||||
"imperial_ft150": "Within 150 feet" |
"imperial_ft150": "Within 150 feet" |
||||
} |
} |
||||
} |
} |
||||
} |
} |
||||
}, |
}, |
||||
"neighborInfo": { |
"neighborInfo": { |
||||
"title": "Neighbor Info Settings", |
"title": "Neighbor Info Settings", |
||||
"description": "Settings for the Neighbor Info module", |
"description": "Settings for the Neighbor Info module", |
||||
"enabled": { |
"enabled": { |
||||
"label": "Enabled", |
"label": "Enabled", |
||||
"description": "Enable or disable Neighbor Info Module" |
"description": "Enable or disable Neighbor Info Module" |
||||
}, |
}, |
||||
"updateInterval": { |
"updateInterval": { |
||||
"label": "Update Interval", |
"label": "Update Interval", |
||||
"description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh" |
"description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh" |
||||
} |
} |
||||
}, |
}, |
||||
"paxcounter": { |
"paxcounter": { |
||||
"title": "Paxcounter Settings", |
"title": "Paxcounter Settings", |
||||
"description": "Settings for the Paxcounter module", |
"description": "Settings for the Paxcounter module", |
||||
"enabled": { |
"enabled": { |
||||
"label": "Module Enabled", |
"label": "Module Enabled", |
||||
"description": "Enable Paxcounter" |
"description": "Enable Paxcounter" |
||||
}, |
}, |
||||
"paxcounterUpdateInterval": { |
"paxcounterUpdateInterval": { |
||||
"label": "Update Interval (seconds)", |
"label": "Update Interval (seconds)", |
||||
"description": "How long to wait between sending paxcounter packets" |
"description": "How long to wait between sending paxcounter packets" |
||||
}, |
}, |
||||
"wifiThreshold": { |
"wifiThreshold": { |
||||
"label": "WiFi RSSI Threshold", |
"label": "WiFi RSSI Threshold", |
||||
"description": "At what WiFi RSSI level should the counter increase. Defaults to -80." |
"description": "At what WiFi RSSI level should the counter increase. Defaults to -80." |
||||
}, |
}, |
||||
"bleThreshold": { |
"bleThreshold": { |
||||
"label": "BLE RSSI Threshold", |
"label": "BLE RSSI Threshold", |
||||
"description": "At what BLE RSSI level should the counter increase. Defaults to -80." |
"description": "At what BLE RSSI level should the counter increase. Defaults to -80." |
||||
} |
} |
||||
}, |
}, |
||||
"rangeTest": { |
"rangeTest": { |
||||
"title": "Range Test Settings", |
"title": "Range Test Settings", |
||||
"description": "Settings for the Range Test module", |
"description": "Settings for the Range Test module", |
||||
"enabled": { |
"enabled": { |
||||
"label": "Module Enabled", |
"label": "Module Enabled", |
||||
"description": "Enable Range Test" |
"description": "Enable Range Test" |
||||
}, |
}, |
||||
"sender": { |
"sender": { |
||||
"label": "Message Interval", |
"label": "Message Interval", |
||||
"description": "How long to wait between sending test packets" |
"description": "How long to wait between sending test packets" |
||||
}, |
}, |
||||
"save": { |
"save": { |
||||
"label": "Save CSV to storage", |
"label": "Save CSV to storage", |
||||
"description": "ESP32 Only" |
"description": "ESP32 Only" |
||||
} |
} |
||||
}, |
}, |
||||
"serial": { |
"serial": { |
||||
"title": "Serial Settings", |
"title": "Serial Settings", |
||||
"description": "Settings for the Serial module", |
"description": "Settings for the Serial module", |
||||
"enabled": { |
"enabled": { |
||||
"label": "Module Enabled", |
"label": "Module Enabled", |
||||
"description": "Enable Serial output" |
"description": "Enable Serial output" |
||||
}, |
}, |
||||
"echo": { |
"echo": { |
||||
"label": "Echo", |
"label": "Echo", |
||||
"description": "Any packets you send will be echoed back to your device" |
"description": "Any packets you send will be echoed back to your device" |
||||
}, |
}, |
||||
"rxd": { |
"rxd": { |
||||
"label": "Receive Pin", |
"label": "Receive Pin", |
||||
"description": "Set the GPIO pin to the RXD pin you have set up." |
"description": "Set the GPIO pin to the RXD pin you have set up." |
||||
}, |
}, |
||||
"txd": { |
"txd": { |
||||
"label": "Transmit Pin", |
"label": "Transmit Pin", |
||||
"description": "Set the GPIO pin to the TXD pin you have set up." |
"description": "Set the GPIO pin to the TXD pin you have set up." |
||||
}, |
}, |
||||
"baud": { |
"baud": { |
||||
"label": "Baud Rate", |
"label": "Baud Rate", |
||||
"description": "The serial baud rate" |
"description": "The serial baud rate" |
||||
}, |
}, |
||||
"timeout": { |
"timeout": { |
||||
"label": "Timeout", |
"label": "Timeout", |
||||
"description": "Seconds to wait before we consider your packet as 'done'" |
"description": "Seconds to wait before we consider your packet as 'done'" |
||||
}, |
}, |
||||
"mode": { |
"mode": { |
||||
"label": "Mode", |
"label": "Mode", |
||||
"description": "Select Mode" |
"description": "Select Mode" |
||||
}, |
}, |
||||
"overrideConsoleSerialPort": { |
"overrideConsoleSerialPort": { |
||||
"label": "Override Console Serial Port", |
"label": "Override Console Serial Port", |
||||
"description": "If you have a serial port connected to the console, this will override it." |
"description": "If you have a serial port connected to the console, this will override it." |
||||
} |
} |
||||
}, |
}, |
||||
"storeForward": { |
"storeForward": { |
||||
"title": "Store & Forward Settings", |
"title": "Store & Forward Settings", |
||||
"description": "Settings for the Store & Forward module", |
"description": "Settings for the Store & Forward module", |
||||
"enabled": { |
"enabled": { |
||||
"label": "Module Enabled", |
"label": "Module Enabled", |
||||
"description": "Enable Store & Forward" |
"description": "Enable Store & Forward" |
||||
}, |
}, |
||||
"heartbeat": { |
"heartbeat": { |
||||
"label": "Heartbeat Enabled", |
"label": "Heartbeat Enabled", |
||||
"description": "Enable Store & Forward heartbeat" |
"description": "Enable Store & Forward heartbeat" |
||||
}, |
}, |
||||
"records": { |
"records": { |
||||
"label": "Number of records", |
"label": "Number of records", |
||||
"description": "Number of records to store" |
"description": "Number of records to store" |
||||
}, |
}, |
||||
"historyReturnMax": { |
"historyReturnMax": { |
||||
"label": "History return max", |
"label": "History return max", |
||||
"description": "Max number of records to return" |
"description": "Max number of records to return" |
||||
}, |
}, |
||||
"historyReturnWindow": { |
"historyReturnWindow": { |
||||
"label": "History return window", |
"label": "History return window", |
||||
"description": "Max number of records to return" |
"description": "Max number of records to return" |
||||
} |
} |
||||
}, |
}, |
||||
"telemetry": { |
"telemetry": { |
||||
"title": "Telemetry Settings", |
"title": "Telemetry Settings", |
||||
"description": "Settings for the Telemetry module", |
"description": "Settings for the Telemetry module", |
||||
"deviceUpdateInterval": { |
"deviceUpdateInterval": { |
||||
"label": "Device Metrics", |
"label": "Device Metrics", |
||||
"description": "Device metrics update interval (seconds)" |
"description": "Device metrics update interval (seconds)" |
||||
}, |
}, |
||||
"environmentUpdateInterval": { |
"environmentUpdateInterval": { |
||||
"label": "Environment metrics update interval (seconds)", |
"label": "Environment metrics update interval (seconds)", |
||||
"description": "" |
"description": "" |
||||
}, |
}, |
||||
"environmentMeasurementEnabled": { |
"environmentMeasurementEnabled": { |
||||
"label": "Module Enabled", |
"label": "Module Enabled", |
||||
"description": "Enable the Environment Telemetry" |
"description": "Enable the Environment Telemetry" |
||||
}, |
}, |
||||
"environmentScreenEnabled": { |
"environmentScreenEnabled": { |
||||
"label": "Displayed on Screen", |
"label": "Displayed on Screen", |
||||
"description": "Show the Telemetry Module on the OLED" |
"description": "Show the Telemetry Module on the OLED" |
||||
}, |
}, |
||||
"environmentDisplayFahrenheit": { |
"environmentDisplayFahrenheit": { |
||||
"label": "Display Fahrenheit", |
"label": "Display Fahrenheit", |
||||
"description": "Display temp in Fahrenheit" |
"description": "Display temp in Fahrenheit" |
||||
}, |
}, |
||||
"airQualityEnabled": { |
"airQualityEnabled": { |
||||
"label": "Air Quality Enabled", |
"label": "Air Quality Enabled", |
||||
"description": "Enable the Air Quality Telemetry" |
"description": "Enable the Air Quality Telemetry" |
||||
}, |
}, |
||||
"airQualityInterval": { |
"airQualityInterval": { |
||||
"label": "Air Quality Update Interval", |
"label": "Air Quality Update Interval", |
||||
"description": "How often to send Air Quality data over the mesh" |
"description": "How often to send Air Quality data over the mesh" |
||||
}, |
}, |
||||
"powerMeasurementEnabled": { |
"powerMeasurementEnabled": { |
||||
"label": "Power Measurement Enabled", |
"label": "Power Measurement Enabled", |
||||
"description": "Enable the Power Measurement Telemetry" |
"description": "Enable the Power Measurement Telemetry" |
||||
}, |
}, |
||||
"powerUpdateInterval": { |
"powerUpdateInterval": { |
||||
"label": "Power Update Interval", |
"label": "Power Update Interval", |
||||
"description": "How often to send Power data over the mesh" |
"description": "How often to send Power data over the mesh" |
||||
}, |
}, |
||||
"powerScreenEnabled": { |
"powerScreenEnabled": { |
||||
"label": "Power Screen Enabled", |
"label": "Power Screen Enabled", |
||||
"description": "Enable the Power Telemetry Screen" |
"description": "Enable the Power Telemetry Screen" |
||||
} |
} |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,64 +1,64 @@ |
|||||
{ |
{ |
||||
"nodeDetail": { |
"nodeDetail": { |
||||
"publicKeyEnabled": { |
"publicKeyEnabled": { |
||||
"label": "Public Key Enabled" |
"label": "Public Key Enabled" |
||||
}, |
}, |
||||
"noPublicKey": { |
"noPublicKey": { |
||||
"label": "No Public Key" |
"label": "No Public Key" |
||||
}, |
}, |
||||
"directMessage": { |
"directMessage": { |
||||
"label": "Direct Message {{shortName}}" |
"label": "Direct Message {{shortName}}" |
||||
}, |
}, |
||||
"favorite": { |
"favorite": { |
||||
"label": "Favorite", |
"label": "Favorite", |
||||
"tooltip": "Add or remove this node from your favorites" |
"tooltip": "Add or remove this node from your favorites" |
||||
}, |
}, |
||||
"notFavorite": { |
"notFavorite": { |
||||
"label": "Not a Favorite" |
"label": "Not a Favorite" |
||||
}, |
}, |
||||
"error": { |
"error": { |
||||
"label": "Error", |
"label": "Error", |
||||
"text": "An error occurred while fetching node details. Please try again later." |
"text": "An error occurred while fetching node details. Please try again later." |
||||
}, |
}, |
||||
"status": { |
"status": { |
||||
"heard": "Heard", |
"heard": "Heard", |
||||
"mqtt": "MQTT" |
"mqtt": "MQTT" |
||||
}, |
}, |
||||
"elevation": { |
"elevation": { |
||||
"label": "Elevation" |
"label": "Elevation" |
||||
}, |
}, |
||||
"channelUtil": { |
"channelUtil": { |
||||
"label": "Channel Util" |
"label": "Channel Util" |
||||
}, |
}, |
||||
"airtimeUtil": { |
"airtimeUtil": { |
||||
"label": "Airtime Util" |
"label": "Airtime Util" |
||||
} |
} |
||||
}, |
}, |
||||
"nodesTable": { |
"nodesTable": { |
||||
"headings": { |
"headings": { |
||||
"longName": "Long Name", |
"longName": "Long Name", |
||||
"connection": "Connection", |
"connection": "Connection", |
||||
"lastHeard": "Last Heard", |
"lastHeard": "Last Heard", |
||||
"encryption": "Encryption", |
"encryption": "Encryption", |
||||
"model": "Model", |
"model": "Model", |
||||
"macAddress": "MAC Address" |
"macAddress": "MAC Address" |
||||
}, |
}, |
||||
"connectionStatus": { |
"connectionStatus": { |
||||
"direct": "Direct", |
"direct": "Direct", |
||||
"away": "away", |
"away": "away", |
||||
"unknown": "-", |
"unknown": "-", |
||||
"viaMqtt": ", via MQTT" |
"viaMqtt": ", via MQTT" |
||||
}, |
}, |
||||
"lastHeardStatus": { |
"lastHeardStatus": { |
||||
"never": "Never" |
"never": "Never" |
||||
} |
} |
||||
}, |
}, |
||||
|
|
||||
"actions": { |
"actions": { |
||||
"added": "Added", |
"added": "Added", |
||||
"removed": "Removed", |
"removed": "Removed", |
||||
"ignoreNode": "Ignore Node", |
"ignoreNode": "Ignore Node", |
||||
"unignoreNode": "Unignore Node", |
"unignoreNode": "Unignore Node", |
||||
"requestPosition": "Request Position" |
"requestPosition": "Request Position" |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,214 +1,214 @@ |
|||||
{ |
{ |
||||
"navigation": { |
"navigation": { |
||||
"title": "Navigation", |
"title": "Navigation", |
||||
"messages": "Messages", |
"messages": "Messages", |
||||
"map": "Map", |
"map": "Map", |
||||
"config": "Config", |
"config": "Config", |
||||
"radioConfig": "Radio Config", |
"radioConfig": "Radio Config", |
||||
"moduleConfig": "Module Config", |
"moduleConfig": "Module Config", |
||||
"channels": "Channels", |
"channels": "Channels", |
||||
"nodes": "Nodes" |
"nodes": "Nodes" |
||||
}, |
}, |
||||
"app": { |
"app": { |
||||
"title": "Meshtastic", |
"title": "Meshtastic", |
||||
"logo": "Meshtastic Logo" |
"logo": "Meshtastic Logo" |
||||
}, |
}, |
||||
"sidebar": { |
"sidebar": { |
||||
"collapseToggle": { |
"collapseToggle": { |
||||
"button": { |
"button": { |
||||
"open": "Open sidebar", |
"open": "Open sidebar", |
||||
"close": "Close sidebar" |
"close": "Close sidebar" |
||||
} |
} |
||||
}, |
}, |
||||
"deviceInfo": { |
"deviceInfo": { |
||||
"volts": "{{voltage}} volts", |
"volts": "{{voltage}} volts", |
||||
"firmware": { |
"firmware": { |
||||
"title": "Firmware", |
"title": "Firmware", |
||||
"version": "v{{version}}", |
"version": "v{{version}}", |
||||
"buildDate": "Build date: {{date}}" |
"buildDate": "Build date: {{date}}" |
||||
}, |
}, |
||||
"deviceName": { |
"deviceName": { |
||||
"title": "Device Name", |
"title": "Device Name", |
||||
"changeName": "Change Device Name", |
"changeName": "Change Device Name", |
||||
"placeholder": "Enter device name" |
"placeholder": "Enter device name" |
||||
}, |
}, |
||||
"editDeviceName": "Edit device name" |
"editDeviceName": "Edit device name" |
||||
} |
} |
||||
}, |
}, |
||||
"batteryStatus": { |
"batteryStatus": { |
||||
"charging": "{{level}}% charging", |
"charging": "{{level}}% charging", |
||||
"pluggedIn": "Plugged in", |
"pluggedIn": "Plugged in", |
||||
"title": "Battery" |
"title": "Battery" |
||||
}, |
}, |
||||
"search": { |
"search": { |
||||
"nodes": "Search nodes...", |
"nodes": "Search nodes...", |
||||
"channels": "Search channels...", |
"channels": "Search channels...", |
||||
"commandPalette": "Search commands..." |
"commandPalette": "Search commands..." |
||||
}, |
}, |
||||
"toast": { |
"toast": { |
||||
"positionRequestSent": { "title": "Position request sent." }, |
"positionRequestSent": { "title": "Position request sent." }, |
||||
"requestingPosition": { "title": "Requesting position, please wait..." }, |
"requestingPosition": { "title": "Requesting position, please wait..." }, |
||||
"sendingTraceroute": { "title": "Sending Traceroute, please wait..." }, |
"sendingTraceroute": { "title": "Sending Traceroute, please wait..." }, |
||||
"tracerouteSent": { "title": "Traceroute sent." }, |
"tracerouteSent": { "title": "Traceroute sent." }, |
||||
"savedChannel": { "title": "Saved Channel: {{channelName}}" }, |
"savedChannel": { "title": "Saved Channel: {{channelName}}" }, |
||||
"messages": { |
"messages": { |
||||
"pkiEncryption": { "title": "Chat is using PKI encryption." }, |
"pkiEncryption": { "title": "Chat is using PKI encryption." }, |
||||
"pskEncryption": { "title": "Chat is using PSK encryption." } |
"pskEncryption": { "title": "Chat is using PSK encryption." } |
||||
}, |
}, |
||||
"configSaveError": { |
"configSaveError": { |
||||
"title": "Error Saving Config", |
"title": "Error Saving Config", |
||||
"description": "An error occurred while saving the configuration." |
"description": "An error occurred while saving the configuration." |
||||
}, |
}, |
||||
"validationError": { |
"validationError": { |
||||
"title": "Config Errors Exist", |
"title": "Config Errors Exist", |
||||
"description": "Please fix the configuration errors before saving." |
"description": "Please fix the configuration errors before saving." |
||||
}, |
}, |
||||
"saveSuccess": { |
"saveSuccess": { |
||||
"title": "Saving Config", |
"title": "Saving Config", |
||||
"description": "The configuration change {{case}} has been saved." |
"description": "The configuration change {{case}} has been saved." |
||||
}, |
}, |
||||
"favoriteNode": { |
"favoriteNode": { |
||||
"title": "{{action}} {{nodeName}} {{direction}} favorites.", |
"title": "{{action}} {{nodeName}} {{direction}} favorites.", |
||||
"action": { |
"action": { |
||||
"added": "Added", |
"added": "Added", |
||||
"removed": "Removed", |
"removed": "Removed", |
||||
"to": "to", |
"to": "to", |
||||
"from": "from" |
"from": "from" |
||||
} |
} |
||||
}, |
}, |
||||
"ignoreNode": { |
"ignoreNode": { |
||||
"title": "{{action}} {{nodeName}} {{direction}} ignore list", |
"title": "{{action}} {{nodeName}} {{direction}} ignore list", |
||||
"action": { |
"action": { |
||||
"added": "Added", |
"added": "Added", |
||||
"removed": "Removed", |
"removed": "Removed", |
||||
"to": "to", |
"to": "to", |
||||
"from": "from" |
"from": "from" |
||||
} |
} |
||||
} |
} |
||||
}, |
}, |
||||
"notifications": { |
"notifications": { |
||||
"copied": { |
"copied": { |
||||
"label": "Copied!" |
"label": "Copied!" |
||||
}, |
}, |
||||
"copyToClipboard": { |
"copyToClipboard": { |
||||
"label": "Copy to clipboard" |
"label": "Copy to clipboard" |
||||
}, |
}, |
||||
"hidePassword": { |
"hidePassword": { |
||||
"label": "Hide password" |
"label": "Hide password" |
||||
}, |
}, |
||||
"showPassword": { |
"showPassword": { |
||||
"label": "Show password" |
"label": "Show password" |
||||
}, |
}, |
||||
"deliveryStatus": { |
"deliveryStatus": { |
||||
"delivered": "Delivered", |
"delivered": "Delivered", |
||||
"failed": "Delivery Failed", |
"failed": "Delivery Failed", |
||||
"waiting": "Waiting", |
"waiting": "Waiting", |
||||
"unknown": "Unknown" |
"unknown": "Unknown" |
||||
} |
} |
||||
}, |
}, |
||||
"general": { |
"general": { |
||||
"label": "General" |
"label": "General" |
||||
}, |
}, |
||||
"hardware": { |
"hardware": { |
||||
"label": "Hardware" |
"label": "Hardware" |
||||
}, |
}, |
||||
"metrics": { |
"metrics": { |
||||
"label": "Metrics" |
"label": "Metrics" |
||||
}, |
}, |
||||
"role": { |
"role": { |
||||
"label": "Role" |
"label": "Role" |
||||
}, |
}, |
||||
"filter": { |
"filter": { |
||||
"label": "Filter" |
"label": "Filter" |
||||
}, |
}, |
||||
"advanced": { |
"advanced": { |
||||
"label": "Advanced" |
"label": "Advanced" |
||||
}, |
}, |
||||
"clearInput": { |
"clearInput": { |
||||
"label": "Clear input" |
"label": "Clear input" |
||||
}, |
}, |
||||
"resetFilters": { |
"resetFilters": { |
||||
"label": "Reset Filters" |
"label": "Reset Filters" |
||||
}, |
}, |
||||
"nodeName": { |
"nodeName": { |
||||
"label": "Node name/number", |
"label": "Node name/number", |
||||
"placeholder": "Meshtastic 1234" |
"placeholder": "Meshtastic 1234" |
||||
}, |
}, |
||||
"airtimeUtilization": { |
"airtimeUtilization": { |
||||
"label": "Airtime Utilization (%)" |
"label": "Airtime Utilization (%)" |
||||
}, |
}, |
||||
"batteryLevel": { |
"batteryLevel": { |
||||
"label": "Battery level (%)", |
"label": "Battery level (%)", |
||||
"labelText": "Battery level (%): {{value}}" |
"labelText": "Battery level (%): {{value}}" |
||||
}, |
}, |
||||
"batteryVoltage": { |
"batteryVoltage": { |
||||
"label": "Battery voltage (V)", |
"label": "Battery voltage (V)", |
||||
"title": "Voltage" |
"title": "Voltage" |
||||
}, |
}, |
||||
"channelUtilization": { |
"channelUtilization": { |
||||
"label": "Channel Utilization (%)" |
"label": "Channel Utilization (%)" |
||||
}, |
}, |
||||
"hops": { |
"hops": { |
||||
"direct": "Direct", |
"direct": "Direct", |
||||
"label": "Number of hops", |
"label": "Number of hops", |
||||
"text": "Number of hops: {{value}}" |
"text": "Number of hops: {{value}}" |
||||
}, |
}, |
||||
"lastHeard": { |
"lastHeard": { |
||||
"label": "Last heard", |
"label": "Last heard", |
||||
"labelText": "Last heard: {{value}}", |
"labelText": "Last heard: {{value}}", |
||||
"nowLabel": "Now" |
"nowLabel": "Now" |
||||
}, |
}, |
||||
"snr": { |
"snr": { |
||||
"label": "SNR (db)" |
"label": "SNR (db)" |
||||
}, |
}, |
||||
"favorites": { |
"favorites": { |
||||
"label": "Favorites" |
"label": "Favorites" |
||||
}, |
}, |
||||
"hide": { |
"hide": { |
||||
"label": "Hide" |
"label": "Hide" |
||||
}, |
}, |
||||
"showOnly": { |
"showOnly": { |
||||
"label": "Show Only" |
"label": "Show Only" |
||||
}, |
}, |
||||
"viaMqtt": { |
"viaMqtt": { |
||||
"label": "Connected via MQTT" |
"label": "Connected via MQTT" |
||||
}, |
}, |
||||
"hopsUnknown": { |
"hopsUnknown": { |
||||
"label": "Unknown number of hops" |
"label": "Unknown number of hops" |
||||
}, |
}, |
||||
"showUnheard": { |
"showUnheard": { |
||||
"label": "Never heard" |
"label": "Never heard" |
||||
}, |
}, |
||||
"language": { |
"language": { |
||||
"label": "Language", |
"label": "Language", |
||||
"changeLanguage": "Change Language" |
"changeLanguage": "Change Language" |
||||
}, |
}, |
||||
"theme": { |
"theme": { |
||||
"dark": "Dark", |
"dark": "Dark", |
||||
"light": "Light", |
"light": "Light", |
||||
"system": "Automatic", |
"system": "Automatic", |
||||
"changeTheme": "Change Color Scheme" |
"changeTheme": "Change Color Scheme" |
||||
}, |
}, |
||||
"errorPage": { |
"errorPage": { |
||||
"title": "This is a little embarrassing...", |
"title": "This is a little embarrassing...", |
||||
"description1": "We are really sorry but an error occurred in the web client that caused it to crash. <br /> This is not supposed to happen, and we are working hard to fix it.", |
"description1": "We are really sorry but an error occurred in the web client that caused it to crash. <br /> This is not supposed to happen, and we are working hard to fix it.", |
||||
"description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.", |
"description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.", |
||||
"reportInstructions": "Please include the following information in your report:", |
"reportInstructions": "Please include the following information in your report:", |
||||
"reportSteps": { |
"reportSteps": { |
||||
"step1": "What you were doing when the error occurred", |
"step1": "What you were doing when the error occurred", |
||||
"step2": "What you expected to happen", |
"step2": "What you expected to happen", |
||||
"step3": "What actually happened", |
"step3": "What actually happened", |
||||
"step4": "Any other relevant information" |
"step4": "Any other relevant information" |
||||
}, |
}, |
||||
"reportLink": "You can report the issue to our <0>GitHub</0>", |
"reportLink": "You can report the issue to our <0>GitHub</0>", |
||||
"dashboardLink": "Return to the <0>dashboard</0>", |
"dashboardLink": "Return to the <0>dashboard</0>", |
||||
"detailsSummary": "Error Details", |
"detailsSummary": "Error Details", |
||||
"errorMessageLabel": "Error message:", |
"errorMessageLabel": "Error message:", |
||||
"stackTraceLabel": "Stack trace:", |
"stackTraceLabel": "Stack trace:", |
||||
"fallbackError": "{{error}}" |
"fallbackError": "{{error}}" |
||||
}, |
}, |
||||
"footer": { |
"footer": { |
||||
"text": "Powered by <0>▲ Vercel</0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information</1>", |
"text": "Powered by <0>▲ Vercel</0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information</1>", |
||||
"commitSha": "Commit SHA: {{sha}}" |
"commitSha": "Commit SHA: {{sha}}" |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -1,35 +1,35 @@ |
|||||
{ |
{ |
||||
"extends": "../../tsconfig.base.json", |
"extends": "../../tsconfig.base.json", |
||||
"compilerOptions": { |
"compilerOptions": { |
||||
"noUnusedLocals": true, |
"noUnusedLocals": true, |
||||
"noUnusedParameters": true, |
"noUnusedParameters": true, |
||||
"strictNullChecks": true, |
"strictNullChecks": true, |
||||
"strictPropertyInitialization": false, |
"strictPropertyInitialization": false, |
||||
"allowImportingTsExtensions": true, |
"allowImportingTsExtensions": true, |
||||
"types": [ |
"types": [ |
||||
"vite/client", |
"vite/client", |
||||
"node", |
"node", |
||||
"@types/w3c-web-serial", |
"@types/w3c-web-serial", |
||||
"@types/web-bluetooth" |
"@types/web-bluetooth" |
||||
], |
], |
||||
"baseUrl": ".", |
"baseUrl": ".", |
||||
"paths": { |
"paths": { |
||||
"@app/*": ["./src/*"], |
"@app/*": ["./src/*"], |
||||
"@public/*": ["./public/*"], |
"@public/*": ["./public/*"], |
||||
"@pages/*": ["./src/pages/*"], |
"@pages/*": ["./src/pages/*"], |
||||
"@components/*": ["./src/components/*"], |
"@components/*": ["./src/components/*"], |
||||
"@core/*": ["./src/core/*"], |
"@core/*": ["./src/core/*"], |
||||
"@layouts/*": ["./src/layouts/*"] |
"@layouts/*": ["./src/layouts/*"] |
||||
} |
} |
||||
}, |
}, |
||||
"include": ["src", ".d.ts"], |
"include": ["src", ".d.ts"], |
||||
"exclude": [ |
"exclude": [ |
||||
"routeTree.gen.ts", |
"routeTree.gen.ts", |
||||
"node_modules", |
"node_modules", |
||||
"dist", |
"dist", |
||||
"build", |
"build", |
||||
"coverage", |
"coverage", |
||||
"out", |
"out", |
||||
".vscode-test" |
".vscode-test" |
||||
] |
] |
||||
} |
} |
||||
|
|||||
@ -1,37 +1,37 @@ |
|||||
{ |
{ |
||||
"$schema": "https://openapi.vercel.sh/vercel.json", |
"$schema": "https://openapi.vercel.sh/vercel.json", |
||||
"rewrites": [ |
"rewrites": [ |
||||
{ |
{ |
||||
"source": "/((?!api|.*\\..*).*)", |
"source": "/((?!api|.*\\..*).*)", |
||||
"destination": "/index.html" |
"destination": "/index.html" |
||||
} |
} |
||||
], |
], |
||||
"headers": [ |
"headers": [ |
||||
{ |
{ |
||||
"source": "/", |
"source": "/", |
||||
"headers": [ |
"headers": [ |
||||
{ |
{ |
||||
"key": "Cross-Origin-Opener-Policy", |
"key": "Cross-Origin-Opener-Policy", |
||||
"value": "same-origin" |
"value": "same-origin" |
||||
}, |
}, |
||||
{ |
{ |
||||
"key": "Cross-Origin-Embedder-Policy", |
"key": "Cross-Origin-Embedder-Policy", |
||||
"value": "credentialless" |
"value": "credentialless" |
||||
}, |
}, |
||||
{ |
{ |
||||
"key": "X-Content-Type-Options", |
"key": "X-Content-Type-Options", |
||||
"value": "nosniff" |
"value": "nosniff" |
||||
}, |
}, |
||||
{ |
{ |
||||
"key": "Strict-Transport-Security", |
"key": "Strict-Transport-Security", |
||||
"value": "max-age=63072000; includeSubDomains; preload" |
"value": "max-age=63072000; includeSubDomains; preload" |
||||
}, |
}, |
||||
{ |
{ |
||||
"key": "Referrer-Policy", |
"key": "Referrer-Policy", |
||||
"value": "strict-origin-when-cross-origin" |
"value": "strict-origin-when-cross-origin" |
||||
} |
} |
||||
] |
] |
||||
} |
} |
||||
], |
], |
||||
"relatedProjects": ["prj_G5osDwzRZBGplkfYTGFQziUGbLOm"] |
"relatedProjects": ["prj_G5osDwzRZBGplkfYTGFQziUGbLOm"] |
||||
} |
} |
||||
|
|||||
@ -1,9 +1,9 @@ |
|||||
{ |
{ |
||||
"extends": "./tsconfig.base.json", |
"extends": "./tsconfig.base.json", |
||||
|
|
||||
"files": [], |
"files": [], |
||||
"references": [ |
"references": [ |
||||
{ "path": "packages/web" }, |
{ "path": "packages/web" }, |
||||
{ "path": "packages/transport-http" } |
{ "path": "packages/transport-http" } |
||||
] |
] |
||||
} |
} |
||||
|
|||||
Loading…
Reference in new issue