LingPie i18nManage localization resources in your repository, edit translations, insert keys in source code, and sync with LingPie. FeaturesWeb, mobile & backend — 15 formats, one workflowLingPie covers 6 platform stacks, 6 locale file types, and 15 built-in export formats — from Next.js and React Native JSON to Android
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 listBrowse locale files and translation keys from the LingPie activity bar. Keys are discovered from
Switch between a visual table and raw locale file source:
Translation editorEdit all languages for a key in one place. Changes save to local locale files. Supports keys with arguments and plural forms.
Find keyUse the editor context menu or LingPie: Find Key to jump from a key reference in source code to the translation editor.
Replace with keyUse the editor context menu or LingPie: Replace with Key to replace selected text with a localized key. Replace templates are configurable (
Remote syncSign in with a LingPie project API key (
Requirements
Getting started
ConfigurationLingPie reads project settings from each repo's Project configuration editorIn 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 The editor covers:
Use the + button in the tree title bar to scan a directory and create a new
|
| 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 |








