2014-03-05 74 views
1

我正在尋找一種解決方案來改變運行時的語言。 (Firemonkey/Delphi)多語言與Firemonkey(德爾福)

TLang的工作原理,但我得到一個空的項目奇怪的字符串。 (例如Samsung Galaxy Nexus和其他移動設備)而我更喜歡另一種解決方案,而不是像TLang那樣替換字符串。

不幸的是,resourcestring不起作用。我試圖用「資源DLL專家」(IDE RAD Studio XE5)翻譯資源字符串。示例應用程序「RichEdit」也不起作用。

有什麼想法?

+0

你有什麼考慮,而不是字符串替換? –

+0

像resourcestring的作品。 TLang在應用程序和resourcestring中搜索字符串,我可以確定分配本身。 – conanmichi

+0

爲什麼downvotes? – Kromster

回答

1

好吧,我發現問題,爲什麼它沒有運行。該工具有一些錯誤。 Project.exe的路徑不能包含空格。

另一種解決方案是STRINGTABLE這樣的:

// default.rc file 

#define firstString 1 
#define secondString 2 

STRINGTABLE 
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL 
BEGIN 
firstString , "Neutral String 1" 
secondString , "Neutral String 2" 
END 

// english.rc file 

#define firstString 1 
#define secondString 2 

STRINGTABLE 
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US 
BEGIN 
firstString , "First String" 
secondString , "Second String" 
END 

而不是{$ R default.res default.rc} {$ R english.res english.rc}成* .PAS文件。要使用交換:LoadStr(2)

使用資源編輯器,我可以看到兩種語言。但是,我如何在運行時將默認/中性改爲另一種語言。 Delphi中有一種「SetLanguage」函數嗎?

0

對於簡單的項目,TLang可以正常工作,但包含的「語言設計器」(雙擊TLang組件)沒有多少樂趣。
如果你想翻譯和處理你的字符串extern,你只能導入外部語言文件一個接一個,並且必須重新導入,如果一些文本改變。
我寫了一個小工具來處理文本在電子表格中extern和這個文本轉換爲LNG格式: See TLang converter
對於大型項目,你也可以檢查出一些商業產品對於像翻譯/德爾福FMX項目定位:
http://www.sisulizer.de
http://www.tsilang.com
http://www.regulace.org

+0

爲什麼當我在編寫兩個字母的語言代碼之後嘗試在'Language Designer'中編寫tran transes文本並單擊'Add'按鈕時不顯示編輯文本以編寫相應的翻譯? – KryNaC