2011-09-13 21 views
7

我需要準備Delphi 2007應用程序進行本地化。現在,需要翻譯的約80%實際上是Delphi運行時庫。我無法想象這些東西需要重複翻譯,每個開發者都將他/她的軟件本地化。德爾福運行時是否有任何翻譯記憶庫/知識庫/術語表?

因此,我正在尋找可以爲Delphi 2007運行時獲得「翻譯記憶」/「詞彙表」的位置,無論是免費還是金錢。我對繁體中文特別感興趣。

+0

我很驚訝你需要翻譯delphi運行時文本。運行時的哪一部分向用戶顯示文本。 –

+0

@David:我會猜想異常消息如「''a''不是一個有效的整數值。」 –

+0

@Andreas幾乎沒有任何這些,你肯定不會向用戶展示它們。不能真的是80%。 –

回答

4

看一看 GNU Gettext for Delphi and C++ Builder

此工具能夠將exe中定義的所有resourcestring翻譯成任何語言。因此它可以將Delphi RTL使用的resourcestring翻譯成任何語言。

AFAIK有幾種pre-made translations可用於多種語言(超過官方的法文/德文/日文/英文版本)。

更新:我使用了一些關於the i18n features of our mORMot framework的GetText的想法,用於UI部分。這將使用純文本文件進行翻譯,而不是使用.po或其他專有系統,並且更具特定的Delphi特性(例如,解析dfm內容)。這是專門用於我們的框架(例如,它使用它的RTTI類),但如果你想編寫自己的單元可能是一個好的開始,相比於GetText或Delphi IDE,它有一些增強。

+0

GNU Gettext是足夠的侵入性不是一個很好的選擇。由於Delphi自己的本地化工具得到了改進(但它在D2007中仍然存在問題),它是恕我直言的一個更好的解決方案,特別是在表單本地化方面,因爲它具有預覽功能,並且不僅可以本地化字符串,還可能需要修改圖形元素給目標客戶,尤其是當他們在文化和傳統非常不同的國家時。 –

+0

即使您沒有(想要)在Delphi中使用GNU Gettext,您仍然可以使用其預製的Delphi RTL翻譯。哦,並且一定要從dxgettext svn倉庫取得德文翻譯,因爲在過去的幾個月裏我已經大幅改進了它們。 – dummzeuch

+0

@dummzeuch感謝您分享您的工作! –

2

德爾福本身沒有中文翻譯......但我同意,一些公司/翻譯人員已經做到了。

有關信息,德爾福現有語言(法語,德語&日)內,也有與源子翻譯特定的文件,例如:... \ RAD Studio在\ 8.0 \源\ VCL \ FR,.. \ RAD Studio在\ 9.0 \源\ RTL \ COMMON \德,...

例如,法國人開始Vcl.Consts.pas

{*******************************************************} 
{              } 
{   Delphi Visual Component Library   } 
{              } 
{ Copyright(c) 1995-2011 Embarcadero Technologies, Inc. } 
{              } 
{*******************************************************} 

unit Vcl.Consts; 

interface 

resourcestring 
    SOpenFileTitle = 'Ouvrir'; 
    SCantWriteResourceStreamError = 'Impossible d'#39'écrire dans un flux en lecture seule'; 
    SDuplicateReference = 'WriteObject appelé deux fois pour la même instance'; 
    SClassMismatch = 'La ressource %s est d'#39'une classe incorrecte'; 
    SInvalidTabIndex = 'Index d'#39'onglet hors limites'; 
    SInvalidTabPosition = 'Position d'#39'onglet incompatible avec le style d'#39'onglet en cours'; 
    SInvalidTabStyle = 'Style d'#39'onglet incompatible avec la position d'#39'onglet en cours'; 
    SInvalidBitmap = 'Image de bitmap non valide'; 
    SInvalidIcon = 'Image d'#39'icône non valide'; 
    SInvalidMetafile = 'MetaFichier incorrect'; 
    SInvalidPixelFormat = 'Format de pixel non valide'; 
    SInvalidImage = 'Image non valide'; 
    SBitmapEmpty = 'Bitmap vide'; 
+2

是的,不幸的是,正如你所說,它只是法語/德語/日語......所以它不是一個真正的存儲庫,而且在語言數量方面有限。 – haimg

+0

,當你處理使用這個資源字符串的db組件時,這會變得棘手,並且期望一些英文文本而不是法文文本... – RBA

+0

@haimg:我同意;順便說一句,這是一個搜索所有需要翻譯的字符串的好地方。 – Whiler

0

從我瞭解這是否不存在...要麼免費。您只有vcl.consts單位的法文/德文/日文版本。對於需要翻譯的所有內容,您需要自己完成。

1

很久以前,IIRC就是Delphi 5,Borland發佈了支持一些語言(但不包括中文)的自己的本地化工具translation repository file。它仍然有效,可以作爲添加更多翻譯的基礎,這是一個好主意,但Delphi中的許多好點子很快就被遺忘了。恕我直言,我不會浪費時間提供本地化的IDE版本,我會使用這些資源爲RTL/VCL提供「翻譯庫」,這將更有用。

+0

雖然只有3種語言(德語/法語/日語),但Delphi XE2仍具有存儲庫,因此不會「很快被遺忘」。唉,只有3種語言:-( – haimg

+0

啊,很高興知道他們現在已經將實際翻譯版本添加到版本庫中了,我猜只有三個,因爲這些是德爾福本身已經本地化的語言,可惜沒有其他國家的Delphi開發者彌補了差距,不幸的是,德爾福的社區貢獻遠低於其他語言。 –