Skip to content

Commit 7551953

Browse files
committed
feat: v1.3.1 - Portuguese (Brazil) localization support
- Added comprehensive Portuguese (Brazil) localization with 73+ translated strings - Enhanced internationalization coverage for better accessibility - All commands, settings, notifications, and help content now available in Portuguese (Brazil) - Maintained 100% backward compatibility with existing functionality Test Results: 204/204 tests passing with 36.03% coverage Package: paths-le-1.3.1.vsix (2.41 MB, 375 files)
1 parent 68ed930 commit 7551953

20 files changed

Lines changed: 895 additions & 620 deletions

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,19 @@ All notable changes to Paths-LE will be documented here.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.3.1] - 2025-01-27
9+
10+
### Added
11+
12+
- **Portuguese (Brazil) localization** - Added complete pt-br language support for all user interface elements
13+
- **Enhanced internationalization** - Expanded language coverage to include Brazilian Portuguese for better accessibility
14+
15+
### Technical
16+
17+
- Added comprehensive Portuguese (Brazil) localization file with 73+ translated strings
18+
- All commands, settings, notifications, and help content now available in Portuguese (Brazil)
19+
- Maintained 100% backward compatibility with existing functionality
20+
821
## [1.3.0] - 2025-10-14
922

1023
### Added

