Neatbo.

Preserve calendar, translation and geometry meaning

Convert supplied calendar definitions, structured PO catalogs and 2D geometry, and check platform placeholders without losing the distinctions needed by the receiving workflow.

Match the input to its receiving task

Use the calendar inventory to inspect one UTF-8 ICS file up to 5 MiB. It unfolds physical continuation lines and preserves repeated properties, parameters and raw values in the full JSON. A DTSTART with TZID remains a declaration; the tool does not resolve that zone or expand RRULE into occurrences. CSV summarizes components and is not a complete replacement for ICS.

Choose a complete handoff
TaskComplete outputInterpretation limit
ICS inspectionFull definition JSONNo recurrence or timezone evaluation
PO migrationStructured JSON and canonical PONot original lexical formatting
Translation reviewAll token and format differencesNot runtime argument validation
Geometry migrationGeometry plus explicit metadata sidecar2D finite coordinates only

Preserve the full PO catalog identity

Convert one UTF-8 PO or neatbo-po-v1 structured JSON up to 1 MiB. The structured form retains context, singular and plural IDs, contiguous translation indices, comments, obsolete entries and the header. A null context differs from an empty context. When converting back, retain trailingComments and all required entry fields; a flat msgid dictionary cannot reconstruct these distinctions.

Generated PO uses canonical wrapping and LF, rather than the original spacing. Declared plural counts are checked for active entries; plural expressions are not executed. Preview and CSV summarize at most 200 entries, while full JSON and PO hold the complete catalog. Keep its declared UTF-8 charset.

Compare placeholders under the actual platform grammar

Supply a JSON array of source/target pairs and explicitly choose Android Java Formatter or Apple NSString. Positional reordering can preserve argument signatures while width, precision or percent tokens change. The report separates those changes so a translation reviewer can assess them.

The two grammars differ. Dynamic Apple width/precision, mixed positional indexing and unsupported conversions reject the run. Android reuse and date suffixes follow the declared finite grammar. Matching signatures do not prove actual runtime argument types or certify the translation; no formatting code executes.

Keep geometry coordinates and Feature metadata together

Convert complete supported 2D WKT or GeoJSON, retaining geometry type, ring order and holes. Empty geometries, extra Z/M dimensions and EWKT are outside this workflow. Coordinates use finite JavaScript double values; their original decimal spelling is not guaranteed.

WKT has no place for Feature IDs or properties. Export and retain the explicit metadata sidecar when those values are needed on the return trip. Large integer and high-precision property values remain in that lossless metadata representation, rather than being silently rounded into coordinates.

Recover from a rejected input deliberately

Selected files take precedence over pasted text. Read the reported syntax or budget error, correct the source or settings, and rerun. A partial preview does not establish conversion success. Download complete output before passing it to another tool.

  • Keep the original source with full downloads.
  • Record platform, conversion direction and metadata policy.
  • Treat a rejected construct as unsupported, not as a successful empty conversion.

References

Tools in this category

Expand a tool to see its steps, options and supported formats, then open its workspace.

ICS calendar definition inventoryList local iCalendar components and event declarations with raw dates, time zones, recurrence rules and repeated properties.

Review what a calendar export declares before importing it. Unfold content lines and inspect event definitions, attendees, alarms and unknown properties while keeping recurrence and time-zone rules as declarations.

Steps

  1. Open a UTF-8 ICS export or paste one complete VCALENDAR object.
  2. Inspect components, raw DTSTART/DTEND/DURATION/CREATED/RRULE declarations and repeated attendee properties in the complete JSON.
  3. Download JSON or the component CSV. Confirm time-zone definitions and recurrence behavior separately in the receiving calendar.

Available options

Protect CSV cells in spreadsheets
On by default

