将文件名转换为仅使用拉丁字符

时间:2012-03-03 00:39:07

标签: translation transliteration

我有大量俄语文件名(以及一些斯洛文尼亚语和希腊文)。要在我的车里播放它们,歌曲标题必须只使用西欧角色。

  1. 是否有可以重命名此文件的程序?

  2. 如果没有,是否列出了每个Cyrillic&希腊字母?

  3. 谢谢 - 戴夫

5 个答案:

答案 0 :(得分:2)

这是俄语音译表:

如果你安装了python,你可以使用这个脚本:

它似乎做得很好,你也可以根据自己的需要改变它。它对我来说没有开箱即用,我不得不从以下两行(前面给出的行号)中删除encode来电:

117 print fpath.encode('utf-8')
136 print 'Copying %s to %s' % (fpath.encode('utf-8'), new_fpath)

即。改为:

117 print fpath
136 print 'Copying %s to %s' % (fpath, new_fpath)

但后来工作得很好,例子(假设你把上面的脚本放在同一个名为transliterate.py的文件夹中给文件的更改,然后chmod u+x transliterate.py使其可执行):

$ mkdir a
$ touch a/сказать
$ ./transliterate.py a
a/сказать
Copying a/сказать to a/skazat'

希望这有帮助。

答案 1 :(得分:2)

尝试一个名为ReNamer by den4b的免费程序,对我来说很棒。

http://www.den4b.com/?x=products

答案 2 :(得分:1)

大卫,

我不知道有任何程序可以自动完成(虽然根据以下信息,我打赌你可以让一个电脑怪人朋友为你做这个以换取披萨。)实际上,这个程序真的不会用Perl写这个很难。

无论如何,这里有一些信息可以帮助您选择每个西里尔文,斯洛文尼亚文和希腊文字母使用哪些字母。

http://en.wikipedia.org/wiki/Romanization_of_Russian

http://en.wikipedia.org/wiki/Slovene_alphabet

http://en.wikipedia.org/wiki/Romanization_of_Greek

希望有所帮助!

答案 3 :(得分:1)

我做了a shell script for this purpose

正在使用uconv包中的icu-devtools来执行音译。

答案 4 :(得分:0)

我也简化了shell script的工作,它与envelope_to_add = true相比,不依赖任何第三方软件包,但是大多数Linux发行版都应默认安装此软件包。

默认情况下,它仅对西里尔字母进行音译,但是您可以使用上面提供的指向维基百科文章-http://en.wikipedia.org/wiki/Romanization_of_Greek

的链接轻松地用希腊语字符对其进行扩展