From 76d7d350829467ccdf1e0cf54c4294db8a6d49cf Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Tue, 9 Jul 2024 14:12:16 +0800 Subject: [PATCH] =?utf8?q?=E6=9B=B4=E6=96=B0=E8=AF=AD=E8=A8=80=E6=96=87?= =?utf8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ...45\345\205\267\350\204\232\346\234\254.md" | 9 +- .../fd230app/nativeui/language/font/en.lang | Bin 9990 -> 9900 bytes .../language/font/ui_resource_string.h | 659 +++++++++--------- .../fd230app/nativeui/language/font/zh.lang | Bin 9070 -> 8980 bytes .../stringpack_tool/language_trans.py | 277 ++++++++ .../language/stringpack_tool/searchdir.py | 67 ++ 6 files changed, 672 insertions(+), 340 deletions(-) create mode 100644 code/sdk/application/wearable/fd230app/nativeui/language/stringpack_tool/language_trans.py create mode 100644 code/sdk/application/wearable/fd230app/nativeui/language/stringpack_tool/searchdir.py diff --git "a/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/\345\244\232\345\233\275\350\257\255\350\250\200\345\267\245\345\205\267\350\204\232\346\234\254.md" "b/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/\345\244\232\345\233\275\350\257\255\350\250\200\345\267\245\345\205\267\350\204\232\346\234\254.md" index 47d5384b8..7a4c08cc7 100644 --- "a/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/\345\244\232\345\233\275\350\257\255\350\250\200\345\267\245\345\205\267\350\204\232\346\234\254.md" +++ "b/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/\345\244\232\345\233\275\350\257\255\350\250\200\345\267\245\345\205\267\350\204\232\346\234\254.md" @@ -62,4 +62,11 @@ res路径: \FD230\code\sdk\build\config\target_config\brandy\mk_fs_image\fd23 -【完成多国语言文件配置】 \ No newline at end of file +【完成多国语言文件配置】 + +#更新 0709 + +使用多国语言工具直接生成多国语言lang文件 以及 字体头文件 + +python language_trans.py ../Language_xml/ ../font/ ../font/ +脚本 输入路径 字体文件输出路径 头文件输出路径 \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang b/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang index 05575d324557851e2fea47c5fff091e9ae3b059a..8551ced933c792b3d676ce2350cf039ad17d5407 100644 GIT binary patch delta 2032 zcmY+^du)wo7y$6Eqf?h@wbUq9n+cms7G<_rNXbT~SZ65`rs|-p9n(u();Qv}#m2(1 z1;b{=hN@7E)Xa3Osmx`>Eh=L!wZ%O)+r;*h?4Nzf@5%F>FW+;{d7k%u=M5^&h@AN) zqaqXz{&$^>d3YO3eG+I(SNf7c7UP)9LRPbm&FrL-L!9O!w+K{?rxoq!Li(ae@5p^g z{3Aioo-|(M6<%i~<0)V!tJuU&4se=U?oqdnI;7Bn?!3xtjA8=Ce85sZXG5JJ5^R@L zP{|R_a)sO6qh8%0Xhv(ECXGG}WCYn1FqPRXU^%PVNI83`<``$W#5I1e8wr9sdfk*( zJjF9SPdXV4WjLdFi+7mD92T&Ob(HZP)g0pt7pdhg_lbMdpCOe_bdLyq8Nx_%naX^Y zvz~42<_8W_!v%ih0kQRhAdxn7q$e*klpOMy&U-9kDJ7H=*&*!ZASXD_6>jhsv2lu% z!n1VaB?gnlX!4lK`z&M$pR$n(4)PPHI7cmaco1j)O)c}5w4)pS8Ac8hDPlS^na4sF z^BHT|!fvWK$z^WxC-Dt}pgEoCL4Srafe0TpF#lzeZB%lM^V}t_p+!e0y72;i7{nMt zgjvHD4sn&giE9)DjY*;lU-8Iewll40PZ|RwLWnthK`9j+C$@1AB-4}LWHO!QtY#D2 zIm!j<#Tyab>Bn&1B$r}lF`uQZW<8M|!gaEoG%MM_R`&4+jhk3h^kxuaD597}tYIrV zs9-PqspbghxXOJRBpL^uNaw>O^Iw!NF$w0Mv%i~idn!4 z%GgB}hlpvW1}UU5n6;EOGygr3Dvt6iy_0Q6a>ysj4Pu&WG4ZsZJp&m_E|YneIV@or zC49+7HdD^mRPZeaBElg~ah_UkagRoiD@p-HOko$GX9U6j%=#gAYPyQtzg=eWWhy0!{}UJT$3MpMiJRnHS#rYE$CW+$XXXC$OXBT3Dp8xp!le@+-0?bT#l p^pm6>(UK-v$^CK*3bVsGq0|m! delta 2171 zcmY+`dyr0L7y$5hU9y{8_JSxZLy?35i@8+P4T}J{Az);2#r!-yv%Or2{5gXXdHooRt_Hu|?{-kk+U5w7$#Bg5E z4B=x|vyQLW%W;0EZkA`GHQne-4#TtbKTlFf2{R~TK1--(D|vH9%Cvqm`gbed7l-mWDV=s$QHJ-gWVk91i$hJ zbuYDwXu}L@(|v7|E7RLG40l9w zWAW@^x$#J{HvRf!$BYrS(SMHQvB6q(q)s36)oxj&;<`fUXh namespace OHOS { enum UIResourceTextId : uint16_t { - STR_EXERCISE_GENERAL = 0, - STR_EXERCISE_FREETRAINING = 1, - STR_EXERCISE_RESISTANCETRAINING = 2, - STR_EXERCISE_SPINBIKE = 3, - STR_EXERCISE_TREADMILL = 4, - STR_EXERCISE_STROLLMACHINE = 5, - STR_EXERCISE_HIIT = 6, - STR_EXERCISE_CROSSFIT = 7, - STR_EXERCISE_GROUPCALISTHENICS = 8, - STR_EXERCISE_YOGA = 9, - STR_EXERCISE_YOGACAT = 10, - STR_EXERCISE_YOGACOW = 11, - STR_EXERCISE_YOGACOBRA = 12, - STR_EXERCISE_YOGAHERO1 = 13, - STR_EXERCISE_YOGAHERO2 = 14, - STR_EXERCISE_YOGAHERO3 = 15, - STR_EXERCISE_YOGAROLLING = 16, - STR_EXERCISE_OUTDOORWALKING = 17, - STR_EXERCISE_OUTDOORRUNNING = 18, - STR_EXERCISE_INDOORWALKING = 19, - STR_EXERCISE_INDOORRUNNING = 20, - STR_EXERCISE_OUTDOORBIKING = 21, + STR_EXERCISE_OUTDOORWALKING = 0, + STR_EXERCISE_OUTDOORRUNNING = 1, + STR_EXERCISE_OUTDOORBIKING = 2, + STR_EXERCISE_GENERAL = 3, + STR_EXERCISE_FREETRAINING = 4, + STR_EXERCISE_RESISTANCETRAINING = 5, + STR_EXERCISE_SPINBIKE = 6, + STR_EXERCISE_TREADMILL = 7, + STR_EXERCISE_STROLLMACHINE = 8, + STR_EXERCISE_HIIT = 9, + STR_EXERCISE_CROSSFIT = 10, + STR_EXERCISE_GROUPCALISTHENICS = 11, + STR_EXERCISE_YOGA = 12, + STR_EXERCISE_YOGACAT = 13, + STR_EXERCISE_YOGACOW = 14, + STR_EXERCISE_YOGACOBRA = 15, + STR_EXERCISE_YOGAHERO1 = 16, + STR_EXERCISE_YOGAHERO2 = 17, + STR_EXERCISE_YOGAHERO3 = 18, + STR_EXERCISE_YOGAROLLING = 19, + STR_EXERCISE_INDOORWALKING = 20, + STR_EXERCISE_INDOORRUNNING = 21, STR_EXERCISE_JUMPINGROPE = 22, STR_EXERCISE_PILATES = 23, STR_EXERCISE_CROSS_FIT = 24, @@ -51,7 +51,7 @@ enum UIResourceTextId : uint16_t { STR_EXERCISE_AEROBICS = 38, STR_EXERCISE_CALISTHENICE = 39, STR_EXERCISE_P90X = 40, - STR_EXERCISE_KETTLEBELTRAINING = 41, + STR_EXERCISE_KETTLEBELLTRAINING = 41, STR_EXERCISE_MIXEDMARTIALARTS = 42, STR_EXERCISE_STAIRCLIMBINGMACHINE = 43, STR_EXERCISE_WEIGHTLIFTING = 44, @@ -173,7 +173,7 @@ enum UIResourceTextId : uint16_t { STR_EXTREME_BUNGEEJUMPING = 160, STR_EXTREME_PARKOUR = 161, STR_EXTREME_BMX = 162, - STR_EXTREME_ORIENTERING = 163, + STR_EXTREME_ORIENTEERING = 163, STR_EXTREME_PARACHUTE = 164, STR_EXTREME_RACING = 165, STR_EXTREME_TRIATHLONS = 166, @@ -186,324 +186,305 @@ enum UIResourceTextId : uint16_t { STR_OTHER_STILL = 173, STR_OTHER_TILTING = 174, STR_OTHER_WHEELCHAIR = 175, - STR_EXERCISE_LIST = 176, - STR_BALL_LIST = 177, - STR_WATER_LIST = 178, - STR_DANCING_LIST = 179, - STR_EXTREME_LIST = 180, - STR_ICE_LIST = 181, - STR_RECREATIONAL_LIST = 182, - STR_OTHER_LIST = 183, - STR_DANCING_TITLE = 184, - STR_BALL_LIST_TITLE = 185, - STR_OTHER_TITLE = 186, - STR_EXERCISE_TITLE = 187, - STR_TRAINING = 188, - STR_RAPID_TRAINING = 189, - STR_SET_GOALS = 190, - STR_DURATION = 191, - STR_DURATION_SETTING = 192, - STR_MINUTES = 193, - STR_CALORIE = 194, - STR_CALORIE_SETTING = 195, - STR_KILOCALORIE = 196, - STR_DISTANCE = 197, - STR_RANGE_SETTING = 198, - STR_METER = 199, - STR_KILOMETRE = 200, - STR_STEP_NUMBER = 201, - STR_STEP_SETTING = 202, - STR_STEP = 203, - STR_HEART_RATE = 204, - STR_MEAN_HEART_RATE = 205, - STR_TIMES_PER_MIN = 206, - STR_MEAN_HEART_RATE_MIN = 207, - STR_IN_THE = 208, - STR_LOWER_STRENGTH = 209, - STR_MEDIUM_STRENGTH = 210, - STR_HIGH_STRENGTH = 211, - STR_ULTRA_HIGH_STRENGTH = 212, - STR_TRAINING_INTENSITY = 213, - STR_TRAINING_INTENSITY_DESCRIPTION = 214, - STR_INTENSITY_INTERVAL_DESCRIPTION = 215, - STR_TRAINING_STATE_MEANING = 216, - STR_WARM_UP_EXERCISE = 217, - STR_FAT_BURNING_ZONE = 218, - STR_IMPROVE_CARDIOPULMONARY_FUNCTION = 219, - STR_PROFESSIONAL_ATHLETE = 220, - STR_TRAINING_INTENSITY_NOTE = 221, - STR_TRAINING_IN_PROGRESS = 222, - STR_BREAK_TRAINING = 223, - STR_FINISH = 224, - STR_PAUSE = 225, - STR_RESUME = 226, - STR_GOAL_ACHIEVED = 227, - STR_ACCOMPLISH_GOAL = 228, - STR_OK = 229, - STR_LOOK_OUT = 230, - STR_INSUFFICENT_EXERCISE_AMOUNT = 231, - STR_END_MOVEMENT = 232, - STR_END_THIS_MOVEMENT = 233, - STR_GOAL_ACCOMPLISHMENT_DEGREE = 234, - STR_TRAINING_DURATION = 235, - STR_OFF = 236, - STR_MORE = 237, - STR_EXERCISE_KETTLEBELLTRAINING = 238, - STR_EXTREME_ORIENTEERING = 239, - STR_BLOOD_OXYGEN = 240, - STR_TRAINING_RECORD = 241, - STR_COMPASS = 242, - STR_TELEPHONE = 243, - STR_FAVORITE_CONTACTS = 244, - STR_WEATHER = 245, - STR_ACTIVITY = 246, - STR_WATCH_FACE = 247, - STR_DISPLAY_MODE = 248, - STR_CARD_MANAGEMENT = 249, - STR_MUSIC = 250, - STR_SLEEP = 251, - STR_RECORD = 252, - STR_BREATH_TRAINING = 253, - STR_REMOTE_SHOOTING = 254, - STR_VOICE_ASSISTANT = 255, - STR_ALIPAY = 256, - STR_TIMER = 257, - STR_ALARM = 258, - STR_STOPWATCH = 259, - STR_CALCULATOR = 260, - STR_FIND_PHONE = 261, - STR_BRIGHTNESS_ADJUSTMENT = 262, - STR_SOUND = 263, - STR_BLUETOOTH = 264, - STR_DO_NOT_DISTURB = 265, - STR_MESSAGE_NOTIFICATION = 266, - STR_POWER_SAVE_MODE = 267, - STR_FLASHLIGHT = 268, - STR_SETTINGS = 269, - STR_HEART_RATE_SETTING = 270, - STR_INSUFFICIENT_EXERCISE_AMOUNT = 271, - STR_RANGE_MILE = 272, - STR_CLOSE = 273, - STR_MORE_APP = 274, - STR_SAVENOTE = 275, - STR_SAVEBACK = 276, - STR_SAVEASK = 277, - STR_BLOOD = 278, - STR_CHECK = 279, - STR_CHECKNEW = 280, - STR_CHECKTIME = 281, - STR_CHECKLONG = 282, - STR_CHECKNO = 283, - STR_CHECKNOTE = 284, - STR_CHECKON = 285, - STR_CHECKSTOP = 286, - STR_CHECKERROR = 287, - STR_WAERKEEP = 288, - STR_WEARRE = 289, - STR_WEARREADY = 290, - STR_RECHECK = 291, - STR_CHECKEWARN = 292, - STR_BLOODSHORT = 293, - STR_HEARTNOTE = 294, - STR_KONW = 295, - STR_EXPLAIN = 296, - STR_HEARTREST = 297, - STR_HEARTDATA = 298, - STR_HEARTTITLE = 299, - STR_HEARTMAX = 300, - STR_HEARTMIN = 301, - STR_TRAINGNO = 302, - STR_TRAINGGO = 303, - STR_MESSAGENO = 304, - STR_CLEAN = 305, - STR_CLEANALL = 306, - STR_SLEEP_YESTERDAY = 307, - STR_HOUR = 308, - STR_MIN = 309, - STR_SLEEPMGOAL = 310, - STR_REATTIME = 311, - STR_SLEEPTIME = 312, - STR_WALKTIME = 313, - STR_APPMORE = 314, - STR_DISTURB = 315, - STR_DISTURBNOTE = 316, - STR_MORNNING = 317, - STR_NOW = 318, - STR_NAP = 319, - STR_TACK = 320, - STR_CLICK = 321, - STR_TACKNUM = 322, - STR_SCREEN_AND_BRIGHTNESS = 323, - STR_NETWORKANDCALL = 324, - STR_SOUND_AND_VIBRATION = 325, - STR_MOTION_RECOGNITION = 326, - STR_SYSTEM = 327, - STR_SHUTDOWN_AND_RESTART = 328, - STR_SCREEN_ON_DURATION = 329, - STR_RAISE_TO_WAKE = 330, - STR_5_SECONDS = 331, - STR_10_SECONDS = 332, - STR_15_SECONDS = 333, - STR_30_SECONDS = 334, - STR_60_SECONDS = 335, - STR_300_SECONDS = 336, - STR_4G_CAPABILITY = 337, - STR_VOLTE_CALL = 338, - STR_MOBILE_DATA_OPTION = 339, - STR_SYSTEM_UPDATE = 340, - STR_ONLINE_MUSIC = 341, - STR_BLUETOOTH_HEADPHONES = 342, - STR_TRADITIONAL_BLUETOOTH = 343, - STR_AUTO_OFF_BLUETOOTH_NOTE = 344, - STR_BLUETOOTH_SERVICE_OPTIONS = 345, - STR_HFP = 346, - STR_A2DP = 347, - STR_SYSTEM_VOLUME = 348, - STR_MEDIA_VOLUME = 349, - STR_CALL_VOLUME = 350, - STR_VIBRATION_MODE = 351, - STR_SILENT_MODE = 352, - STR_LIST_DISPLAY = 353, - STR_GRID_DISPLAY = 354, - STR_CELLULAR_DISPLAY = 355, - STR_AUTO_DETECT = 356, - STR_ABOUT_WATCH = 357, - STR_WATCH_QR_CODE = 358, - STR_SYSTEM_LANGUAGE = 359, - STR_RESTART = 360, - STR_SHUTDOWN = 361, - STR_FACTORY_RESET = 362, - STR_WATCH_NAME = 363, - STR_FIRMWARE_VERSION = 364, - STR_BLUETOOTH_NAME = 365, - STR_BLUETOOTH_ADDRESS = 366, - STR_UPDATENOW = 367, - STR_LATEST_VERSION = 368, - STR_LATER = 369, - STR_UP_TO_DATE = 370, - STR_NO_UPDATE = 371, - STR_LANGUAGE_SELECTION = 372, - STR_RESET_CONFIRM = 373, - STR_SHUTDOWN_CONFIRM = 374, - STR_RESET_CONFIRM_NOTE = 375, - STR_RECORDER = 376, - STR_CLICK_TO_RECORD = 377, - STR_RECORDING = 378, - STR_AUDIO_XX = 379, - STR_VOICE_RECORDING_REMINDER = 380, - STR_VOICE_RECORDING_REMINDER_NOTE = 381, - STR_DELETE_RECORDING = 382, - STR_DELETE_PERMANENTLY = 383, - STR_RECORDING_LIST = 384, - STR_CRLEMPTY = 385, - STR_DO_NOT_DISTURB_MODE = 386, - STR_CONNECTION_STATUS = 387, - STR_PHONE = 388, - STR_HEADSET = 389, - STR_CONNECTED = 390, - STR_DISCONNECTED = 391, - STR_PHONE_RINGING_VIBRATING = 392, - STR_BLUETOOTH_DISCONNECTED = 393, - STR_STOP = 394, - STR_WORKDAY = 395, - STR_REPEAT_NO = 396, - STR_EVERYDAY = 397, - STR_ADD_A_NEW_ALARM = 398, - STR_TIME = 399, - STR_NEXT_STEP = 400, - STR_MON = 401, - STR_TUES = 402, - STR_WEDNES = 403, - STR_THURS = 404, - STR_FRI = 405, - STR_SATUR = 406, - STR_SUN = 407, - STR_MONDAY = 408, - STR_TUESDAY = 409, - STR_WEDNESDAY = 410, - STR_THURSDAY = 411, - STR_FRIDAY = 412, - STR_SATURDAY = 413, - STR_SUNDAY = 414, - STR_CALIBRATE_COMPASS = 415, - STR_CALIBRATE_COMPASS_NOTE = 416, - STR_EAST = 417, - STR_SOUTH = 418, - STR_WEST = 419, - STR_NORTH = 420, - STR_SOUTHEAST = 421, - STR_SOUTHWEST = 422, - STR_NORTHEAST = 423, - STR_NORTHWEST = 424, - STR_KEEP_STILL_FOCUS_ON_BREATHING = 425, - STR_EXHALE_NOW = 426, - STR_INHALE_NOW = 427, - STR_TRAINING_COMPLETE = 428, - STR_THIS_BREATH = 429, - STR_TODAYS_BREATHING_TRAINING = 430, - STR_RECENT_CALLS = 431, - STR_NO_CALLS = 432, - STR_MISSED_CALLS = 433, - STR_DIALED_CALLS = 434, - STR_RECEIVED_CALLS = 435, - STR_NOTE_RECENT_CALLS_LIMITATION = 436, - STR_NO_CONTACTS_ADDED = 437, - STR_DIAL_MODE = 438, - STR_DIAL_VIA_WATCH_SIM = 439, - STR_DIAL_VIA_PHONE = 440, - STR_KUMI_TECHNOLOGY = 441, - STR_CALLING = 442, - STR_NOT_PAIRED = 443, - STR_PAIRED = 444, - STR_UNPAIR = 445, - STR_CONNECTION_ERROR = 446, - STR_INSERT_WATCH_SIM_OR_CONNECT_PHONE = 447, - STR_ENABLE_BLUETOOTH_CALL = 448, - STR_ENABLE_BLUETOOTH_CALL_NOTE_IPHONE = 449, - STR_ENABLE_BLUETOOTH_CALL_NOTE_ANDRODIR = 450, - STR_ENABLE_BLUETOOTH_CALL_NOTE = 451, - STR_SIM_CARD_ERROR = 452, - STR_CHECK_SIM_CARD_INSERTION = 453, - STR_WEATHER_REPORT = 454, - STR_ULTRAVIOLET = 455, - STR_WIND_SPEED = 456, - STR_HUMIDITY = 457, - STR_NEXT_7_DAYS = 458, - STR_GET_WEATHER_ERROR = 459, - STR_MUSIC_SOURCE = 460, - STR_MOBILE_MUSIC = 461, - STR_WATCH_MUSIC = 462, - STR_MUSIC_LIST = 463, - STR_BLUETOOTH_CONNECTION_FAILED = 464, - STR_SCANNING_BINDING = 465, - STR_DEVICE_BINDING = 466, - STR_DEVICE_BINDING_NOTE = 467, - STR_EQUIPMENT_UNTYING = 468, - STR_EQUIPMENT_UNTYING_NOTE = 469, - STR_DRINK_WATER_REMINDER = 470, - STR_DRINK_WATER_REMINDER_NOTE = 471, - STR_SEDENTARY_REMINDER = 472, - STR_SEDENTARY_REMINDER_NOTE = 473, - STR_SYSTEM_UPGRADING = 474, - STR_NEWDEVICE_BIND_REMIND_NOTE = 475, - STR_AI_VOICE = 476, - STR_AI_INTELLIGENT_ASSISTANT = 477, - STR_START_CHAT = 478, - STR_BOOT_FAILED = 479, - STR_ENABLE_MOBILE_DATA_FIRST = 480, - STR_ENABLE_BLUETOOTH_FIRST = 481, - STR_LISTENING = 482, - STR_FINISH_SPEAKING = 483, - STR_THINKING = 484, - STR_CANCEL = 485, - STR_CONNECT_TIMEOUT = 486, - STR_PLEASE_RESTART_CHAT = 487, - STR_CONTINUE_CHAT = 488, - STR_MAX_ID = 489, + STR_HEART_RATE = 176, + STR_BLOOD_OXYGEN = 177, + STR_TRAINING = 178, + STR_TRAINING_RECORD = 179, + STR_COMPASS = 180, + STR_TELEPHONE = 181, + STR_FAVORITE_CONTACTS = 182, + STR_WEATHER = 183, + STR_ACTIVITY = 184, + STR_WATCH_FACE = 185, + STR_DISPLAY_MODE = 186, + STR_CARD_MANAGEMENT = 187, + STR_MUSIC = 188, + STR_SLEEP = 189, + STR_RECORD = 190, + STR_BREATH_TRAINING = 191, + STR_REMOTE_SHOOTING = 192, + STR_VOICE_ASSISTANT = 193, + STR_ALIPAY = 194, + STR_TIMER = 195, + STR_ALARM = 196, + STR_STOPWATCH = 197, + STR_CALCULATOR = 198, + STR_FIND_PHONE = 199, + STR_BRIGHTNESS_ADJUSTMENT = 200, + STR_SOUND = 201, + STR_BLUETOOTH = 202, + STR_DO_NOT_DISTURB = 203, + STR_MESSAGE_NOTIFICATION = 204, + STR_POWER_SAVE_MODE = 205, + STR_FLASHLIGHT = 206, + STR_SETTINGS = 207, + STR_EXERCISE_LIST = 208, + STR_BALL_LIST = 209, + STR_WATER_LIST = 210, + STR_DANCING_LIST = 211, + STR_EXTREME_LIST = 212, + STR_ICE_LIST = 213, + STR_RECREATIONAL_LIST = 214, + STR_OTHER_LIST = 215, + STR_DANCING_TITLE = 216, + STR_BALL_LIST_TITLE = 217, + STR_OTHER_TITLE = 218, + STR_EXERCISE_TITLE = 219, + STR_RAPID_TRAINING = 220, + STR_SET_GOALS = 221, + STR_DURATION = 222, + STR_DURATION_SETTING = 223, + STR_CALORIE = 224, + STR_CALORIE_SETTING = 225, + STR_DISTANCE = 226, + STR_RANGE_SETTING = 227, + STR_STEP_NUMBER = 228, + STR_STEP_SETTING = 229, + STR_HEART_RATE_SETTING = 230, + STR_MEAN_HEART_RATE = 231, + STR_TIMES_PER_MIN = 232, + STR_MEAN_HEART_RATE_MIN = 233, + STR_LOWER_STRENGTH = 234, + STR_MEDIUM_STRENGTH = 235, + STR_HIGH_STRENGTH = 236, + STR_ULTRA_HIGH_STRENGTH = 237, + STR_TRAINING_INTENSITY = 238, + STR_TRAINING_IN_PROGRESS = 239, + STR_BREAK_TRAINING = 240, + STR_FINISH = 241, + STR_PAUSE = 242, + STR_RESUME = 243, + STR_GOAL_ACHIEVED = 244, + STR_ACCOMPLISH_GOAL = 245, + STR_OK = 246, + STR_LOOK_OUT = 247, + STR_INSUFFICIENT_EXERCISE_AMOUNT = 248, + STR_END_MOVEMENT = 249, + STR_END_THIS_MOVEMENT = 250, + STR_GOAL_ACCOMPLISHMENT_DEGREE = 251, + STR_TRAINING_DURATION = 252, + STR_RANGE_MILE = 253, + STR_CLOSE = 254, + STR_MORE = 255, + STR_MORE_APP = 256, + STR_SAVENOTE = 257, + STR_SAVEBACK = 258, + STR_SAVEASK = 259, + STR_BLOOD = 260, + STR_CHECK = 261, + STR_CHECKNEW = 262, + STR_CHECKTIME = 263, + STR_CHECKLONG = 264, + STR_CHECKNO = 265, + STR_CHECKNOTE = 266, + STR_CHECKON = 267, + STR_CHECKSTOP = 268, + STR_CHECKERROR = 269, + STR_WAERKEEP = 270, + STR_WEARRE = 271, + STR_WEARREADY = 272, + STR_RECHECK = 273, + STR_CHECKEWARN = 274, + STR_BLOODSHORT = 275, + STR_HEARTNOTE = 276, + STR_KONW = 277, + STR_EXPLAIN = 278, + STR_HEARTREST = 279, + STR_HEARTDATA = 280, + STR_HEARTTITLE = 281, + STR_HEARTMAX = 282, + STR_HEARTMIN = 283, + STR_TRAINGNO = 284, + STR_TRAINGGO = 285, + STR_MESSAGENO = 286, + STR_CLEAN = 287, + STR_CLEANALL = 288, + STR_SLEEP_YESTERDAY = 289, + STR_HOUR = 290, + STR_MIN = 291, + STR_SLEEPMGOAL = 292, + STR_REATTIME = 293, + STR_SLEEPTIME = 294, + STR_WALKTIME = 295, + STR_APPMORE = 296, + STR_DISTURB = 297, + STR_DISTURBNOTE = 298, + STR_MORNNING = 299, + STR_NOW = 300, + STR_NAP = 301, + STR_TACK = 302, + STR_CLICK = 303, + STR_TACKNUM = 304, + STR_SCREEN_AND_BRIGHTNESS = 305, + STR_NETWORKANDCALL = 306, + STR_SOUND_AND_VIBRATION = 307, + STR_MOTION_RECOGNITION = 308, + STR_SYSTEM = 309, + STR_SHUTDOWN_AND_RESTART = 310, + STR_SCREEN_ON_DURATION = 311, + STR_RAISE_TO_WAKE = 312, + STR_5_SECONDS = 313, + STR_10_SECONDS = 314, + STR_15_SECONDS = 315, + STR_30_SECONDS = 316, + STR_60_SECONDS = 317, + STR_300_SECONDS = 318, + STR_4G_CAPABILITY = 319, + STR_VOLTE_CALL = 320, + STR_MOBILE_DATA_OPTION = 321, + STR_SYSTEM_UPDATE = 322, + STR_ONLINE_MUSIC = 323, + STR_BLUETOOTH_HEADPHONES = 324, + STR_TRADITIONAL_BLUETOOTH = 325, + STR_AUTO_OFF_BLUETOOTH_NOTE = 326, + STR_BLUETOOTH_SERVICE_OPTIONS = 327, + STR_HFP = 328, + STR_A2DP = 329, + STR_SYSTEM_VOLUME = 330, + STR_MEDIA_VOLUME = 331, + STR_CALL_VOLUME = 332, + STR_VIBRATION_MODE = 333, + STR_SILENT_MODE = 334, + STR_LIST_DISPLAY = 335, + STR_GRID_DISPLAY = 336, + STR_CELLULAR_DISPLAY = 337, + STR_AUTO_DETECT = 338, + STR_ABOUT_WATCH = 339, + STR_WATCH_QR_CODE = 340, + STR_SYSTEM_LANGUAGE = 341, + STR_RESTART = 342, + STR_SHUTDOWN = 343, + STR_FACTORY_RESET = 344, + STR_WATCH_NAME = 345, + STR_FIRMWARE_VERSION = 346, + STR_BLUETOOTH_NAME = 347, + STR_BLUETOOTH_ADDRESS = 348, + STR_UPDATENOW = 349, + STR_LATEST_VERSION = 350, + STR_LATER = 351, + STR_UP_TO_DATE = 352, + STR_NO_UPDATE = 353, + STR_LANGUAGE_SELECTION = 354, + STR_RESET_CONFIRM = 355, + STR_SHUTDOWN_CONFIRM = 356, + STR_RESET_CONFIRM_NOTE = 357, + STR_RECORDER = 358, + STR_CLICK_TO_RECORD = 359, + STR_RECORDING = 360, + STR_AUDIO_XX = 361, + STR_VOICE_RECORDING_REMINDER = 362, + STR_VOICE_RECORDING_REMINDER_NOTE = 363, + STR_DELETE_RECORDING = 364, + STR_DELETE_PERMANENTLY = 365, + STR_RECORDING_LIST = 366, + STR_CRLEMPTY = 367, + STR_DO_NOT_DISTURB_MODE = 368, + STR_CONNECTION_STATUS = 369, + STR_PHONE = 370, + STR_HEADSET = 371, + STR_CONNECTED = 372, + STR_DISCONNECTED = 373, + STR_PHONE_RINGING_VIBRATING = 374, + STR_BLUETOOTH_DISCONNECTED = 375, + STR_STOP = 376, + STR_WORKDAY = 377, + STR_REPEAT_NO = 378, + STR_EVERYDAY = 379, + STR_ADD_A_NEW_ALARM = 380, + STR_TIME = 381, + STR_NEXT_STEP = 382, + STR_MON = 383, + STR_TUES = 384, + STR_WEDNES = 385, + STR_THURS = 386, + STR_FRI = 387, + STR_SATUR = 388, + STR_SUN = 389, + STR_MONDAY = 390, + STR_TUESDAY = 391, + STR_WEDNESDAY = 392, + STR_THURSDAY = 393, + STR_FRIDAY = 394, + STR_SATURDAY = 395, + STR_SUNDAY = 396, + STR_CALIBRATE_COMPASS = 397, + STR_CALIBRATE_COMPASS_NOTE = 398, + STR_EAST = 399, + STR_SOUTH = 400, + STR_WEST = 401, + STR_NORTH = 402, + STR_SOUTHEAST = 403, + STR_SOUTHWEST = 404, + STR_NORTHEAST = 405, + STR_NORTHWEST = 406, + STR_KEEP_STILL_FOCUS_ON_BREATHING = 407, + STR_EXHALE_NOW = 408, + STR_INHALE_NOW = 409, + STR_TRAINING_COMPLETE = 410, + STR_THIS_BREATH = 411, + STR_TODAYS_BREATHING_TRAINING = 412, + STR_RECENT_CALLS = 413, + STR_NO_CALLS = 414, + STR_MISSED_CALLS = 415, + STR_DIALED_CALLS = 416, + STR_RECEIVED_CALLS = 417, + STR_NOTE_RECENT_CALLS_LIMITATION = 418, + STR_NO_CONTACTS_ADDED = 419, + STR_DIAL_MODE = 420, + STR_DIAL_VIA_WATCH_SIM = 421, + STR_DIAL_VIA_PHONE = 422, + STR_KUMI_TECHNOLOGY = 423, + STR_CALLING = 424, + STR_NOT_PAIRED = 425, + STR_PAIRED = 426, + STR_UNPAIR = 427, + STR_CONNECTION_ERROR = 428, + STR_INSERT_WATCH_SIM_OR_CONNECT_PHONE = 429, + STR_ENABLE_BLUETOOTH_CALL = 430, + STR_ENABLE_BLUETOOTH_CALL_NOTE_IPHONE = 431, + STR_ENABLE_BLUETOOTH_CALL_NOTE_ANDRODIR = 432, + STR_ENABLE_BLUETOOTH_CALL_NOTE = 433, + STR_SIM_CARD_ERROR = 434, + STR_CHECK_SIM_CARD_INSERTION = 435, + STR_WEATHER_REPORT = 436, + STR_ULTRAVIOLET = 437, + STR_WIND_SPEED = 438, + STR_HUMIDITY = 439, + STR_NEXT_7_DAYS = 440, + STR_GET_WEATHER_ERROR = 441, + STR_MUSIC_SOURCE = 442, + STR_MOBILE_MUSIC = 443, + STR_WATCH_MUSIC = 444, + STR_MUSIC_LIST = 445, + STR_BLUETOOTH_CONNECTION_FAILED = 446, + STR_SCANNING_BINDING = 447, + STR_DEVICE_BINDING = 448, + STR_DEVICE_BINDING_NOTE = 449, + STR_EQUIPMENT_UNTYING = 450, + STR_EQUIPMENT_UNTYING_NOTE = 451, + STR_DRINK_WATER_REMINDER = 452, + STR_DRINK_WATER_REMINDER_NOTE = 453, + STR_SEDENTARY_REMINDER = 454, + STR_SEDENTARY_REMINDER_NOTE = 455, + STR_SYSTEM_UPGRADING = 456, + STR_NEWDEVICE_BIND_REMIND_NOTE = 457, + STR_AI_VOICE = 458, + STR_AI_INTELLIGENT_ASSISTANT = 459, + STR_START_CHAT = 460, + STR_BOOT_FAILED = 461, + STR_ENABLE_MOBILE_DATA_FIRST = 462, + STR_ENABLE_BLUETOOTH_FIRST = 463, + STR_LISTENING = 464, + STR_FINISH_SPEAKING = 465, + STR_THINKING = 466, + STR_CANCEL = 467, + STR_CONNECT_TIMEOUT = 468, + STR_PLEASE_RESTART_CHAT = 469, + STR_CONTINUE_CHAT = 470, + STR_MAX_ID = 471, }; // UIResourceTextId enum FontLanguageId : uint8_t { - LANGUAGE_ID_JA, LANGUAGE_ID_ZH, LANGUAGE_ID_EN, LANGUAGE_ID_MAX diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang b/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang index 339913451ecde5746ec94f4ec1899e1886ea94e8..e2e29a931e7cfedb48b44ea7ec8b0981317a2951 100644 GIT binary patch delta 2027 zcmY+_X>1ln7y#hmC_OlOfq+%K`|G-hF3wva^|YXZLLGg4}Vh z%^z~=tx4g3$I%we&GuZ&t=!FnJWliA0t)$nk6Fc9w(&K`Im6XZJ}y6!+%kmg$l?zA zaz76tQk+u6fmP7>o1S4eIhLRW6#Htys;9%3kYjN}C-F}-ypgks72d_*PdsG*j< z9OO8^ah?ztLOiKt(2G6{ActW*%_ycYod~n3ppwMJ~g5 znirWyA*EEXluguffRn^HM`C;kDRkr}x|7XA3?=fsFo9QigBcW4#u6%7&3bmQmxKIF zJ!fblKEWhpa5Gu-C5PdRWFk{2ppeo8^{fbTR%fdZ8%#-9Zg=x&9l=*zXN;a{ToiuQf_H9GB zp4;fhKyn$)dg{4At9BtI(V47>ki)YS(A+NL6ZY{FS4gzuub~e^c!tqT;B|^v%tp4e zhr=8r#wD)MszV5AbmMj+{e^rg`JD?ik(BI><}sdQ64RN(LYAEIs zAf$wl&W-fsULGMMRsDOV+M_(mGmPg|3Mr+6O4hNRef&rRXSqbnG<%=x$f7Sf3}+05 zlv2S4_L7ipCDPSDQ<6A;*%OQ_nXyh_+8R|n19^i3CF@*vmEX)Ye>V$3y%PSgJm&cZsMZbt|>NLAJ_Sw2v z&Du~`y}VANro6uD)9AT`Z`;*XZf=Yg#j2|swia#Nme?k)U0wB}y7}d?&2t+|=0$gQ zcqjeKqK0`TA+~I0{koOmzmXrN_G}Rym|Pk?n0$A%b;^xhV>L?~R%{Lbp3ZHXQ&+sE zv83$Ww$kXJlrHIY|J*}&{hDRjb#rDn_m54vJzAFXVDw1Ji0BV#nbDr9Inh7UGB&2B Hk4gC(@AGGp delta 2102 zcmY+_XKYqg7y#f4rHk2?-J%f!G87py6rxZhtRkSX3>T;%8`&rUJ_t}sBbD-55imdz zDKZ*JEjvJ162Y)UkQ8eIg*GW82u7Crfd26&&wJnV=bU@ad(Szace~zg$o5ca&h!z% z|DMuvkD66Tq%p~)kji+bF^6=rSwjIwI7bP0C|@pX$h)D4@<9;C6Evh5t$2Y>^rk-_ zFqOGvu#_A&vV#L0=VvZ*nd{u)Z(<{YpdL+WNe8+{1fd{B@;ZYU!dRv;i}`%UGFFqz zR(5lgvlLRwO(H5-8fx<-jc7qTI@6s#r1CanDujaI6GxX;u5z1lF+ot3 znlzvV?dVA_-e44?naF(7V$^?uB$Jh_VjcPH<`kzXqKvyl#RfrjYEY9})TRz~NhFCz zwB|)R)13hfWi%6+6s!KTCCm7hZER;R$2d&Dg{ABp5zr?V<6)=$e%=3Hhb#Pl#Zk_f_Y@IlC2bSgQ`xA zB%08jcL)s^#xaF-vf0dGPVfs?xW+xAtLliFG^70JDK~R}`^x-W=F`W#S zlUq&w^CWvY#(6GsiBfKGhX+K)1wjIhXiX=2Gl=H#YRs#=$#5n!hfG$mo&pYVf-){d)Ut*j&hun{KT)6aEk{-)wI`1q#5rqjFF6G0v{6!327{1Cr3EL zZ(Jj&<&P(k#rQ80!vuMF21L-yRa^)4C5B}shH#gXvjMp(XNLR6EsQG3+kAER-0-=$w&6 z!Ic%?6|Y?$6o0*~G(7j;o`d4N<;9D$O15Q`F31c@a%NxIlAGV4TJv%VkNbMm`KFu} X#p!7V2tS|jboi@;r2M@J{p0=t<+);n 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 index 000000000..86e6e5588 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/language/stringpack_tool/language_trans.py @@ -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 \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 +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 index 000000000..3ae824459 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/language/stringpack_tool/searchdir.py @@ -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 + -- 2.17.1