guohui 1 год назад
Родитель
Сommit
62df46d773
2 измененных файлов с 30 добавлено и 15 удалено
  1. 7 1
      pro/src/common.h
  2. 23 14
      pro/src/json_handle.c

+ 7 - 1
pro/src/common.h

@@ -282,7 +282,13 @@ enum {
 enum {
     LANG_ID_CHINESE,
     LANG_ID_ENGLISH,
-    LANG_ID_RUSSIA,
+    LANG_ID_RUSSIAN,
+    LANG_ID_FRENCH,
+    LANG_ID_GERMAN,
+    LANG_ID_SPANISH,
+    LANG_ID_PORTYGYESE,
+    LANG_ID_ITALIAN,
+    LANG_ID_JAPANESE,
 
     LANG_ID_MAX
 };

+ 23 - 14
pro/src/json_handle.c

@@ -1200,9 +1200,29 @@ char* json_to_system_config_info(int tls)
 /// @brief 多语言切换
 /// @param str 
 /// @return 
+static int get_lang_id(char *lang_str)
+{
+    int i;
+    char *LANG_STR[LANG_ID_MAX]={"zh-CN","en-US","ru-RU","fr","de","es","pt","it","ja"};
+
+    if(!lang_str) {
+        return -1;
+    }
+
+    for(i=0; i<LANG_ID_MAX; i++) {
+        if(strcmp(lang_str, LANG_STR[i])==0) {
+            return i;
+        }
+    }
+    return -1;
+}
+
+
 int json_to_switch_language(const char* str)
 {
+    int lang_id;
     cJSON* cjson = NULL;
+
     cjson = cJSON_Parse(str);
     if(cjson==NULL)
     {
@@ -1212,21 +1232,10 @@ int json_to_switch_language(const char* str)
     cJSON* cjson_language = cJSON_GetObjectItem(cjson,"lang");
     if(cjson_language!=NULL)
     {
-        log_d(cjson_language->valuestring);
-        if(strcmp(cjson_language->valuestring,"zh-CN")==0)
-        {
-            __globalDeviceManage._globalDevInfo.product.language = 0 ;
+        lang_id = get_lang_id(cjson_language->valuestring);
+        if(lang_id>=0) {
+            __globalDeviceManage._globalDevInfo.product.language = lang_id;
         }
-       else  if(strcmp(cjson_language->valuestring,"en-US")==0)
-        {
-            __globalDeviceManage._globalDevInfo.product.language = 1 ;
-        }
-        else  if(strcmp(cjson_language->valuestring,"ru-RU")==0)
-        {
-            __globalDeviceManage._globalDevInfo.product.language = 2 ;
-        }
-        else
-            __globalDeviceManage._globalDevInfo.product.language = 0 ;
         
     }
     cJSON_Delete(cjson);