之前一直在研究行文字之类的问题,上午正好有机会和大家讨论一下.
Genero本身其實是有自己的多語言機制,這個機制也和TIPTOP GP走的路不相同。相信各位對TIPTOP GP多語機制都已經非常瞭解﹝?﹞了,所以本篇先略過不談,專心focus在Genero機制上。
『Genero有這種機制為啥TIPTOP GP不必?』,原因上是在開發TIPTOP GP時這種解法還沒有well develop,而它已經有必定成熟度時,TIPTOP GP已是穩定的產品,就沒有再考量調整底層架構來應用它了。
因此,以下和TIPTOP GP5.2﹝含﹞之前的版本,都沒有任何關係唷!
Genero在程式執行的過程中,只要有吃到resource file﹝4ad,4st,4tb﹞及42m,42f等處,都可以『自行』尋找是不是有要做『語言轉換』的地方,這樣的機制可以協助partner快速的開發出『在地版』的程式﹝請注意,沒有多少程式開發商是像TIPTOP GP這樣一次附上--如果有買的話--多種語言包,讓END User作線上切換的﹞。
看一下怎麼讓42m進行轉換
要讓42m可以進行轉換,就得要在程式內加『%』或寫『LSTR』function:
|
原來作DISPLAY的字串,就會轉為字串代碼,到『訊息字串檔﹝42s﹞』內找出對應的在地字串,顯示出來。
而42f也是在per的『TEXT』屬性前加上『%』就能够了,例如:
LABEL
lab01 :
TEXT
=%"myform.label01";
如果您是用Genero Studio的4fd來編輯的,或開發其他資源檔﹝4st, 4tb, 4ad﹞,那就是在property內勾選使用42s就能够了。使用上更簡單。
接下來談42s怎麼作
首先必需用文字編輯器來編一個文字檔,附檔名請用『.str』﹝規定﹞,內容如下:
"id001" = "Some text" "common.helloworld" = "哈囉,世界!" |
產生此檔後,使用『fglmkstr 文字檔檔名』﹝可以不必含入.str﹞,接著就會產出編譯实现的『42s』檔。
最後,請把此檔放在『FGLRESOURCEPATH』有指到的路徑下﹝或把現行42s所在路徑参加此環境變數﹞,這樣在執行時就會叫用到42s檔了。
差異和結語在下面
如果要做N種語言的42s該怎麼做?嗯,那就要準備N種的str再轉換成42s囉,另外若要節省環境變數的記憶空間或是放慢查找效率,那麼在進行『線上語系切換』時就又要一起變動『FGLRESOURCEPATH』環境變數…等,會不會比較麻煩?各位自在心證啦…
總上所述,希望各位也撥空對此機制有概略瞭解,有昭一日﹝TIPTOP GP?﹞就會有應用的機會了…
做出來的範例畫面呢?啊…偷懶沒做…當大家的作業吧…
文章结束给大家分享下程序员的一些笑话语录: 苹果与谷歌之争就是封闭收费与自由免费思想之争。(别急着把google来膜拜哦?那可是一家公司,以赚钱为目标的公司!当年我Party就是这样把广大劳动人民吸引过来的。今天的结果你们都看到了。)
--------------------------------- 原创文章 By
行和文字
---------------------------------