https://github.com/nolindnaidoo/string-le
Zero Hassle VSCode String-Extraction JSON, YAML, CSV, TOML, INI, ENV
https://github.com/nolindnaidoo/string-le
csv data-extraction env i10n i18n ini json localization string-extraction toml vscode-extension yaml
Last synced: 8 months ago
JSON representation
Zero Hassle VSCode String-Extraction JSON, YAML, CSV, TOML, INI, ENV
- Host: GitHub
- URL: https://github.com/nolindnaidoo/string-le
- Owner: nolindnaidoo
- License: mit
- Created: 2025-08-17T22:53:24.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-08-18T00:16:59.000Z (8 months ago)
- Last Synced: 2025-08-18T00:22:33.439Z (8 months ago)
- Topics: csv, data-extraction, env, i10n, i18n, ini, json, localization, string-extraction, toml, vscode-extension, yaml
- Language: TypeScript
- Homepage:
- Size: 29.6 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
String-LE: Zero Hassle Extraction
Instantly extract every user-visible string in VSCode
JSON YAML CSV TOML INI ENV
---
## ✅ Why String‑LE
- **FullStack i18n**: Extract and dedupe locale strings (`en.json`, `fr.json`, etc.).
- **APIs**: Catalog response and validation messages from JSON, YAML, `.env`, and config files.
- **Configs/Specs**: Flatten text in YAML, TOML, INI, and OpenAPI specs for fast, confident edits.
- **CSVs**: Stream huge files, pick columns, and avoid UI lockups.
## 🚀 Quick Start
1. **Install** from [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.string-le)
2. **Open** any supported file type `Cmd/Ctrl + P String-LE`
3. **Quick Extract** with `Cmd+Alt+E`/`Ctrl+Alt+E`/`StatusBar`
## ⚡ Performance
String‑LE is built for speed across all supported formats:
| Format | Throughput | Best For |
| -------- | --------------- | ---------------------- |
| **ENV** | 4M+ lines/sec | Environment configs |
| **JSON** | 1.8M+ lines/sec | APIs, large datasets |
| **INI** | 1.3M+ lines/sec | Configuration files |
| **TOML** | 530K+ lines/sec | Modern configs |
| **CSV** | 440K+ lines/sec | Tabular data |
| **YAML** | 190K+ lines/sec | Human-readable configs |
See `PERFORMANCE.md` for detailed benchmarks and optimization guidelines.
## 📊 Test Coverage
- 100% unit coverage on pure extraction and transforms
- Contract tests for configuration side‑effects and parse‑error handling
- Data‑driven fixtures with golden expected outputs per format
- CSV streaming paths covered (batching, header/column selection)
- Stable locale sorting and dedupe normalization in harness
See `TESTING.md`

👉 Expand Detailed Documentation
## 🛠 Configuration
- `string-le.openResultsSideBySide` – Open to the side
- `string-le.csv.streamingEnabled` – Toggle CSV streaming
- `string-le.dedupeEnabled` – Auto-dedupe strings
- `string-le.sortEnabled` – Auto-sort output
- **Safety Guards** – File size warnings & thresholds
- **Notification Levels** – Control verbosity and alerts
#### ⚠️ Behaviors & limits
- CSV support assumes standard delimiter/quoting; unusual dialects not supported
- Large outputs can be slow to open — use **Copy** when prompted
- Streaming applies only to CSV; other formats load in memory
- Multi-line strings (e.g., YAML block scalars) are only partially supported
- CSV multi-line and all-column extracts stream to the editor only (no auto-copy)
- Sorting and deduplication apply to final strings, not their original positions
- Fallback mode uses quoted-string heuristics and may include false positives
See `CONFIGURATION.md`
## 🌍 Language Support
#### English + 12 translations
- Chinese (Simplified), Spanish, French, Russian, Portuguese (Brazil)
- Japanese, Korean, German, Italian, Vietnamese, Ukrainian, Indonesian
See `I18N.md`
## 🔒 Privacy & Telemetry
This extension runs entirely locally and never sends data off your machine
Optional, local-only logs can be enabled via `string-le.telemetryEnabled`
To help troubleshoot (Output panel → “String-LE”)
See `PRIVACY.md`
## 🤝 Contributing
We welcome all contributions! Whether it's code, ideas, or feedback
- Project: [Issues](https://github.com/nolindnaidoo/string-le/issues) • [Pull Requests](https://github.com/nolindnaidoo/string-le/pulls) • [Releases](https://github.com/nolindnaidoo/string-le/releases)
- Dev: [Spec](https://github.com/nolindnaidoo/string-le/blob/main/docs/SPECIFICATION.md) • [Architecture](https://github.com/nolindnaidoo/string-le/blob/main/docs/ARCHITECTURE.md) • [Development](https://github.com/nolindnaidoo/string-le/blob/main/docs/DEVELOPMENT.md) • [Contributing](https://github.com/nolindnaidoo/string-le/blob/main/CONTRIBUTING.md) • [Troubleshooting](https://github.com/nolindnaidoo/string-le/blob/main/docs/TROUBLESHOOTING.md)
- Docs: [Commands](https://github.com/nolindnaidoo/string-le/blob/main/docs/COMMANDS.md) • [Notifications](https://github.com/nolindnaidoo/string-le/blob/main/docs/NOTIFICATIONS.md) • [Status Bar](https://github.com/nolindnaidoo/string-le/blob/main/docs/STATUSBAR.md) • [Config](https://github.com/nolindnaidoo/string-le/blob/main/docs/CONFIGURATION.md) • [Performance](https://github.com/nolindnaidoo/string-le/blob/main/docs/PERFORMANCE.md) • [I18N](https://github.com/nolindnaidoo/string-le/blob/main/docs/I18N.md) • [Privacy](https://github.com/nolindnaidoo/string-le/blob/main/docs/PRIVACY.md) • [Screenshots](https://github.com/nolindnaidoo/string-le/blob/main/docs/SCREENSHOTS.md) • [Workflow](https://github.com/nolindnaidoo/string-le/blob/main/docs/WORKFLOW.md)
See `CONTRIBUTING.md`
Copyright © 2025 [@nolindnaidoo](https://github.com/nolindnaidoo), All rights reserved.