Getting Started with LRM Cloud
LRM Cloud is a web-based platform for managing localization resources with team collaboration features.
Creating an Account
To get started with LRM Cloud:
- Visit /app/register to create a free account
- Verify your email address
- Log in to access your dashboard
Dashboard Overview
After logging in, you'll see your dashboard with:
- Projects - Your localization projects
- Usage - Translation character usage and limits
- Quick Actions - Create project, sync, translate
Projects
Projects are the core organizational unit in LRM Cloud. Each project contains your localization resources in a specific format.
Creating a Project
- Click "New Project" on your dashboard
- Enter a project name
- Select the resource format:
- RESX - .NET resource files
- JSON - Standard JSON with culture suffixes
- i18next - i18next format with nested keys
- Set the default language (e.g., "en" for English)
- Click "Create"
Project Settings
Each project has configurable settings:
- Default Language - The source language for translations
- Languages - Target languages to support
- Format - Resource file format (cannot be changed after creation)
Resource Editor
The web-based resource editor provides a spreadsheet-like interface for managing translations.
Features
- Multi-language view - See all languages side by side
- Inline editing - Click any cell to edit
- Search & filter - Find keys quickly
- Validation - See missing or empty translations highlighted
- Comments - Add notes for translators
Adding Keys
- Click "Add Key" in the toolbar
- Enter the key name (e.g., "Welcome.Title")
- Enter the value for the default language
- Optionally add a comment
- Click "Save"
Translation
LRM Cloud offers multiple translation options to fit your workflow and budget.
Translation Options
| Option | Description | Usage |
|---|---|---|
| LRM Managed | We handle the translation APIs | Included characters per plan |
| Your Own Keys (BYOK) | Use your own API keys | Separate character limit |
| Free Providers | MyMemory, Lingva (no API key) | Counts toward BYOK limit |
Configuring Translation Providers
To use your own API keys:
- Go to Settings → Translation
- Select a provider (Google, DeepL, Azure, OpenAI, etc.)
- Enter your API key
- Click "Save & Test" to verify
Google Translate, DeepL, Azure Translator, AWS Translate, OpenAI, Anthropic Claude, Ollama (local), MyMemory, and Lingva.
Translating Keys
- Select one or more keys in the editor
- Click "Translate" in the toolbar
- Choose target languages
- Select translation provider
- Click "Translate"
Translation Memory
Translation Memory (TM) automatically stores your translations for reuse, saving costs and ensuring consistency across your projects.
What is Translation Memory?
Translation Memory is a database that remembers every translation you make. When you translate similar or identical text in the future, the system can retrieve cached translations instead of making new API calls.
Key Benefits
- Cost Savings - Avoid redundant API calls for repeated text
- Consistency - Same source text always produces the same translation
- Speed - Instant matches from cache are faster than API calls
- Learning - Your TM grows over time with every translation
How It Works
When you translate text:
- TM Check - The system first searches your Translation Memory
- Exact Match - If an identical translation exists, it's used immediately (no API call)
- Fuzzy Match - Similar translations above the threshold are suggested
- API Call - Only if no match is found, the translation provider is called
- Store - New translations are automatically saved to your TM
Match Types
| Type | Match % | Behavior |
|---|---|---|
| Exact Match | 100% | Automatic reuse, no API call needed |
| Fuzzy Match | 70-99% | Suggested based on similarity threshold |
| No Match | <70% | New translation via API |
Personal vs Organization TM
Translation Memory works at two levels:
- Personal TM - Your individual translations, private to your account
- Organization TM - Shared across all team members in your organization (Team/Enterprise plans)
When looking for matches, the system checks both your personal TM and your organization's shared TM. This means your team benefits from collective translation work.
Viewing TM Statistics
Your dashboard shows TM statistics including:
- Total entries stored
- Reuse count (how often TM matches were used)
- Breakdown by language pair
Glossary
The Glossary feature helps maintain consistent terminology across all your translations by defining approved terms and their translations.
What is a Glossary?
A glossary is a curated list of domain-specific terms with their approved translations. When translating, AI providers are instructed to use these exact translations for matching terms.
Key Benefits
- Terminology Consistency - Same term always translates the same way
- Brand Compliance - Ensure product names are never translated
- Domain Accuracy - Use industry-specific terminology correctly
- Team Standardization - Everyone uses the same approved terms
Types of Glossaries
| Type | Scope | Use Case |
|---|---|---|
| Project Glossary | Single project | Product-specific terminology |
| Organization Glossary | All org projects | Company-wide brand terms |
Glossary Inheritance
Projects can inherit terms from their organization's glossary:
- Organization terms apply to all projects by default
- Project-specific terms can override organization terms
- Inheritance can be disabled per-project if needed
Managing Glossary Terms
To add a glossary term:
- Open your project and go to "Glossary"
- Click "Add Term"
- Enter the source term (e.g., "Dashboard")
- Add translations for target languages (e.g., French: "Tableau de bord")
- Optionally add a description for context
- Choose case sensitivity (exact match vs. any case)
- Click "Save"
By default, terms are matched case-insensitively ("dashboard" matches "Dashboard"). Enable case-sensitive matching for terms where capitalization matters.
How Terms are Enforced
When using AI-powered translation providers (OpenAI, Claude, etc.):
- Matching glossary terms are detected in your source text
- The AI is instructed to use exact translations for those terms
- Translations respect your glossary even for complex sentences
Glossary enforcement works best with AI providers (OpenAI, Claude, Azure OpenAI). Traditional providers like Google Translate don't support contextual instructions.
CLI Sync
Sync your local resource files with LRM Cloud using the CLI. The sync system is entry-based, not file-based like Git.
How Sync Works
LRM Cloud sync differs from Git in important ways:
| Aspect | Git | LRM Cloud |
|---|---|---|
| Storage | Files with line diffs | Database entries per translation |
| Merge | 3-way line merge | File replacement (choose one) |
| Push | Commits with diffs | Incremental (only changed files) |
| Pull | Fetch deltas | Complete file snapshot |
Files are parsed into individual translation entries on the server. This enables web editing, review workflows (pending → translated → reviewed → approved), translation memory, and filtered exports.
Installation
Download the CLI from GitHub Releases or install via package manager.
Quick Start: Clone
# Clone a cloud project (like git clone)
lrm cloud clone https://lrm-cloud.com/@username/my-project
# Clone into a specific directory
lrm cloud clone https://lrm-cloud.com/org/project ./my-dir
Authentication
# Interactive login (opens browser)
lrm cloud login
# Or use API key (recommended for CI/CD)
lrm cloud set-api-key lrm_your_api_key_here
# Or via environment variable
export LRM_CLOUD_API_KEY=lrm_your_api_key_here
Push & Pull
# Push local changes to cloud
lrm cloud push
# Preview changes before pushing
lrm cloud push --dry-run
# Pull cloud changes to local
lrm cloud pull
# Accept all remote changes (no prompts)
lrm cloud pull --strategy remote
Conflict Resolution
When both local and remote have changed, you choose which version to keep:
--strategy local- Keep local version--strategy remote- Accept remote version (recommended for teams)--strategy prompt- Choose per file (default)--strategy abort- Stop if conflicts exist
Backup System
LRM automatically creates backups before pull operations:
- Stored in
.lrm/pull-backups/ - Keeps 10 most recent backups
- Restore manually:
unzip .lrm/pull-backups/backup.zip -d .
History & Undo
View sync history and undo previous pushes:
# View sync history
lrm cloud log
# View more history entries
lrm cloud log -n 20
# Undo a specific push
lrm cloud revert abc12345
# Preview what would be reverted
lrm cloud revert abc12345 --dry-run
Snapshots
Create named snapshots for important milestones (like Git tags):
# Create a snapshot before major changes
lrm cloud snapshot create "Before v2.0 release"
# List all snapshots
lrm cloud snapshot list
# Restore to a previous snapshot
lrm cloud snapshot restore <snapshot-id>
# Compare two snapshots
lrm cloud snapshot diff <from-id> <to-id>
See the Cloud Sync Guide for complete CLI documentation.
OTA (Over-The-Air) Localization
Update translations in your .NET applications in real-time without redeploying. LRM is the first and only OTA localization solution for .NET!
What is OTA?
OTA localization allows your .NET application to fetch translations directly from LRM Cloud at runtime. When you update translations in the web editor, your app automatically receives the changes without any code deployment.
OTA vs CLI Sync
| Aspect | CLI Sync | OTA |
|---|---|---|
| Update Method | Pull to local files, rebuild & deploy | Automatic at runtime |
| Deployment | Required for changes | Not required |
| Offline Support | Full (embedded resources) | Fallback to local |
| Best For | CI/CD workflows, version control | Quick fixes, live updates |
Quick Setup (.NET)
// Install the NuGet package
// dotnet add package LocalizationManager.JsonLocalization
// Program.cs
builder.Services.AddJsonLocalizationWithOta(options =>
{
options.UseOta(
endpoint: "https://lrm-cloud.com",
apiKey: "lrm_your_read_only_api_key",
project: "@username/my-project" // or "org/project"
);
});
Creating an API Key
- Go to Project Settings → API Keys
- Click "Create API Key"
- Select "Read" scope (minimum required for OTA)
- Copy the key (format:
lrm_xxxxxxxx)
Supported Platforms
OTA works with the entire .NET ecosystem:
- ASP.NET Core (Web APIs, MVC, Razor Pages, Blazor)
- .NET MAUI (iOS, Android, Windows, macOS)
- Avalonia, WPF, WinForms
- Console apps, Worker Services
- Azure Functions, AWS Lambda
For complete OTA setup instructions, configuration options, and code examples, see the .NET Libraries OTA documentation.
Teams & Organizations
Organizations allow team collaboration on localization projects (Team and Enterprise plans).
Creating an Organization
- Go to Settings → Organizations
- Click "Create Organization"
- Enter organization name
- Click "Create"
Inviting Members
- Open your organization
- Go to "Members" tab
- Click "Invite"
- Enter email address
- Select role (Admin, Member, or Viewer)
- Click "Send Invite"
Roles
| Role | Permissions |
|---|---|
| Owner | Full access, billing, delete organization |
| Admin | Manage projects, members, settings |
| Member | Edit resources, translate, sync |
| Viewer | View only, export |
Billing & Plans
Plan Comparison
| Feature | Free | Team ($9/mo) | Enterprise ($29/mo) |
|---|---|---|---|
| LRM Translation Chars | 5,000/month | 50,000/month | 500,000/month |
| BYOK Chars | 25,000/month | 250,000/month | 2,500,000/month |
| Projects | 3 | Unlimited | Unlimited |
| API Keys | 3 | 10 | Unlimited |
| Team Members | - | 10 | Unlimited |
| Organizations | - | Yes | Yes |
| Cloud Storage | 25 MB | 250 MB | 500 MB |
| Max File Size | 1 MB | 2 MB | 5 MB |
| Snapshots (per project) | 3 | 10 | 30 |
| Snapshot Retention | 7 days | 30 days | 90 days |
Managing Your Subscription
- Go to Settings → Billing
- View current plan and usage
- Click "Upgrade" or "Manage Subscription"
Usage Monitoring
Your dashboard shows real-time usage statistics:
- LRM translation characters used vs. limit
- BYOK characters used vs. limit
- Reset date for monthly limits
You'll receive warnings at 75% and 90% usage. Translation will be blocked at 100% until limits reset or you upgrade.