# Localhero.ai > Localhero.ai is an AI-powered i18n translation management platform for development teams. It automates translations of YAML, JSON, and Gettext PO files via GitHub Actions, a CLI tool, and an agent skill for AI coding assistants. It learns how your product speaks and keeps it speaking that way, in every language, on every PR, whether a human or an AI agent wrote the strings. Based in Stockholm, Sweden. ## For AI Coding Agents Localhero.ai works natively with AI coding assistants like Claude Code and Cursor. Install the agent skill and your assistant gets access to your project's glossary, style settings, and key naming conventions, so it writes source strings that match your product's voice. Localhero handles translation to all target languages automatically when the PR is created. Install the skill: `npx skills add localheroai/agent-skill` The skill gives the assistant: - Glossary terms loaded from your project settings - Brand voice and tone configuration - Key naming conventions from existing translation files - CLI access to translate, push, and pull translations Prerequisites: CLI installed and authenticated (`npx @localheroai/cli login`). ## How It Works You ship a feature, it's localized. An agent writes strings at 2am, they match your product's voice. A new language gets added, it inherits everything the project already knows about itself. Nobody has a meeting about it. It integrates into CI/CD pipelines to translate app strings on every push or pull request. It supports 100+ languages and works with Rails (I18n YAML), React and Next.js (i18next JSON), Django (Gettext PO), and any other framework using standard translation file formats. ## Core Features **Glossary**: Define terms with translation strategies (default, never translate, always translate, adapt to market). Add usage context and example translations. Bulk import from CSV (up to 100 terms per file) with auto-detected column mapping. Available at project and organization level. Accessible via API and agent skill. **Brand Voice & Style Guide**: Configure tone (friendly, informal, technical, professional, casual), length preference, gender handling, and content type. Write custom style guide rules. These settings shape every translation. **Quality Validation**: AI-powered quality checks that evaluate translations for accuracy, consistency, and adherence to your style guide. Run quick, recent, or full checks. Issues are tracked with status (active, fixed, dismissed). **Translation Memory**: Automatically extracts patterns from past translations using semantic similarity search. Memories reinforce over time as similar translations appear, improving consistency across the project. What makes it compound over time: every glossary term you define, every style guide rule you set, every translation you review and refine, Localhero absorbs these decisions and applies them to all future translations. The platform gets more accurate and more attuned to your product's voice the longer you use it. ## Key Facts - Pricing: Free tier with 500 credits/month, paid plans from $29/month, enterprise with custom pricing. 1 credit = 1 key translated to 1 language (up to ~100 characters). Need extra credits? 500-credit top-up packs (~8,000 words) available for $19 on any paid plan. Purchased credits don't expire. - CLI: `npx @localheroai/cli` with commands: init, login, translate, push, pull, clone, ci, glossary, settings. No global install needed. - GitHub Action: `localheroai/action@v1` on GitHub Marketplace - GitHub App: One-click install at https://github.com/marketplace/localhero-ai (reviewed by GitHub, free tier available) - Agent Skill: `npx skills add localheroai/agent-skill` for Claude Code and Cursor - REST API at api.localhero.ai, authenticated via organization-scoped API key - Contact: hi@localhero.ai ## Docs - [Getting Started](https://localhero.ai/docs): Set up a project with npx @localheroai/cli init, which detects your framework, finds your locale files, and offers to write the GitHub Actions workflow. Links out to a quick-start page for your specific stack. - [Project Setup](https://localhero.ai/docs/setup): The six steps init walks through: API key, project, source and target languages, translation file paths, the optional GitHub Action, and importing your existing translations. Covers matching locale codes to your filenames, including regional ones like pt_BR. - [CLI Reference](https://localhero.ai/docs/cli-reference): Every command and flag: init, login, translate, push, pull, clone and ci. Includes what --changed-only diffs against, what --prune deletes when you rename keys, and the LOCALHERO_API_KEY environment variable. - [GitHub Actions Guide](https://localhero.ai/docs/github-actions): The workflow that translates changed keys on each pull request and commits them back to the branch. Covers required permissions, when the Action runs, what it skips (draft PRs, skip labels, bot commits), and extra extract steps for gettext projects. - [GitHub App](https://localhero.ai/docs/github-app): The optional App that opens a setup PR for your repo, pushes dashboard edits back as Export to GitHub or Sync to GitHub, and tracks pending keys until a PR merges. It does not run translations itself, the Action does. - [AI Agent Integration](https://localhero.ai/docs/ai-agents): An agent skill for Claude Code and Cursor, installed with npx skills add localheroai/agent-skill. It loads your glossary, tone settings, and key naming conventions so the assistant writes source strings that match your product's voice. - [Review workflow](https://localhero.ai/docs/review): How a human keeps final say. Reviewers are assigned to a pull request, adjust translations in the dashboard without touching code or git, approve, and sync their edits back to the PR as a commit. Also covers turning off auto-translate per language when your team writes that copy itself. - [CI/CD pipelines](https://localhero.ai/docs/ci): GitHub is supported through the ready-made Action. On GitLab CI, Bitbucket Pipelines, Jenkins or any runner with a shell, run the CLI yourself with translate --changed-only, which diffs against your base branch using plain git. Needs Node 18+, a LOCALHERO_API_KEY environment variable, and a non-shallow clone. ## Docs – Frameworks - [Ruby on Rails](https://localhero.ai/docs/rails): Translate Rails i18n YAML files on every pull request. Covers init detection of config/locales, split files like devise.en.yml, ignoreKeys for admin copy, prune semantics when renaming keys, and CLDR plural categories per target language. - [Django](https://localhero.ai/docs/django): Translate Django gettext .po files on every pull request. Covers the makemessages extract step your workflow has to run first, the locale/LC_MESSAGES layout, the django workflow setting, and why ignoreKeys does not apply to .po files. - [Phoenix](https://localhero.ai/docs/phoenix): Translate Phoenix and Elixir gettext .po files on every pull request. Covers init detection from mix.exs, the priv/gettext//LC_MESSAGES layout including non-standard locale codes, umbrella apps, and the mix gettext.extract step your workflow has to run first. - [React](https://localhero.ai/docs/react): Translate the JSON message catalogs used by i18next, next-intl, react-intl and vue-i18n. Covers the per-library path defaults init proposes, namespaced files, how the locale is read from a filename or path, and ignoreKeys for internal copy. - [LinguiJS](https://localhero.ai/docs/lingui): Translate Lingui .po catalogs per pull request, with ICU plurals adapted to each locale's CLDR categories. No SDK and no plugin: the catalog file is the integration, so your extract and compile steps stay as they are. ## Pages - [Pricing](https://localhero.ai/pricing): Plan comparison, credit system, and FAQ - [About](https://localhero.ai/about): Founder letter and company background - [Support](https://localhero.ai/support): Contact and help resources ## Blog - [DIY vs Code-Native vs TMS: How to Choose a Translation Setup for Your Stack](https://localhero.ai/blog/how-to-pick-translation-setup-stack): A decision aid for product teams choosing between DIY, code-native, and full TMS platforms based on stack, team shape, and what's slowing them down, with concrete pricing for Lokalise, Phrase, and Crowdin - [A Localization Workflow for Small Marketing Teams](https://localhero.ai/blog/localize-marketing-copy-prompts-evals): What we learned localizing marketing copy (not just product strings) in a customer test on a small Next.js marketing site, including where transcreation differs from UI translation - [The Best GitHub Actions for i18n Translation, Compared (2026)](https://localhero.ai/blog/best-i18n-translation-github-actions): Open-source actions, hosted services, and TMS integrations that translate i18n files in CI, compared on formats, delta translation, consistency, and review - [Auto-Translate JSON & YAML i18n Files on Every Commit (GitHub Actions)](https://localhero.ai/blog/translate-json-yaml-in-ci): A working pattern for keeping JSON and YAML locale files synced across languages via CI, covering key diffing, placeholder protection, and what tends to break - [Auto-Translate Gettext .po Files in CI (Django, Phoenix, LinguiJS)](https://localhero.ai/blog/translate-po-files-in-ci): Why .po files break differently (the source text is the key), the fuzzy-matching gotchas per framework, and working CI configs including Phoenix umbrella apps - [Translation Tools with react-i18next and LinguiJS Support, Compared (2026)](https://localhero.ai/blog/translation-tools-react-i18next-lingui-github): Which translation platforms document react-i18next and LinguiJS support versus handling generic .po, why the Lingui column is nearly empty, and how each integrates with GitHub, with primary sources checked July 2026 - [Translating Your i18n Files with Claude Code or Cursor](https://localhero.ai/blog/translate-i18n-with-claude-code-cursor): How to make AI coding agents translation-aware with glossary context, agent skills, and CI so features ship translated alongside the code - [Localhero.ai is now on the GitHub Marketplace](https://localhero.ai/blog/localhero-on-github-marketplace): Announcement of the GitHub App listing on the Marketplace, who it is for, and how it compares to the Action and CLI - [How to Localize Your SaaS With a Small Team](https://localhero.ai/blog/localize-saas-small-team): What actually works for small dev teams shipping in multiple languages - [SaaS Localization Without a TMS](https://localhero.ai/blog/saas-localization-without-tms): Why most SaaS teams don't need a Translation Management System, and what to use instead - [What SaaS Localization Actually Costs](https://localhero.ai/blog/saas-localization-cost): Real cost breakdowns at every stage of SaaS growth, including hidden costs and a budgeting framework - [How to Localize Your Rails or React SaaS End-to-End](https://localhero.ai/blog/saas-localization-rails-react-end-to-end): The full SaaS localization workflow beyond the i18n basics, covering locale routing, emails, UGC, SEO, and multi-tenancy - [Automate SaaS Localization in Your CI Pipeline](https://localhero.ai/blog/automate-saas-localization-ci-pipeline): Continuous localization for developer-driven teams: CI-native, deterministic, no dashboard required - [Automate i18n with GitHub Actions](https://localhero.ai/blog/automate-i18n-github-actions): Three approaches to automating translations in CI/CD with working config examples - [Your Coding Agent Should Handle Translations Too](https://localhero.ai/blog/automate-translations-coding-agents): Making AI coding agents translation-aware with glossary-driven skills and CI automation - [Using the OpenAI API for App Translation](https://localhero.ai/blog/why-not-just-use-openai-api): What works and what breaks when using the OpenAI API for app translation - [Translation Quality at Scale](https://localhero.ai/blog/translation-quality-at-scale): How to check and maintain translation quality across many languages - [How to Evaluate AI Translation Quality](https://localhero.ai/blog/translation-quality-evaluation): A practical framework for evaluating AI translation quality with LLM-as-Judge, confidence scoring, and automated checks - [Style Guide & Glossary Setup](https://localhero.ai/blog/style-guide-glossary-setup): Configuring brand voice and terminology for consistent translations - [How to Automate Your Translation Workflow](https://localhero.ai/blog/translation-process-guide): Compare in-house, agency, and AI automation approaches with a decision framework - [How to Localize a Ruby on Rails App](https://localhero.ai/blog/localize-ruby-on-rails-app): Practical guide to Rails I18n, YAML locale files, pluralization, date formatting, and common gotchas - [How to Localize a Django App](https://localhero.ai/blog/localize-django-app): Practical guide to Django i18n with gettext, .po files, template tags, URL i18n, and common gotchas - [How to Localize a React and Next.js App](https://localhero.ai/blog/localize-react-nextjs-app): Practical guide to React/Next.js i18n with next-intl, locale routing, Server Components, ICU message format, and common gotchas - [How to Localize a React App With Lingui](https://localhero.ai/blog/localize-react-lingui-app): Practical guide to Lingui.dev i18n with macros, .po file extraction, ICU plurals, context, and automated translations - [Custom Locales: Shipping Easy Japanese (やさしい日本語)](https://localhero.ai/blog/custom-locales-easy-japanese): Supporting custom locales like ja_easy as first-class languages, with AI translation that follows the Easy Japanese guidelines for learner-oriented language versions ## Optional - [Privacy Policy](https://localhero.ai/privacy): Data handling and privacy practices - [Terms of Service](https://localhero.ai/terms): Legal terms of use - [Cookie Policy](https://localhero.ai/cookie-policy): Cookie usage details