Capabilities and limits

  • One UTF-8 .ics file or pasted calendar up to 5 MiB. At most 100,000 physical/property lines, 10,000 components and nesting depth 20. Selected file takes precedence. UTF-8 BOM is omitted; LF/CRLF are accepted, CR-only and empty physical content lines are rejected.
  • Requires one balanced VCALENDAR root with VERSION:2.0. Unfolds a leading space/tab from continued lines; mismatched components, orphan continuation lines, incomplete quotes and malformed parameter/value syntax reject the whole run. This is an inventory, not a complete RFC conformance validator.
  • Preserves repeated properties and parameter declarations, including quoted comma/colon/semicolon values. Raw value and source line remain in JSON; known TEXT properties decode backslash escapes. Parameter caret encodings, unknown VALUE types and extension properties stay visible as raw declarations.
  • Known date declarations are checked for calendar date/time spelling and classified as DATE, UTC, floating or TZID-tagged. No time-zone resolution, recurrence instance generation, scheduling, alarm execution or duration evaluation. RRULE/EXDATE/RDATE declarations are not expanded. Preview shows 200 components; JSON retains every property and CSV retains each component summary.
Open ICS calendar definition inventory →
Structured PO catalog converterConvert UTF-8 gettext PO and structured JSON while preserving context, plural indices, headers, comments, previous values and obsolete entries.

Move a translation catalog through an explicit record model without flattening its meaning. Review active and obsolete entries, edit indexed translations, and regenerate a readable PO file.

Steps

  1. Choose PO → JSON or structured JSON → PO and open one local UTF-8 catalog.
  2. Review context, plural forms, comments and obsolete state in JSON; retain all six fields when editing an entry.
  3. Download catalog.json and catalog.po, then validate them in the receiving gettext workflow.

Available options

Conversion
PO → JSON · JSON → PO
Protect CSV cells in spreadsheets
On by default

Capabilities and limits

  • One UTF-8 PO/JSON file or pasted source up to 1 MiB. At most 10,000 entries, 100,000 physical PO lines and 100 contiguous translation indices per entry. Generated PO is bounded to 4 MiB. Selected file takes precedence; BOM is omitted and generated PO uses LF with canonical quoted/multiline strings. JSON parsing also has a 200,000-node and depth-128 budget.
  • JSON must use schema neatbo-po-v1, encoding UTF-8, entries and trailingComments. Each entry has context, msgid, plural, translations, comments and obsolete. Context null differs from an empty context. Singular translations use key 0; plural indices begin at 0 and are contiguous. Duplicate active/obsolete identities and unknown schema fields reject.
  • Preserves the header entry and its translation text, translator/extracted/reference/flag/previous comment lines, obsolete records and trailing comments. Does not flatten to a msgid dictionary, preserve original wrapping/spacing, compile MO, translate or evaluate plural formulas. A declared nplurals is checked for active plural form counts only.
  • Strict UTF-8 input and declared UTF-8 charset only; other charsets reject. PO uses unindented declarations and C string escapes for quotes/backslashes, common controls and UTF-8 byte octal/hex escapes. Unknown escapes, NUL, malformed quotes, missing msgstr and comments inside an unfinished entry reject. JSON/PO downloads retain complete records; the table/CSV summarize entries, not every translation.
Open Structured PO catalog converter →
Platform translation placeholder checkerCompare Android Java Formatter or Apple NSString placeholder signatures across paired strings, including argument order, types and formatting changes.

Catch a translated format string that changes an argument or drops a literal percent. Select the actual platform, supply source/target pairs, and inspect changes before handing strings to the runtime.

Steps

  1. Choose Android Java Formatter or Apple NSString. Paste a JSON array of {key?,source,target}.
  2. Inspect argument, formatting and literal-token differences. Explicit positional placeholders can be reordered while keeping signatures.
  3. Download the review report and validate actual argument values/types in the target application.

Available options

Target platform
Android Java Formatter · Apple NSString
Protect CSV cells in spreadsheets
On by default

