Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 23 Jul 14:00

exiftool-rs 0.7.0 — localizing ExifTool's PrintConv values, not just its labels

exiftool-rs already translated tag descriptions under -lang, but the enumerated values ("Off", "Auto", "Horizontal (normal)") stayed English while ExifTool localizes them too. Closing that gap turned out to be the interesting part of this release.

Why a flat table wasn't enough. The obvious design — a (tag, value) → translation map generated from ExifTool's Lang/*.pm — over-translates. The same tag name lives in several tables with different PrintConv kinds, and ExifTool only applies a Lang translation where the base PrintConv is a hash, not a code ref. So WhiteBalance "Auto" is localized under [Canon]/[ExifIFD] but left English under [Nikon]. The flat key can't tell them apart.

What actually works. A two-layer approach, all generated from ExifTool with nothing inferred: a broad (tag, value) table for coverage, plus a group-scoped override layer derived from ExifTool's real output over a 195-file corpus, emitted only where ExifTool is consistent for a given (group1, tag, value). One more wrinkle: values re-read from a standalone XMP file come back without their PrintConv, so ExifTool leaves those English — matched by suppressing translation for non-XMP groups in XMP files. The result is byte-identical to ExifTool's -lang output on 192/195 corpus files, in the CLI, JSON and the GUI. (The 3 remaining: Mach-O CPUArchitecture, which ExifTool itself localizes inconsistently — documented, not chased.)

Also in 0.7.0: all dependencies updated, the optional GUI migrated to egui/eframe 0.35 (which flipped its default renderer to wgpu — kept on glow to stay buildable on Windows), 81 newly-covered tags added to the 23 locale files, and a fix to -lang regional-code parsing (en_ca/zh_tw were mangled).

Honest scope: this is not a full ExifTool replacement — parity is proven on the test corpus, not every file in the wild, and ExifTool remains the reference. Prebuilt signed binaries (Linux/macOS/Windows) are attached below; or cargo install exiftool-rs.

Full changelog: v0.6.2...v0.7.0


Disclosure: these release notes were written with LLM assistance.