Neatbo.

保留日历、翻译词条与几何的完整含义

转换给定日历定义、结构化 PO 词条与二维几何,并按平台检查翻译占位符,保留交接所需的区别。

按接收任务选择输入

日历清单读取一份不超过 5 MiB 的 UTF-8 ICS,展开物理续行,并在完整 JSON 中保留重复属性、参数与原始值。带 TZID 的 DTSTART 仍是声明;工具不解析时区、不把 RRULE 展开为多次日程。CSV 只摘要组件,不能完全替代 ICS。

完整交付件的选择
任务完整输出解释边界
ICS 检查完整定义 JSON不计算重复实例或时区
PO 迁移结构化 JSON 与规范 PO不保留原折行空白
翻译审查全部 token 与格式差异不验证运行参数
几何迁移几何与明确元数据侧文件只支持有限二维坐标

保留 PO 词条的完整身份

读取不超过 1 MiB 的 UTF-8 PO 或 neatbo-po-v1 结构化 JSON。结构形式保留上下文、单复数 ID、连续译文索引、注释、废弃词条与头信息;null 上下文不同于空上下文。反向转换需要全部必填字段与 trailingComments,扁平 msgid 字典无法恢复这些区别。

生成 PO 使用规范折行与 LF,不承诺原空白。只对活跃复数词条检查声明的形式数,不执行复数表达式。预览和 CSV 摘要最多 200 条,完整 JSON 与 PO 保留全部词条;应保留明确的 UTF-8 charset。

按实际平台语法对照占位符

提供 source/target 配对 JSON 数组,并明确选择 Android Java Formatter 或 Apple NSString。位置重排可能保留参数签名,但宽度、精度或百分号 token 已改变;报告分别呈现这些差异,便于翻译审查。

两套语法并不相同。Apple 动态宽度精度、混用位置编号及不支持转换会拒绝;Android 复用与日期后缀遵守声明的有限语法。签名相同不证明实际参数类型兼容,也不认证翻译质量,工具不执行格式化代码。

一起交付几何与 Feature 元数据

转换完整受支持的二维 WKT 或 GeoJSON,保留几何类型、环顺序与洞。空几何、Z/M 额外维度和 EWKT 不在此流程内。坐标采用有限 JavaScript 双精度值,不保证原十进制拼写。

WKT 没有 Feature ID 与属性的位置。需要回转时,应同时保存明确的元数据侧文件。大整数和高精度属性值保留在无损元数据表示中,不会被暗中当作坐标舍入。

按实际错误恢复

所选文件优先于粘贴文本。根据语法或预算错误修正源与设置后重新运行;部分预览不代表转换成功。交付下一工具前先下载完整结果。

  • 原始输入与完整下载一起保存。
  • 记录平台、转换方向与元数据政策。
  • 拒绝的构造属于不支持,不能当作成功空转换。

参考资料

本分类工具使用说明

展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。

ICS 日历定义清单检查本地 iCalendar 组件和事件声明,保留原始日期、时区、重复规则及重复属性。

导入日历前先审查导出文件实际声明的内容,展开折行,查看事件、参与人、提醒和扩展属性;重复规则与时区规则保持声明形式。

操作步骤

  1. 打开 UTF-8 ICS 导出,或粘贴完整 VCALENDAR 对象。
  2. 查看组件、原始 DTSTART/DTEND/DURATION/CREATED/RRULE 声明,并在完整 JSON 中检查重复参与人属性。
  3. 下载 JSON 或组件 CSV,接收端的时区定义及重复实例行为需要另行确认。

可调选项

保护 CSV 表格单元格
默认开启

