LRM includes a browser-based Web UI that provides a modern interface for managing your localization resources. The Web UI is built with Blazor Server and includes a full REST API.
# Basic usage - starts on localhost:5000
lrm web --path /path/to/resources
# Custom port
lrm web --port 8080
# Bind to all interfaces (for remote access)
lrm web --bind-address 0.0.0.0
# With HTTPS
lrm web --enable-https --cert-path /path/to/cert.pfx --cert-password mypassword
# Don't auto-open browser
lrm web --no-open-browser| Option | Description | Default |
|---|---|---|
--path, -p |
Path to resources folder | Current directory |
--source-path |
Path to source code for scanning | Parent of resource path |
--port |
Port to bind to | 5000 |
--bind-address |
Address to bind to | localhost |
--no-open-browser |
Don't auto-open browser | false |
--enable-https |
Enable HTTPS | false |
--cert-path |
Path to .pfx certificate | - |
--cert-password |
Certificate password | - |
The dashboard provides an overview of your localization resources:
- Resource file count and total keys
- Translation coverage percentage
- Language coverage breakdown with progress bars
- Quick validation status
- Quick action buttons
Browse and manage all localization keys:
- Search with wildcards, regex, and case sensitivity
- Filter by status (missing, extra, duplicates)
- Filter by language
- Quick actions (Edit, Refs, Delete) for each key
- Pagination for large resource files
Edit individual keys with full translation support:
- Edit values for all languages
- Show/hide comment fields
- Inline translation with provider selection
- Code reference lookup
- Delete key functionality
- Plural key support (JSON backend only):
- Visual "Plural" badge on plural keys
- Separate input fields for each plural form (one, other, zero)
- CLDR plural forms: zero, one, two, few, many, other
Run validation checks on your resource files:
- Missing translations
- Extra keys (in non-default but not default)
- Empty values
- Duplicate keys
- Placeholder validation
Scan source code for localization key usage:
- Find unused keys (in resources but not in code)
- Find missing keys (in code but not in resources)
- View code references for each key
- Cached results for performance
Batch translate missing translations:
- Select translation provider
- Choose target languages
- Only translate missing values option
- Dry run preview mode
Manage resource file backups:
- List all backup versions
- Create manual backups
- Restore from backups
- View backup details
Configure languages and view configuration:
- Language management (add/remove)
- View lrm.json configuration
- Validate configuration
- Edit configuration
Export resources to different formats:
- JSON export
- CSV export
- Include comments option
The Web UI is powered by a full REST API. All operations available in the UI can also be performed programmatically.
API Base URL: http://localhost:5000/api
Swagger UI: http://localhost:5000/swagger
For complete API documentation, see API.md.
Web server settings can be configured in lrm.json:
{
"web": {
"port": 5000,
"bindAddress": "localhost",
"autoOpenBrowser": true,
"enableHttps": false,
"httpsCertificatePath": null,
"httpsCertificatePassword": null,
"cors": {
"enabled": false,
"allowedOrigins": ["http://localhost:3000"],
"allowCredentials": false
}
}
}| Variable | Description |
|---|---|
LRM_WEB_PORT |
Override default port |
LRM_WEB_BIND_ADDRESS |
Override bind address |
LRM_WEB_AUTO_OPEN_BROWSER |
Enable/disable auto browser open |
LRM_WEB_HTTPS_ENABLED |
Enable HTTPS |
LRM_WEB_HTTPS_CERT_PATH |
Certificate path |
LRM_WEB_HTTPS_CERT_PASSWORD |
Certificate password |
- By default, the server binds to
localhostonly - Use
--bind-address 0.0.0.0with caution (exposes to network) - Enable HTTPS for production use
- Consider firewall rules for remote access
- No built-in authentication (designed for local/trusted use)
The Web UI supports common keyboard shortcuts:
| Shortcut | Action |
|---|---|
Ctrl+S |
Save changes |
Escape |
Close modal/cancel |
Enter |
Confirm action |
The Web UI is tested on:
- Chrome/Chromium (recommended)
- Firefox
- Edge
- Safari
# Use a different port
lrm web --port 8080# Bind to all interfaces
lrm web --bind-address 0.0.0.0# Generate a development certificate
dotnet dev-certs https --export-path ./cert.pfx --password mypassword
lrm web --enable-https --cert-path ./cert.pfx --cert-password mypassword








