2014-10-08 91 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