能力与限制

  • 一个 UTF-8 .ics 文件或粘贴日历,不超过 5 MiB。物理行和属性各最多 100,000 条,组件最多 10,000 个,嵌套深度最多 20。所选文件优先,去除 UTF-8 BOM;接受 LF/CRLF,拒绝仅 CR 换行和空物理内容行。
  • 要求一个 BEGIN/END 配对的 VCALENDAR 根组件及 VERSION:2.0。续行移除首个空格或制表符后拼接。组件错配、孤立续行、未闭合参数引号及不合法参数语法会使整次处理失败。这里是清单,不是完整 RFC 合规校验器。
  • 保留重复属性和参数声明,支持带引号的逗号、冒号、分号值。JSON 保留原始值与来源行号,已知 TEXT 属性解码反斜杠转义;参数的 ^ 编码、未知 VALUE 类型和扩展属性以原始声明保留。
  • 已知日期声明检查日期时间拼写,并标注 DATE、UTC、浮动或带 TZID 类型。不解析时区、不生成重复实例、不排程、不执行提醒或计算持续时间,也不展开 RRULE/EXDATE/RDATE。预览显示 200 个组件,JSON 保留全部属性,CSV 保留组件摘要。
打开ICS 日历定义清单 →
PO 结构化词条转换在 UTF-8 gettext PO 和结构化 JSON 间转换,保留上下文、复数索引、头信息、注释、旧值及废弃词条。

通过明确的记录结构迁移翻译目录,避免扁平化损失语义。查看活跃与废弃词条,编辑带索引的译文,再生成可读 PO。

操作步骤

  1. 选择 PO → JSON 或结构化 JSON → PO,并打开一个本地 UTF-8 目录。
  2. 在 JSON 中检查上下文、复数、注释及废弃状态,编辑时保留每项全部六个字段。
  3. 下载 catalog.json 和 catalog.po,在接收端 gettext 流程中验证。

可调选项

转换方向
PO → JSON · JSON → PO
保护 CSV 表格单元格
默认开启

能力与限制

  • 一个 UTF-8 PO/JSON 文件或粘贴源,不超过 1 MiB。最多 10,000 个词条、100,000 个 PO 物理行,每项最多 100 个连续译文索引。生成 PO 不超过 4 MiB。所选文件优先,去除 BOM;输出使用 LF 和规范化引号、分行字符串。 JSON 解析另有 200,000 节点、128 层预算。
  • JSON 必须使用 schema=neatbo-po-v1、encoding=UTF-8、entries 和 trailingComments。每项必须包含 context、msgid、plural、translations、comments、obsolete。null 上下文区别于空上下文;单数译文使用键 0,复数从 0 连续编号。拒绝同状态词条身份重复及未知结构字段。
  • 保留头词条及译文文本、译者/提取/引用/标志/旧值注释行、废弃记录和结尾注释。不扁平化为 msgid 字典,不保留原折行空白,不编译 MO、不翻译、不计算复数表达式;只对明确 nplurals 检查活跃复数译文数量。
  • 仅接受严格 UTF-8 输入与明确 UTF-8 charset,其他编码会拒绝。支持无缩进声明及 C 字符串的引号、反斜杠、常见控制转义和 UTF-8 字节八/十六进制转义。拒绝未知转义、NUL、不合法引号、缺失 msgstr 和未完成词条内部注释。JSON/PO 保留全部记录,表格/CSV 只摘要词条。
打开PO 结构化词条转换 →
平台翻译占位符对照按 Android Java Formatter 或 Apple NSString 语法对照成对字符串,检查参数顺序、类型和格式变化。

在运行前找出译文改变参数或遗漏百分号的情况。选择实际平台,输入源文与译文配对,并检查需要人工确认的差异。

操作步骤

  1. 选择 Android Java Formatter 或 Apple NSString,粘贴 {key?,source,target} JSON 数组。
  2. 检查参数、格式和字面 token 的差异;显式位置占位符可在签名不变时调整顺序。
  3. 下载审查报告,并在目标应用中验证实际参数值与类型。

可调选项

目标平台
Android Java Formatter · Apple NSString
保护 CSV 表格单元格
默认开启