Capabilities and limits

  • One UTF-8 JSON file or pasted array up to 1 MiB, at most 10,000 pairs. Each pair has source, target and optional unique key of at most 256 UTF-16 units. At most 1,000 tokens per string and 100,000 combined tokens. Selected file takes precedence. JSON parsing also has a 200,000-node and depth-128 budget.
  • Android grammar supports Java general b/h/s, character c, integral d/o/x, floating e/f/g/a and documented t/T date suffixes, including uppercase variants, explicit n$, independent ordinary indices, < reuse, static width/precision, %% and %n. Conversion-specific flags and invalid duplicate/conflicting flags are checked. An explicit index combined with < is deliberately unsupported. Runtime argument compatibility is not evaluated.
  • Apple grammar supports @, d/D, u/U, x/X, o/O, f/F, e/E, g/G, a/A, c/C, s/S, p and %% with declared static flags/width/precision and integer hh/h/l/ll/q/z/t/j or floating L lengths. Mixed positional/ordinary forms, dynamic * width/precision, < reuse, %n, wide length aliases and unsupported flag/conversion combinations reject the whole run.
  • Argument/conversion/length occurrence counts are compared separately from flags/width/precision and literal-percent/newline tokens. A format change is a review result, not an automatic rewrite or proof of a runtime error. No XML/strings-file extraction, ICU parsing, translation or runtime execution. Preview shows 200 pairs; JSON includes token positions and all differences.
Open Platform translation placeholder checker →
2D WKT and GeoJSON converterConvert strict two-dimensional WKT and GeoJSON geometries while preserving coordinate order, polygon holes and explicit Feature metadata sidecars.

Exchange a planar geometry without dropping its holes or Feature properties. Check the complete geometry syntax, preserve its numeric coordinates and download both geometry and metadata when needed.

Steps

  1. Choose WKT → GeoJSON or GeoJSON → WKT and open one local geometry.
  2. Inspect geometry type, position count, ring closure and coordinates. If converting a Feature, retain its metadata sidecar.
  3. Download geometry and sidecar. To restore a Feature, convert WKT with that metadata JSON in the secondary input.

Available options

Conversion
WKT → GeoJSON · GeoJSON → WKT
Protect CSV cells in spreadsheets
On by default

Capabilities and limits

  • One UTF-8 WKT/GeoJSON file or pasted source plus optional Feature sidecar, combined up to 1 MiB. At most 100,000 positions, 10,000 geometries and geometry nesting depth 20. Selected file takes precedence. Preview shows the first 200 coordinate positions; downloads contain the complete geometry. JSON parsing also has a 200,000-node and depth-128 budget.
  • Supports nonempty 2D Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon and GeometryCollection. WKT is consumed completely, with decimal/exponent number syntax; suffix garbage, SRID/EWKT, Z/M dimensions, EMPTY and nonfinite numbers reject. Positions use finite IEEE-754 doubles; unsafe integers and negative zero reject. No arbitrary-precision decimal preservation or rounding setting.
  • Lines need at least two positions; rings need at least four and equal first/last positions. Coordinate/ring/hole order is retained; orientation and self-intersection are not repaired or validated. No coordinate-system guessing, geographic-axis interpretation or reprojection. Geometry objects must contain type and coordinates/geometries only; foreign geometry members, null geometry and FeatureCollection reject.
  • GeoJSON Features preserve properties/id/other Feature-level members in a downloadable feature-metadata.json sidecar, which excludes geometry. Supply that sidecar with WKT to restore the Feature. Metadata is never silently discarded. A selected conversion generates both .geojson and .wkt; original text spacing/number spelling is canonicalized. Spreadsheet protection changes CSV coordinate-report cells only. Feature metadata number tokens are retained losslessly, including integers beyond the coordinate-safe range.
Open 2D WKT and GeoJSON converter →

Tools used in this article

ICS calendar definition inventory →List local iCalendar components and event declarations with raw dates, time zones, recurrence rules and repeated properties.Structured PO catalog converter →Convert UTF-8 gettext PO and structured JSON while preserving context, plural indices, headers, comments, previous values and obsolete entries.Platform translation placeholder checker →Compare Android Java Formatter or Apple NSString placeholder signatures across paired strings, including argument order, types and formatting changes.2D WKT and GeoJSON converter →Convert strict two-dimensional WKT and GeoJSON geometries while preserving coordinate order, polygon holes and explicit Feature metadata sidecars.