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:

  1. Visit /app/register to create a free account
  2. Verify your email address
  3. 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

  1. Click "New Project" on your dashboard
  2. Enter a project name
  3. Select the resource format:
    • RESX - .NET resource files
    • JSON - Standard JSON with culture suffixes
    • i18next - i18next format with nested keys
  4. Set the default language (e.g., "en" for English)
  5. 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

  1. Click "Add Key" in the toolbar
  2. Enter the key name (e.g., "Welcome.Title")
  3. Enter the value for the default language
  4. Optionally add a comment
  5. 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:

  1. Go to SettingsTranslation
  2. Select a provider (Google, DeepL, Azure, OpenAI, etc.)
  3. Enter your API key
  4. Click "Save & Test" to verify
Supported Providers

Google Translate, DeepL, Azure Translator, AWS Translate, OpenAI, Anthropic Claude, Ollama (local), MyMemory, and Lingva.

Translating Keys

  1. Select one or more keys in the editor
  2. Click "Translate" in the toolbar
  3. Choose target languages
  4. Select translation provider
  5. 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:

  1. TM Check - The system first searches your Translation Memory
  2. Exact Match - If an identical translation exists, it's used immediately (no API call)
  3. Fuzzy Match - Similar translations above the threshold are suggested
  4. API Call - Only if no match is found, the translation provider is called
  5. 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)
TM Priority

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:

  1. Open your project and go to "Glossary"
  2. Click "Add Term"
  3. Enter the source term (e.g., "Dashboard")
  4. Add translations for target languages (e.g., French: "Tableau de bord")
  5. Optionally add a description for context
  6. Choose case sensitivity (exact match vs. any case)
  7. Click "Save"
Case Sensitivity

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.):

  1. Matching glossary terms are detected in your source text
  2. The AI is instructed to use exact translations for those terms
  3. Translations respect your glossary even for complex sentences
Provider Support

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
Why Entry-Based?

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>
Full Documentation

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

  1. Go to Project SettingsAPI Keys
  2. Click "Create API Key"
  3. Select "Read" scope (minimum required for OTA)
  4. 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
.NET Documentation

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

  1. Go to SettingsOrganizations
  2. Click "Create Organization"
  3. Enter organization name
  4. Click "Create"

Inviting Members

  1. Open your organization
  2. Go to "Members" tab
  3. Click "Invite"
  4. Enter email address
  5. Select role (Admin, Member, or Viewer)
  6. 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

  1. Go to SettingsBilling
  2. View current plan and usage
  3. 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
Usage Warnings

You'll receive warnings at 75% and 90% usage. Translation will be blocked at 100% until limits reset or you upgrade.