更新语言文件
authorCaisking <3449750381@qq.com>
Tue, 9 Jul 2024 06:12:16 +0000 (14:12 +0800)
committerCaisking <3449750381@qq.com>
Tue, 9 Jul 2024 06:12:16 +0000 (14:12 +0800)
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/多国语言工具脚本.md
code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang
code/sdk/application/wearable/fd230app/nativeui/language/font/ui_resource_string.h
code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang
code/sdk/application/wearable/fd230app/nativeui/language/stringpack_tool/language_trans.py [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/language/stringpack_tool/searchdir.py [new file with mode: 0644]

index 47d5384..7a4c08c 100644 (file)
@@ -62,4 +62,11 @@ res路径:  \FD230\code\sdk\build\config\target_config\brandy\mk_fs_image\fd23
 \r
 \r
 \r
-【完成多国语言文件配置】
\ No newline at end of file
+【完成多国语言文件配置】\r
+\r
+#更新 0709\r
+\r
+使用多国语言工具直接生成多国语言lang文件 以及 字体头文件\r
+\r
+python language_trans.py ../Language_xml/ ../font/ ../font/\r
+脚本 输入路径 字体文件输出路径 头文件输出路径
\ No newline at end of file
index 05575d3..8551ced 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang differ
index 61bda9a..edf3e00 100644 (file)
 #include <cstdint>
 namespace OHOS {
 enum UIResourceTextId : uint16_t {
-    STR_EXERCISE_GENERAL = 0,\r
-    STR_EXERCISE_FREETRAINING = 1,\r
-    STR_EXERCISE_RESISTANCETRAINING = 2,\r
-    STR_EXERCISE_SPINBIKE = 3,\r
-    STR_EXERCISE_TREADMILL = 4,\r
-    STR_EXERCISE_STROLLMACHINE = 5,\r
-    STR_EXERCISE_HIIT = 6,\r
-    STR_EXERCISE_CROSSFIT = 7,\r
-    STR_EXERCISE_GROUPCALISTHENICS = 8,\r
-    STR_EXERCISE_YOGA = 9,\r
-    STR_EXERCISE_YOGACAT = 10,\r
-    STR_EXERCISE_YOGACOW = 11,\r
-    STR_EXERCISE_YOGACOBRA = 12,\r
-    STR_EXERCISE_YOGAHERO1 = 13,\r
-    STR_EXERCISE_YOGAHERO2 = 14,\r
-    STR_EXERCISE_YOGAHERO3 = 15,\r
-    STR_EXERCISE_YOGAROLLING = 16,\r
-    STR_EXERCISE_OUTDOORWALKING = 17,\r
-    STR_EXERCISE_OUTDOORRUNNING = 18,\r
-    STR_EXERCISE_INDOORWALKING = 19,\r
-    STR_EXERCISE_INDOORRUNNING = 20,\r
-    STR_EXERCISE_OUTDOORBIKING = 21,\r
+    STR_EXERCISE_OUTDOORWALKING = 0,\r
+    STR_EXERCISE_OUTDOORRUNNING = 1,\r
+    STR_EXERCISE_OUTDOORBIKING = 2,\r
+    STR_EXERCISE_GENERAL = 3,\r
+    STR_EXERCISE_FREETRAINING = 4,\r
+    STR_EXERCISE_RESISTANCETRAINING = 5,\r
+    STR_EXERCISE_SPINBIKE = 6,\r
+    STR_EXERCISE_TREADMILL = 7,\r
+    STR_EXERCISE_STROLLMACHINE = 8,\r
+    STR_EXERCISE_HIIT = 9,\r
+    STR_EXERCISE_CROSSFIT = 10,\r
+    STR_EXERCISE_GROUPCALISTHENICS = 11,\r
+    STR_EXERCISE_YOGA = 12,\r
+    STR_EXERCISE_YOGACAT = 13,\r
+    STR_EXERCISE_YOGACOW = 14,\r
+    STR_EXERCISE_YOGACOBRA = 15,\r
+    STR_EXERCISE_YOGAHERO1 = 16,\r
+    STR_EXERCISE_YOGAHERO2 = 17,\r
+    STR_EXERCISE_YOGAHERO3 = 18,\r
+    STR_EXERCISE_YOGAROLLING = 19,\r
+    STR_EXERCISE_INDOORWALKING = 20,\r
+    STR_EXERCISE_INDOORRUNNING = 21,\r
     STR_EXERCISE_JUMPINGROPE = 22,\r
     STR_EXERCISE_PILATES = 23,\r
     STR_EXERCISE_CROSS_FIT = 24,\r
@@ -51,7 +51,7 @@ enum UIResourceTextId : uint16_t {
     STR_EXERCISE_AEROBICS = 38,\r
     STR_EXERCISE_CALISTHENICE = 39,\r
     STR_EXERCISE_P90X = 40,\r
-    STR_EXERCISE_KETTLEBELTRAINING = 41,\r
+    STR_EXERCISE_KETTLEBELLTRAINING = 41,\r
     STR_EXERCISE_MIXEDMARTIALARTS = 42,\r
     STR_EXERCISE_STAIRCLIMBINGMACHINE = 43,\r
     STR_EXERCISE_WEIGHTLIFTING = 44,\r
@@ -173,7 +173,7 @@ enum UIResourceTextId : uint16_t {
     STR_EXTREME_BUNGEEJUMPING = 160,\r
     STR_EXTREME_PARKOUR = 161,\r
     STR_EXTREME_BMX = 162,\r
-    STR_EXTREME_ORIENTERING = 163,\r
+    STR_EXTREME_ORIENTEERING = 163,\r
     STR_EXTREME_PARACHUTE = 164,\r
     STR_EXTREME_RACING = 165,\r
     STR_EXTREME_TRIATHLONS = 166,\r
@@ -186,324 +186,305 @@ enum UIResourceTextId : uint16_t {
     STR_OTHER_STILL = 173,\r
     STR_OTHER_TILTING = 174,\r
     STR_OTHER_WHEELCHAIR = 175,\r
-    STR_EXERCISE_LIST = 176,\r
-    STR_BALL_LIST = 177,\r
-    STR_WATER_LIST = 178,\r
-    STR_DANCING_LIST = 179,\r
-    STR_EXTREME_LIST = 180,\r
-    STR_ICE_LIST = 181,\r
-    STR_RECREATIONAL_LIST = 182,\r
-    STR_OTHER_LIST = 183,\r
-    STR_DANCING_TITLE = 184,\r
-    STR_BALL_LIST_TITLE = 185,\r
-    STR_OTHER_TITLE = 186,\r
-    STR_EXERCISE_TITLE = 187,\r
-    STR_TRAINING = 188,\r
-    STR_RAPID_TRAINING = 189,\r
-    STR_SET_GOALS = 190,\r
-    STR_DURATION = 191,\r
-    STR_DURATION_SETTING = 192,\r
-    STR_MINUTES = 193,\r
-    STR_CALORIE = 194,\r
-    STR_CALORIE_SETTING = 195,\r
-    STR_KILOCALORIE = 196,\r
-    STR_DISTANCE = 197,\r
-    STR_RANGE_SETTING = 198,\r
-    STR_METER = 199,\r
-    STR_KILOMETRE = 200,\r
-    STR_STEP_NUMBER = 201,\r
-    STR_STEP_SETTING = 202,\r
-    STR_STEP = 203,\r
-    STR_HEART_RATE = 204,\r
-    STR_MEAN_HEART_RATE = 205,\r
-    STR_TIMES_PER_MIN = 206,\r
-    STR_MEAN_HEART_RATE_MIN = 207,\r
-    STR_IN_THE = 208,\r
-    STR_LOWER_STRENGTH = 209,\r
-    STR_MEDIUM_STRENGTH = 210,\r
-    STR_HIGH_STRENGTH = 211,\r
-    STR_ULTRA_HIGH_STRENGTH = 212,\r
-    STR_TRAINING_INTENSITY = 213,\r
-    STR_TRAINING_INTENSITY_DESCRIPTION = 214,\r
-    STR_INTENSITY_INTERVAL_DESCRIPTION = 215,\r
-    STR_TRAINING_STATE_MEANING = 216,\r
-    STR_WARM_UP_EXERCISE = 217,\r
-    STR_FAT_BURNING_ZONE = 218,\r
-    STR_IMPROVE_CARDIOPULMONARY_FUNCTION = 219,\r
-    STR_PROFESSIONAL_ATHLETE = 220,\r
-    STR_TRAINING_INTENSITY_NOTE = 221,\r
-    STR_TRAINING_IN_PROGRESS = 222,\r
-    STR_BREAK_TRAINING = 223,\r
-    STR_FINISH = 224,\r
-    STR_PAUSE = 225,\r
-    STR_RESUME = 226,\r
-    STR_GOAL_ACHIEVED = 227,\r
-    STR_ACCOMPLISH_GOAL = 228,\r
-    STR_OK = 229,\r
-    STR_LOOK_OUT = 230,\r
-    STR_INSUFFICENT_EXERCISE_AMOUNT = 231,\r
-    STR_END_MOVEMENT = 232,\r
-    STR_END_THIS_MOVEMENT = 233,\r
-    STR_GOAL_ACCOMPLISHMENT_DEGREE = 234,\r
-    STR_TRAINING_DURATION = 235,\r
-    STR_OFF = 236,\r
-    STR_MORE = 237,\r
-    STR_EXERCISE_KETTLEBELLTRAINING = 238,\r
-    STR_EXTREME_ORIENTEERING = 239,\r
-    STR_BLOOD_OXYGEN = 240,\r
-    STR_TRAINING_RECORD = 241,\r
-    STR_COMPASS = 242,\r
-    STR_TELEPHONE = 243,\r
-    STR_FAVORITE_CONTACTS = 244,\r
-    STR_WEATHER = 245,\r
-    STR_ACTIVITY = 246,\r
-    STR_WATCH_FACE = 247,\r
-    STR_DISPLAY_MODE = 248,\r
-    STR_CARD_MANAGEMENT = 249,\r
-    STR_MUSIC = 250,\r
-    STR_SLEEP = 251,\r
-    STR_RECORD = 252,\r
-    STR_BREATH_TRAINING = 253,\r
-    STR_REMOTE_SHOOTING = 254,\r
-    STR_VOICE_ASSISTANT = 255,\r
-    STR_ALIPAY = 256,\r
-    STR_TIMER = 257,\r
-    STR_ALARM = 258,\r
-    STR_STOPWATCH = 259,\r
-    STR_CALCULATOR = 260,\r
-    STR_FIND_PHONE = 261,\r
-    STR_BRIGHTNESS_ADJUSTMENT = 262,\r
-    STR_SOUND = 263,\r
-    STR_BLUETOOTH = 264,\r
-    STR_DO_NOT_DISTURB = 265,\r
-    STR_MESSAGE_NOTIFICATION = 266,\r
-    STR_POWER_SAVE_MODE = 267,\r
-    STR_FLASHLIGHT = 268,\r
-    STR_SETTINGS = 269,\r
-    STR_HEART_RATE_SETTING = 270,\r
-    STR_INSUFFICIENT_EXERCISE_AMOUNT = 271,\r
-    STR_RANGE_MILE = 272,\r
-    STR_CLOSE = 273,\r
-    STR_MORE_APP = 274,\r
-    STR_SAVENOTE = 275,\r
-    STR_SAVEBACK = 276,\r
-    STR_SAVEASK = 277,\r
-    STR_BLOOD = 278,\r
-    STR_CHECK = 279,\r
-    STR_CHECKNEW = 280,\r
-    STR_CHECKTIME = 281,\r
-    STR_CHECKLONG = 282,\r
-    STR_CHECKNO = 283,\r
-    STR_CHECKNOTE = 284,\r
-    STR_CHECKON = 285,\r
-    STR_CHECKSTOP = 286,\r
-    STR_CHECKERROR = 287,\r
-    STR_WAERKEEP = 288,\r
-    STR_WEARRE = 289,\r
-    STR_WEARREADY = 290,\r
-    STR_RECHECK = 291,\r
-    STR_CHECKEWARN = 292,\r
-    STR_BLOODSHORT = 293,\r
-    STR_HEARTNOTE = 294,\r
-    STR_KONW = 295,\r
-    STR_EXPLAIN = 296,\r
-    STR_HEARTREST = 297,\r
-    STR_HEARTDATA = 298,\r
-    STR_HEARTTITLE = 299,\r
-    STR_HEARTMAX = 300,\r
-    STR_HEARTMIN = 301,\r
-    STR_TRAINGNO = 302,\r
-    STR_TRAINGGO = 303,\r
-    STR_MESSAGENO = 304,\r
-    STR_CLEAN = 305,\r
-    STR_CLEANALL = 306,\r
-    STR_SLEEP_YESTERDAY = 307,\r
-    STR_HOUR = 308,\r
-    STR_MIN = 309,\r
-    STR_SLEEPMGOAL = 310,\r
-    STR_REATTIME = 311,\r
-    STR_SLEEPTIME = 312,\r
-    STR_WALKTIME = 313,\r
-    STR_APPMORE = 314,\r
-    STR_DISTURB = 315,\r
-    STR_DISTURBNOTE = 316,\r
-    STR_MORNNING = 317,\r
-    STR_NOW = 318,\r
-    STR_NAP = 319,\r
-    STR_TACK = 320,\r
-    STR_CLICK = 321,\r
-    STR_TACKNUM = 322,\r
-    STR_SCREEN_AND_BRIGHTNESS = 323,\r
-    STR_NETWORKANDCALL = 324,\r
-    STR_SOUND_AND_VIBRATION = 325,\r
-    STR_MOTION_RECOGNITION = 326,\r
-    STR_SYSTEM = 327,\r
-    STR_SHUTDOWN_AND_RESTART = 328,\r
-    STR_SCREEN_ON_DURATION = 329,\r
-    STR_RAISE_TO_WAKE = 330,\r
-    STR_5_SECONDS = 331,\r
-    STR_10_SECONDS = 332,\r
-    STR_15_SECONDS = 333,\r
-    STR_30_SECONDS = 334,\r
-    STR_60_SECONDS = 335,\r
-    STR_300_SECONDS = 336,\r
-    STR_4G_CAPABILITY = 337,\r
-    STR_VOLTE_CALL = 338,\r
-    STR_MOBILE_DATA_OPTION = 339,\r
-    STR_SYSTEM_UPDATE = 340,\r
-    STR_ONLINE_MUSIC = 341,\r
-    STR_BLUETOOTH_HEADPHONES = 342,\r
-    STR_TRADITIONAL_BLUETOOTH = 343,\r
-    STR_AUTO_OFF_BLUETOOTH_NOTE = 344,\r
-    STR_BLUETOOTH_SERVICE_OPTIONS = 345,\r
-    STR_HFP = 346,\r
-    STR_A2DP = 347,\r
-    STR_SYSTEM_VOLUME = 348,\r
-    STR_MEDIA_VOLUME = 349,\r
-    STR_CALL_VOLUME = 350,\r
-    STR_VIBRATION_MODE = 351,\r
-    STR_SILENT_MODE = 352,\r
-    STR_LIST_DISPLAY = 353,\r
-    STR_GRID_DISPLAY = 354,\r
-    STR_CELLULAR_DISPLAY = 355,\r
-    STR_AUTO_DETECT = 356,\r
-    STR_ABOUT_WATCH = 357,\r
-    STR_WATCH_QR_CODE = 358,\r
-    STR_SYSTEM_LANGUAGE = 359,\r
-    STR_RESTART = 360,\r
-    STR_SHUTDOWN = 361,\r
-    STR_FACTORY_RESET = 362,\r
-    STR_WATCH_NAME = 363,\r
-    STR_FIRMWARE_VERSION = 364,\r
-    STR_BLUETOOTH_NAME = 365,\r
-    STR_BLUETOOTH_ADDRESS = 366,\r
-    STR_UPDATENOW = 367,\r
-    STR_LATEST_VERSION = 368,\r
-    STR_LATER = 369,\r
-    STR_UP_TO_DATE = 370,\r
-    STR_NO_UPDATE = 371,\r
-    STR_LANGUAGE_SELECTION = 372,\r
-    STR_RESET_CONFIRM = 373,\r
-    STR_SHUTDOWN_CONFIRM = 374,\r
-    STR_RESET_CONFIRM_NOTE = 375,\r
-    STR_RECORDER = 376,\r
-    STR_CLICK_TO_RECORD = 377,\r
-    STR_RECORDING = 378,\r
-    STR_AUDIO_XX = 379,\r
-    STR_VOICE_RECORDING_REMINDER = 380,\r
-    STR_VOICE_RECORDING_REMINDER_NOTE = 381,\r
-    STR_DELETE_RECORDING = 382,\r
-    STR_DELETE_PERMANENTLY = 383,\r
-    STR_RECORDING_LIST = 384,\r
-    STR_CRLEMPTY = 385,\r
-    STR_DO_NOT_DISTURB_MODE = 386,\r
-    STR_CONNECTION_STATUS = 387,\r
-    STR_PHONE = 388,\r
-    STR_HEADSET = 389,\r
-    STR_CONNECTED = 390,\r
-    STR_DISCONNECTED = 391,\r
-    STR_PHONE_RINGING_VIBRATING = 392,\r
-    STR_BLUETOOTH_DISCONNECTED = 393,\r
-    STR_STOP = 394,\r
-    STR_WORKDAY = 395,\r
-    STR_REPEAT_NO = 396,\r
-    STR_EVERYDAY = 397,\r
-    STR_ADD_A_NEW_ALARM = 398,\r
-    STR_TIME = 399,\r
-    STR_NEXT_STEP = 400,\r
-    STR_MON = 401,\r
-    STR_TUES = 402,\r
-    STR_WEDNES = 403,\r
-    STR_THURS = 404,\r
-    STR_FRI = 405,\r
-    STR_SATUR = 406,\r
-    STR_SUN = 407,\r
-    STR_MONDAY = 408,\r
-    STR_TUESDAY = 409,\r
-    STR_WEDNESDAY = 410,\r
-    STR_THURSDAY = 411,\r
-    STR_FRIDAY = 412,\r
-    STR_SATURDAY = 413,\r
-    STR_SUNDAY = 414,\r
-    STR_CALIBRATE_COMPASS = 415,\r
-    STR_CALIBRATE_COMPASS_NOTE = 416,\r
-    STR_EAST = 417,\r
-    STR_SOUTH = 418,\r
-    STR_WEST = 419,\r
-    STR_NORTH = 420,\r
-    STR_SOUTHEAST = 421,\r
-    STR_SOUTHWEST = 422,\r
-    STR_NORTHEAST = 423,\r
-    STR_NORTHWEST = 424,\r
-    STR_KEEP_STILL_FOCUS_ON_BREATHING = 425,\r
-    STR_EXHALE_NOW = 426,\r
-    STR_INHALE_NOW = 427,\r
-    STR_TRAINING_COMPLETE = 428,\r
-    STR_THIS_BREATH = 429,\r
-    STR_TODAYS_BREATHING_TRAINING = 430,\r
-    STR_RECENT_CALLS = 431,\r
-    STR_NO_CALLS = 432,\r
-    STR_MISSED_CALLS = 433,\r
-    STR_DIALED_CALLS = 434,\r
-    STR_RECEIVED_CALLS = 435,\r
-    STR_NOTE_RECENT_CALLS_LIMITATION = 436,\r
-    STR_NO_CONTACTS_ADDED = 437,\r
-    STR_DIAL_MODE = 438,\r
-    STR_DIAL_VIA_WATCH_SIM = 439,\r
-    STR_DIAL_VIA_PHONE = 440,\r
-    STR_KUMI_TECHNOLOGY = 441,\r
-    STR_CALLING = 442,\r
-    STR_NOT_PAIRED = 443,\r
-    STR_PAIRED = 444,\r
-    STR_UNPAIR = 445,\r
-    STR_CONNECTION_ERROR = 446,\r
-    STR_INSERT_WATCH_SIM_OR_CONNECT_PHONE = 447,\r
-    STR_ENABLE_BLUETOOTH_CALL = 448,\r
-    STR_ENABLE_BLUETOOTH_CALL_NOTE_IPHONE = 449,\r
-    STR_ENABLE_BLUETOOTH_CALL_NOTE_ANDRODIR = 450,\r
-    STR_ENABLE_BLUETOOTH_CALL_NOTE = 451,\r
-    STR_SIM_CARD_ERROR = 452,\r
-    STR_CHECK_SIM_CARD_INSERTION = 453,\r
-    STR_WEATHER_REPORT = 454,\r
-    STR_ULTRAVIOLET = 455,\r
-    STR_WIND_SPEED = 456,\r
-    STR_HUMIDITY = 457,\r
-    STR_NEXT_7_DAYS = 458,\r
-    STR_GET_WEATHER_ERROR = 459,\r
-    STR_MUSIC_SOURCE = 460,\r
-    STR_MOBILE_MUSIC = 461,\r
-    STR_WATCH_MUSIC = 462,\r
-    STR_MUSIC_LIST = 463,\r
-    STR_BLUETOOTH_CONNECTION_FAILED = 464,\r
-    STR_SCANNING_BINDING = 465,\r
-    STR_DEVICE_BINDING = 466,\r
-    STR_DEVICE_BINDING_NOTE = 467,\r
-    STR_EQUIPMENT_UNTYING = 468,\r
-    STR_EQUIPMENT_UNTYING_NOTE = 469,\r
-    STR_DRINK_WATER_REMINDER = 470,\r
-    STR_DRINK_WATER_REMINDER_NOTE = 471,\r
-    STR_SEDENTARY_REMINDER = 472,\r
-    STR_SEDENTARY_REMINDER_NOTE = 473,\r
-    STR_SYSTEM_UPGRADING = 474,\r
-    STR_NEWDEVICE_BIND_REMIND_NOTE = 475,\r
-    STR_AI_VOICE = 476,\r
-    STR_AI_INTELLIGENT_ASSISTANT = 477,\r
-    STR_START_CHAT = 478,\r
-    STR_BOOT_FAILED = 479,\r
-    STR_ENABLE_MOBILE_DATA_FIRST = 480,\r
-    STR_ENABLE_BLUETOOTH_FIRST = 481,\r
-    STR_LISTENING = 482,\r
-    STR_FINISH_SPEAKING = 483,\r
-    STR_THINKING = 484,\r
-    STR_CANCEL = 485,\r
-    STR_CONNECT_TIMEOUT = 486,\r
-    STR_PLEASE_RESTART_CHAT = 487,\r
-    STR_CONTINUE_CHAT = 488,\r
-    STR_MAX_ID = 489,\r
+    STR_HEART_RATE = 176,\r
+    STR_BLOOD_OXYGEN = 177,\r
+    STR_TRAINING = 178,\r
+    STR_TRAINING_RECORD = 179,\r
+    STR_COMPASS = 180,\r
+    STR_TELEPHONE = 181,\r
+    STR_FAVORITE_CONTACTS = 182,\r
+    STR_WEATHER = 183,\r
+    STR_ACTIVITY = 184,\r
+    STR_WATCH_FACE = 185,\r
+    STR_DISPLAY_MODE = 186,\r
+    STR_CARD_MANAGEMENT = 187,\r
+    STR_MUSIC = 188,\r
+    STR_SLEEP = 189,\r
+    STR_RECORD = 190,\r
+    STR_BREATH_TRAINING = 191,\r
+    STR_REMOTE_SHOOTING = 192,\r
+    STR_VOICE_ASSISTANT = 193,\r
+    STR_ALIPAY = 194,\r
+    STR_TIMER = 195,\r
+    STR_ALARM = 196,\r
+    STR_STOPWATCH = 197,\r
+    STR_CALCULATOR = 198,\r
+    STR_FIND_PHONE = 199,\r
+    STR_BRIGHTNESS_ADJUSTMENT = 200,\r
+    STR_SOUND = 201,\r
+    STR_BLUETOOTH = 202,\r
+    STR_DO_NOT_DISTURB = 203,\r
+    STR_MESSAGE_NOTIFICATION = 204,\r
+    STR_POWER_SAVE_MODE = 205,\r
+    STR_FLASHLIGHT = 206,\r
+    STR_SETTINGS = 207,\r
+    STR_EXERCISE_LIST = 208,\r
+    STR_BALL_LIST = 209,\r
+    STR_WATER_LIST = 210,\r
+    STR_DANCING_LIST = 211,\r
+    STR_EXTREME_LIST = 212,\r
+    STR_ICE_LIST = 213,\r
+    STR_RECREATIONAL_LIST = 214,\r
+    STR_OTHER_LIST = 215,\r
+    STR_DANCING_TITLE = 216,\r
+    STR_BALL_LIST_TITLE = 217,\r
+    STR_OTHER_TITLE = 218,\r
+    STR_EXERCISE_TITLE = 219,\r
+    STR_RAPID_TRAINING = 220,\r
+    STR_SET_GOALS = 221,\r
+    STR_DURATION = 222,\r
+    STR_DURATION_SETTING = 223,\r
+    STR_CALORIE = 224,\r
+    STR_CALORIE_SETTING = 225,\r
+    STR_DISTANCE = 226,\r
+    STR_RANGE_SETTING = 227,\r
+    STR_STEP_NUMBER = 228,\r
+    STR_STEP_SETTING = 229,\r
+    STR_HEART_RATE_SETTING = 230,\r
+    STR_MEAN_HEART_RATE = 231,\r
+    STR_TIMES_PER_MIN = 232,\r
+    STR_MEAN_HEART_RATE_MIN = 233,\r
+    STR_LOWER_STRENGTH = 234,\r
+    STR_MEDIUM_STRENGTH = 235,\r
+    STR_HIGH_STRENGTH = 236,\r
+    STR_ULTRA_HIGH_STRENGTH = 237,\r
+    STR_TRAINING_INTENSITY = 238,\r
+    STR_TRAINING_IN_PROGRESS = 239,\r
+    STR_BREAK_TRAINING = 240,\r
+    STR_FINISH = 241,\r
+    STR_PAUSE = 242,\r
+    STR_RESUME = 243,\r
+    STR_GOAL_ACHIEVED = 244,\r
+    STR_ACCOMPLISH_GOAL = 245,\r
+    STR_OK = 246,\r
+    STR_LOOK_OUT = 247,\r
+    STR_INSUFFICIENT_EXERCISE_AMOUNT = 248,\r
+    STR_END_MOVEMENT = 249,\r
+    STR_END_THIS_MOVEMENT = 250,\r
+    STR_GOAL_ACCOMPLISHMENT_DEGREE = 251,\r
+    STR_TRAINING_DURATION = 252,\r
+    STR_RANGE_MILE = 253,\r
+    STR_CLOSE = 254,\r
+    STR_MORE = 255,\r
+    STR_MORE_APP = 256,\r
+    STR_SAVENOTE = 257,\r
+    STR_SAVEBACK = 258,\r
+    STR_SAVEASK = 259,\r
+    STR_BLOOD = 260,\r
+    STR_CHECK = 261,\r
+    STR_CHECKNEW = 262,\r
+    STR_CHECKTIME = 263,\r
+    STR_CHECKLONG = 264,\r
+    STR_CHECKNO = 265,\r
+    STR_CHECKNOTE = 266,\r
+    STR_CHECKON = 267,\r
+    STR_CHECKSTOP = 268,\r
+    STR_CHECKERROR = 269,\r
+    STR_WAERKEEP = 270,\r
+    STR_WEARRE = 271,\r
+    STR_WEARREADY = 272,\r
+    STR_RECHECK = 273,\r
+    STR_CHECKEWARN = 274,\r
+    STR_BLOODSHORT = 275,\r
+    STR_HEARTNOTE = 276,\r
+    STR_KONW = 277,\r
+    STR_EXPLAIN = 278,\r
+    STR_HEARTREST = 279,\r
+    STR_HEARTDATA = 280,\r
+    STR_HEARTTITLE = 281,\r
+    STR_HEARTMAX = 282,\r
+    STR_HEARTMIN = 283,\r
+    STR_TRAINGNO = 284,\r
+    STR_TRAINGGO = 285,\r
+    STR_MESSAGENO = 286,\r
+    STR_CLEAN = 287,\r
+    STR_CLEANALL = 288,\r
+    STR_SLEEP_YESTERDAY = 289,\r
+    STR_HOUR = 290,\r
+    STR_MIN = 291,\r
+    STR_SLEEPMGOAL = 292,\r
+    STR_REATTIME = 293,\r
+    STR_SLEEPTIME = 294,\r
+    STR_WALKTIME = 295,\r
+    STR_APPMORE = 296,\r
+    STR_DISTURB = 297,\r
+    STR_DISTURBNOTE = 298,\r
+    STR_MORNNING = 299,\r
+    STR_NOW = 300,\r
+    STR_NAP = 301,\r
+    STR_TACK = 302,\r
+    STR_CLICK = 303,\r
+    STR_TACKNUM = 304,\r
+    STR_SCREEN_AND_BRIGHTNESS = 305,\r
+    STR_NETWORKANDCALL = 306,\r
+    STR_SOUND_AND_VIBRATION = 307,\r
+    STR_MOTION_RECOGNITION = 308,\r
+    STR_SYSTEM = 309,\r
+    STR_SHUTDOWN_AND_RESTART = 310,\r
+    STR_SCREEN_ON_DURATION = 311,\r
+    STR_RAISE_TO_WAKE = 312,\r
+    STR_5_SECONDS = 313,\r
+    STR_10_SECONDS = 314,\r
+    STR_15_SECONDS = 315,\r
+    STR_30_SECONDS = 316,\r
+    STR_60_SECONDS = 317,\r
+    STR_300_SECONDS = 318,\r
+    STR_4G_CAPABILITY = 319,\r
+    STR_VOLTE_CALL = 320,\r
+    STR_MOBILE_DATA_OPTION = 321,\r
+    STR_SYSTEM_UPDATE = 322,\r
+    STR_ONLINE_MUSIC = 323,\r
+    STR_BLUETOOTH_HEADPHONES = 324,\r
+    STR_TRADITIONAL_BLUETOOTH = 325,\r
+    STR_AUTO_OFF_BLUETOOTH_NOTE = 326,\r
+    STR_BLUETOOTH_SERVICE_OPTIONS = 327,\r
+    STR_HFP = 328,\r
+    STR_A2DP = 329,\r
+    STR_SYSTEM_VOLUME = 330,\r
+    STR_MEDIA_VOLUME = 331,\r
+    STR_CALL_VOLUME = 332,\r
+    STR_VIBRATION_MODE = 333,\r
+    STR_SILENT_MODE = 334,\r
+    STR_LIST_DISPLAY = 335,\r
+    STR_GRID_DISPLAY = 336,\r
+    STR_CELLULAR_DISPLAY = 337,\r
+    STR_AUTO_DETECT = 338,\r
+    STR_ABOUT_WATCH = 339,\r
+    STR_WATCH_QR_CODE = 340,\r
+    STR_SYSTEM_LANGUAGE = 341,\r
+    STR_RESTART = 342,\r
+    STR_SHUTDOWN = 343,\r
+    STR_FACTORY_RESET = 344,\r
+    STR_WATCH_NAME = 345,\r
+    STR_FIRMWARE_VERSION = 346,\r
+    STR_BLUETOOTH_NAME = 347,\r
+    STR_BLUETOOTH_ADDRESS = 348,\r
+    STR_UPDATENOW = 349,\r
+    STR_LATEST_VERSION = 350,\r
+    STR_LATER = 351,\r
+    STR_UP_TO_DATE = 352,\r
+    STR_NO_UPDATE = 353,\r
+    STR_LANGUAGE_SELECTION = 354,\r
+    STR_RESET_CONFIRM = 355,\r
+    STR_SHUTDOWN_CONFIRM = 356,\r
+    STR_RESET_CONFIRM_NOTE = 357,\r
+    STR_RECORDER = 358,\r
+    STR_CLICK_TO_RECORD = 359,\r
+    STR_RECORDING = 360,\r
+    STR_AUDIO_XX = 361,\r
+    STR_VOICE_RECORDING_REMINDER = 362,\r
+    STR_VOICE_RECORDING_REMINDER_NOTE = 363,\r
+    STR_DELETE_RECORDING = 364,\r
+    STR_DELETE_PERMANENTLY = 365,\r
+    STR_RECORDING_LIST = 366,\r
+    STR_CRLEMPTY = 367,\r
+    STR_DO_NOT_DISTURB_MODE = 368,\r
+    STR_CONNECTION_STATUS = 369,\r
+    STR_PHONE = 370,\r
+    STR_HEADSET = 371,\r
+    STR_CONNECTED = 372,\r
+    STR_DISCONNECTED = 373,\r
+    STR_PHONE_RINGING_VIBRATING = 374,\r
+    STR_BLUETOOTH_DISCONNECTED = 375,\r
+    STR_STOP = 376,\r
+    STR_WORKDAY = 377,\r
+    STR_REPEAT_NO = 378,\r
+    STR_EVERYDAY = 379,\r
+    STR_ADD_A_NEW_ALARM = 380,\r
+    STR_TIME = 381,\r
+    STR_NEXT_STEP = 382,\r
+    STR_MON = 383,\r
+    STR_TUES = 384,\r
+    STR_WEDNES = 385,\r
+    STR_THURS = 386,\r
+    STR_FRI = 387,\r
+    STR_SATUR = 388,\r
+    STR_SUN = 389,\r
+    STR_MONDAY = 390,\r
+    STR_TUESDAY = 391,\r
+    STR_WEDNESDAY = 392,\r
+    STR_THURSDAY = 393,\r
+    STR_FRIDAY = 394,\r
+    STR_SATURDAY = 395,\r
+    STR_SUNDAY = 396,\r
+    STR_CALIBRATE_COMPASS = 397,\r
+    STR_CALIBRATE_COMPASS_NOTE = 398,\r
+    STR_EAST = 399,\r
+    STR_SOUTH = 400,\r
+    STR_WEST = 401,\r
+    STR_NORTH = 402,\r
+    STR_SOUTHEAST = 403,\r
+    STR_SOUTHWEST = 404,\r
+    STR_NORTHEAST = 405,\r
+    STR_NORTHWEST = 406,\r
+    STR_KEEP_STILL_FOCUS_ON_BREATHING = 407,\r
+    STR_EXHALE_NOW = 408,\r
+    STR_INHALE_NOW = 409,\r
+    STR_TRAINING_COMPLETE = 410,\r
+    STR_THIS_BREATH = 411,\r
+    STR_TODAYS_BREATHING_TRAINING = 412,\r
+    STR_RECENT_CALLS = 413,\r
+    STR_NO_CALLS = 414,\r
+    STR_MISSED_CALLS = 415,\r
+    STR_DIALED_CALLS = 416,\r
+    STR_RECEIVED_CALLS = 417,\r
+    STR_NOTE_RECENT_CALLS_LIMITATION = 418,\r
+    STR_NO_CONTACTS_ADDED = 419,\r
+    STR_DIAL_MODE = 420,\r
+    STR_DIAL_VIA_WATCH_SIM = 421,\r
+    STR_DIAL_VIA_PHONE = 422,\r
+    STR_KUMI_TECHNOLOGY = 423,\r
+    STR_CALLING = 424,\r
+    STR_NOT_PAIRED = 425,\r
+    STR_PAIRED = 426,\r
+    STR_UNPAIR = 427,\r
+    STR_CONNECTION_ERROR = 428,\r
+    STR_INSERT_WATCH_SIM_OR_CONNECT_PHONE = 429,\r
+    STR_ENABLE_BLUETOOTH_CALL = 430,\r
+    STR_ENABLE_BLUETOOTH_CALL_NOTE_IPHONE = 431,\r
+    STR_ENABLE_BLUETOOTH_CALL_NOTE_ANDRODIR = 432,\r
+    STR_ENABLE_BLUETOOTH_CALL_NOTE = 433,\r
+    STR_SIM_CARD_ERROR = 434,\r
+    STR_CHECK_SIM_CARD_INSERTION = 435,\r
+    STR_WEATHER_REPORT = 436,\r
+    STR_ULTRAVIOLET = 437,\r
+    STR_WIND_SPEED = 438,\r
+    STR_HUMIDITY = 439,\r
+    STR_NEXT_7_DAYS = 440,\r
+    STR_GET_WEATHER_ERROR = 441,\r
+    STR_MUSIC_SOURCE = 442,\r
+    STR_MOBILE_MUSIC = 443,\r
+    STR_WATCH_MUSIC = 444,\r
+    STR_MUSIC_LIST = 445,\r
+    STR_BLUETOOTH_CONNECTION_FAILED = 446,\r
+    STR_SCANNING_BINDING = 447,\r
+    STR_DEVICE_BINDING = 448,\r
+    STR_DEVICE_BINDING_NOTE = 449,\r
+    STR_EQUIPMENT_UNTYING = 450,\r
+    STR_EQUIPMENT_UNTYING_NOTE = 451,\r
+    STR_DRINK_WATER_REMINDER = 452,\r
+    STR_DRINK_WATER_REMINDER_NOTE = 453,\r
+    STR_SEDENTARY_REMINDER = 454,\r
+    STR_SEDENTARY_REMINDER_NOTE = 455,\r
+    STR_SYSTEM_UPGRADING = 456,\r
+    STR_NEWDEVICE_BIND_REMIND_NOTE = 457,\r
+    STR_AI_VOICE = 458,\r
+    STR_AI_INTELLIGENT_ASSISTANT = 459,\r
+    STR_START_CHAT = 460,\r
+    STR_BOOT_FAILED = 461,\r
+    STR_ENABLE_MOBILE_DATA_FIRST = 462,\r
+    STR_ENABLE_BLUETOOTH_FIRST = 463,\r
+    STR_LISTENING = 464,\r
+    STR_FINISH_SPEAKING = 465,\r
+    STR_THINKING = 466,\r
+    STR_CANCEL = 467,\r
+    STR_CONNECT_TIMEOUT = 468,\r
+    STR_PLEASE_RESTART_CHAT = 469,\r
+    STR_CONTINUE_CHAT = 470,\r
+    STR_MAX_ID = 471,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
-    LANGUAGE_ID_JA,\r
     LANGUAGE_ID_ZH,\r
     LANGUAGE_ID_EN,\r
     LANGUAGE_ID_MAX\r
index 3399134..e2e29a9 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang differ
diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/stringpack_tool/language_trans.py b/code/sdk/application/wearable/fd230app/nativeui/language/stringpack_tool/language_trans.py
new file mode 100644 (file)
index 0000000..86e6e55
--- /dev/null
@@ -0,0 +1,277 @@
+#!/usr/bin/env python
+# coding: utf-8
+# Description: language_trans
+
+import sys
+sys.dont_write_bytecode = True
+import xml.etree.ElementTree as ET
+import zlib
+import struct
+import searchdir
+import os
+
+g_lang_info = {}
+g_lang_id = []
+g_lang_default_text_info = {}
+
+def make_sure_dir_exit(filename):
+    if not os.path.exists(os.path.dirname(filename)):
+        try:
+            os.makedirs(os.path.dirname(filename))
+        except OSError as exc: # Guard against race condition
+            if exc.errno != errno.EEXIST:
+                raise
+
+class TextInfo:
+    KEY_VALUE = "value"
+    KEY_fontName = "fontName"
+    KEY_SIZE = "size"
+    KEY_DIRECT = "direct"
+    DIRECT_LTR = 0
+    DIRECT_RTL = 1
+    DIRECT_MIXED = 2
+    DIRECT_NONE = 3
+
+    def __init__(self, info):
+        self._info = info
+
+    def get_size(self):
+        if TextInfo.KEY_SIZE in self._info:
+            return int(self._info[TextInfo.KEY_SIZE])
+        else:
+            return 0
+
+    def get_font_name(self):
+        if TextInfo.KEY_fontName in self._info:
+            return self._info[TextInfo.KEY_fontName]
+        return None
+
+    def get_value(self):
+        if TextInfo.KEY_VALUE in self._info:
+            return self._info[TextInfo.KEY_VALUE]
+        return ""
+
+    def get_direct(self):
+        if TextInfo.KEY_DIRECT in self._info:
+            if self._info[TextInfo.KEY_DIRECT] == "ltr":
+                return TextInfo.DIRECT_LTR
+            if self._info[TextInfo.KEY_DIRECT] == "rtl":
+                return TextInfo.DIRECT_RTL
+            if self._info[TextInfo.KEY_DIRECT] == "mixed":
+                return TextInfo.DIRECT_MIXED
+        return TextInfo.DIRECT_NONE
+
+    def __repr__(self):
+        return "%s" % (self._info)
+
+
+def int_prim_xml_layer_tree(tree):
+    root = tree.getroot()
+    layer_root_element = ET.Element('')
+    for child_1 in root:
+        if child_1.tag == 'language':
+            layer_root_element = child_1
+            break
+    return layer_root_element
+
+
+def get_lang_binary_body(tree):
+    offset = b''
+    str = b''
+    num = b''
+    crcData = b''
+    langId = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
+    # print(len(tree.findall('lanstr')))
+    num += len(tree.findall('lanstr')).to_bytes(4, byteorder="little")
+    for item in tree.findall('lanstr'):
+        id = item.get('id')
+        value = item.get('value')
+        str += bytes(value, 'utf-8')
+        str += b'\x00'
+        offset += (len(bytes(value, 'utf-8')) +
+                   1).to_bytes(4, byteorder="little")
+
+    langId = struct.pack('16s', bytes(tree.get('languageinfo'), 'utf-8'))
+    crcData += zlib.crc32(langId + num + offset +
+                          str).to_bytes(4, byteorder="little")
+    return crcData + langId + num + offset + str
+
+
+def get_lang_head_body(tree):
+    result = ''
+    index = 0
+    result += '/*\r\n'
+    result += '* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved.\r\n'
+    result += '* Description: language\r\n'
+    result += '* Author: Graphic develop team\r\n'
+    result += '* Create: 2021-07-06\r\n'
+    result += '*/\r\n'
+    result += '\r\n'
+    result += '#ifndef UI_TEXT_LANGUAGE_H\r\n'
+    result += '#define UI_TEXT_LANGUAGE_H\r\n'
+    result += '#include <cstdint>\r\n'
+    result += 'namespace OHOS {\r\n'
+    result += 'enum UITextLanguageTextId : uint16_t {\r\n'
+
+    for item in tree.findall('lanstr'):
+        id = item.get('id')
+        value = item.get('value')
+        result += '    ' + id + ' = ' + str(index) + ',\r\n'
+        index += 1
+    result += '}; // UITextLanguageTextId\r\n'
+    result += '#endif  /* UI_TEXT_LANGUAGE_H */\r\n'
+    return result
+
+
+def get_lang_binary_body_map(map, langType):
+   # print(langType)
+    offset = b''
+    str = b''
+    num = b''
+    crcData = b''
+    langId = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
+    # print(len(tree.findall('lanstr')))
+    keys = map.keys()
+    totalNum = len(keys)
+    index = 0
+    default_text_info = g_lang_default_text_info[langType]
+    # check default fontName
+    default_fontName = default_text_info.get_font_name()
+    if default_fontName != None:
+        str += bytes(default_fontName, 'utf-8')
+        str += b'\x00'
+        index += len(bytes(default_fontName, 'utf-8')) + 1
+        totalNum |= 0x8000
+    num += totalNum.to_bytes(2, byteorder="little")
+
+    for item in keys:
+        id = item
+        if langType in map[item]:
+            text_info = map[item][langType]
+        else:
+            text_info = TextInfo({})
+        value = text_info.get_value()
+        str += bytes(value, 'utf-8')
+        str += b'\x00'
+        index_value = index
+        font_size = text_info.get_size()
+        if font_size > 0:
+            index_value |= (index_value & 0xFF000000) | (font_size << 24)
+
+        direct = text_info.get_direct()
+        if direct == TextInfo.DIRECT_NONE:
+            direct = default_text_info.get_direct()
+        if direct != None:
+            index_value |= (index_value & 0x00600000) | (direct << 21)
+
+        font_name = text_info.get_font_name()
+        if font_name != None:
+            index_value |= (index_value | 0x00800000)
+            str += bytes(font_name, 'utf-8')
+            str += b'\x00'
+            index += len(bytes(font_name, 'utf-8')) + 1
+
+        offset += (index_value).to_bytes(4, byteorder="little")
+        index += len(bytes(value, 'utf-8')) + 1
+
+    langId = struct.pack('16s', bytes(langType, 'utf-8'))
+    crcData += zlib.crc32(langId + num + offset +
+                          str).to_bytes(4, byteorder="little")
+    return crcData + langId + num + offset + str
+
+
+def GetTextInfo(item):
+    info = {}
+    if item.get(TextInfo.KEY_VALUE) != None:
+        info[TextInfo.KEY_VALUE] = item.get(TextInfo.KEY_VALUE)
+    if item.get(TextInfo.KEY_SIZE) != None:
+        info[TextInfo.KEY_SIZE] = item.get(TextInfo.KEY_SIZE)
+    if item.get(TextInfo.KEY_fontName) != None:
+        info[TextInfo.KEY_fontName] = item.get(TextInfo.KEY_fontName)
+    if item.get(TextInfo.KEY_DIRECT) != None:
+        info[TextInfo.KEY_DIRECT] = item.get(TextInfo.KEY_DIRECT)
+    text_info = TextInfo(info)
+    return text_info
+
+
+def get_lang_map(tree):
+    langid = tree.get('languageinfo')
+    g_lang_id.append(langid)
+   # print(g_lang_id)
+
+    text_info = GetTextInfo(tree)
+   # print(text_info)
+    g_lang_default_text_info[langid] = text_info
+
+    for item in tree.findall('lanstr'):
+        text_info = GetTextInfo(item)
+        id = item.get('id')
+        value = item.get('value')
+        if id in g_lang_info:
+            g_lang_info[id][langid] = text_info
+        else:
+            g_lang_info[id] = {langid: text_info}
+   # print(g_lang_info)
+
+
+def get_language_id_enum():
+    result = """
+enum FontLanguageId : uint8_t {
+"""
+    for language in g_lang_id:
+        result += "    LANGUAGE_ID_" + language.upper() + ",\r\n"
+    result += '    LANGUAGE_ID_MAX\r\n'
+    result += '}; // UITextLanguageTextId\r\n'
+    return result
+
+
+def get_lang_head_body_map(map):
+    result = """/*
+* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved.
+* Description: language
+* Author: Graphic develop team
+* Create: 2021-07-06
+*/
+
+#ifndef UI_RESOURCE_STRING_H
+#define UI_RESOURCE_STRING_H
+#include <cstdint>
+namespace OHOS {
+enum UIResourceTextId : uint16_t {
+"""
+    index = 0
+    keys = map.keys()
+    for item in keys:
+        id = item
+        result += '    ' + id + ' = ' + str(index) + ',\r\n'
+        index += 1
+    result += '    ' + "STR_MAX_ID" + ' = ' + str(index) + ',\r\n'
+    result += '}; // UIResourceTextId\r\n'
+    result += get_language_id_enum()
+    result += '}\r\n'
+    result += '#endif  /* UI_RESOURCE_STRING_H */\r\n'
+   # print(result)
+    return result
+
+
+if __name__ == "__main__":
+    args = len(sys.argv)
+    argv = sys.argv
+    if (args < 3):
+        print("param should be \'xmlpath langPath headPath\'")
+        # sys.exit()
+    dirlist = searchdir.BASE()
+    dirlist.RecusWalkDir(dir=argv[1])
+    for item in dirlist.fileList:
+       # print(item)
+        tree = ET.parse(item).getroot()
+        get_lang_map(tree)
+    for item in g_lang_id:
+        bin = get_lang_binary_body_map(g_lang_info, item)
+        make_sure_dir_exit(os.path.join(argv[2], item + ".lang"));
+        with open(os.path.join(argv[2], item + ".lang"), 'wb+') as file:
+            file.write(bin)
+    head = get_lang_head_body_map(g_lang_info)
+    make_sure_dir_exit(os.path.join(argv[3], "ui_resource_string.h"))
+    with open(os.path.join(argv[3], "ui_resource_string.h"), 'wb+') as file:
+        file.write(bytes(head, 'utf-8'))
diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/stringpack_tool/searchdir.py b/code/sdk/application/wearable/fd230app/nativeui/language/stringpack_tool/searchdir.py
new file mode 100644 (file)
index 0000000..3ae8244
--- /dev/null
@@ -0,0 +1,67 @@
+import os
+
+#全局变量设置歌曲预定格式
+Const_Song_Format=["xml"]
+
+
+class BASE:
+    #类变量,设置文件列表
+    fileList=[]
+    #类变量,设置文件计算
+    counter=0
+    def __init__(self):
+        pass
+    def RecusWalkDir(self,dir,filtrate=0):
+        """本方法递归遍历目的文件夹中所有文件,获取指定格式的文件绝对地址,利用类变量fileList存储地址"""
+        global Const_Song_Format
+        for s in os.listdir(dir):
+            newDir=dir+"/"+s
+            if os.path.isdir(newDir):
+                self.RecusWalkDir(newDir)
+            else:
+                if os.path.isfile(newDir):
+
+                    if newDir and (self.GetFileFormat(newDir) in Const_Song_Format):
+                        self.__class__.fileList.append(newDir)
+                        self.__class__.counter+=1
+                   
+
+
+    def CycWalkDir(self,dir,filtrate=0):
+        """本方法循环遍历文件夹中所有文件,获取指定格式的文件绝对地址,返回歌曲列表fileList"""
+        global Const_Song_Format
+        fileList=[""]
+        for s in os.listdir(dir):
+            newDir=dir+"/"+s
+            if os.path.isfile(newDir):
+                if filtrate:
+                    if newDir and (self.GetFileFormat(newDir) in Const_Song_Format):
+                        fileList.append(newDir)
+                else:
+                    fileList.append(newDir)
+            else:
+                newDir=dir+"/"+s
+            while os.path.isdir(newDir):
+                for s in os.listdir(dir):
+                    newDir=dir+"/"+s
+                    if os.path.isfile(newDir):
+                        if filtrate:
+                            if newDir and (self.GetFileFormat(newDir) in Const_Song_Format):
+                                fileList.append(newDir)
+                        else:
+                            fileList.append(newDir)
+                    else:
+                        newDir=dir+"/"+s
+        return fileList
+
+
+    def GetFileFormat(self,fileName):
+        """返回文件格式"""
+        if fileName:
+            BaseName=os.path.basename(fileName)
+            str=BaseName.split(".")
+  
+            return str[-1]
+        else:
+            return fileName
+