Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>LingPie i18nNew to Visual Studio Code? Get it now.
LingPie i18n

LingPie i18n

LingPie

| (0) | Free
Manage localization resources, edit translations, and sync with LingPie
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

LingPie i18n

Manage localization resources in your repository, edit translations, insert keys in source code, and sync with LingPie.

Features

Web, mobile & backend — 15 formats, one workflow

LingPie covers 6 platform stacks, 6 locale file types, and 15 built-in export formats — from Next.js and React Native JSON to Android strings.xml, Flutter .arb, and iOS String Catalog. Run LingPie: Initialize Project to scan your repo and generate lingpie.yaml mappings automatically.

Platform Supported stacks Locale files
Web next-intl, i18next / next-i18next, react-intl .json
React Native i18next, react-intl .json
iOS SwiftUI / UIKit, Xcode String Catalog .strings, .stringsdict, .xcstrings
Android Android resources strings.xml
Flutter Flutter .arb
Java / Spring Spring message bundles .properties

15 built-in formats: Apple strings & catalogs (4) · Android XML (2) · Flutter ARB (1) · i18next JSON (4) · next-intl JSON (2) · Java properties (2). Flat and nested JSON, ICU plurals, and printf interpolation — all in one extension.

Translation list

Browse locale files and translation keys from the LingPie activity bar. Keys are discovered from lingpie.yaml; the tree shows missing and parse-error badges on locale files.

Translation list

Switch between a visual table and raw locale file source:

Visual and source view

Translation editor

Edit all languages for a key in one place. Changes save to local locale files. Supports keys with arguments and plural forms.

Key with arguments

Plural key

Find key

Use the editor context menu or LingPie: Find Key to jump from a key reference in source code to the translation editor.

Find key

Replace with key

Use the editor context menu or LingPie: Replace with Key to replace selected text with a localized key. Replace templates are configurable (t('{key}'), intl.formatMessage, etc.) via lingpie.yaml and the lingpie.replaceTemplates setting.

Replace with key

Remote sync

Sign in with a LingPie project API key (lp_*) to pull and push translations from the tree, command palette, or per-mapping context menu. Find Key falls back to LingPie inspect when a key is missing locally. The API key is stored in VS Code SecretStorage and is never written to lingpie.yaml.

Pull and push

Requirements

  • A lingpie.yaml in your project (use LingPie: Initialize Project to create one)
  • For remote sync: a LingPie project API key with export, import, keys:read, languages:read (and keys:write if you create keys in the cloud)

Getting started

  1. Install the extension from the VS Code Marketplace.

  2. Open a workspace that contains or will contain localization files.

  3. Run LingPie: Initialize Project from the command palette to create or link a lingpie.yaml (scan-only or connected to a LingPie project):

    Initialize project

  4. Open the LingPie activity bar → Locale Files to browse mappings and keys (translation list).

  5. Click a key to open the translation editor, or use LingPie: Find Key / LingPie: Replace with Key in source files (find key · replace with key).

  6. Optional: LingPie: Sign In with your project API key, then use Pull / Push to sync with LingPie.

Configuration

LingPie reads project settings from each repo's lingpie.yaml. You can edit it in the visual project editor, directly in YAML, or mix both.

Project configuration editor

In the LingPie → Locale Files tree, click the edit icon on a project row (or run LingPie: Edit Project from the command palette) to open the project configuration page. Changes are written back to lingpie.yaml when you click Save; use Open YAML to jump to the raw file.

The editor covers:

  • Project — name, LingPie project ID (for pull/push), base language, API base URL, and Verify access
  • Code templates — editor.replaceTemplates snippets for Replace with key and Add Localization Key ({key} placeholder)
  • File mappings — path, alias, languages, export format, filters, and ICU handle options (arrayHandle, pluralHandle, etc.)

Project configuration

Use the + button in the tree title bar to scan a directory and create a new lingpie.yaml (LingPie: Add Project). Right-click a mapping to add locale files or open the translation list.

lingpie.yaml

Commit lingpie.yaml to Git. Do not store API keys in the file — sign in via LingPie: Sign In instead.

Minimal scan-only project (local editing only):

# lingpie.yaml — commit to Git; do not store api_key here
api:
  base_url: https://www.lingpie.com

project:
  name: "sample-next-intl"

files:
  - path: "messages/{language}.json"
    language: [de, en, fr, ja, zh]
    format: NEXT_INTL_JSON_FLAT
    filter:
      languageTags: {}
      tags: []
      screenshots: []
    handles:
      arrayHandle: NESTED
      pluralHandle: NESTED
      selectHandle: NESTED
      selectOrdinalHandle: NESTED

Linked to LingPie (remote pull/push) with replace templates:

api:
  base_url: https://www.lingpie.com

project:
  id: 7
  name: "next-intl"
  baselanguage: "en"

files:
  - path: "messages/{language}.json"
    language: [en, zh]
    format: NEXT_INTL_JSON_FLAT
    filter:
      languageTags: {}
      tags: []
      screenshots: []
    handles:
      arrayHandle: NESTED
      pluralHandle: NESTED
      selectHandle: NESTED
      selectOrdinalHandle: NESTED

editor:
  replaceTemplates:
    - "t('{key}')"

Per-locale paths (e.g. Android strings.xml) and remote language tag mapping:

files:
  - path: app/src/main/res/values-zh/strings.xml
    language: zh
    format: ANDROID_XML
    handles:
      pluralHandle: NESTED

  - path: Sources/MyApp/Resources/zh-Hans.lproj/Localizable.strings
    language: zh-Hans
    format: APPLE_STRINGS_AND_STRINGSDICT
    filter:
      languageTags:
        zh-Hans: zh   # local tag → LingPie remote tag
Section Purpose
api.base_url LingPie API endpoint; defaults to https://www.lingpie.com when unset
project.name Display name in the tree and editor
project.id LingPie project ID — required for pull/push
project.baselanguage Base language for sync and sorting; defaults to the first language in files
files[].path Locale file path; use {language} for multi-locale patterns
files[].format Export format (e.g. NEXT_INTL_JSON_FLAT, I18NEXT_KEY_JSON_NESTED, ANDROID_XML)
files[].filter.languageTags Map local language tags to LingPie remote tags (e.g. zh-Hans: zh when the repo uses zh-Hans but LingPie uses zh)
files[].handles How arrays, plurals, and selects are read/written (NESTED, FLAT, SKIP)
editor.replaceTemplates Code snippets for key insertion; merged with VS Code settings and built-in templates

Run LingPie: Initialize Project to auto-generate lingpie.yaml from your repo layout.

VS Code settings

Workspace-level settings in Settings → Extensions → LingPie (or settings.json):

Setting Description
lingpie.replaceTemplates Additional replace templates merged after lingpie.yaml editor.replaceTemplates

Example — add a React Intl template for the whole workspace without editing each project's YAML:

{
  "lingpie.replaceTemplates": [
    "intl.formatMessage({ id: '{key}' })"
  ]
}

Template precedence: built-in (detected from package.json / file type) → lingpie.yaml → VS Code settings. Use {key}, {keyQuoted}, {namespace}, or {keyTail} as placeholders.

Commands

Command Description
LingPie: Initialize Project Create or link a project via lingpie.yaml
LingPie: Sign In / Sign Out Store or clear the project API key
LingPie: Pull / Push Sync all mappings with LingPie
LingPie: Add Localization Key Insert a new key at the cursor
LingPie: Find Key Open the translation editor for a key reference
LingPie: Replace with Key Replace selected text with a localized key
LingPie: Show Translation Keys Browse keys for a locale file mapping
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft