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

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

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

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

(我在 Lubuntu 中,并且我不喜欢使用 Nautilus,因为它会对 LXDE/pcmanfm 桌面和 LXPanel 造成不必要的干扰。如果 Nautilus 中有解决方案,请提供,但如果可能的话,请尝试提供替代方案。)

答案1

下面的脚本是受到另一个讨论的启发这里,使用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返回德语的狗和猫:

Hund.txt  Katze.txt

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

Chien.txt Chat.txt

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

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

我认为没有必要在脚本中添加任何其他检查,因此这应该令人满意。

有关该计划的更多选项,请访问man translateUbuntu 在线手册页

相关内容