PO Editor

by Kodaskills
5
4
3
2
1
New Plugin

Description

This plugin has not been manually reviewed by Obsidian staff. Editing PO (Gettext) translation files with format conversion support (ICU, XLIFF, ARB, JSON, YAML)

Reviews

No reviews yet.

Stats

stars
downloads
0
forks
0
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

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.

Version Obsidian License Last Commit

Built with:

TypeScript Vite Obsidian API


✨ 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

TypeScript