I needed to rename a whole load of files that were in Japanese. So I wrote a python program that translates the filename using google translate.
It’s not at all fancy, just run it and pass the filenames to translate and rename.
E.g.:
$ ls こんにちは世界.png $ sudo pip3 install googletrans $ translate_rename.py こんにちは世界.png こんにちは世界.png -> Hello_World.png $ ls Hello_World.png
#!/usr/bin/python3 import sys, re, os from googletrans import Translator translator = Translator() sourceLanguage = 'ja' destLanguage = 'en' # Set to false to actually rename the files dryRun = True def translate_and_rename(filename): filenameSplit = filename.rsplit('.',1) translated = translator.translate(filenameSplit[0], src=sourceLanguage, dest=destLanguage).text translated = re.sub( '[^a-zA-Z0-9.]+', '_', translated).strip().title() if len(filenameSplit) > 1: translated += '.' + filenameSplit[1] if filename == translated: print(filename, ' (unchanged)') else: print(filename, " -> ", translated) if not dryRun: os.rename(filename, translated) def main(argv): if len(argv) == 1: print("Need to pass filenames to translate and rename") for x in argv[1:]: translate_and_rename(x) if dryRun: print() print(" Dry run only - no actual changes made ") print() print("Edit this file and set DryRun to True") if __name__ == "__main__": main(sys.argv)