在水銀,許多擴展的包裹他們的幫助/語法字符串中調用下劃線的功能,比如:Mercurial/Python - 下劃線功能的作用是什麼?
_('[OPTION] [QUEUE]')
這讓我困惑,因爲似乎有必要不(在Writing Extensions指令不提及它),並且似乎沒有在類中定義_,所以我想知道這是否是某種我不明白的特殊語法,也許是另一種說lambda的方法,或者也許是身份函數?此外,我想知道這種方法的好處(不管它是什麼)只是像文檔建議的原始字符串。
沒有我在Python文檔中看到的提到這樣一個函數,所以我不確定這是否真的是Python問題或Mercurial問題。
下面是使用這種結構的兩個例子(看接近該文件的底部cmdtable
字典)
- https://www.mercurial-scm.org/repo/hg/file/42408cd43f55/hgext/mq.py
- https://www.mercurial-scm.org/repo/hg/file/42408cd43f55/hgext/graphlog.py
Ahaha!好的謝謝!所以如果有人想用自己的語言來運行它,這是爲了方便 - 但他們仍然必須提供/提交自己的翻譯,對吧?如果我使用gettext,我不希望提供我自己的,對嗎? – dimo414 2010-06-19 21:20:03
@ dimo414,帶有標準庫的gettext(以及用於其他語言的GNU自己的),您將無限期地提供自己的翻譯 - gettext的代碼的作用是獲取並使用這些翻譯過的短語,它最有把握**不會**在不同的自然語言之間進行自動機器翻譯! – 2010-06-19 21:23:26
@Alex,對不起,我不清楚 - 問題是關於期望,而不是功能。從「提供一個完整的程序」的角度來看,我是否希望自己創建這些翻譯,或者是否認爲我沒有它們發佈代碼是正常的? – dimo414 2010-06-19 21:29:29