2013-10-25 72 views
0

我通常每個字體有4個文件。例如如何本地化位圖字體?

menu-ipadhd.fnt 
menu-ipadhd.png 
menu.fnt 
menu.png 

的問題是,我應該本地化的所有4個文件或.fnt本地化不夠嗎? Cocos2D能否從相應的.lproj找到png文件?本地化位圖字體的正確方法是什麼?

回答

0

cocos2d是否根據語言查找文件很容易測試,將兩個不同的文件放在en.lproj中,另一個放在另一個語言文件夾中,然後更改設備或模擬器語言,看它是否選擇正確的文件每種語言。

如果您的意思是localize the text(字符串以位圖字體顯示),您實際上只需對字符串進行本地化並確保對於所有支持的語言,位圖字體的所有特定語言字符(包括等等)都包含在內圖片。至少所有這些實際使用的本地化字符串。

如果您本地化爲完全不同的字符集,例如從英語到西里爾文,亞洲或阿拉伯語言,則需要完全提供不同的位圖字體,即fnt和png文件,並根據語言加載它們。這是本地化文本本身的旁邊。

原因是這些非拉丁字符集包含數百個(如果不是數千個)不同的字符,因此將它們包括在單個位圖字體中是不可取的,甚至可能無法將它們全部放在4096x4096(或更少)紋理空間。

某些cocos2d版本的位圖字體類將位圖字體中的字符數限制爲2048 - 這可能僅適用於v1.x我還沒有檢查過2.x中是否仍然存在此限制,我只能不再把它放在2.1中。對於超過此數字字符的字符集,您必須增加CCBMFontLabel標題中的該數字(如果可用)。

要與大位圖字體按字母存儲可以很顯著加起來不過小心,整個字體可以使用數兆字節 - 不計算本身的質感!

+0

我的意思是包括在'FNT/png'對字符集。到目前爲止,我已經定位了兩個'fnt'和'png'文件,並且它工作正常。我在想,有沒有需要本地化PNG文件,我可以簡單地把它複製到項目,因爲是從FNT文件的引用。 – Pablo

+0

好,我最初誤解了您的意思,因此很大程度上offtopic答案;) – LearnCocos2D

+2

你的答案總是有益的,甚至那些offtopic :) – Pablo