diff --git a/FireBoltt.xcodeproj/project.pbxproj b/FireBoltt.xcodeproj/project.pbxproj index a210464..e956e18 100644 --- a/FireBoltt.xcodeproj/project.pbxproj +++ b/FireBoltt.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -2558,7 +2558,7 @@ "@executable_path/Frameworks", ); LIBRARY_SEARCH_PATHS = "$(inherited)"; - MARKETING_VERSION = 1.0.0; + MARKETING_VERSION = 1.0.1; ONLY_ACTIVE_ARCH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.ecell.www.fireboltts; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2603,7 +2603,7 @@ "@executable_path/Frameworks", ); LIBRARY_SEARCH_PATHS = "$(inherited)"; - MARKETING_VERSION = 1.0.0; + MARKETING_VERSION = 1.0.1; ONLY_ACTIVE_ARCH = NO; PRODUCT_BUNDLE_IDENTIFIER = com.ecell.www.fireboltts; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/FireBoltt.xcodeproj/xcshareddata/xcschemes/FireBoltt.xcscheme b/FireBoltt.xcodeproj/xcshareddata/xcschemes/FireBoltt.xcscheme index 9a50131..4e7de71 100644 --- a/FireBoltt.xcodeproj/xcshareddata/xcschemes/FireBoltt.xcscheme +++ b/FireBoltt.xcodeproj/xcshareddata/xcschemes/FireBoltt.xcscheme @@ -31,7 +31,7 @@ - - - - + startingLineNumber = "719" + endingLineNumber = "719" + offsetFromSymbolStart = "16892"> + startingLineNumber = "718" + endingLineNumber = "718" + offsetFromSymbolStart = "16892"> + startingLineNumber = "718" + endingLineNumber = "718" + offsetFromSymbolStart = "16896"> @@ -348,20 +332,20 @@ + startingLineNumber = "774" + endingLineNumber = "774" + offsetFromSymbolStart = "21216"> + startingLineNumber = "773" + endingLineNumber = "773" + offsetFromSymbolStart = "21216"> + startingLineNumber = "773" + endingLineNumber = "773" + offsetFromSymbolStart = "21236"> @@ -411,134 +395,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FireBoltt/Const/Enum.swift b/FireBoltt/Const/Enum.swift index 1a28347..56e8ca7 100644 --- a/FireBoltt/Const/Enum.swift +++ b/FireBoltt/Const/Enum.swift @@ -268,7 +268,7 @@ extension SportType { case .freeTraining: return R.image.fb_icon_free() default: - return nil + return R.image.icon_running() } } } diff --git a/FireBoltt/FB_Modules/FB_Bluetooth/BLEBLDelegate.h b/FireBoltt/FB_Modules/FB_Bluetooth/BLEBLDelegate.h index 2a40a4d..24bb12b 100644 --- a/FireBoltt/FB_Modules/FB_Bluetooth/BLEBLDelegate.h +++ b/FireBoltt/FB_Modules/FB_Bluetooth/BLEBLDelegate.h @@ -17,7 +17,7 @@ /** * 业务处理完成回调方法 */ -- (void)finishedHandle:(BLEBaseBlFireBoltt*)bl data:(NSDictionary *)data cmd:(BleCMD_FireBoltt)cmd; +- (void)finishedHandleWithData:(NSDictionary *)data cmd:(BleCMD_FireBoltt)cmd; @optional /** diff --git a/FireBoltt/FB_Modules/FB_Bluetooth/BLEBaseBlFireBoltt.m b/FireBoltt/FB_Modules/FB_Bluetooth/BLEBaseBlFireBoltt.m index 81108e9..e55e8b4 100644 --- a/FireBoltt/FB_Modules/FB_Bluetooth/BLEBaseBlFireBoltt.m +++ b/FireBoltt/FB_Modules/FB_Bluetooth/BLEBaseBlFireBoltt.m @@ -1619,10 +1619,14 @@ //NSLog(@"我是接收到的完整数据 -------%@",data); NSDictionary *dict = [L2DataParseFireBoltt L2_ParseData:data type:cmdId]; + if (cmdId == BleCMD_syncHealth) + { + NSLog(@"实时运动数据 22 %@", dict); + } - if (IsDelegate(self.delegate, finishedHandle:data:cmd:)) { + if (IsDelegate(self.delegate, finishedHandleWithData:cmd:)) { - [self.delegate finishedHandle:self data:dict cmd:cmdId]; + [self.delegate finishedHandleWithData:dict cmd:cmdId]; } } diff --git a/FireBoltt/FB_Modules/FB_Bluetooth/BluetoothFireBoltt.m b/FireBoltt/FB_Modules/FB_Bluetooth/BluetoothFireBoltt.m index 5f09c8e..8d90a58 100644 --- a/FireBoltt/FB_Modules/FB_Bluetooth/BluetoothFireBoltt.m +++ b/FireBoltt/FB_Modules/FB_Bluetooth/BluetoothFireBoltt.m @@ -822,6 +822,8 @@ NSString *FLT_BLE_RCSP_R = @"AE02"; //命令“读”通道 // 拼接最后完整数据包 [self.totalData appendData:self.currenData]; // 代理返回成功数据 + if (item.cmd == BleCMD_syncHealth) + NSLog(@"909090"); if (IsDelegate(item.dataSource, bluetoothManager:sequenceID:didCompleteWithData:cmdId:)) { [self.currenItem.dataSource bluetoothManager:self sequenceID:item.sid didCompleteWithData:self.totalData cmdId:item.cmd]; } @@ -919,13 +921,9 @@ NSString *FLT_BLE_RCSP_R = @"AE02"; //命令“读”通道 if (blecmd == BleCMD_realTimesync) [BLEBaseBlFireBoltt.shareInstance readProfileWithBleCmdTypeFB:BleCMD_readProfile]; - // 处理设备端发来的实时步数,心率,血压血氧 - if (blecmd == BleCMD_realTimesync||blecmd == BleCMD_syncHealth) { - NSDictionary *dict = [L2DataParseFireBoltt L2_ParseData:data type:blecmd]; - BleCMD_FireBoltt reportCMD = [dict[@"DataType"] integerValue]; - [[NSNotificationCenter defaultCenter] postNotificationName:DeviceReportRealTimeHealthData object:@(reportCMD) userInfo:dict]; - - + // 处理设备端发来的实时 + if (blecmd == BleCMD_realTimesync || blecmd == BleCMD_syncHealth) { + [self handleDeviceDataCMD:blecmd Data:data]; return; } // 回复设备发出通知 @@ -967,9 +965,21 @@ NSString *FLT_BLE_RCSP_R = @"AE02"; //命令“读”通道 处理设备发送过来的数据 */ - (void)handleDeviceDataCMD:(BleCMD_FireBoltt)blecmd Data:(NSMutableData *)data { + NSDictionary *dict = [L2DataParseFireBoltt L2_ParseData:data type:blecmd]; BleCMD_FireBoltt reportCMD = [dict[@"DataType"] integerValue]; [[NSNotificationCenter defaultCenter] postNotificationName:DeviceReportRealTimeHealthData object:@(reportCMD) userInfo:dict]; + if (blecmd == BleCMD_syncHealth) + { + NSLog(@"实时运动数据:%@",dict[@"SPORT"]); + if (dict[@"SPORT"]) + { +// if (IsDelegate(self.currenItem.dataSource, bluetoothManager:sequenceID:didCompleteWithData:cmdId:)) { +// [self.currenItem.dataSource bluetoothManager:self sequenceID:self.currenItem.sid didCompleteWithData:data cmdId:BleCMD_syncHealth]; +// } + [BluetoothService.ocShareInstance finishedHandleWithData:dict cmd:BleCMD_syncHealth]; + } + } } /** diff --git a/FireBoltt/FB_Modules/FB_Device/Service/BluetoothService.swift b/FireBoltt/FB_Modules/FB_Device/Service/BluetoothService.swift index b19e1f9..3b110fe 100644 --- a/FireBoltt/FB_Modules/FB_Device/Service/BluetoothService.swift +++ b/FireBoltt/FB_Modules/FB_Device/Service/BluetoothService.swift @@ -77,8 +77,7 @@ class BluetoothService: NSObject { baseBl.delegate = self loadDefaultData() monitorNotification() - // 测试 -// finishedHandle(BLEBaseBl(), data: ["deviceName": "ceshi", "platform": 0, "macID": "asdasd", "adapterNumber": 9527, "firmwareVersion": "1.0.0"], cmd: .firmwareVersion) + } private func loadDefaultData() { @@ -556,8 +555,8 @@ extension BluetoothService { // MARK: - 设备控制指令处理 extension BluetoothService: BLEBLDelegate { - - func finishedHandle(_ bl: BLEBaseBlFireBoltt!, data: [AnyHashable : Any]!, cmd: BleCMD_FireBoltt) { + + func finishedHandle(withData data: [AnyHashable : Any]!, cmd: BleCMD_FireBoltt) { switch cmd { case .setAlarmClock: print("") diff --git a/FireBoltt/FB_Modules/FB_Device/ViewModel/DeviceViewModels.swift b/FireBoltt/FB_Modules/FB_Device/ViewModel/DeviceViewModels.swift index a1569d6..0e0df45 100644 --- a/FireBoltt/FB_Modules/FB_Device/ViewModel/DeviceViewModels.swift +++ b/FireBoltt/FB_Modules/FB_Device/ViewModel/DeviceViewModels.swift @@ -183,7 +183,7 @@ extension DeviceViewModels { if adapterInfo.music { section2.append(.music) } // Section3 if adapterInfo.firmwareVersion { section3.insert(.firmwareUpgrade, at: 0) } - if adapterInfo.wechatSport { section3.insert(.wechatSport, at: 1) } + if adapterInfo.wechatSport { section3.insert(.wechatSport, at: 0) } if adapterInfo.dailPush { section3.insert(.dialPush, at: 0) } } let funcations: [[FunctionTypeFireBoltt]] = [section1, section2, section3] diff --git a/FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.swift b/FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.swift index 264eadb..879c53f 100644 --- a/FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.swift +++ b/FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.swift @@ -31,6 +31,10 @@ class SportHeaderView: UIView { @IBOutlet weak var sportListLabel: UILabel! + @IBOutlet weak var xiaoshiLabel: UILabel! + + @IBOutlet weak var qiankaLabel: UILabel! + override func awakeFromNib() { super.awakeFromNib() dataBgView.layer.cornerRadius = 10 @@ -48,6 +52,10 @@ class SportHeaderView: UIView { durationTipLabel.text = MultiLanguageKey_FB.totalDurationFB.localized caloriesTipLabel.text = MultiLanguageKey_FB.totalCaloriesFB.localized sportListLabel.text = MultiLanguageKey_FB.sportListFB.localized + + countUnitLabel.text = MultiLanguageKey_FB.timeFB.localized + xiaoshiLabel.text = MultiLanguageKey_FB.hourFB.localized + qiankaLabel.text = MultiLanguageKey_FB.kcalFB.localized } /// 刷新头视图 @@ -64,7 +72,7 @@ class SportHeaderView: UIView { let metric = UserDefaultsManagerFrieBoltt.getUserInfo()?.metricUnit ?? 0 let distanceStr = metric == 0 ? String(format: "%0.2lf",CGFloat(distance) / 1000.0) : String(format: "%0.2lf", CGFloat(distance) / 1000.0 * 0.62137) distanceValueLabel.text = distanceStr - distanceUnitLabel.text = metric == 0 ? "公里" : "miles" + distanceUnitLabel.text = metric == 0 ? MultiLanguageKey_FB.kmFB.localized : "miles" caloriesValueLabel.text = String(calories) durationValueLabel.text = String(format: "%.1lf", Double(duration) / 3600) countValueLabel.text = String(sports.count) diff --git a/FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.xib b/FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.xib index c08c709..c5c4e1e 100644 --- a/FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.xib +++ b/FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.xib @@ -1,9 +1,9 @@ - + - + @@ -20,18 +20,22 @@ - - - + - - + + - - + + - - - + - - + + + + - @@ -230,9 +240,11 @@ + + - + diff --git a/FireBoltt/FB_Modules/FB_Sport/ViewModel/SportCellViewModels.swift b/FireBoltt/FB_Modules/FB_Sport/ViewModel/SportCellViewModels.swift index 1068511..554970e 100644 --- a/FireBoltt/FB_Modules/FB_Sport/ViewModel/SportCellViewModels.swift +++ b/FireBoltt/FB_Modules/FB_Sport/ViewModel/SportCellViewModels.swift @@ -21,7 +21,7 @@ class SportCellViewModels: ViewModel { init(sportModel: SportModel) { self.sportModel = sportModel - sportName.accept(sportModel.getSportType.sportTypeName) + sportName.accept(sportModel.getSportType.sportTypeName.localized) img.accept(sportModel.getSportType.sportImg) timeStr.accept(sportModel.dataDate) duration.accept(sportModel.durationStr) diff --git a/FireBoltt/Resource/Assets.xcassets/SportImg/icon_free_training.imageset/Contents.json b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_free_training.imageset/Contents.json new file mode 100644 index 0000000..f00435e --- /dev/null +++ b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_free_training.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icon_free_training@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icon_free_training@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/FireBoltt/Resource/Assets.xcassets/SportImg/icon_free_training.imageset/icon_free_training@2x.png b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_free_training.imageset/icon_free_training@2x.png new file mode 100644 index 0000000..e497e0a Binary files /dev/null and b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_free_training.imageset/icon_free_training@2x.png differ diff --git a/FireBoltt/Resource/Assets.xcassets/SportImg/icon_free_training.imageset/icon_free_training@3x.png b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_free_training.imageset/icon_free_training@3x.png new file mode 100644 index 0000000..13e0651 Binary files /dev/null and b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_free_training.imageset/icon_free_training@3x.png differ diff --git a/FireBoltt/Resource/Assets.xcassets/SportImg/icon_running.imageset/Contents.json b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_running.imageset/Contents.json new file mode 100644 index 0000000..fec5492 --- /dev/null +++ b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_running.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icon_running@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icon_running@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/FireBoltt/Resource/Assets.xcassets/SportImg/icon_running.imageset/icon_running@2x.png b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_running.imageset/icon_running@2x.png new file mode 100644 index 0000000..16155f2 Binary files /dev/null and b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_running.imageset/icon_running@2x.png differ diff --git a/FireBoltt/Resource/Assets.xcassets/SportImg/icon_running.imageset/icon_running@3x.png b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_running.imageset/icon_running@3x.png new file mode 100644 index 0000000..705dca5 Binary files /dev/null and b/FireBoltt/Resource/Assets.xcassets/SportImg/icon_running.imageset/icon_running@3x.png differ diff --git a/FireBoltt/Resource/en.lproj/Localizable.strings b/FireBoltt/Resource/en.lproj/Localizable.strings index 2a2f3ed..12e259a 100644 --- a/FireBoltt/Resource/en.lproj/Localizable.strings +++ b/FireBoltt/Resource/en.lproj/Localizable.strings @@ -256,4 +256,22 @@ "清醒时长" = "awakeDuration"; "寻找手机指令" = "Find phone command"; "免责声明" = "disclaimer"; - +"太极" = "Taici"; +"户外步行" = "Outdoor walking"; +"室内跑步" = "Indoor running"; +"户外单车" = "Outdoor bike"; +"室内单车" = "Indoor bike"; +"泳池游泳" = "Swimming in the pool"; +"开放水域游泳" = "Open water swimming"; +"铁人三项" = "triathlon"; +"徒步" = "On foot"; +"椭圆机" = "Elliptical machine"; +"踏步机" = "treadmills"; +"划船机" = "Rowing machine"; +"高强度间隙训练" = "High intensity interval training"; +"功能性力量训练" = "Functional strength training"; +"核心训练" = "Core training"; +"瑜伽" = "yoga"; +"普拉提" = "Pilates"; +"舞蹈" = "Dance"; +"整理放松" = "Tidy up and relax"; diff --git a/FireBoltt/Resource/nl.lproj/Localizable.strings b/FireBoltt/Resource/nl.lproj/Localizable.strings index bca3917..6ee2bd0 100644 --- a/FireBoltt/Resource/nl.lproj/Localizable.strings +++ b/FireBoltt/Resource/nl.lproj/Localizable.strings @@ -161,10 +161,10 @@ "日" = "Dag"; "周" = "Week"; "次" = "Tijden"; -"总里程" = "Totaal aantal mijlen"; -"总消耗" = "Totaal verbruik"; -"总次数" = "Totale tijden"; -"总时长" = "Totale duur"; +"总里程" = "TotaalAantalMijlen"; +"总消耗" = "TotaalVerbruik"; +"总次数" = "TotaleTijden"; +"总时长" = "TotaleDuur"; "运动列表" = "Lijst met oefeningen"; "运动时间" = "Tijd oefening"; "平均配速" = "Gemiddeld tempo"; diff --git a/R.generated.swift b/R.generated.swift index af3703e..f6831b3 100644 --- a/R.generated.swift +++ b/R.generated.swift @@ -158,7 +158,7 @@ struct R: Rswift.Validatable { fileprivate init() {} } - /// This `R.image` struct is generated, and contains static references to 166 images. + /// This `R.image` struct is generated, and contains static references to 168 images. struct image { /// Image `LaunchImage`. static let launchImage = Rswift.ImageResource(bundle: R.hostingBundle, name: "LaunchImage") @@ -406,6 +406,8 @@ struct R: Rswift.Validatable { static let icon_equipment_information_save = Rswift.ImageResource(bundle: R.hostingBundle, name: "icon_equipment_information_save") /// Image `icon_find`. static let icon_find = Rswift.ImageResource(bundle: R.hostingBundle, name: "icon_find") + /// Image `icon_free_training`. + static let icon_free_training = Rswift.ImageResource(bundle: R.hostingBundle, name: "icon_free_training") /// Image `icon_girl_head_portrait`. static let icon_girl_head_portrait = Rswift.ImageResource(bundle: R.hostingBundle, name: "icon_girl_head_portrait") /// Image `icon_head_boy`. @@ -426,6 +428,8 @@ struct R: Rswift.Validatable { static let icon_positioning_search = Rswift.ImageResource(bundle: R.hostingBundle, name: "icon_positioning_search") /// Image `icon_remind`. static let icon_remind = Rswift.ImageResource(bundle: R.hostingBundle, name: "icon_remind") + /// Image `icon_running`. + static let icon_running = Rswift.ImageResource(bundle: R.hostingBundle, name: "icon_running") /// Image `icon_sedentary`. static let icon_sedentary = Rswift.ImageResource(bundle: R.hostingBundle, name: "icon_sedentary") /// Image `icon_selectImg_No`. @@ -1355,6 +1359,13 @@ struct R: Rswift.Validatable { #endif #if os(iOS) || os(tvOS) + /// `UIImage(named: "icon_free_training", bundle: ..., traitCollection: ...)` + static func icon_free_training(compatibleWith traitCollection: UIKit.UITraitCollection? = nil) -> UIKit.UIImage? { + return UIKit.UIImage(resource: R.image.icon_free_training, compatibleWith: traitCollection) + } + #endif + + #if os(iOS) || os(tvOS) /// `UIImage(named: "icon_girl_head_portrait", bundle: ..., traitCollection: ...)` static func icon_girl_head_portrait(compatibleWith traitCollection: UIKit.UITraitCollection? = nil) -> UIKit.UIImage? { return UIKit.UIImage(resource: R.image.icon_girl_head_portrait, compatibleWith: traitCollection) @@ -1425,6 +1436,13 @@ struct R: Rswift.Validatable { #endif #if os(iOS) || os(tvOS) + /// `UIImage(named: "icon_running", bundle: ..., traitCollection: ...)` + static func icon_running(compatibleWith traitCollection: UIKit.UITraitCollection? = nil) -> UIKit.UIImage? { + return UIKit.UIImage(resource: R.image.icon_running, compatibleWith: traitCollection) + } + #endif + + #if os(iOS) || os(tvOS) /// `UIImage(named: "icon_sedentary", bundle: ..., traitCollection: ...)` static func icon_sedentary(compatibleWith traitCollection: UIKit.UITraitCollection? = nil) -> UIKit.UIImage? { return UIKit.UIImage(resource: R.image.icon_sedentary, compatibleWith: traitCollection) @@ -2002,7 +2020,7 @@ struct R: Rswift.Validatable { fileprivate init() {} } - /// This `R.string.localizable` struct is generated, and contains static references to 246 localization keys. + /// This `R.string.localizable` struct is generated, and contains static references to 265 localization keys. struct localizable { /// en translation: Synchronizing Succeed /// @@ -2156,6 +2174,14 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant static let 消耗 = Rswift.StringResource(key: "消耗", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru", "fr", "de", "pt-PT", "es", "tr", "pl", "ar", "ms", "th", "ja", "ko", "zh-HK", "zh-Hant"], comment: nil) + /// en translation: Core training + /// + /// Locales: en + static let 核心训练 = Rswift.StringResource(key: "核心训练", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) + /// en translation: Dance + /// + /// Locales: en + static let 舞蹈 = Rswift.StringResource(key: "舞蹈", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: Deep Sleep /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -2204,6 +2230,10 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant static let 电量 = Rswift.StringResource(key: "电量", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru", "fr", "de", "pt-PT", "es", "tr", "pl", "ar", "ms", "th", "ja", "ko", "zh-HK", "zh-Hant"], comment: nil) + /// en translation: Elliptical machine + /// + /// Locales: en + static let 椭圆机 = Rswift.StringResource(key: "椭圆机", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: End Time /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -2260,6 +2290,10 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant static let 周五 = Rswift.StringResource(key: "周五", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru", "fr", "de", "pt-PT", "es", "tr", "pl", "ar", "ms", "th", "ja", "ko", "zh-HK", "zh-Hant"], comment: nil) + /// en translation: Functional strength training + /// + /// Locales: en + static let 功能性力量训练 = Rswift.StringResource(key: "功能性力量训练", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: Go /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -2280,6 +2314,10 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant static let 心率监测 = Rswift.StringResource(key: "心率监测", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru", "fr", "de", "pt-PT", "es", "tr", "pl", "ar", "ms", "th", "ja", "ko", "zh-HK", "zh-Hant"], comment: nil) + /// en translation: High intensity interval training + /// + /// Locales: en + static let 高强度间隙训练 = Rswift.StringResource(key: "高强度间隙训练", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: Imperial /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -2288,6 +2326,14 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru static let 推送中 = Rswift.StringResource(key: "推送中", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru"], comment: nil) + /// en translation: Indoor bike + /// + /// Locales: en + static let 室内单车 = Rswift.StringResource(key: "室内单车", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) + /// en translation: Indoor running + /// + /// Locales: en + static let 室内跑步 = Rswift.StringResource(key: "室内跑步", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: Inspection document /// /// Locales: en, zh-Hans, nl @@ -2456,6 +2502,10 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl static let ota升级固件信息错误 = Rswift.StringResource(key: "OTA升级固件信息错误!", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl"], comment: nil) + /// en translation: On foot + /// + /// Locales: en + static let 徒步 = Rswift.StringResource(key: "徒步", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: Only once /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -2464,6 +2514,18 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant static let 开启 = Rswift.StringResource(key: "开启", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru", "fr", "de", "pt-PT", "es", "tr", "pl", "ar", "ms", "th", "ja", "ko", "zh-HK", "zh-Hant"], comment: nil) + /// en translation: Open water swimming + /// + /// Locales: en + static let 开放水域游泳 = Rswift.StringResource(key: "开放水域游泳", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) + /// en translation: Outdoor bike + /// + /// Locales: en + static let 户外单车 = Rswift.StringResource(key: "户外单车", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) + /// en translation: Outdoor walking + /// + /// Locales: en + static let 户外步行 = Rswift.StringResource(key: "户外步行", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: Outlook /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -2480,6 +2542,10 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant static let 计步目标 = Rswift.StringResource(key: "计步目标", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru", "fr", "de", "pt-PT", "es", "tr", "pl", "ar", "ms", "th", "ja", "ko", "zh-HK", "zh-Hant"], comment: nil) + /// en translation: Pilates + /// + /// Locales: en + static let 普拉提 = Rswift.StringResource(key: "普拉提", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: Please Select Phone Number /// /// Locales: en, zh-Hans, nl, ru @@ -2552,6 +2618,10 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant static let 骑行目标 = Rswift.StringResource(key: "骑行目标", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru", "fr", "de", "pt-PT", "es", "tr", "pl", "ar", "ms", "th", "ja", "ko", "zh-HK", "zh-Hant"], comment: nil) + /// en translation: Rowing machine + /// + /// Locales: en + static let 划船机 = Rswift.StringResource(key: "划船机", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: Run /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -2644,6 +2714,10 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant static let 周日 = Rswift.StringResource(key: "周日", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru", "fr", "de", "pt-PT", "es", "tr", "pl", "ar", "ms", "th", "ja", "ko", "zh-HK", "zh-Hant"], comment: nil) + /// en translation: Swimming in the pool + /// + /// Locales: en + static let 泳池游泳 = Rswift.StringResource(key: "泳池游泳", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: Synchronizing data /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -2656,6 +2730,10 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl static let tws耳机未连接 = Rswift.StringResource(key: "TWS耳机未连接", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl"], comment: nil) + /// en translation: Taici + /// + /// Locales: en + static let 太极 = Rswift.StringResource(key: "太极", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: Take a picture /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -2708,6 +2786,10 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant static let 周四 = Rswift.StringResource(key: "周四", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru", "fr", "de", "pt-PT", "es", "tr", "pl", "ar", "ms", "th", "ja", "ko", "zh-HK", "zh-Hant"], comment: nil) + /// en translation: Tidy up and relax + /// + /// Locales: en + static let 整理放松 = Rswift.StringResource(key: "整理放松", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: Time /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -2964,6 +3046,14 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant static let 总里程 = Rswift.StringResource(key: "总里程", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru", "fr", "de", "pt-PT", "es", "tr", "pl", "ar", "ms", "th", "ja", "ko", "zh-HK", "zh-Hant"], comment: nil) + /// en translation: treadmills + /// + /// Locales: en + static let 踏步机 = Rswift.StringResource(key: "踏步机", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) + /// en translation: triathlon + /// + /// Locales: en + static let 铁人三项 = Rswift.StringResource(key: "铁人三项", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: walk /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -2984,6 +3074,10 @@ struct R: Rswift.Validatable { /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant static let 年 = Rswift.StringResource(key: "年", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "zh-Hans", "nl", "ru", "fr", "de", "pt-PT", "es", "tr", "pl", "ar", "ms", "th", "ja", "ko", "zh-HK", "zh-Hant"], comment: nil) + /// en translation: yoga + /// + /// Locales: en + static let 瑜伽 = Rswift.StringResource(key: "瑜伽", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en"], comment: nil) /// en translation: ℃ /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -3559,6 +3653,36 @@ struct R: Rswift.Validatable { return NSLocalizedString("消耗", bundle: bundle, comment: "") } + /// en translation: Core training + /// + /// Locales: en + static func 核心训练(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("核心训练", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "核心训练" + } + + return NSLocalizedString("核心训练", bundle: bundle, comment: "") + } + + /// en translation: Dance + /// + /// Locales: en + static func 舞蹈(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("舞蹈", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "舞蹈" + } + + return NSLocalizedString("舞蹈", bundle: bundle, comment: "") + } + /// en translation: Deep Sleep /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -3739,6 +3863,21 @@ struct R: Rswift.Validatable { return NSLocalizedString("电量", bundle: bundle, comment: "") } + /// en translation: Elliptical machine + /// + /// Locales: en + static func 椭圆机(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("椭圆机", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "椭圆机" + } + + return NSLocalizedString("椭圆机", bundle: bundle, comment: "") + } + /// en translation: End Time /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -3949,6 +4088,21 @@ struct R: Rswift.Validatable { return NSLocalizedString("周五", bundle: bundle, comment: "") } + /// en translation: Functional strength training + /// + /// Locales: en + static func 功能性力量训练(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("功能性力量训练", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "功能性力量训练" + } + + return NSLocalizedString("功能性力量训练", bundle: bundle, comment: "") + } + /// en translation: Go /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -4024,6 +4178,21 @@ struct R: Rswift.Validatable { return NSLocalizedString("心率监测", bundle: bundle, comment: "") } + /// en translation: High intensity interval training + /// + /// Locales: en + static func 高强度间隙训练(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("高强度间隙训练", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "高强度间隙训练" + } + + return NSLocalizedString("高强度间隙训练", bundle: bundle, comment: "") + } + /// en translation: Imperial /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -4054,6 +4223,36 @@ struct R: Rswift.Validatable { return NSLocalizedString("推送中", bundle: bundle, comment: "") } + /// en translation: Indoor bike + /// + /// Locales: en + static func 室内单车(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("室内单车", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "室内单车" + } + + return NSLocalizedString("室内单车", bundle: bundle, comment: "") + } + + /// en translation: Indoor running + /// + /// Locales: en + static func 室内跑步(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("室内跑步", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "室内跑步" + } + + return NSLocalizedString("室内跑步", bundle: bundle, comment: "") + } + /// en translation: Inspection document /// /// Locales: en, zh-Hans, nl @@ -4684,6 +4883,21 @@ struct R: Rswift.Validatable { return NSLocalizedString("OTA升级固件信息错误!", bundle: bundle, comment: "") } + /// en translation: On foot + /// + /// Locales: en + static func 徒步(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("徒步", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "徒步" + } + + return NSLocalizedString("徒步", bundle: bundle, comment: "") + } + /// en translation: Only once /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -4714,6 +4928,51 @@ struct R: Rswift.Validatable { return NSLocalizedString("开启", bundle: bundle, comment: "") } + /// en translation: Open water swimming + /// + /// Locales: en + static func 开放水域游泳(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("开放水域游泳", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "开放水域游泳" + } + + return NSLocalizedString("开放水域游泳", bundle: bundle, comment: "") + } + + /// en translation: Outdoor bike + /// + /// Locales: en + static func 户外单车(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("户外单车", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "户外单车" + } + + return NSLocalizedString("户外单车", bundle: bundle, comment: "") + } + + /// en translation: Outdoor walking + /// + /// Locales: en + static func 户外步行(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("户外步行", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "户外步行" + } + + return NSLocalizedString("户外步行", bundle: bundle, comment: "") + } + /// en translation: Outlook /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -4774,6 +5033,21 @@ struct R: Rswift.Validatable { return NSLocalizedString("计步目标", bundle: bundle, comment: "") } + /// en translation: Pilates + /// + /// Locales: en + static func 普拉提(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("普拉提", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "普拉提" + } + + return NSLocalizedString("普拉提", bundle: bundle, comment: "") + } + /// en translation: Please Select Phone Number /// /// Locales: en, zh-Hans, nl, ru @@ -5044,6 +5318,21 @@ struct R: Rswift.Validatable { return NSLocalizedString("骑行目标", bundle: bundle, comment: "") } + /// en translation: Rowing machine + /// + /// Locales: en + static func 划船机(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("划船机", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "划船机" + } + + return NSLocalizedString("划船机", bundle: bundle, comment: "") + } + /// en translation: Run /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -5389,6 +5678,21 @@ struct R: Rswift.Validatable { return NSLocalizedString("周日", bundle: bundle, comment: "") } + /// en translation: Swimming in the pool + /// + /// Locales: en + static func 泳池游泳(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("泳池游泳", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "泳池游泳" + } + + return NSLocalizedString("泳池游泳", bundle: bundle, comment: "") + } + /// en translation: Synchronizing data /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -5434,6 +5738,21 @@ struct R: Rswift.Validatable { return NSLocalizedString("TWS耳机未连接", bundle: bundle, comment: "") } + /// en translation: Taici + /// + /// Locales: en + static func 太极(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("太极", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "太极" + } + + return NSLocalizedString("太极", bundle: bundle, comment: "") + } + /// en translation: Take a picture /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -5629,6 +5948,21 @@ struct R: Rswift.Validatable { return NSLocalizedString("周四", bundle: bundle, comment: "") } + /// en translation: Tidy up and relax + /// + /// Locales: en + static func 整理放松(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("整理放松", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "整理放松" + } + + return NSLocalizedString("整理放松", bundle: bundle, comment: "") + } + /// en translation: Time /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -6589,6 +6923,36 @@ struct R: Rswift.Validatable { return NSLocalizedString("总里程", bundle: bundle, comment: "") } + /// en translation: treadmills + /// + /// Locales: en + static func 踏步机(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("踏步机", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "踏步机" + } + + return NSLocalizedString("踏步机", bundle: bundle, comment: "") + } + + /// en translation: triathlon + /// + /// Locales: en + static func 铁人三项(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("铁人三项", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "铁人三项" + } + + return NSLocalizedString("铁人三项", bundle: bundle, comment: "") + } + /// en translation: walk /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant @@ -6664,6 +7028,21 @@ struct R: Rswift.Validatable { return NSLocalizedString("年", bundle: bundle, comment: "") } + /// en translation: yoga + /// + /// Locales: en + static func 瑜伽(preferredLanguages: [String]? = nil) -> String { + guard let preferredLanguages = preferredLanguages else { + return NSLocalizedString("瑜伽", bundle: hostingBundle, comment: "") + } + + guard let (_, bundle) = localeBundle(tableName: "Localizable", preferredLanguages: preferredLanguages) else { + return "瑜伽" + } + + return NSLocalizedString("瑜伽", bundle: bundle, comment: "") + } + /// en translation: ℃ /// /// Locales: en, zh-Hans, nl, ru, fr, de, pt-PT, es, tr, pl, ar, ms, th, ja, ko, zh-HK, zh-Hant