2014-10-08 90 views
1

我不确定这是否是提问这个问题的正确地点,但我确定有人可能能够指引我朝着正确的方向前进。我有一个问题/问题是关于一个github回购,这是另一种语言(我没有最基本的理解线索)。有翻译/本地化整个代码库/回购的标准方式吗?我有一些可能(乏味)做法的想法,但我正在寻找正确或最好的方法。本地化Github回购?

幸运的是,代码似乎主要是英文,但所有的注释和输出例如西里尔语(不知道它是否是俄语,塞尔维亚语等)。我需要采取哪种方法才能尽可能地减轻痛苦?是regex的答案,或者是像使用google translate复制/粘贴(唉!)的东西?提前致谢。

代码示例:

if (!defined("FILE")) die("Ошибка доступа."); 
$data_filename = "data.txt"; // имя файла с данными сниффера 
... 

谷歌翻译:

if (defined ("FILE")) die ("Error Access."); 
data_filename $ = "data.txt"; // Filename with data sniffer 
... 

尽管远远称不上完美,但它翻译 - 但螺丝的代码。

+0

这绝对是俄罗斯。谷歌没有正确理解文本。它应该是“访问错误”和“嗅探器数据”) – 2014-10-08 22:58:49

回答

0

这里有一个想法,(在世界上虽然绝对不是每一种语言)为您发布的示例工作:

import re 
import sys 

for line in sys.stdin: 
    foreignStart = None 
    for ii, ch in enumerate(line): 
     if foreignStart is None and ord(ch) > 127: 
      foreignStart = ii 
     elif foreignStart is not None and ord(ch) <= 127 and ch != ' ': 
      sys.stdout.write("TRANSLATE(") 
      sys.stdout.write(line[foreignStart:ii]) 
      sys.stdout.write(")") 
      foreignStart = None 
     if ord(ch) <= 127 and not (foreignStart is not None and ch == ' '): 
      sys.stdout.write(ch) 

这将打印:

if (!defined("FILE")) die("TRANSLATE(Ошибка доступа)."); 
$data_filename = "data.txt"; // TRANSLATE(имя файла с данными сниффера) 
... 

我想你能看到您需要将调用插入机器翻译API(Google或Yandex ...)。您当然应该将已经翻译过的结果缓存到某个文本文件中,这样也可以覆盖您不喜欢的结果。

+0

哇,这比我曾预料会有人做得更多,非常有帮助。万分感谢! :) – 2014-10-08 05:42:59

+0

嘿只是想让你知道我配对你的代码与一些谷歌翻译和它的伟大工程:https://gist.github.com/anonymous/a0cb019cf94e4207bd9d – 2014-10-08 06:35:46

+0

真棒,这是快。 :) – 2014-10-08 07:05:47