<?php

	class Lang {
		var $language;
		var $db;
		
		function getLang()
		{
			$json = json_decode(file_get_contents("settings"),true);
			$this->language = $json['web_lang'];
			$this->db = new SQLite3('lang.db');
		}
		
		function showWord($word)
		{			
			$result = $this->db->query("select * from message where word='".$word."'");
			
			if ($row = $result->fetchArray())
			{
				switch($this->language)
				{
					case "ENG":
						return $row['eng'];
						break;
					case "TW":
						return $row['tw'];
						break;
					case "CN":
						return $row['cn'];
						break;
					case "JP":
						return $row['jp'];
						break;
					default:
						return "error";
						break;
				}	
			}
			else
			{
				return "error";
			}
		}
		
		function showWordLang($lang, $word)
		{			
			$result = $this->db->query("select * from message where word='".$word."'");
			
			if ($row = $result->fetchArray())
			{
				switch($lang)
				{
					case "ENG":
						return $row['eng'];
						break;
					case "TW":
						return $row['tw'];
						break;
					case "CN":
						return $row['cn'];
						break;
					case "JP":
						return $row['jp'];
						break;
					default:
						return "error";
						break;
				}	
			}
			else
			{
				return "error";
			}
		}
		
		//=============================================
		// Old method and SQL command generator
		//=============================================
		function update($w)
		{
			$rtn = $this->howWord($w);

			//$sql = "insert or replace into message('word', '".strtolower($this->language)."') values('".$w."','".$rtn."')".";\n";
			$sql = "update message set ".strtolower($this->language)."='".$rtn."'  where word='".$w."';\n";
			
			file_put_contents("sql.txt", $sql, FILE_APPEND);
			
			return $rtn;
		}
		
		function howWord($word) 
		{
			switch($word)
			{
				case "title":
					switch($this->language)
					{
						case "ENG":
							return "Electric Vehicle AC Charger";
							break;
						case "TW":
							return "電動汽車交流充電樁";
							break;
						case "CN":
							return "电动汽车交流充电桩";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "title_dc":
					switch($this->language)
					{
						case "ENG":
							return "Electric Vehicle DC Charger";
							break;
						case "TW":
							return "電動汽車直流充電樁";
							break;
						case "CN":
							return "电动汽车直流充电桩";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "info":
					switch($this->language)
					{
						case "ENG":
							return "Info";
							break;
						case "TW":
							return "訊息";
							break;
						case "CN":
							return "讯息";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "set":
					switch($this->language)
					{
						case "ENG":
							return "Set";
							break;
						case "TW":
							return "設定";
							break;
						case "CN":
							return "设定";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "test":
					switch($this->language)
					{
						case "ENG":
							return "Test";
							break;
						case "TW":
							return "測試";
							break;
						case "CN":
							return "测试";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "upgrade":
					switch($this->language)
					{
						case "ENG":
							return "Upgrade";
							break;
						case "TW":
							return "升級";
							break;
						case "CN":
							return "升级";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "other":
					switch($this->language)
					{
						case "ENG":
							return "Other";
							break;
						case "TW":
							return "其他";
							break;
						case "CN":
							return "其他";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "restart":
					switch($this->language)
					{
						case "ENG":
							return "Restart";
							break;
						case "TW":
							return "重啟電樁";
							break;
						case "CN":
							return "重启电桩";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "log":
					switch($this->language)
					{
						case "ENG":
							return "Log";
							break;
						case "TW":
							return "本地紀錄";
							break;
						case "CN":
							return "本地纪录";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "language":
					switch($this->language)
					{
						case "ENG":
							return "Language";
							break;
						case "TW":
							return "介面語言";
							break;
						case "CN":
							return "介面语言";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "charger":
					switch($this->language)
					{
						case "ENG":
							return "Charger";
							break;
						case "TW":
							return "充電樁";
							break;
						case "CN":
							return "充电桩";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "adc":
					switch($this->language)
					{
						case "ENG":
							return "ADC Calibration";
							break;
						case "TW":
							return "ADC 校正";
							break;
						case "CN":
							return "ADC 校正";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "bonding":
					switch($this->language)
					{
						case "ENG":
							return "Bonding";
							break;
						case "TW":
							return "本地綁定";
							break;
						case "CN":
							return "本地绑定";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "system":
					switch($this->language)
					{
						case "ENG":
							return "System";
							break;
						case "TW":
							return "系統";
							break;
						case "CN":
							return "系统";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "charging":
					switch($this->language)
					{
						case "ENG":
							return "Charging";
							break;
						case "TW":
							return "充電";
							break;
						case "CN":
							return "充电";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "network":
					switch($this->language)
					{
						case "ENG":
							return "Network";
							break;
						case "TW":
							return "網路";
							break;
						case "CN":
							return "网络";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "backend":
					switch($this->language)
					{
						case "ENG":
							return "Backend";
							break;
						case "TW":
							return "後台";
							break;
						case "CN":
							return "后台";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "function":
					switch($this->language)
					{
						case "ENG":
							return "Function";
							break;
						case "TW":
							return "功能";
							break;
						case "CN":
							return "功能";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "log_charging":
					switch($this->language)
					{
						case "ENG":
							return "Charging Record";
							break;
						case "TW":
							return "本地充電紀錄查詢";
							break;
						case "CN":
							return "本地充电纪录查询";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "log_download":
					switch($this->language)
					{
						case "ENG":
							return "Download";
							break;
						case "TW":
							return "本地充電紀錄下載";
							break;
						case "CN":
							return "本地充电纪录下载";
							break;
						default:
							return "error";
							break;
					}
					break;
				
				case "address":
					switch($this->language)
					{
						case "ENG":
							return "No.568, Fuxing 3rd Rd., Guishan Dist., Taoyuan City 333, Taiwan (R.O.C.)";
							break;
						case "TW":
							return "台灣桃園市龜山區復興三路568號";
							break;
						case "CN":
							return "台湾桃园市龟山区复兴三路568号";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "tel":
					switch($this->language)
					{
						case "ENG":
							return "Telephone";
							break;
						case "TW":
							return "連絡電話";
							break;
						case "CN":
							return "连络电话";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "mail":
					switch($this->language)
					{
						case "ENG":
							return "E-Mail";
							break;
						case "TW":
							return "電子郵件";
							break;
						case "CN":
							return "电子邮件";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "phihong":
					switch($this->language)
					{
						case "ENG":
							return "Phihong Technology";
							break;
						case "TW":
							return "飛宏科技";
							break;
						case "CN":
							return "飞宏科技";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "model":
					switch($this->language)
					{
						case "ENG":
							return "Model";
							break;
						case "TW":
							return "型號";
							break;
						case "CN":
							return "型号";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "fw_ver":
					switch($this->language)
					{
						case "ENG":
							return "Beaglebone firmware version";
							break;
						case "TW":
							return "Beaglebone 韌體版本";
							break;
						case "CN":
							return "Beaglebone 固件版本";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "sys_mode":
					switch($this->language)
					{
						case "ENG":
							return "System Mode";
							break;
						case "TW":
							return "系統模式";
							break;
						case "CN":
							return "系统模式";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "status":
					switch($this->language)
					{
						case "ENG":
							return "Gun Status";
							break;
						case "TW":
							return "充電槍狀態";
							break;
						case "CN":
							return "充电枪状态";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "alarm_code":
					switch($this->language)
					{
						case "ENG":
							return "Alarm Code";
							break;
						case "TW":
							return "異常碼";
							break;
						case "CN":
							return "异常码";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "rfid_no":
					switch($this->language)
					{
						case "ENG":
							return "RFID No";
							break;
						case "TW":
							return "充電卡號碼";
							break;
						case "CN":
							return "充电卡号码";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "pre_power_sum":
					switch($this->language)
					{
						case "ENG":
							return "Pre-Power Sum";
							break;
						case "TW":
							return "充電前電表度數";
							break;
						case "CN":
							return "充电前电表度数";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "power_sum":
					switch($this->language)
					{
						case "ENG":
							return "Power Sum";
							break;
						case "TW":
							return "已充電度數";
							break;
						case "CN":
							return "已充电度数";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "voltage":
					switch($this->language)
					{
						case "ENG":
							return "Voltage";
							break;
						case "TW":
							return "電壓";
							break;
						case "CN":
							return "电压";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "voltage_r":
					switch($this->language)
					{
						case "ENG":
							return "Voltage_R";
							break;
						case "TW":
							return "R相電壓";
							break;
						case "CN":
							return "R相电压";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "voltage_s":
					switch($this->language)
					{
						case "ENG":
							return "Voltage_S";
							break;
						case "TW":
							return "S相電壓";
							break;
						case "CN":
							return "S相电压";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "voltage_t":
					switch($this->language)
					{
						case "ENG":
							return "Voltage_T";
							break;
						case "TW":
							return "T相電壓";
							break;
						case "CN":
							return "T相电压";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "current":
					switch($this->language)
					{
						case "ENG":
							return "Current";
							break;
						case "TW":
							return "電流";
							break;
						case "CN":
							return "电流";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "current_r":
					switch($this->language)
					{
						case "ENG":
							return "Current_R";
							break;
						case "TW":
							return "R相電流";
							break;
						case "CN":
							return "R相电流";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "current_s":
					switch($this->language)
					{
						case "ENG":
							return "Current_S";
							break;
						case "TW":
							return "S相電流";
							break;
						case "CN":
							return "S相电流";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "current_t":
					switch($this->language)
					{
						case "ENG":
							return "Current_T";
							break;
						case "TW":
							return "T相電流";
							break;
						case "CN":
							return "T相电流";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "cp_adc":
					switch($this->language)
					{
						case "ENG":
							return "CP_ADC";
							break;
						case "TW":
							return "CP電壓";
							break;
						case "CN":
							return "CP电压";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "time_sum":
					switch($this->language)
					{
						case "ENG":
							return "Time Sum";
							break;
						case "TW":
							return "已充電時間";
							break;
						case "CN":
							return "已充电时间";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "isgunback":
					switch($this->language)
					{
						case "ENG":
							return "isGunBack";
							break;
						case "TW":
							return "槍是否掛回";
							break;
						case "CN":
							return "枪是否挂回";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "isgunlock":
					switch($this->language)
					{
						case "ENG":
							return "isGunLock";
							break;
						case "TW":
							return "槍鎖是否鎖上";
							break;
						case "CN":
							return "枪锁是否锁上";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "temperature":
					switch($this->language)
					{
						case "ENG":
							return "Temperature";
							break;
						case "TW":
							return "溫度";
							break;
						case "CN":
							return "温度";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "charger_current_set":
					switch($this->language)
					{
						case "ENG":
							return "ChargerST Current Settings";
							break;
						case "TW":
							return "充電樁目前設定";
							break;
						case "CN":
							return "充电桩目前设定";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "charger_new_set":
					switch($this->language)
					{
						case "ENG":
							return "ChargerST New Settings";
							break;
						case "TW":
							return "充電樁新設定";
							break;
						case "CN":
							return "充电桩新设定";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "lan_mac":
					switch($this->language)
					{
						case "ENG":
							return "Beaglebone LAN Mac address";
							break;
						case "TW":
							return "Beaglebone 有線網路 MAC 位址";
							break;
						case "CN":
							return "Beaglebone 有线网路 MAC 位址";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "lan_ip":
					switch($this->language)
					{
						case "ENG":
							return "LAN IP Type";
							break;
						case "TW":
							return "網路 IP 獲取方式";
							break;
						case "CN":
							return "网路 IP 获取方式";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "money_rate":
					switch($this->language)
					{
						case "ENG":
							return "Off-Line Charging Price";
							break;
						case "TW":
							return "離線充電費率";
							break;
						case "CN":
							return "离线充电费率";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "wifi_ap_name":
					switch($this->language)
					{
						case "ENG":
							return "WIFI AP Name";
							break;
						case "TW":
							return "WIFI AP 名稱";
							break;
						case "CN":
							return "WIFI AP 名称";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "wifi_ap_pass":
					switch($this->language)
					{
						case "ENG":
							return "WIFI AP Password";
							break;
						case "TW":
							return "WIFI AP 密碼";
							break;
						case "CN":
							return "WIFI AP 密码";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "meter_use":
					switch($this->language)
					{
						case "ENG":
							return "Meter isUse";
							break;
						case "TW":
							return "使用電表";
							break;
						case "CN":
							return "使用电表";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "mobile_dongle":
					switch($this->language)
					{
						case "ENG":
							return "Mobile Dongle";
							break;
						case "TW":
							return "行動網卡";
							break;
						case "CN":
							return "行动网卡";
							break;
						default:
							return "error";
							break;
					}
					break;
				
				case "server_addr":
					switch($this->language)
					{
						case "ENG":
							return "Backend Server Address";
							break;
						case "TW":
							return "後台伺服器地址";
							break;
						case "CN":
							return "後台服务器地址";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "server_port":
					switch($this->language)
					{
						case "ENG":
							return "Backend Server Port";
							break;
						case "TW":
							return "後台伺服器端口";
							break;
						case "CN":
							return "後台服务器端口";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "longitude":
					switch($this->language)
					{
						case "ENG":
							return "Longitude";
							break;
						case "TW":
							return "經度";
							break;
						case "CN":
							return "经度";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "latitude":
					switch($this->language)
					{
						case "ENG":
							return "Latitude";
							break;
						case "TW":
							return "緯度";
							break;
						case "CN":
							return "纬度";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "gun_count":
					switch($this->language)
					{
						case "ENG":
							return "Gun Count";
							break;
						case "TW":
							return "充電槍數量";
							break;
						case "CN":
							return "充电枪数量";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "lcd_lang":
					switch($this->language)
					{
						case "ENG":
							return "LCD Language";
							break;
						case "TW":
							return "LCD 語言";
							break;
						case "CN":
							return "LCD 语言";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "ver_title_current":
					switch($this->language)
					{
						case "ENG":
							return "Beaglebone current version info";
							break;
						case "TW":
							return "Beaglebone 當前版本資訊";
							break;
						case "CN":
							return "Beaglebone 当前版本资讯";
							break;
						default:
							return "error";
							break;
					}
					break;
				case "os_ver":
					switch($this->language)
					{
						case "ENG":
							return "Beaglebone current version info";
							break;
						case "TW":
							return "Beaglebone OS 版本";
							break;
						case "CN":
							return "Beaglebone OS 版本";
							break;
						default:
							return "error";
							break;
					}
					break;
				
				case "ver_title_new":
					switch($this->language)
					{
						case "ENG":
							return "Beaglebone new firmware update";
							break;
						case "TW":
							return "Beaglebone 新韌體升級";
							break;
						case "CN":
							return "Beaglebone 新固件升级";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "set":
					switch($this->language)
					{
						case "ENG":
							return "Set";
							break;
						case "TW":
							return "設定";
							break;
						case "CN":
							return "设定";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "scan":
					switch($this->language)
					{
						case "ENG":
							return "Scan";
							break;
						case "TW":
							return "掃描";
							break;
						case "CN":
							return "扫描";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "new_fw_file":
					switch($this->language)
					{
						case "ENG":
							return "New firmware file (*.jar)";
							break;
						case "TW":
							return "新韌體檔案 (*.jar)";
							break;
						case "CN":
							return "新固件档案 (*.jar)";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "new_iso_file":
					switch($this->language)
					{
						case "ENG":
							return "New iso file (*.iso)";
							break;
						case "TW":
							return "新映像檔案 (*.iso)";
							break;
						case "CN":
							return "新光盘镜像文件 (*.iso)";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "restart":
					switch($this->language)
					{
						case "ENG":
							return "Restart Charger";
							break;
						case "TW":
							return "重啟電樁";
							break;
						case "CN":
							return "重启电桩";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "adc_title_formula":
					switch($this->language)
					{
						case "ENG":
							return "ADC calibration formula";
							break;
						case "TW":
							return "ADC 校正公式";
							break;
						case "CN":
							return "ADC 校正公式";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "adc_title_calibration":
					switch($this->language)
					{
						case "ENG":
							return "ADC calibration input";
							break;
						case "TW":
							return "ADC 校正輸入";
							break;
						case "CN":
							return "ADC 校正输入";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "test_title_start_charging":
					switch($this->language)
					{
						case "ENG":
							return "Start charging command request";
							break;
						case "TW":
							return "要求啟動充電";
							break;
						case "CN":
							return "要求启动充电";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "test_title_stop_charging":
					switch($this->language)
					{
						case "ENG":
							return "Stop charging command request";
							break;
						case "TW":
							return "要求停止充電";
							break;
						case "CN":
							return "要求停止充电";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "test_start_charging":
					switch($this->language)
					{
						case "ENG":
							return "Start charging";
							break;
						case "TW":
							return "啟動充電";
							break;
						case "CN":
							return "启动充电";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "test_stop_charging":
					switch($this->language)
					{
						case "ENG":
							return "Stop charging";
							break;
						case "TW":
							return "停止充電";
							break;
						case "CN":
							return "停止充电";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "test_cancel_command":
					switch($this->language)
					{
						case "ENG":
							return "Cancel Command";
							break;
						case "TW":
							return "取消命令";
							break;
						case "CN":
							return "取消命令";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "message_restart":
					switch($this->language)
					{
						case "ENG":
							return "Please wait charger restart until blue LED bring to on...";
							break;
						case "TW":
							return "充電樁重新啟動程序中,啟動成功後藍色指示燈將會亮起...";
							break;
						case "CN":
							return "充电桩重新启动程序中,启动成功後蓝色指示灯将会亮起...";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "message_upgrade":
					switch($this->language)
					{
						case "ENG":
							return "Charger firmware has upgraded, please wait charger restart until blue LED bring to on...";
							break;
						case "TW":
							return "充電樁韌體更新中,更新成功後藍色指示燈將會亮起...";
							break;
						case "CN":
							return "充电桩固件更新中,更新成功後蓝色指示灯将会亮起...";
							break;
						default:
							return "error";
							break;
					}
					break;
					
				case "message_download_log":
					switch($this->language)
					{
						case "ENG":
							return "Latest log file will start download...";
							break;
						case "TW":
							return "最新本地紀錄檔案即將開始下載...";
							break;
						case "CN":
							return "最新本地纪录档案即将开始下载...";
							break;
						default:
							return "error";
							break;
					}
					break;
				case "passwd":
					switch($this->language)
					{
						case "ENG":
							return "Login Password";
							break;
						case "TW":
							return "登入密碼";
							break;
						case "CN":
							return "登入密码";
							break;
						default:
							return "error";
							break;
					}
					break;
				case "done":
					switch($this->language)
					{
						case "ENG":
							return "done";
							break;
						case "TW":
							return "更新成功";
							break;
						case "CN":
							return "更新成功";
							break;
						default:
							return "error";
							break;
					}
					break;
			
			}
		}
		
		
		
	}	
?>