能力与限制

  • 一个 UTF-8 JSON 文件或粘贴数组,不超过 1 MiB,最多 10,000 对。每项包含 source、target 和可选唯一 key;key 最多 256 个 UTF-16 单元。每串最多 1,000 个 token,合计最多 100,000 个。所选文件优先。 JSON 解析另有 200,000 节点、128 层预算。
  • Android 支持 Java 通用 b/h/s、字符 c、整数 d/o/x、浮点 e/f/g/a 及文档中的 t/T 日期后缀和对应大写形式,支持 n$ 显式位置、独立普通序号、< 复用、静态宽度/精度、%%、%n。检查转换特定标志及重复冲突;显式索引与 < 同时出现会明确拒绝,不推断实际参数类型兼容性。
  • Apple 支持 @、d/D、u/U、x/X、o/O、f/F、e/E、g/G、a/A、c/C、s/S、p、%%,以及声明范围内的静态标志/宽度/精度、整数 hh/h/l/ll/q/z/t/j 和浮点 L 长度。混合位置/普通参数、动态 * 宽度精度、< 复用、%n、宽字符长度别名及不支持的标志组合会使整次处理失败。
  • 分别对照参数/转换/长度的出现次数、标志/宽度/精度,以及百分号/换行字面 token。格式变化是待审查结果,不自动改写,也不能证明实际运行必然错误。不提取 XML/strings 文件,不解析 ICU、不翻译、不执行格式化。预览显示 200 对,JSON 保留所有 token 位置和差异。
打开平台翻译占位符对照 →
二维 WKT 与 GeoJSON 转换在严格二维 WKT 与 GeoJSON 间转换,保留坐标顺序、多边形孔洞及明确的 Feature 元数据旁车文件。

交换平面几何时保留孔洞与 Feature 属性,检查整串语法,保持数值坐标,并按需下载几何和元数据。

操作步骤

  1. 选择 WKT → GeoJSON 或 GeoJSON → WKT,打开本地几何。
  2. 查看几何类型、位置数、环闭合及坐标;转换 Feature 时保留元数据旁车。
  3. 下载几何与旁车;恢复 Feature 时,将元数据 JSON 填入 WKT 转换的第二输入。

可调选项

转换方向
WKT → GeoJSON · GeoJSON → WKT
保护 CSV 表格单元格
默认开启

能力与限制

  • 一个 UTF-8 WKT/GeoJSON 文件或粘贴源,加可选 Feature 旁车,合计不超过 1 MiB。最多 100,000 个坐标位置、10,000 个几何对象,嵌套深度最多 20。所选文件优先,预览显示前 200 个位置,下载保留完整几何。 JSON 解析另有 200,000 节点、128 层预算。
  • 支持非空二维 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection。WKT 必须整串解析,支持声明的小数/指数语法;拒绝尾部垃圾、SRID/EWKT、Z/M、EMPTY、非有限值。使用有限 IEEE-754 双精度,拒绝不安全整数和负零,不承诺任意精度小数原文或提供舍入设置。
  • 线至少两个位置,环至少四个,首尾坐标必须相等。保持坐标、环和孔洞顺序,不修复方向,也不验证自相交拓扑。不猜坐标系、不解释地理轴序、不重投影。几何对象只能包含 type 及 coordinates/geometries;拒绝几何外来字段、null 几何和 FeatureCollection。
  • GeoJSON Feature 的 properties/id/其他 Feature 级字段保存在可下载 feature-metadata.json 中,旁车不含 geometry。将旁车与 WKT 一起输入可恢复 Feature,元数据不会静默丢弃。每次生成 .geojson 和 .wkt,原空白和数值拼写会规范化;表格保护只影响坐标报告 CSV。 Feature 元数据数值 token 无损保留,包括超出坐标安全范围的整数。
打开二维 WKT 与 GeoJSON 转换 →

本文相关工具

ICS 日历定义清单 →检查本地 iCalendar 组件和事件声明,保留原始日期、时区、重复规则及重复属性。PO 结构化词条转换 →在 UTF-8 gettext PO 和结构化 JSON 间转换,保留上下文、复数索引、头信息、注释、旧值及废弃词条。平台翻译占位符对照 →按 Android Java Formatter 或 Apple NSString 语法对照成对字符串,检查参数顺序、类型和格式变化。二维 WKT 与 GeoJSON 转换 →在严格二维 WKT 与 GeoJSON 间转换,保留坐标顺序、多边形孔洞及明确的 Feature 元数据旁车文件。