coverage/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ <h1>All files</h1>
146146
<div class='footer quiet pad2 space-top1 center small'>
147147
Code coverage generated by
148148
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149-
at 2025-10-14T16:34:28.708Z
149+
at 2025-10-15T01:42:08.630Z
150150
</div>
151151
<script src="prettify.js"></script>
152152
<script>

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"publisher": "nolindnaidoo",
44
"displayName": "Paths-LE",
55
"description": "Zero Hassle file path extraction and analysis from JavaScript, TypeScript, JSON, HTML, CSS, TOML, CSV, and ENV files",
6-
"version": "1.3.0",
6+
"version": "1.3.1",
77
"license": "MIT",
88
"author": {
99
"name": "Nolin D Naidoo",

package.nls.json

Lines changed: 114 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,117 @@
11
{
2-
"manifest.ext.name": "Paths-LE",
3-
"manifest.ext.description": "File path extraction and analysis from JavaScript, TypeScript, JSON, HTML, CSS, TOML, CSV, and ENV files",
4-
"manifest.command.category": "Paths-LE",
5-
"manifest.command.extract.title": "Extract Paths",
6-
"manifest.command.dedupe.title": "Deduplicate Paths",
7-
"manifest.command.sort.title": "Sort Paths",
8-
"manifest.command.settings.title": "Open Settings",
9-
"manifest.command.settings.export.title": "Export Settings",
10-
"manifest.command.settings.import.title": "Import Settings",
11-
"manifest.command.settings.reset.title": "Reset Settings",
12-
"manifest.command.help.title": "Help & Troubleshooting",
13-
"manifest.settings.title": "Paths-LE Settings",
14-
"manifest.settings.copy.clipboard.desc": "Copy extracted paths to clipboard",
15-
"manifest.settings.dedupe.desc": "Remove duplicate paths",
16-
"manifest.settings.notifications.level.desc": "Notification level",
17-
"manifest.settings.notifications.level.option.all": "Show all notifications",
18-
"manifest.settings.notifications.level.option.important": "Show only important notifications",
19-
"manifest.settings.notifications.level.option.silent": "Show no notifications",
20-
"manifest.settings.open.new-file.desc": "Open results in new file",
21-
"manifest.settings.open.side-by-side.desc": "Open results side by side",
22-
"manifest.settings.safety.enabled.desc": "Enable safety checks",
23-
"manifest.settings.safety.warn.file-size.desc": "File size warning threshold (bytes)",
24-
"manifest.settings.safety.warn.large-output.desc": "Large output warning threshold (lines)",
25-
"manifest.settings.safety.warn.many-documents.desc": "Many documents warning threshold",
26-
"manifest.settings.parse-errors.desc": "Show parse errors",
27-
"manifest.settings.statusbar.enabled.desc": "Show status bar item",
28-
"manifest.settings.telemetry.desc": "Enable telemetry logging",
29-
"manifest.settings.analysis.enabled.desc": "Enable path analysis",
30-
"manifest.settings.analysis.includeValidation.desc": "Include validation in analysis",
31-
"manifest.settings.analysis.includePatterns.desc": "Include pattern analysis",
32-
"manifest.settings.validation.enabled.desc": "Enable path validation",
33-
"manifest.settings.validation.checkExistence.desc": "Check if paths exist",
34-
"manifest.settings.validation.checkPermissions.desc": "Check path permissions",
35-
"manifest.settings.performance.enabled.desc": "Enable performance monitoring and optimization",
36-
"manifest.settings.performance.max-duration.desc": "Maximum processing duration in milliseconds before warning",
37-
"manifest.settings.performance.max-memory.desc": "Maximum memory usage in bytes before warning",
38-
"manifest.settings.performance.max-cpu.desc": "Maximum CPU usage in milliseconds before warning",
39-
"manifest.settings.performance.min-throughput.desc": "Minimum throughput in paths per second before warning",
40-
"manifest.settings.performance.max-cache.desc": "Maximum cache size in entries before cleanup",
41-
"manifest.capability.untrusted-workspaces.desc": "Limited functionality in untrusted workspaces",
42-
"runtime.error.parsing": "Error parsing paths: {0}",
43-
"runtime.error.validation": "Validation error: {0}",
44-
"runtime.error.file-system": "File system error: {0}",
45-
"runtime.error.configuration": "Configuration error: {0}",
46-
"runtime.error.performance": "Performance error: {0}",
47-
"runtime.error.unknown": "Unknown error: {0}",
48-
"runtime.warning.large-file": "Large file detected ({0}). Processing may take time.",
49-
"runtime.warning.memory-usage": "High memory usage detected ({0}). Consider reducing file size.",
50-
"runtime.warning.performance": "Performance threshold exceeded. Processing may be slow.",
51-
"runtime.info.extraction-complete": "Extraction complete. Found {0} paths.",
52-
"runtime.info.analysis-complete": "Analysis complete. Generated report with {0} sections.",
53-
"runtime.info.validation-complete": "Validation complete. Validated {0} paths.",
54-
"runtime.progress.extracting": "Extracting paths...",
55-
"runtime.progress.analyzing": "Analyzing paths...",
56-
"runtime.progress.validating": "Validating paths...",
57-
"runtime.status.extracting": "Extracting paths from {0}",
58-
"runtime.status.analyzing": "Analyzing {0} paths",
59-
"runtime.status.validating": "Validating {0} paths",
60-
"runtime.recovery.retry": "Retrying operation...",
61-
"runtime.recovery.fallback": "Using fallback method...",
62-
"runtime.recovery.skip": "Skipping problematic entry...",
63-
"runtime.recovery.abort": "Aborting operation due to errors",
64-
"runtime.performance.duration": "Duration: {0}",
65-
"runtime.performance.memory": "Memory: {0}",
66-
"runtime.performance.throughput": "Throughput: {0} paths/second",
67-
"runtime.performance.cpu": "CPU: {0}",
68-
"runtime.safety.file-size-warning": "File size ({0}) exceeds threshold. Continue?",
69-
"runtime.safety.output-size-warning": "Output size ({0} lines) exceeds threshold. Continue?",
70-
"runtime.safety.many-documents-warning": "Will open {0} documents. Continue?",
71-
"runtime.confirmation.continue": "Continue",
72-
"runtime.confirmation.cancel": "Cancel",
73-
"runtime.confirmation.yes": "Yes",
74-
"runtime.confirmation.no": "No",
75-
"manifest.settings.keyboard.shortcuts.enabled.desc": "Enable keyboard shortcuts",
76-
"manifest.settings.keyboard.extract.shortcut.desc": "Keyboard shortcut for extracting paths",
77-
"manifest.settings.keyboard.analyze.shortcut.desc": "Keyboard shortcut for analyzing paths",
78-
"manifest.settings.presets.enabled.desc": "Enable presets",
79-
"manifest.settings.presets.default.desc": "Default preset to use",
80-
"manifest.settings.presets.default.option.minimal": "Minimal preset",
81-
"manifest.settings.presets.default.option.balanced": "Balanced preset",
82-
"manifest.settings.presets.default.option.comprehensive": "Comprehensive preset",
83-
"manifest.settings.presets.default.option.performance": "Performance preset",
84-
"manifest.settings.presets.default.option.validation": "Validation preset",
2+
"manifest.ext.name": "Paths-LE",
3+
"manifest.ext.description": "File path extraction and analysis from JavaScript, TypeScript, JSON, HTML, CSS, TOML, CSV, and ENV files",
4+
"manifest.command.category": "Paths-LE",
5+
"manifest.command.extract.title": "Extract Paths",
6+
"manifest.command.dedupe.title": "Deduplicate Paths",
7+
"manifest.command.sort.title": "Sort Paths",
8+
"manifest.command.settings.title": "Open Settings",
9+
"manifest.command.settings.export.title": "Export Settings",
10+
"manifest.command.settings.import.title": "Import Settings",
11+
"manifest.command.settings.reset.title": "Reset Settings",
12+
"manifest.command.help.title": "Help & Troubleshooting",
13+
"manifest.settings.title": "Paths-LE Settings",
14+
"manifest.settings.copy.clipboard.desc": "Copy extracted paths to clipboard",
15+
"manifest.settings.dedupe.desc": "Remove duplicate paths",
16+
"manifest.settings.notifications.level.desc": "Notification level",
17+
"manifest.settings.notifications.level.option.all": "Show all notifications",
18+
"manifest.settings.notifications.level.option.important": "Show only important notifications",
19+
"manifest.settings.notifications.level.option.silent": "Show no notifications",
20+
"manifest.settings.open.new-file.desc": "Open results in new file",
21+
"manifest.settings.open.side-by-side.desc": "Open results side by side",
22+
"manifest.settings.safety.enabled.desc": "Enable safety checks",
23+
"manifest.settings.safety.warn.file-size.desc": "File size warning threshold (bytes)",
24+
"manifest.settings.safety.warn.large-output.desc": "Large output warning threshold (lines)",
25+
"manifest.settings.safety.warn.many-documents.desc": "Many documents warning threshold",
26+
"manifest.settings.parse-errors.desc": "Show parse errors",
27+
"manifest.settings.statusbar.enabled.desc": "Show status bar item",
28+
"manifest.settings.telemetry.desc": "Enable telemetry logging",
29+
"manifest.settings.analysis.enabled.desc": "Enable path analysis",
30+
"manifest.settings.analysis.includeValidation.desc": "Include validation in analysis",
31+
"manifest.settings.analysis.includePatterns.desc": "Include pattern analysis",
32+
"manifest.settings.validation.enabled.desc": "Enable path validation",
33+
"manifest.settings.validation.checkExistence.desc": "Check if paths exist",
34+
"manifest.settings.validation.checkPermissions.desc": "Check path permissions",
35+
"manifest.settings.performance.enabled.desc": "Enable performance monitoring and optimization",
36+
"manifest.settings.performance.max-duration.desc": "Maximum processing duration in milliseconds before warning",
37+
"manifest.settings.performance.max-memory.desc": "Maximum memory usage in bytes before warning",
38+
"manifest.settings.performance.max-cpu.desc": "Maximum CPU usage in milliseconds before warning",
39+
"manifest.settings.performance.min-throughput.desc": "Minimum throughput in paths per second before warning",
40+
"manifest.settings.performance.max-cache.desc": "Maximum cache size in entries before cleanup",
41+
"manifest.settings.keyboard.shortcuts.enabled.desc": "Enable keyboard shortcuts",
42+
"manifest.settings.keyboard.extract.shortcut.desc": "Keyboard shortcut for extracting paths",
43+
"manifest.settings.keyboard.analyze.shortcut.desc": "Keyboard shortcut for analyzing paths",
44+
"manifest.settings.presets.enabled.desc": "Enable presets",
45+
"manifest.settings.presets.default.desc": "Default preset to use",
46+
"manifest.settings.presets.default.option.minimal": "Minimal preset",
47+
"manifest.settings.presets.default.option.balanced": "Balanced preset",
48+
"manifest.settings.presets.default.option.comprehensive": "Comprehensive preset",
49+
"manifest.settings.presets.default.option.performance": "Performance preset",
50+
"manifest.settings.presets.default.option.validation": "Validation preset",
51+
"manifest.capability.untrusted-workspaces.desc": "Limited functionality in untrusted workspaces",
52+
"runtime.statusbar.text": "$(file-directory) Paths-LE",
53+
"runtime.statusbar.tooltip": "Paths-LE: File Path Extraction",
54+
"runtime.sort.no-editor": "No active editor found",
55+
"runtime.sort.pick.placeholder": "Select sort order",
56+
"runtime.sort.pick.alpha-asc": "Alphabetical (A → Z)",
57+
"runtime.sort.pick.alpha-desc": "Alphabetical (Z → A)",
58+
"runtime.sort.pick.length-asc": "By Length (Short → Long)",
59+
"runtime.sort.pick.length-desc": "By Length (Long → Short)",
60+
"runtime.sort.success": "Sorted {0} paths ({1})",
61+
"runtime.sort.error": "Sorting failed: {0}",
62+
"runtime.dedupe.no-editor": "No active editor found",
63+
"runtime.dedupe.success": "Removed {0} duplicate paths ({1} remaining)",
64+
"runtime.dedupe.error": "Deduplication failed: {0}",
65+
"runtime.error.unknown-fallback": "Unknown error occurred",
66+
"runtime.error.parsing": "Error parsing paths: {0}",
67+
"runtime.error.validation": "Validation error: {0}",
68+
"runtime.error.file-system": "File system error: {0}",
69+
"runtime.error.configuration": "Configuration error: {0}",
70+
"runtime.error.performance": "Performance error: {0}",
71+
"runtime.error.unknown": "Unknown error: {0}",
72+
"runtime.warning.large-file": "Large file detected ({0}). Processing may take time.",
73+
"runtime.warning.memory-usage": "High memory usage detected ({0}). Consider reducing file size.",
74+
"runtime.warning.performance": "Performance threshold exceeded. Processing may be slow.",
75+
"runtime.info.extraction-complete": "Extraction complete. Found {0} paths.",
76+
"runtime.info.analysis-complete": "Analysis complete. Generated report with {0} sections.",
77+
"runtime.info.validation-complete": "Validation complete. Validated {0} paths.",
78+
"runtime.progress.extracting": "Extracting paths...",
79+
"runtime.progress.analyzing": "Analyzing paths...",
80+
"runtime.progress.validating": "Validating paths...",
81+
"runtime.status.extracting": "Extracting paths from {0}",
82+
"runtime.status.analyzing": "Analyzing {0} paths",
83+
"runtime.status.validating": "Validating {0} paths",
84+
"runtime.recovery.retry": "Retrying operation...",
85+
"runtime.recovery.fallback": "Using fallback method...",
86+
"runtime.recovery.skip": "Skipping problematic entry...",
87+
"runtime.recovery.abort": "Aborting operation due to errors",
88+
"runtime.performance.duration": "Duration: {0}",
89+
"runtime.performance.memory": "Memory: {0}",
90+
"runtime.performance.throughput": "Throughput: {0} paths/second",
91+
"runtime.performance.cpu": "CPU: {0}",
92+
"runtime.safety.file-size-warning": "File size ({0}) exceeds threshold. Continue?",
93+
"runtime.safety.output-size-warning": "Output size ({0} lines) exceeds threshold. Continue?",
94+
"runtime.safety.many-documents-warning": "Will open {0} documents. Continue?",
95+
"runtime.confirmation.continue": "Continue",
96+
"runtime.confirmation.cancel": "Cancel",
97+
"runtime.confirmation.yes": "Yes",
98+
"runtime.confirmation.no": "No",
99+
"runtime.format.javascript.description": "JavaScript/TypeScript files with import/require/export statements",
100+
"runtime.format.json.description": "JSON configuration files with nested paths",
101+
"runtime.format.html.description": "HTML files with src, href, and other path attributes",
102+
"runtime.format.css.description": "CSS files with url() and @import statements",
103+
"runtime.format.toml.description": "TOML configuration files",
104+
"runtime.format.csv.description": "CSV data files with path columns",
105+
"runtime.format.dotenv.description": "Environment variable files with path values",
106+
"runtime.info.package-filtered": "Filtered {0} package imports (e.g., 'react', 'lodash')",
107+
"runtime.info.data-url-filtered": "Filtered {0} data: URLs",
108+
"runtime.info.javascript-url-filtered": "Filtered {0} javascript: URLs",
85109

86-
87-
"runtime.format.javascript.description": "JavaScript/TypeScript files with import/require/export statements",
88-
"runtime.format.json.description": "JSON configuration files with nested paths",
89-
"runtime.format.html.description": "HTML files with src, href, and other path attributes",
90-
"runtime.format.css.description": "CSS files with url() and @import statements",
91-
"runtime.format.toml.description": "TOML configuration files",
92-
"runtime.format.csv.description": "CSV data files with path columns",
93-
"runtime.format.dotenv.description": "Environment variable files with path values",
94-
"runtime.info.package-filtered": "Filtered {0} package imports (e.g., 'react', 'lodash')",
95-
"runtime.info.data-url-filtered": "Filtered {0} data: URLs",
96-
"runtime.info.javascript-url-filtered": "Filtered {0} javascript: URLs"
110+
"runtime.help.title": "Paths-LE Help",
111+
"runtime.help.quick-start": "1. Open a JavaScript, TypeScript, JSON, HTML, CSS, TOML, CSV, or ENV file\n2. Run \"Paths-LE: Extract Paths\"\n3. View extracted file paths in results",
112+
"runtime.help.commands": "**Extract Paths**: Extract from current document\n**Sort Paths**: Sort alphabetically or by length\n**Deduplicate Paths**: Remove duplicate paths\n**Settings**: Configure options",
113+
"runtime.help.formats": "**Supported**: JavaScript, TypeScript, JSON, HTML, CSS, TOML, CSV, ENV\n**Path Types**: Import/require statements, file references, asset paths, configuration paths",
114+
"runtime.help.troubleshooting": "**No paths found?** Check file format and path syntax\n**Performance issues?** Enable safety settings for large files\n**Need help?** Check Output panel for details",
115+
"runtime.help.settings": "Access via Command Palette: \"Paths-LE: Open Settings\"\nKey settings: Copy to clipboard, deduplication, analysis, validation, performance monitoring",
116+
"runtime.help.support": "GitHub Issues: https://github.com/nolindnaidoo/paths-le/issues"
97117
}

src/commands/dedupe.ts

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
import * as vscode from 'vscode';
2+
import * as nls from 'vscode-nls';
3+
4+
const localize = nls.config({ messageFormat: nls.MessageFormat.file })();
25

36
export function registerDedupeCommand(context: vscode.ExtensionContext): void {
47
const command = vscode.commands.registerCommand(
58
'paths-le.postProcess.dedupe',
69
async () => {
710
const editor = vscode.window.activeTextEditor;
811
if (!editor) {
9-
vscode.window.showWarningMessage('No active editor found');
12+
vscode.window.showWarningMessage(
13+
localize('runtime.dedupe.no-editor', 'No active editor found'),
14+
);
1015
return;
1116
}
1217

@@ -36,12 +41,28 @@ export function registerDedupeCommand(context: vscode.ExtensionContext): void {
3641

3742
const removedCount = lines.length - deduped.length;
3843
vscode.window.showInformationMessage(
39-
`Removed ${removedCount} duplicate paths (${deduped.length} remaining)`,
44+
localize(
45+
'runtime.dedupe.success',
46+
'Removed {0} duplicate paths ({1} remaining)',
47+
removedCount,
48+
deduped.length,
49+
),
4050
);
4151
} catch (error) {
4252
const message =
43-
error instanceof Error ? error.message : 'Unknown error occurred';
44-
vscode.window.showErrorMessage(`Deduplication failed: ${message}`);
53+
error instanceof Error
54+
? error.message
55+
: localize(
56+
'runtime.error.unknown-fallback',
57+
'Unknown error occurred',
58+
);
59+
vscode.window.showErrorMessage(
60+
localize(
61+
'runtime.dedupe.error',
62+
'Deduplication failed: {0}',
63+
message,
64+
),
65+
);
4566
}
4667
},
4768
);

0 commit comments

Comments
 (0)