Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

PO Editor

KodaskillsKodaskillskodaskills2kodaskills2136 downloads

Editing PO (Gettext) translation files with format conversion support (ICU, XLIFF, ARB, JSON, YAML)

Add to Obsidian
PO Editor screenshot
PO Editor screenshot
PO Editor screenshot
PO Editor screenshot
PO Editor screenshot
  • Overview
  • Scorecard
  • Updates1
PO Editor logo

PO Editor — Obsidian Plugin

Edit, validate, and convert PO/Gettext translation files directly inside Obsidian — grid view, raw editor, multi-format export, and full plural form support.

Built with:


✨ Features

Area What PO Editor provides
Editor Dual-mode editing — interactive grid table and raw PO text editor with CodeMirror syntax highlighting
Format Conversion Convert PO ↔ XLIFF, ARB, ARB Enhanced, JSON, YAML, ICU MessageFormat
Entry Management Singular and plural forms, translator comments, flags, msgctxt context, source references
Filtering Filter by status (translated / untranslated / fuzzy), format flag, comment, or context
Validation Flag conflicts, plural integrity, empty msgstr, fuzzy/obsolete detection, strict mode
Commands Create, view, validate, mark/unmark fuzzy — all accessible from the command palette
Project Mode Manage multiple related PO files from a single folder
Settings Default language, output directory, custom keybindings, quick-action buttons, placeholder patterns

🚀 Installation

Community Plugins (when listed)

  1. Open Obsidian → Settings → Community plugins → Browse
  2. Search "PO Editor"
  3. Click Install, then Enable

BRAT (beta testing)

  1. Install BRAT from Community plugins
  2. Open BRAT settings → Add Beta Plugin
  3. Enter Kodaskills/obsidian-po-editor

Manual

Download the latest release from GitHub Releases, copy main.js, manifest.json, and styles.css to:

<vault>/.obsidian/plugins/po-editor/

Then reload Obsidian and enable the plugin.

Note: Desktop only — isDesktopOnly: true.


⚡ Quick Start

1. Click the 🌐 ribbon icon (or run "Create PO File" from the command palette)
2. Choose a language and output directory → file is created and opens in grid view
3. Click any row to edit an entry — add/update msgstr, set flags, add comments
4. Toggle to raw text mode (top-right) for direct PO source editing
5. Run "Validate PO File" to check for errors and incomplete translations
6. Use "Convert" to export the file to XLIFF, JSON, YAML, ARB, or ICU format

📂 Supported Formats

Format Extension Direction
Gettext PO .po Read & Write
Gettext Template .pot Read & Write
XLIFF .xliff PO ↔ XLIFF
Flutter ARB .arb PO ↔ ARB
ARB Enhanced .arb PO ↔ ARB (with metadata)
JSON .json PO ↔ JSON
YAML .yaml PO ↔ YAML
ICU MessageFormat .json PO ↔ ICU

🛠 Commands

Command ID Description
Create PO File po-create Open dialog to create a new .po file
View Active PO File po-view-active Open the currently active .po file in the editor
Validate PO File po-validate Run validation and show a detailed error/warning report
Mark as Fuzzy po-mark-fuzzy Add the fuzzy flag to the selected entry
Unmark Fuzzy po-unmark-fuzzy Remove the fuzzy flag from the selected entry

All commands are available via Ctrl/Cmd + P.


⚙️ Settings

Setting Default Description
outputDirectory (vault root) Where new PO files are saved
showComments true Show translator comments in the grid
preserveComments true Keep comments during format conversion
preserveFlags true Keep flags during format conversion
preserveReferences true Keep source references during format conversion
autoValidate false Run validation automatically on save
strictMode false Treat untranslated and fuzzy entries as errors
showLineNumbers true Show line numbers in the raw text editor
projectModeFolders [] Folders that activate project mode
placeholderPatterns (printf, ICU) Regex patterns for placeholder detection

Custom Keybindings

Map editor actions to keyboard shortcuts via keyMapping in settings. Bind any action to a key combination — no restart required.

Quick Actions

Configure quickActions buttons in settings to insert frequently used flags or comment snippets with a single click inside the entry editor.


📊 Validation

Run "Validate PO File" to get a full report:

Check Severity
Empty msgstr on non-header entry Error
Conflicting format flags (e.g. c-format + no-c-format) Error
Multiple conflicting format flags on one entry Error
Incorrect plural form count Error
Untranslated entries Warning
Fuzzy entries Warning
Obsolete entries Info

In strict mode, untranslated and fuzzy entries are promoted to errors.


📄 License

MIT — see LICENSE for details.


Maintained with ⚡ by the Kodaskills team

HealthExcellent
ReviewSatisfactory
About
Edit PO/Gettext translation files in Obsidian with a dual-mode grid and raw text editor, live syntax highlighting, and full plural-form support. Validate entries and flag conflicts or fuzzy/obsolete items, filter by status or context, manage related PO files, and convert or export to XLIFF, ARB, JSON, YAML, or ICU formats.
FilesEditingFormats
Details
Current version
0.1.0
Last updated
5 months ago
Created
6 months ago
Updates
1 release
Downloads
136
Compatible with
Obsidian 1.10.0+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Sponsor
GitHub Sponsors
GitHub Sponsors
Authors
KodaskillsKodaskillskodaskills
kodaskills.co
GitHubyudao
GitHubKodaskills
kodaskill
kodaskills2kodaskills2
kodaskills.co
GitHubkodaskills
  1. Community
  2. Plugins
  3. Files
  4. PO Editor

Related plugins

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)

Gemini Scribe

Allows you to interact with Gemini and use your notes as context.

Remember cursor position

Remember cursor and scroll position for each note.

Code Space

Professional code file management with visual dashboard, syntax highlighting editor, Markdown embedding, external folder mounts, and terminal integration.

Note Refactor

Extract note content into new notes and split notes.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Importer

Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many other formats.

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

LanguageTool Integration

Advanced grammar and spell checking, powered by LanguageTool.

Meta Bind

Make your notes interactive with inline input fields, metadata displays, and buttons.