用于帮助翻译多个文件名的程序/命令

我有数百个具有不同名称的文件 ,我想将其翻译成不同的语言。

是否存在应用程序/ CLI操作,允许我复制列表/表中的所有名称,然后在翻译它们之后将它们粘贴回列表/表中,或者允许程序有点类似于“重新命名为“在Thunar,但更复杂的行动更接近我所描述的?

(我在Lubuntu,我不喜欢使用Nautilus,因为不需要干扰LXDE / pcmanfm桌面和LXPanel。如果Nautilus有解决方案请提供,但如果可能的话尽量给出替代方案。)

下面的脚本受到此处不同讨论的启发,使用了translate-bin ,这个相关问题中的程序,并一次翻译和重命名您的文件。 它适用于批量翻译和一次性重命名数百个文件。 首先从存储库安装必要的程序:

 sudo apt-get install libtranslate0 libtranslate-bin 

该脚本目前设置为重命名扩展名为.txt任何文件,但它可以处理您可能需要的任何内容:只需将.txt所有实例更改为.jpg.mp4或您希望翻译时所需的任何文件他们。

该脚本当前设置为将文件名从德语(de)翻译为法语(fr),但您可以选择所使用的服务( -s )支持的任何语言; 由于该翻译服务目前是Google,因此提供了许多语言。

打开文本编辑器,保存文件,然后使用chmod u+x myscript使其可执行。

 #!/bin/bash for i in *.txt do mv -i "$i" "$(echo ${i%.txt} | translate-bin -s google -f de -t fr).txt"; done 

您可以将脚本放在包含目标文件的文件夹中,然后执行它,或者将其放在~/bin文件夹中,然后使用终端cd到包含文件的文件夹,并使用您提供的名称调用脚本。 有关bin文件夹的更多信息,请参阅我的答案。

这是我打开终端并cd到目标文件夹的示例:

在脚本运行之前, ls以德语返回dog和cat:

 Hund.txt Katze.txt 

在使用./scriptname在终端中执行脚本之后, ls的输出是法语中的dog和cat:

 Chien.txt Chat.txt 

最好在使用脚本之前备份文件,但如果找到无效的转换目标(如sgghdsgsh.txt ),则无论设置何种语言,脚本都不会执行任何操作。 但是,为了防止它覆盖文件,我们可以添加-imv :如果单击并运行并且目标文件存在,则不会发生任何事情,但如果脚本在带有./script终端中运行,则会要求您确认:

 mv: `Cat.txt' and `Cat.txt' are the same file mv: overwrite `Cat.txt'? n 

我认为没有必要在脚本中加入任何其他检查,所以这应该是令人满意的。

有关该程序的更多选项,请参阅man translate或Ubuntu联机帮助页 。