# aardio 范例: 多语言简单示例

```aardio
import win.ui;
import fonts.fontAwesome;
/*DSG{{*/
var winform = win.form(text="多语言简单示例";right=676;bottom=448)
winform.add(
btnSubmit={cls="button";text="提 交";left=456;top=392;right=615;bottom=432;db=1;dr=1;font=LOGFONT(h=-16);z=3};
editInput={cls="edit";left=35;top=56;right=648;bottom=378;db=1;dl=1;dr=1;dt=1;edge=1;font=LOGFONT(h=-14);multiline=1;z=2};
labelInput={cls="static";text="请输入内容：";left=38;top=12;right=317;bottom=32;dl=1;dt=1;font=LOGFONT(h=-14);transparent=1;z=1}
)
/*}}*/

import string.intlPack;
/*定义多语言字符串{{*/
var langPack = string.intlPack( {
    
    // 简体中文
    ["zh-CN"] = {
        name = "简体中文";
        title = "多语言示例程序";
        labelInput = "请输入内容：";
        btnSubmit = "提 交"; 
    };
    
    // 繁体中文
    ["zh-TW"] = {
        name = "繁體中文";
        title = "多語言範例程式";
        labelInput = "請輸入內容：";
        btnSubmit = "提 交"; 
    };
    
    // 英语
    ["en-US"] = {
        name = "English";
        title = "Multilingual Demo";
        labelInput = "Enter content:";
        btnSubmit = "Submit"; 
    };
    
    // 日语
    ["ja-JP"] = {
        name = "日本語";
        title = "多言語サンプルプログラム";
        labelInput = "内容を入力：";
        btnSubmit = "送 信"; 
    };
    
    // 韩语
    ["ko-KR"] = {
        name = "한국어";
        title = "다국어 예제 프로그램";
        labelInput = "내용 입력:";
        btnSubmit = "제 출"; 
    };
    
    // 俄语
    ["ru-RU"] = {
        name = "Русский";
        title = "Многоязычный пример";
        labelInput = "Введите содержимое:";
        btnSubmit = "Отправить"; 
    };
    
    // 西班牙语
    ["es"] = {
        name = "Español";
        title = "Ejemplo multilingüe";
        labelInput = "Ingrese contenido:";
        btnSubmit = "Enviar"; 
    };
    
    // 葡萄牙语
    ["pt-BR"] = {
        name = "Português";
        title = "Exemplo multilíngue";
        labelInput = "Digite o conteúdo:";
        btnSubmit = "Enviar"; 
    };
    
    // 德语
    ["de-DE"] = {
        name = "Deutsch";
        title = "Mehrsprachiges Beispiel";
        labelInput = "Inhalt eingeben:";
        btnSubmit = "Senden"; 
    };
    
    // 法语
    ["fr-FR"] = {
        name = "Français";
        title = "Exemple multilingue";
        labelInput = "Entrez le contenu:";
        btnSubmit = "Envoyer"; 
    };
}/*,"en-US"*/);
/*}}*/

// 界面刷新函数
var updateUI = function(){
    winform.text = langPack.title; 
    for(name,ctrl in winform.eachControl() ){
    	if(langPack[name]) ctrl.text = langPack[name]
    } 
};

if(langPack.getLangCode()!="zh-CN"){
	updateUI();
}

/*
string.intlPack 只是一个演示，导入 string.intlPack 不是必须的选项。
但可以参考 string.intlPack 的源码，利用主语言 ID 更宽松地匹配语言包。

一般不建议在运行时动态切换语言，
虽然这看着很酷但并不实用（频繁切换界面语言的场景非常罕见），
浪费资源去保存不需要的资源包是不合适的。
如果软件提供切换语言的选项，建议重启生效以丢弃不需要的语言包。

如果需要支持多语言，
考虑语种使用人数与地缘因素，
建议支持的语言如下（按优先级从高到低排列）：

一. 基础语言
1. 简体中文 (zh-CN)
2. 繁体中文 (zh-TW/HK)
3. 英语 (en-US)

二. 地缘因素
1. 日语 (ja-JP)
2. 韩语 (ko-KR)
3. 俄语 (ru-RU):

三. 大语种
1. 西班牙语 (es)
2. 葡萄牙语 (pt-BR)
3. 德语 (de-DE)
4. 法语 (fr-FR)

四. 可选区域
1. 越南语 (vi-VN)
2. 泰语 (th-TH)
3. 阿拉伯语 (ar)
*/

winform.show();
win.loopMessage();
```