Suggestions as per @wpferguson:
"We came to a decision a while ago to not translate debug
messages(i.e. print_log() and print_error()) because the author might
not be able to read the output if it was a language they weren't
familiar with. So the only thing we translate are labels, tooltips,
and dt.print() messages."
"df.check_if_bin_exists() returns the full path to the
executable. Using the returned value would let the script run on
windows and macos too."
Don't bother to pull EXIF data unless the imported image is a Fujifilm
raw.
Cleanup conditionals for error handling by immediately returning on
failure, avoiding deep nested conditionals.
Cleanup log/error output with clearer messages.