2021年12月4日 星期六

ScriptCase的多語系處理

 ScriptCase的多語系:

1. 定義在 _lib/lang/ xxx.lang.php 裡面

現在現有的是: 

zh_cn.lang.php 簡體

zh_hk.lang.php 繁體

顯然,NetMake公司也搞不大清楚,中文語系的情況,所以,把香港的當成繁體的代表。

我試著自己增加一個 zh_tw.lang.php 還可以用。


關於語系的問題,有 language 以及 regional 兩個部分

language 是關於文字本身的

regional 是關於區域的一些用法,例如:日期、時間、星期、月等表示方式。

台灣習慣使用 yyyy-mm-dd

其他地區也許習慣 dd-mm-yyyy

所以,需要這項設定。這在Windows 裡面也有。

因此,再設定的時候,會有:



/*idioma*/

$idioma = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2);

switch($idioma){

case 'pt': //Caso seja português

sc_set_language('pt_br');

sc_set_regional('pt_br');

break;

case 'es': //Caso seja espanhol

sc_set_language('es');

sc_set_regional('es_es');

break;

case 'zh_hk': //

sc_set_language('zh_hk');

sc_set_regional('zh_tw');

break;

default:

sc_set_language('en_us');

sc_set_regional('en_us');

break;

}

以下這是在 login.php 中,使用 $_GET['lang']連結的方式,選擇何種語系的方式:

寫在: Events->onApplicationInit 或 onScriptInit

if(isset($_GET['lang']) && !empty($_GET['lang']))

{

switch($_GET['lang']){

case 'pt': //Caso seja português

sc_set_language('pt_br');

sc_set_regional('pt_br');

break;

case 'es': //Caso seja espanhol

sc_set_language('es');

sc_set_regional('es_es');

break;

case 'zh_hk': //

sc_set_language('zh_hk');

sc_set_regional('zh_tw');

break;

case 'zh_tw': //

sc_set_language('zh_tw');

sc_set_regional('zh_tw');

break;

default:

sc_set_language('en_us');

sc_set_regional('en_us');

break;

}

}



如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。