diff --git a/SwiftProject/SwiftProject.xcodeproj/project.pbxproj b/SwiftProject/SwiftProject.xcodeproj/project.pbxproj index b6f5e93..f7706f3 100644 --- a/SwiftProject/SwiftProject.xcodeproj/project.pbxproj +++ b/SwiftProject/SwiftProject.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ 009662462BB3B39900FCA65F /* External.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 009662452BB3B39900FCA65F /* External.storyboard */; }; 0096624A2BB3B45200FCA65F /* ExternalSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */; }; 0096624D2BB3BA3B00FCA65F /* ZZHExternalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.swift */; }; + 0096625A2BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009662592BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift */; }; 00B946232B67B26D00DA668F /* ddd_video.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 00B946222B67B26D00DA668F /* ddd_video.mp4 */; }; 00B946252B67B7DE00DA668F /* CCSpatialPlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */; }; 00C665732BAA81F900C309C3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C665722BAA81F900C309C3 /* GoogleService-Info.plist */; }; @@ -109,6 +110,7 @@ 009662452BB3B39900FCA65F /* External.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = External.storyboard; sourceTree = ""; }; 009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExternalSceneDelegate.swift; sourceTree = ""; }; 0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZZHExternalViewController.swift; sourceTree = ""; }; + 009662592BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpatialVideoDisplayForVideoTask.swift; sourceTree = ""; }; 00B946222B67B26D00DA668F /* ddd_video.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = ddd_video.mp4; sourceTree = ""; }; 00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpatialPlayView.swift; sourceTree = ""; }; 00C665722BAA81F900C309C3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; @@ -225,6 +227,15 @@ path = ExternalScreen; sourceTree = ""; }; + 009662582BB5527200FCA65F /* CCSpatialVideoDisplayController */ = { + isa = PBXGroup; + children = ( + 1E1EA2932B9364F000A5D5D2 /* CCSpatialVideoDisplayController.swift */, + 009662592BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift */, + ); + path = CCSpatialVideoDisplayController; + sourceTree = ""; + }; 1E02C9302B89909000DD3143 /* DeviceOperation */ = { isa = PBXGroup; children = ( @@ -245,11 +256,11 @@ 1E39459C2B83837900D0F5CA /* RecordingVideo */ = { isa = PBXGroup; children = ( + 009662582BB5527200FCA65F /* CCSpatialVideoDisplayController */, 1EE5C5F62B8F973A00EDFC2F /* CCSpatialShootController.swift */, 1E39459F2B8398B000D0F5CA /* VRVideoTransformController.swift */, 1EFAF0BF2B8B7A59002A1773 /* VRPhotoTransformController.swift */, 1E1EA2872B9325D300A5D5D2 /* CCSpatialPhotoDisplayController.swift */, - 1E1EA2932B9364F000A5D5D2 /* CCSpatialVideoDisplayController.swift */, ); path = RecordingVideo; sourceTree = ""; @@ -737,6 +748,7 @@ AF2120AF2B4E930400400B7F /* RootManager.swift in Sources */, 1E02C9322B8990C600DD3143 /* CCDeviceOperationListView.swift in Sources */, AF2120DA2B4E9BD400400B7F /* CCAlert.swift in Sources */, + 0096625A2BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift in Sources */, 1EFB8C702B88DA4800C72119 /* CCBottomMenuCell.swift in Sources */, AF2120FA2B4EA5BD00400B7F /* CCHomeController.swift in Sources */, 00ED6B342BA04AC200915BDE /* PlayByTransferConvertor.swift in Sources */, diff --git a/SwiftProject/SwiftProject.xcodeproj/xcshareddata/xcschemes/SwiftProject.xcscheme b/SwiftProject/SwiftProject.xcodeproj/xcshareddata/xcschemes/SwiftProject.xcscheme index 5e18a8f..78d39e8 100644 --- a/SwiftProject/SwiftProject.xcodeproj/xcshareddata/xcschemes/SwiftProject.xcscheme +++ b/SwiftProject/SwiftProject.xcodeproj/xcshareddata/xcschemes/SwiftProject.xcscheme @@ -49,12 +49,6 @@ ReferencedContainer = "container:SwiftProject.xcodeproj"> - - - - @@ -467,8 +467,8 @@ filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "256" - endingLineNumber = "256" + startingLineNumber = "257" + endingLineNumber = "257" landmarkName = "setttinisScreenMirroring(isScreenMirroring:)" landmarkType = "7"> @@ -508,16 +508,112 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Card@2x.png b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Card@2x.png new file mode 100644 index 0000000..800a4c0 Binary files /dev/null and b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Card@2x.png differ diff --git a/SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Card_1_en.png b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Card_1_en.png new file mode 100644 index 0000000..674645c Binary files /dev/null and b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Card_1_en.png differ diff --git a/SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Contents.json b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Contents.json new file mode 100644 index 0000000..b7054d5 --- /dev/null +++ b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_1_en.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Card@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Card_1_en.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Card@2x.png b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Card@2x.png new file mode 100644 index 0000000..c47a074 Binary files /dev/null and b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Card@2x.png differ diff --git a/SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Card_2_en.png b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Card_2_en.png new file mode 100644 index 0000000..039276f Binary files /dev/null and b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Card_2_en.png differ diff --git a/SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Contents.json b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Contents.json new file mode 100644 index 0000000..656b0c3 --- /dev/null +++ b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_2_en.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Card@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Card_2_en.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Card@3x.png b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Card@3x.png new file mode 100644 index 0000000..0580659 Binary files /dev/null and b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Card@3x.png differ diff --git a/SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Card_en.png b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Card_en.png new file mode 100644 index 0000000..bc6f337 Binary files /dev/null and b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Card_en.png differ diff --git a/SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Contents.json b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Contents.json new file mode 100644 index 0000000..d2d89ba --- /dev/null +++ b/SwiftProject/SwiftProject/Assets.xcassets/home/Card_en.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Card_en.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Card@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SwiftProject/SwiftProject/CCKit/Base/BaseController.swift b/SwiftProject/SwiftProject/CCKit/Base/BaseController.swift index d7f65de..914a27b 100644 --- a/SwiftProject/SwiftProject/CCKit/Base/BaseController.swift +++ b/SwiftProject/SwiftProject/CCKit/Base/BaseController.swift @@ -80,7 +80,8 @@ class BaseController: BaseVirtualController { override func viewDidLoad() { super.viewDidLoad() - self.setNavgationBarColorImg(color: tabBarTintSelectColor) + self.setNavgationBarColorImg(color: .black) +// self.setNavgationBarColorImg(color: tabBarTintSelectColor) self.setNavgationBarLine(color: BackGroundColor) self.setNavgationTitleAttribute(font: UIFont.systemFont(ofSize: 18), color: UIColor.hexStringToColor(hexString: "#ffffff")) if(_isRoot == false){ diff --git a/SwiftProject/SwiftProject/CCKit/Base/BaseVirtualController.swift b/SwiftProject/SwiftProject/CCKit/Base/BaseVirtualController.swift index 6b1011b..d4fd263 100644 --- a/SwiftProject/SwiftProject/CCKit/Base/BaseVirtualController.swift +++ b/SwiftProject/SwiftProject/CCKit/Base/BaseVirtualController.swift @@ -188,6 +188,11 @@ class BaseVirtualController: UIViewController { // } titleLab?.centerX = (navtionImgView?.width)! * 0.5 titleLab?.centerY = StatuBar_Height + NavBar_Height * 0.5; + + } + + public func setNavgationTitleForCaptureVC(string:String) { + setNavgaionTitle(string: string) titleLab?.backgroundColor = .red titleLab?.layer.cornerRadius = 2 titleLab?.layer.masksToBounds = true diff --git a/SwiftProject/SwiftProject/Project/Controller/CCHomeController.swift b/SwiftProject/SwiftProject/Project/Controller/CCHomeController.swift index cef6f38..1f03107 100644 --- a/SwiftProject/SwiftProject/Project/Controller/CCHomeController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/CCHomeController.swift @@ -126,7 +126,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV mTopCenterBtn!.layer.cornerRadius = mTopCenterBtn!.height * 0.5 mTopCenterBtn!.layer.borderWidth = 0.5 mTopCenterBtn!.layer.borderColor = UIColor.white.cgColor - mTopCenterBtn!.setTitle("未连接VR设备", for: UIControl.State.normal) + mTopCenterBtn!.setTitle(NSLocalizedString("未连接VR设备", comment: ""), for: UIControl.State.normal) mTopCenterBtn!.setTitleColor(UIColor.white, for: UIControl.State.normal) mTopCenterBtn!.titleLabel?.font = UIFont.systemFont(ofSize: 12) mTopCenterBtn!.isEnabled = false @@ -154,7 +154,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV output.portType == AVAudioSession.Port.airPlay } - mTopCenterBtn!.setTitle((isAirPlayActive ? "已连接外部设备" : "未连接VR设备"), for: UIControl.State.normal) + mTopCenterBtn!.setTitle((isAirPlayActive ? NSLocalizedString("已连接外部设备", comment: "") : NSLocalizedString("未连接VR设备", comment: "")), for: UIControl.State.normal) mTopCenterBtn!.backgroundColor = isAirPlayActive ? UIColor.colorWithRGBINT(_r: 73, _g: 34, _b: 208) : UIColor.hexStringToColor(hexString: "#060507") isAirPlayActive ? mTopCenterBtn!.setImage(UIImage.init(named: "linked_button"), for: .normal) : mTopCenterBtn!.setImage(nil,for: .normal) isAirPlayActive ? mTopCenterBtn!.updateBtnEdgeInsets(style: .Left, space: 5):mTopCenterBtn!.updateBtnEdgeInsets(style: .Left, space: 0) @@ -206,7 +206,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV mCenLab1!.textColor = UIColor.white mCenLab1!.font = UIFont.boldSystemFont(ofSize: 18) self.view.addSubview(mCenLab1!) - mCenLab1!.text = "Tips.1 拍摄空间照片以及视频" + mCenLab1!.text = NSLocalizedString("Tips.1 拍摄空间照片以及视频", comment: "") mCenLab1!.sizeToFit() mCenLab1!.top = cycleScrollView!.bottom + 32 mCenLab1!.centerX = SCREEN_Width * 0.5 @@ -218,7 +218,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV mCenLab2!.textColor = UIColor.hexStringToColor(hexString: "#CDCDCD") mCenLab2!.font = UIFont.systemFont(ofSize: 14) self.view.addSubview(mCenLab2!) - mCenLab2!.text = "一键拍摄空间格式的照片以及视频,留住美好瞬间" + mCenLab2!.text = NSLocalizedString("一键拍摄空间格式的照片以及视频,留住美好瞬间", comment: "") mCenLab2!.sizeToFit() mCenLab2!.top = mCenLab1!.bottom + 16 mCenLab2!.centerX = SCREEN_Width * 0.5 @@ -227,10 +227,10 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV //滚动切换文本显示 func cycleScrollView(_ cycleScrollView: LLCycleScrollView, scrollTo index: NSInteger) { // print("当前页面索引:\(index)") - let arr1 = ["Tips.1 拍摄空间照片以及视频","Tips.2 视频转码","Tips.3 直连VR设备"] - let arr2 = ["一键拍摄空间格式的照片以及视频,留住美好瞬间", - "可以将任意格式视频转码为 VR 或 3D 格式", - "可以通过链接VR设备,直接观看转码内容"] + let arr1 = [NSLocalizedString("Tips.1 拍摄空间照片以及视频", comment: ""),NSLocalizedString("Tips.2 视频转码", comment: ""),NSLocalizedString("Tips.3 直连VR设备", comment: "")] + let arr2 = [NSLocalizedString("一键拍摄空间格式的照片以及视频,留住美好瞬间", comment: ""), + NSLocalizedString("可以将任意格式视频转码为 VR 或 3D 格式", comment: ""), + NSLocalizedString("可以通过链接VR设备,直接观看转码内容", comment: "")] DispatchQueue.main.async { [weak self] in self!.mCenLab1!.width = SCREEN_Width - 30 self!.mCenLab1!.text = arr1[index] @@ -264,7 +264,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV mBottomBtn1?.frame = CGRect(x: 24, y: 10, width: wd1, height: hi1) mBottomBtn1!.bottom = SCREEN_Height - SafeAreaBottom_Height - 200 mBottomBtn1!.titleLabel?.font = UIFont.systemFont(ofSize: 12) - mBottomBtn1?.setBackgroundImage(UIImage.init(named: "Card"), for: UIControl.State.normal) + mBottomBtn1?.setBackgroundImage(UIImage.init(named: NSLocalizedString("home_card", comment: "")), for: UIControl.State.normal) mBottomBtn2 = UIButton.init(type: UIButton.ButtonType.custom) self.view.addSubview(mBottomBtn2!) @@ -274,7 +274,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV mBottomBtn2?.frame = CGRect(x: 24, y: 10, width: wd1, height: hi1) mBottomBtn2!.top = mBottomBtn1!.bottom + 12 mBottomBtn2!.titleLabel?.font = UIFont.systemFont(ofSize: 12) - mBottomBtn2?.setBackgroundImage(UIImage.init(named: "Card_1"), for: UIControl.State.normal) + mBottomBtn2?.setBackgroundImage(UIImage.init(named: NSLocalizedString("home_card_1", comment: "")), for: UIControl.State.normal) mBottomBtn3 = UIButton.init(type: UIButton.ButtonType.custom) self.view.addSubview(mBottomBtn3!) @@ -284,7 +284,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV mBottomBtn3?.frame = CGRect(x: 24, y: mBottomBtn1!.top, width: wd1, height: hi2) mBottomBtn3!.left = mBottomBtn1!.right + 10 mBottomBtn3!.titleLabel?.font = UIFont.systemFont(ofSize: 12) - mBottomBtn3?.setBackgroundImage(UIImage.init(named: "Card_2"), for: UIControl.State.normal) + mBottomBtn3?.setBackgroundImage(UIImage.init(named: NSLocalizedString("home_card_2", comment: "")), for: UIControl.State.normal) } @objc public func navgationButtonClick2(sender:UIButton){ @@ -304,7 +304,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV // gotoSpatialPlayVC() // CCBottomMenuPopView.share.show(imageNameArray: ["Icon_PopUp_Icon_Scenes","Icon_PopUp_Icon_Photo","Icon_PopUp_Icon_Folder"], textArray: ["空间相簿","照片图库","本机文件"]) { index in - CCBottomMenuPopView.share.show(imageNameArray: ["Icon_PopUp_Icon_Scenes","Icon_PopUp_Icon_Photo"], textArray: ["空间相簿","照片图库"]) { index in + CCBottomMenuPopView.share.show(imageNameArray: ["Icon_PopUp_Icon_Scenes","Icon_PopUp_Icon_Photo"], textArray: [NSLocalizedString("空间相簿", comment: ""),NSLocalizedString("照片图库", comment: "")]) { index in if index == 0 { self.spaceAlbum() @@ -364,15 +364,15 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV mineView!.handle = {dic in print(dic["name"] as Any) - if((dic["name"] as! String).elementsEqual("隐私政策")){ + if((dic["name"] as! String).elementsEqual(NSLocalizedString("隐私政策", comment: ""))){ let vc:CCWebController = CCWebController() - let sizeUrl = NSLocalizedString("siteUrl", comment: "隐私政策") + let sizeUrl = NSLocalizedString("siteUrl", comment: "隐私政策url") vc.urlString = sizeUrl self.navigationController?.pushViewController(vc, animated: true) } - else if((dic["name"] as! String).elementsEqual("联系我们")) {//联系我们 + else if((dic["name"] as! String).elementsEqual(NSLocalizedString("联系我们", comment: ""))) {//联系我们 if !MFMailComposeViewController.canSendMail() { - SVProgressHUD.showInfo(withStatus: "请先前往系统设置配置发送的邮箱信息") + SVProgressHUD.showInfo(withStatus: NSLocalizedString("请先前往系统设置配置发送的邮箱信息", comment: "")) return } @@ -380,7 +380,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV mailComposeViewController.mailComposeDelegate = self mailComposeViewController.setSubject("") - mailComposeViewController.setMessageBody("请在此处描述您需要反馈的问题.", isHTML: false) + mailComposeViewController.setMessageBody(NSLocalizedString("请在此处描述您需要反馈的问题.", comment: ""), isHTML: false) mailComposeViewController.setToRecipients(["fangaoqdi@163.com"]) self.present(mailComposeViewController, animated: true) @@ -467,12 +467,12 @@ extension CCHomeController: TZImagePickerControllerDelegate,UINavigationControll let status = AVCaptureDevice.authorizationStatus(for: .video) if status == AVAuthorizationStatus.restricted || status == AVAuthorizationStatus.denied { - let alertC = UIAlertController(title: "Unable to use camera", message: "Please allow access to the camera in “Settings Privacy Camera” on iPhone", preferredStyle: .alert) + let alertC = UIAlertController(title: NSLocalizedString(NSLocalizedString("无法使用相机", comment: ""), comment: ""), message: NSLocalizedString("请前往[设置->隐私安全]中开启访问授权", comment: ""), preferredStyle: .alert) // let actionCancel = UIAlertAction(title: "Cancel", style: .cancel) { (action:UIAlertAction) in // } - let actionSet = UIAlertAction(title: "Setting", style: .cancel) { (action:UIAlertAction) in + let actionSet = UIAlertAction(title: NSLocalizedString("设置", comment: ""), style: .cancel) { (action:UIAlertAction) in let url:URL = URL(string: UIApplication.openSettingsURLString)! UIApplication.shared.open(url, options: [:], completionHandler: nil) diff --git a/SwiftProject/SwiftProject/Project/Controller/CCWebController.swift b/SwiftProject/SwiftProject/Project/Controller/CCWebController.swift index 4dc1914..d1e17eb 100644 --- a/SwiftProject/SwiftProject/Project/Controller/CCWebController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/CCWebController.swift @@ -18,8 +18,9 @@ class CCWebController: BaseController, WKNavigationDelegate { override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.white - self.setNavgaionTitle(string: "隐私协议") - + self.titleLab?.width = 200 + self.setNavgaionTitle(string: NSLocalizedString("隐私政策", comment: "")) + self.titleLab?.sizeToFit() // 创建 WKWebView webView = WKWebView() view.addSubview(webView) @@ -37,6 +38,6 @@ class CCWebController: BaseController, WKNavigationDelegate { // WKNavigationDelegate 方法:网页加载完成时调用 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { - self.setNavgaionTitle(string: webView.title!) +// self.setNavgaionTitle(string: webView.title!) } } diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift index b8114f5..7851e49 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift @@ -92,11 +92,12 @@ class CCSpatialPhotoDisplayController: BaseController { button.layer.cornerRadius = 18 button.layer.borderWidth = 1 button.layer.borderColor = UIColor.white.cgColor - button.setTitle("平行眼", for: UIControl.State.normal) + button.setTitle(NSLocalizedString("平行眼", comment: ""), for: UIControl.State.normal) button.setImage(UIImage.init(named: "type_button_arrow_down"), for: .normal) - button.updateBtnEdgeInsets(style: .Right, space: 10) + button.setTitleColor(UIColor.white, for: UIControl.State.normal) button.titleLabel?.font = KFont_Medium(14) + button.updateBtnEdgeInsets(style: .Right, space: 5) return button }() @@ -111,11 +112,11 @@ class CCSpatialPhotoDisplayController: BaseController { return imageView }() - var typeData:[(icon:String,title:String,isHiden:Bool)] = [(icon:"type_check",title:"平行眼",isHiden:false), - (icon:"type_check",title:"单眼2D",isHiden:false), + var typeData:[(icon:String,title:String,isHiden:Bool)] = [(icon:"type_check",title:NSLocalizedString("平行眼", comment: ""),isHiden:false), + (icon:"type_check",title:NSLocalizedString("单眼2D", comment: ""),isHiden:false), - (icon:"type_check",title:"红蓝立体",isHiden:false), - (icon:"type_check",title:"交叉眼",isHiden:false)] + (icon:"type_check",title:NSLocalizedString("红蓝立体", comment: ""),isHiden:false), + (icon:"type_check",title:NSLocalizedString("交叉眼", comment: ""),isHiden:false)] lazy var menuView: CCSpatialDisplayTypeView = { //数据源(icon可不填) diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift index 230af37..de42c61 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift @@ -60,7 +60,7 @@ class CCSpatialShootController: BaseController { label.backgroundColor = UIColor.darkGray label.font = KFont_Medium(12) label.textColor = KTextColor_White - label.text = "你只需捕捉美好,转码交给我们" + label.text = ""//你只需捕捉美好,转码交给我们" label.textAlignment = .center label.alpha = 1.0 label.layer.cornerRadius = 8 @@ -93,7 +93,7 @@ class CCSpatialShootController: BaseController { label.backgroundColor = UIColor.clear label.font = KFont_Medium(14) label.textColor = KTextColor_White - label.text = "将iPhone旋转为横向" + label.text = NSLocalizedString("将iPhone旋转为横向", comment: "") label.alpha = 0.0 label.isHidden = true return label @@ -230,7 +230,7 @@ class CCSpatialShootController: BaseController { label.backgroundColor = UIColor.clear label.font = KFont_Medium(12) label.textColor = UIColor(hexString: "#ffffff", alpha: 0.6) - label.text = "拍照" + label.text = NSLocalizedString("拍照", comment: "") label.isHidden = false return label }() @@ -240,7 +240,7 @@ class CCSpatialShootController: BaseController { label.backgroundColor = UIColor.clear label.font = KFont_Medium(12) label.textColor = UIColor(hexString: "#ffffff", alpha: 0.6) - label.text = "摄像" + label.text = NSLocalizedString("摄像", comment: "") label.isHidden = true return label }() @@ -785,7 +785,8 @@ class CCSpatialShootController: BaseController { count += 1 let timeText = self.transToHourMinSec(second: count) DispatchQueue.main.async { - self.setNavgaionTitle(string: timeText) +// self.setNavgaionTitle(string: timeText) + self.setNavgationTitleForCaptureVC(string: timeText) } } }) @@ -1014,13 +1015,13 @@ extension CCSpatialShootController: AVCaptureFileOutputRecordingDelegate { print("Video recording finished with error: \(error.localizedDescription)") DispatchQueue.main.async { - SVProgressHUD.showSuccess(withStatus: "合成过程出现问题") + SVProgressHUD.showSuccess(withStatus: NSLocalizedString("合成过程出现问题", comment: "")) } } else { DispatchQueue.main.async { - SVProgressHUD.show(withStatus: "处理中...") + SVProgressHUD.show(withStatus: NSLocalizedString("处理中...", comment: "")) } @@ -1080,10 +1081,10 @@ extension CCSpatialShootController: AVCaptureFileOutputRecordingDelegate { // SVProgressHUD.showSuccess(withStatus: "空间视频成功保存到相册") // } } else if let error = error { - print("生成空间视频失败:\(error.localizedDescription)") + DispatchQueue.main.async { - SVProgressHUD.showInfo(withStatus: "空间视频保存失败:\(error.localizedDescription)") + SVProgressHUD.showInfo(withStatus: "\(NSLocalizedString("空间视频保存失败", comment: "")):\(error.localizedDescription)") } } } @@ -1233,7 +1234,7 @@ extension CCSpatialShootController: AVCaptureFileOutputRecordingDelegate { if let error = error { print("Error saving photo to library: \(error.localizedDescription)") DispatchQueue.main.async { - SVProgressHUD.showInfo(withStatus: "空间图片保存失败: \(error.localizedDescription)") + SVProgressHUD.showInfo(withStatus: "\(NSLocalizedString("空间图片保存失败", comment: "")): \(error.localizedDescription)") } } else { print("Photo saved to library successfully.") diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift index f3625b7..792361c 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift @@ -72,7 +72,7 @@ class VRPhotoTransformController: BaseController { ZZHHelper.setNowTimeToUserDefaultWithKey(kNowTimeToUserDefaultKey_PhotoTransformController) self.view.backgroundColor = UIColor.black self.navLine?.isHidden = true - self.setNavgaionTitle(string: "图片转码") + self.setNavgaionTitle(string: NSLocalizedString("图片转码", comment: "")) //393*236 mTopImgView = UIImageView(frame: CGRect(x: 0, y: 0, width: SCREEN_Width, height: SCREEN_Height * 236/393)) @@ -142,7 +142,7 @@ class VRPhotoTransformController: BaseController { mBottomBtn!.bottom = SCREEN_Height - SafeAreaBottom_Height - 30 mBottomBtn!.clipsToBounds = true mBottomBtn!.layer.cornerRadius = 8 - mBottomBtn!.setTitle("转码导出", for: UIControl.State.normal) + mBottomBtn!.setTitle(NSLocalizedString("转码导出", comment: ""), for: UIControl.State.normal) mBottomBtn!.setTitleColor(UIColor.white, for: UIControl.State.normal) mBottomBtn!.titleLabel?.font = UIFont.systemFont(ofSize: 14) @@ -210,7 +210,7 @@ class VRPhotoTransformController: BaseController { mLabel!.textColor = UIColor.hexStringToColor(hexString: "#6A696A") mLabel!.font = UIFont.systemFont(ofSize: 14) self.view.addSubview(mLabel!) - mLabel!.text = "格式" + mLabel!.text = NSLocalizedString("格式", comment: "") mLabel!.sizeToFit() mLabel!.top = mCenView!.bottom + 32 mLabel!.left = 24 @@ -234,7 +234,7 @@ class VRPhotoTransformController: BaseController { func setSpatialParametersListData() { let popData = [ - (type:CCTransformParameterType.hsbs_3D,title:"3D 格式",name:"3D HSBS")] + (type:CCTransformParameterType.hsbs_3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS")] mTabView?.setSpatialParametersData(data: popData) } @@ -242,15 +242,15 @@ class VRPhotoTransformController: BaseController { @objc public func navgationButtonClick2(sender:UIButton){ //侧边栏 if(sender.tag == 10){ - showProgress() + //转码 // let isSpatial = isSpatialImage(imageURL: sourceImageURL!) let isSpatial = isSpatialImage(originalData: sourceImageData!) if !isSpatial { print("") - return SVProgressHUD.showInfo(withStatus: "这不是一张空间图片,无法进行转码") + return SVProgressHUD.showInfo(withStatus: NSLocalizedString("这不是一张空间图片,无法进行转码", comment: "")) } - + showProgress() DispatchQueue.main.async { self.progressView?.updateProgress(value: 1) } @@ -288,12 +288,12 @@ class VRPhotoTransformController: BaseController { if let error = error { print("保存失败:\(error)") DispatchQueue.main.async { - self.progressView?.updateInfo(title: "导出相册失败", desc: "请查看相册权限") + self.progressView?.updateInfo(title:NSLocalizedString( "导出相册失败", comment: ""), desc: NSLocalizedString("请查看相册权限", comment: "")) } } else { DispatchQueue.main.async { self.progressView?.updateProgress(value: 1) - self.progressView?.updateInfo(title: "转码完成", desc: "导出内容已存储到相册中") + self.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容已存储到相册中", comment: "")) } } } @@ -322,34 +322,34 @@ class VRPhotoTransformController: BaseController { 3D FOU(全高上下格式) */ - let action1 = UIAlertAction(title: "3D HSBS(半宽左右格式)" , style: .default) { [self] (action:UIAlertAction) in + let action1 = UIAlertAction(title: NSLocalizedString("3D HSBS(半宽左右格式)", comment: "") , style: .default) { [self] (action:UIAlertAction) in print("3D HSBS(半宽左右格式)") let popData = [ - (type:CCTransformParameterType.hsbs_3D,title:"3D 格式",name:"3D HSBS")] + (type:CCTransformParameterType.hsbs_3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS")] mTabView?.setSpatialParametersData(data: popData) } - let action2 = UIAlertAction(title: "3D FSBS(全宽左右格式)" , style: .default) { [self] (action:UIAlertAction) in + let action2 = UIAlertAction(title: NSLocalizedString("3D FSBS(全宽左右格式)", comment: "") , style: .default) { [self] (action:UIAlertAction) in print("3D FSBS(全宽左右格式)") let popData = [ - (type:CCTransformParameterType.fsbs_3D,title:"3D 格式",name:"3D FSBS")] + (type:CCTransformParameterType.fsbs_3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D FSBS")] mTabView?.setSpatialParametersData(data: popData) } - let action3 = UIAlertAction(title: "3D HOU(半高上下格式)" , style: .default) { [self] (action:UIAlertAction) in + let action3 = UIAlertAction(title: NSLocalizedString("3D HOU(半高上下格式)" , comment: ""), style: .default) { [self] (action:UIAlertAction) in print("3D HOU(半高上下格式)") let popData = [ - (type:CCTransformParameterType.hou_3d,title:"3D 格式",name:"3D HOU")] + (type:CCTransformParameterType.hou_3d,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HOU")] mTabView?.setSpatialParametersData(data: popData) } - let action4 = UIAlertAction(title: "3D FOU(全高上下格式)" , style: .default) { [self] (action:UIAlertAction) in + let action4 = UIAlertAction(title: NSLocalizedString("3D FOU(全高上下格式)", comment: "") , style: .default) { [self] (action:UIAlertAction) in print("3D FOU(全高上下格式)") let popData = [ - (type:CCTransformParameterType.fou_3D,title:"3D 格式",name:"3D FOU")] + (type:CCTransformParameterType.fou_3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D FOU")] mTabView?.setSpatialParametersData(data: popData) } - let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil) + let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil) alert.addAction(action1) alert.addAction(action2) alert.addAction(action3) diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRVideoTransformController.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRVideoTransformController.swift index 1fb8ed2..b0f8a21 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRVideoTransformController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRVideoTransformController.swift @@ -120,10 +120,12 @@ class VRVideoTransformController: BaseController { override func viewDidLoad() { super.viewDidLoad() + + ZZHHelper.setNowTimeToUserDefaultWithKey(kNowTimeToUserDefaultKey_VideoTransformController) self.view.backgroundColor = UIColor.black self.navLine?.isHidden = true - self.setNavgaionTitle(string: "视频转码") + self.setNavgaionTitle(string: NSLocalizedString("视频转码", comment: "")) //393*236 mTopImgView = UIImageView(frame: CGRect(x: 0, y: 0, width: SCREEN_Width, height: SCREEN_Height * 236/393)) @@ -156,7 +158,6 @@ class VRVideoTransformController: BaseController { } - self.creatUI() setSpatialParametersListData() } @@ -173,7 +174,7 @@ class VRVideoTransformController: BaseController { mBottomBtn!.bottom = SCREEN_Height - SafeAreaBottom_Height - 30 mBottomBtn!.clipsToBounds = true mBottomBtn!.layer.cornerRadius = 8 - mBottomBtn!.setTitle("转码导出", for: UIControl.State.normal) + mBottomBtn!.setTitle(NSLocalizedString("转码导出", comment: ""), for: UIControl.State.normal) mBottomBtn!.setTitleColor(UIColor.white, for: UIControl.State.normal) mBottomBtn!.titleLabel?.font = UIFont.systemFont(ofSize: 14) @@ -241,7 +242,7 @@ class VRVideoTransformController: BaseController { mLabel!.textColor = UIColor.hexStringToColor(hexString: "#6A696A") mLabel!.font = UIFont.systemFont(ofSize: 14) self.view.addSubview(mLabel!) - mLabel!.text = "格式" + mLabel!.text = NSLocalizedString("格式", comment: "") mLabel!.sizeToFit() mLabel!.top = mCenView!.bottom + 32 mLabel!.left = 24 @@ -249,25 +250,26 @@ class VRVideoTransformController: BaseController { let maxHi = mBottomBtn!.top - mCenView!.bottom - 110 var hi = 62.0*5 if(hi > maxHi){hi = maxHi} - mTabView = CCSpatialPlayView.init(frame: CGRect(x: 24, y: mCenView!.bottom + 70, width: SCREEN_Width - 48, height: hi)) +// mTabView = CCSpatialPlayView.init(frame: CGRect(x: 24, y: mCenView!.bottom + 70, width: SCREEN_Width - 48, height: hi)) + mTabView = CCSpatialPlayView.init(frame: CGRect(x: 0, y: mCenView!.bottom + 70, width: SCREEN_Width, height: hi)) self.view.addSubview(mTabView!) - mTabView!.backgroundColor = UIColor.hexStringToColor(hexString: "#1F1E20") - mTabView?.clipsToBounds = true - mTabView?.layer.cornerRadius = 12 - mTabView?.handle = {dic in - print(dic) - self.selectedCellAction(dic) + mTabView!.backgroundColor = UIColor.clear//UIColor.hexStringToColor(hexString: "#1F1E20") +// mTabView?.clipsToBounds = true +// mTabView?.layer.cornerRadius = 33 + mTabView?.handle = {[weak self] dic in +// print(dic) + self?.selectedCellAction(dic) } } func setSpatialParametersListData() { let popData = [ - (type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D HSBS"), - (type:CCTransformParameterType.resolution,title:"分辨率",name:"原始"), - (type:CCTransformParameterType.bitRate,title:"比特率",name:"最佳"), - (type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:"H.265"), - (type:CCTransformParameterType.horizontalDialogueAdjustment,title:"水平视差调整",name:"0")] + (type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS"), + (type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: "" ),name:NSLocalizedString("原始", comment: "")), + (type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:NSLocalizedString("最佳", comment: "")), + (type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:"H.265"), + (type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")] mTabView?.setSpatialParametersData(data: popData) } @@ -289,10 +291,10 @@ class VRVideoTransformController: BaseController { } //MARK: - 刷新界面 func according3DFormatShowList(format:Video3DFormat) { - var presetText = "原始" + var presetText = NSLocalizedString("原始", comment: "") switch self.selectedPreset { case .mvhevc1440x1440: - presetText = "原始" + presetText = NSLocalizedString("原始", comment: "") break case .hevc3840x2160: presetText = "4K" @@ -309,19 +311,19 @@ class VRVideoTransformController: BaseController { - var bitText = "最佳" + var bitText = NSLocalizedString("最佳", comment: "") switch self.selectedBitsPerPixel { case .best: - bitText = "最佳" + bitText = NSLocalizedString("最佳", comment: "") break case .high: - bitText = "高" + bitText = NSLocalizedString("高", comment: "") break case .medium: - bitText = "中" + bitText = NSLocalizedString("中", comment: "") break case .low: - bitText = "低" + bitText = NSLocalizedString("低", comment: "") break } @@ -345,46 +347,46 @@ class VRVideoTransformController: BaseController { //列表数据 var popData = [ - (type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D HSBS"), - (type:CCTransformParameterType.resolution,title:"分辨率",name:presetText), - (type:CCTransformParameterType.bitRate,title:"比特率",name:bitText), - (type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:codecTypeText), - (type:CCTransformParameterType.horizontalDialogueAdjustment,title:"水平视差调整",name:"0")] + (type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS"), + (type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:presetText), + (type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:bitText), + (type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:codecTypeText), + (type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")] switch format { case .HSBS: popData = [ - (type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D HSBS"), - (type:CCTransformParameterType.resolution,title:"分辨率",name:presetText), - (type:CCTransformParameterType.bitRate,title:"比特率",name:bitText), - (type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:codecTypeText), - (type:CCTransformParameterType.horizontalDialogueAdjustment,title:"水平视差调整",name:"0")] + (type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS"), + (type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:presetText), + (type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:bitText), + (type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:codecTypeText), + (type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")] break case .FSBS: popData = [ - (type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D FSBS"), - (type:CCTransformParameterType.resolution,title:"分辨率",name:presetText), - (type:CCTransformParameterType.bitRate,title:"比特率",name:bitText), - (type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:codecTypeText)] + (type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D FSBS"), + (type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:presetText), + (type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:bitText), + (type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:codecTypeText)] break case .HOU: popData = [ - (type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D HOU"), - (type:CCTransformParameterType.resolution,title:"分辨率",name:presetText), - (type:CCTransformParameterType.bitRate,title:"比特率",name:bitText), - (type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:codecTypeText), - (type:CCTransformParameterType.horizontalDialogueAdjustment,title:"水平视差调整",name:"0")] + (type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HOU"), + (type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:presetText), + (type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:bitText), + (type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:codecTypeText), + (type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")] break case .FOU: popData = [ - (type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D FOU"), - (type:CCTransformParameterType.resolution,title:"分辨率",name:presetText), - (type:CCTransformParameterType.bitRate,title:"比特率",name:bitText), - (type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:codecTypeText)] + (type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D FOU"), + (type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:presetText), + (type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:bitText), + (type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:codecTypeText)] break } @@ -418,23 +420,23 @@ class VRVideoTransformController: BaseController { 3D HOU(半高上下格式) 3D FOU(全高上下格式) */ - let action1 = UIAlertAction(title: "3D HSBS(半宽左右格式)" , style: .default) { (action:UIAlertAction) in - self.selected3DFormat = .HSBS - self.according3DFormatShowList(format: .HSBS) + let action1 = UIAlertAction(title: NSLocalizedString("3D HSBS(半宽左右格式)" , comment: ""), style: .default) {[weak self] (action:UIAlertAction) in + self?.selected3DFormat = .HSBS + self?.according3DFormatShowList(format: .HSBS) } - let action2 = UIAlertAction(title: "3D FSBS(全宽左右格式)" , style: .default) { (action:UIAlertAction) in - self.selected3DFormat = .FSBS - self.according3DFormatShowList(format: .FSBS) + let action2 = UIAlertAction(title: NSLocalizedString("3D FSBS(全宽左右格式)", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in + self?.selected3DFormat = .FSBS + self?.according3DFormatShowList(format: .FSBS) } - let action3 = UIAlertAction(title: "3D HOU(半高上下格式)" , style: .default) { (action:UIAlertAction) in - self.selected3DFormat = .HOU - self.according3DFormatShowList(format: .HOU) + let action3 = UIAlertAction(title: NSLocalizedString("3D HOU(半高上下格式)", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in + self?.selected3DFormat = .HOU + self?.according3DFormatShowList(format: .HOU) } - let action4 = UIAlertAction(title: "3D FOU(全高上下格式)" , style: .default) { (action:UIAlertAction) in - self.selected3DFormat = .FOU - self.according3DFormatShowList(format: .FOU) + let action4 = UIAlertAction(title: NSLocalizedString("3D FOU(全高上下格式)", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in + self?.selected3DFormat = .FOU + self?.according3DFormatShowList(format: .FOU) } - let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil) + let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil) alert.addAction(action1) alert.addAction(action2) alert.addAction(action3) @@ -452,31 +454,31 @@ class VRVideoTransformController: BaseController { 4K 的分辨率为 3840x2160 像素。1 */ - let action1 = UIAlertAction(title: "原始" , style: .default) { (action:UIAlertAction) in - self.selectedPreset = .mvhevc1440x1440 - self.videoWidth = 1440 - self.videoHeight = 1440 - self.according3DFormatShowList(format: self.selected3DFormat) + let action1 = UIAlertAction(title: NSLocalizedString("原始", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in + self?.selectedPreset = .mvhevc1440x1440 + self?.videoWidth = 1440 + self?.videoHeight = 1440 + self?.according3DFormatShowList(format: self!.selected3DFormat) } - let action2 = UIAlertAction(title: "4K" , style: .default) { (action:UIAlertAction) in - self.selectedPreset = .hevc3840x2160 - self.videoWidth = 3840 - self.videoHeight = 2160 - self.according3DFormatShowList(format: self.selected3DFormat) + let action2 = UIAlertAction(title: "4K" , style: .default) {[weak self] (action:UIAlertAction) in + self!.selectedPreset = .hevc3840x2160 + self!.videoWidth = 3840 + self!.videoHeight = 2160 + self!.according3DFormatShowList(format: self!.selected3DFormat) } - let action3 = UIAlertAction(title: "1080p" , style: .default) { (action:UIAlertAction) in - self.selectedPreset = .hevc1920x1080 - self.videoWidth = 1920 - self.videoHeight = 1080 - self.according3DFormatShowList(format: self.selected3DFormat) + let action3 = UIAlertAction(title: "1080p" , style: .default) {[weak self] (action:UIAlertAction) in + self!.selectedPreset = .hevc1920x1080 + self!.videoWidth = 1920 + self!.videoHeight = 1080 + self!.according3DFormatShowList(format: self!.selected3DFormat) } - let action4 = UIAlertAction(title: "720p" , style: .default) { (action:UIAlertAction) in - self.selectedPreset = .preset1280x720 - self.videoWidth = 1280 - self.videoHeight = 720 - self.according3DFormatShowList(format: self.selected3DFormat) + let action4 = UIAlertAction(title: "720p" , style: .default) {[weak self] (action:UIAlertAction) in + self!.selectedPreset = .preset1280x720 + self!.videoWidth = 1280 + self!.videoHeight = 720 + self!.according3DFormatShowList(format: self!.selected3DFormat) } - let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil) + let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil) alert.addAction(action1) alert.addAction(action2) alert.addAction(action3) @@ -495,23 +497,23 @@ class VRVideoTransformController: BaseController { 低(约为原视频25%) */ - let action1 = UIAlertAction(title: "最佳" , style: .default) { (action:UIAlertAction) in - self.selectedBitsPerPixel = .best - self.according3DFormatShowList(format: self.selected3DFormat) + let action1 = UIAlertAction(title: NSLocalizedString("最佳", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in + self!.selectedBitsPerPixel = .best + self!.according3DFormatShowList(format: self!.selected3DFormat) } - let action2 = UIAlertAction(title: "高" , style: .default) { (action:UIAlertAction) in - self.selectedBitsPerPixel = .high - self.according3DFormatShowList(format: self.selected3DFormat) + let action2 = UIAlertAction(title: NSLocalizedString("高", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in + self!.selectedBitsPerPixel = .high + self!.according3DFormatShowList(format: self!.selected3DFormat) } - let action3 = UIAlertAction(title: "中" , style: .default) { (action:UIAlertAction) in - self.selectedBitsPerPixel = .medium - self.according3DFormatShowList(format: self.selected3DFormat) + let action3 = UIAlertAction(title: NSLocalizedString("中", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in + self!.selectedBitsPerPixel = .medium + self!.according3DFormatShowList(format: self!.selected3DFormat) } - let action4 = UIAlertAction(title: "低" , style: .default) { (action:UIAlertAction) in - self.selectedBitsPerPixel = .low - self.according3DFormatShowList(format: self.selected3DFormat) + let action4 = UIAlertAction(title: NSLocalizedString("低", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in + self!.selectedBitsPerPixel = .low + self!.according3DFormatShowList(format: self!.selected3DFormat) } - let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil) + let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil) alert.addAction(action1) alert.addAction(action2) alert.addAction(action3) @@ -528,17 +530,17 @@ class VRVideoTransformController: BaseController { H.264 */ - let action1 = UIAlertAction(title: "H.265" , style: .default) { (action:UIAlertAction) in + let action1 = UIAlertAction(title: "H.265" , style: .default) {[weak self] (action:UIAlertAction) in //HEVC 也被称为H.265和MPEG-H Part 2 - self.selectedCodecType = AVVideoCodecType.hevc - self.according3DFormatShowList(format: self.selected3DFormat) + self!.selectedCodecType = AVVideoCodecType.hevc + self!.according3DFormatShowList(format: self!.selected3DFormat) } - let action2 = UIAlertAction(title: "H.264" , style: .default) { (action:UIAlertAction) in - self.selectedCodecType = AVVideoCodecType.h264 - self.according3DFormatShowList(format: self.selected3DFormat) + let action2 = UIAlertAction(title: "H.264" , style: .default) { [weak self] (action:UIAlertAction) in + self!.selectedCodecType = AVVideoCodecType.h264 + self!.according3DFormatShowList(format: self!.selected3DFormat) } - let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil) + let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil) alert.addAction(action1) alert.addAction(action2) alert.addAction(cancelAction) @@ -567,7 +569,7 @@ extension VRVideoTransformController { let videoOriginalAsset:AVAsset? = AVAsset(url: sourceVideoURL!) if !ZZHHelper.isSpatialVideo(asset: videoOriginalAsset!) { - SVProgressHUD.showInfo(withStatus: "非空间视频不能转码") + SVProgressHUD.showInfo(withStatus: NSLocalizedString("非空间视频不能转码", comment: "")) return } @@ -630,7 +632,7 @@ extension VRVideoTransformController { guard let exportSession = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetPassthrough) else { // print("Failed to create export session") DispatchQueue.main.async { - self.progressView?.updateInfo(title: "转码失败", desc: "导出会话创建失败") + self.progressView?.updateInfo(title: NSLocalizedString("转码失败", comment: ""), desc: NSLocalizedString("导出会话创建失败", comment: "")) } completion(nil) @@ -643,7 +645,7 @@ extension VRVideoTransformController { guard let assetTrack = asset.tracks(withMediaType: .video).first else { // print("Failed to get video track from asset") DispatchQueue.main.async { - self.progressView?.updateInfo(title: "转码失败", desc: "未能成功加载视频轨道") + self.progressView?.updateInfo(title: NSLocalizedString("转码失败", comment: ""), desc: NSLocalizedString("未能成功加载视频轨道", comment: "")) } completion(nil) return @@ -654,7 +656,7 @@ extension VRVideoTransformController { } catch { // print("Failed to insert video track into composition") DispatchQueue.main.async { - self.progressView?.updateInfo(title: "转码失败", desc: "未能成功插入视频轨道") + self.progressView?.updateInfo(title: NSLocalizedString("转码失败", comment: ""), desc: NSLocalizedString("未能成功插入视频轨道", comment: "")) } completion(nil) return @@ -711,7 +713,7 @@ extension VRVideoTransformController { // SVProgressHUD.showInfo(withStatus: "视频转码失败") // } DispatchQueue.main.async { - self.progressView?.updateInfo(title: "转码失败", desc: "创建媒体写入失败") + self.progressView?.updateInfo(title: NSLocalizedString("转码失败", comment: ""), desc: NSLocalizedString("创建媒体写入失败", comment: "")) } completion(nil) return @@ -726,12 +728,12 @@ extension VRVideoTransformController { exportSession.outputFileType = AVFileType.mov exportSession.outputURL = outputURL - exportSession.exportAsynchronously { [self] in + exportSession.exportAsynchronously { [weak self] in switch exportSession.status { case .completed: let exportedAsset = AVAsset(url: outputURL) DispatchQueue.main.async { - self.saveVideoToAlbum(url: outputURL) + self?.saveVideoToAlbum(url: outputURL) completion(exportedAsset) } case .failed: @@ -739,13 +741,13 @@ extension VRVideoTransformController { print("Export failed with error: \(error.localizedDescription)") DispatchQueue.main.async { // SVProgressHUD.showInfo(withStatus: "视频导出失败:\(error.localizedDescription)") - self.progressView?.updateInfo(title: "转码完成", desc: "导出内容失败") + self?.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容失败", comment: "")) } } else { print("Export failed") DispatchQueue.main.async { // SVProgressHUD.showInfo(withStatus: "视频导出失败") - self.progressView?.updateInfo(title: "转码完成", desc: "导出内容失败") + self?.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容失败", comment: "")) } } @@ -754,7 +756,7 @@ extension VRVideoTransformController { print("Export cancelled") DispatchQueue.main.async { // SVProgressHUD.showInfo(withStatus: "视频导出失败 cancelled") - self.progressView?.updateInfo(title: "转码完成", desc: "导出内容失败") + self?.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容失败", comment: "")) } completion(nil) default: @@ -767,18 +769,18 @@ extension VRVideoTransformController { func saveVideoToAlbum(url: URL) { PHPhotoLibrary.shared().performChanges { PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: url) - } completionHandler: { success, error in + } completionHandler: {[weak self] success, error in if success { print("Video saved to album") DispatchQueue.main.async { //SVProgressHUD.showSuccess(withStatus: "视频转码成功,已保存到相册") - self.progressView?.updateInfo(title: "转码完成", desc: "导出内容已存储到相册中") + self?.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容已存储到相册中", comment: "")) } } else { print("Failed to save video to album: \(error?.localizedDescription ?? "Unknown error")") DispatchQueue.main.async { //SVProgressHUD.showInfo(withStatus: "视频转码失败:\(error?.localizedDescription ?? "Unknown error")") - self.progressView?.updateInfo(title: "转码完成", desc: "导出内容失败") + self?.progressView?.updateInfo(title: NSLocalizedString("转码完成", comment: ""), desc: NSLocalizedString("导出内容失败", comment: "")) } } diff --git a/SwiftProject/SwiftProject/Project/Util/PlayByTransferConvertor.swift b/SwiftProject/SwiftProject/Project/Util/PlayByTransferConvertor.swift index 27749b2..d73ea8b 100644 --- a/SwiftProject/SwiftProject/Project/Util/PlayByTransferConvertor.swift +++ b/SwiftProject/SwiftProject/Project/Util/PlayByTransferConvertor.swift @@ -17,8 +17,10 @@ class PlayByTransferConvertor { func convertVideo(asset:AVAsset, assetOutput:AVAssetReaderTrackOutput,type:SpatialType,time: CMTime)->(CIImage?) { var newpb:CIImage? = nil while let nextSampleBuffer = assetOutput.copyNextSampleBuffer() { + print("PlayByTransferConvertor while") let presentationTime = CMSampleBufferGetPresentationTimeStamp(nextSampleBuffer) if presentationTime == time { + print("PlayByTransferConvertor while break") guard let taggedBuffers = nextSampleBuffer.taggedBuffers else { break } let leftEyeBuffer = taggedBuffers.first(where: { @@ -68,6 +70,7 @@ class PlayByTransferConvertor { break } } + CMSampleBufferInvalidate(nextSampleBuffer) break } } diff --git a/SwiftProject/SwiftProject/Project/View/Album/CCSpaceAlbumFliterPopView/CCSpaceAlbumFilterPopView2.swift b/SwiftProject/SwiftProject/Project/View/Album/CCSpaceAlbumFliterPopView/CCSpaceAlbumFilterPopView2.swift index a2206a2..9229675 100644 --- a/SwiftProject/SwiftProject/Project/View/Album/CCSpaceAlbumFliterPopView/CCSpaceAlbumFilterPopView2.swift +++ b/SwiftProject/SwiftProject/Project/View/Album/CCSpaceAlbumFliterPopView/CCSpaceAlbumFilterPopView2.swift @@ -157,10 +157,10 @@ class CCSpaceAlbumFilterPopView2: UIView { lazy var cancelButton: UIButton = { let button = UIButton.init() - button.setTitle("取消", for: .normal) + button.setTitle(NSLocalizedString("取消", comment: ""), for: .normal) button.setTitleColor(UIColor(red: 165.0/255, green: 137.0/255, blue: 1, alpha: 1), for: .normal) - button.titleLabel?.font = KFont_Medium(16) - button.titleLabel?.adjustsFontSizeToFitWidth = true + button.titleLabel?.font = UIFont.systemFont(ofSize: 16)//KFont_Medium(16) +// button.titleLabel?.adjustsFontSizeToFitWidth = true button.contentHorizontalAlignment = .center button.addTarget(self, action: #selector(cancelAction), for: .touchUpInside) @@ -196,7 +196,7 @@ class CCSpaceAlbumFilterPopView2: UIView { }() lazy var segmentBtn:UISegmentedControl = { - let sbtn = UISegmentedControl.init(items: ["全部","图片","视频"]) + let sbtn = UISegmentedControl.init(items: [NSLocalizedString("全部", comment: ""),NSLocalizedString("图片", comment: ""),NSLocalizedString("视频", comment: "")]) sbtn.addTarget(self, action: #selector(filterAction(btn:)), for: .valueChanged) sbtn.setTitleTextAttributes([NSAttributedString.Key.foregroundColor:UIColor.white], for: .normal) sbtn.setTitleTextAttributes([NSAttributedString.Key.foregroundColor:UIColor.black], for: .selected) @@ -244,7 +244,7 @@ class CCSpaceAlbumFilterPopView2: UIView { cancelButton.snp.makeConstraints { (make) in make.leading.equalTo(topView.snp.leading).offset(16) make.centerY.equalTo(topView.snp.centerY) - make.width.equalTo(32) + make.width.equalTo(56) make.height.equalTo(24) } @@ -275,7 +275,7 @@ class CCSpaceAlbumFilterPopView2: UIView { self?.reloadData() break default: - SVProgressHUD.showError(withStatus: "无法访问相册,请前往设置中开发访问授权") + SVProgressHUD.showError(withStatus: NSLocalizedString("无法访问相册,请前往设置中开发访问授权", comment: "")) break } } @@ -284,7 +284,7 @@ class CCSpaceAlbumFilterPopView2: UIView { case .restricted: break case .denied: - SVProgressHUD.showError(withStatus: "无法访问相册,请前往设置中开发访问授权") + SVProgressHUD.showError(withStatus: NSLocalizedString("无法访问相册,请前往设置中开发访问授权", comment: "")) break case .authorized,.limited: reloadData() @@ -450,7 +450,7 @@ extension CCSpaceAlbumFilterPopView2:UICollectionViewDataSource, UICollectionVie if model.assetType == .image { - cell.frameCountLabel.text = "空间" + cell.frameCountLabel.text = NSLocalizedString("空间", comment: "") cell.frameCountLabel.isHidden = true cell.timeLabel.isHidden = true }else if model.assetType == .video { diff --git a/SwiftProject/SwiftProject/Project/View/CCMineView.swift b/SwiftProject/SwiftProject/Project/View/CCMineView.swift index 4334553..8cde44f 100644 --- a/SwiftProject/SwiftProject/Project/View/CCMineView.swift +++ b/SwiftProject/SwiftProject/Project/View/CCMineView.swift @@ -86,9 +86,9 @@ class CCMineView: UIView,UITableViewDelegate,UITableViewDataSource{ // "name":"隐私政策"]] let arr = [["img":"Icon_Menu_all_Icon_Connect", - "name":"联系我们"], + "name":NSLocalizedString(NSLocalizedString("联系我们", comment: ""), comment: "")], ["img":"Icon_Menu_all_Icon_Privacy", - "name":"隐私政策"]] + "name":NSLocalizedString(NSLocalizedString("隐私政策", comment: ""), comment: "")]] datas.addObjects(from: arr) diff --git a/SwiftProject/SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift b/SwiftProject/SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift index 11a48f7..cb8dfea 100644 --- a/SwiftProject/SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift +++ b/SwiftProject/SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift @@ -174,10 +174,10 @@ public class CCSpatialDisplayTypeView: UIView { showBottomView.isHidden = !isShow showBottomTextLabel.text = showText - if showText == "结束串流" { + if showText == NSLocalizedString("结束串流", comment: "") { showBottomTextLabel.backgroundColor = UIColor(hexString: "#D23027") - }else if showText == "开始串流" { + }else if showText == NSLocalizedString("开始串流", comment: "") { showBottomTextLabel.backgroundColor = UIColor(hexString: "#03A449") } } diff --git a/SwiftProject/SwiftProject/Project/View/CCSpatialPlayView.swift b/SwiftProject/SwiftProject/Project/View/CCSpatialPlayView.swift index d856fd9..962ef91 100644 --- a/SwiftProject/SwiftProject/Project/View/CCSpatialPlayView.swift +++ b/SwiftProject/SwiftProject/Project/View/CCSpatialPlayView.swift @@ -34,7 +34,8 @@ class CCSpatialPlayView: UIView,UITableViewDelegate,UITableViewDataSource{ // self.backgroundColor = UIColor.colorWithRGB(_r: 28, _g: 28, _b: 29) - self.mTableView = UITableView.init(frame: self.bounds, style: UITableView.Style.grouped) + self.mTableView = UITableView.init(frame: self.bounds, style: UITableView.Style.insetGrouped) + self.addSubview(self.mTableView!) self.mTableView!.delegate = (self as UITableViewDelegate) self.mTableView!.dataSource = (self as UITableViewDataSource) @@ -44,8 +45,8 @@ class CCSpatialPlayView: UIView,UITableViewDelegate,UITableViewDataSource{ self.mTableView!.sectionHeaderHeight = 0 self.mTableView!.sectionFooterHeight = 0 self.mTableView!.estimatedRowHeight = 70 - self.mTableView?.contentInset = UIEdgeInsets.init(top: 0, left: 0, bottom: 0, right: 0) - self.mTableView!.scrollIndicatorInsets = self.mTableView!.contentInset +// self.mTableView?.contentInset = UIEdgeInsets.init(top: 0, left: 0, bottom: 0, right: 0) +// self.mTableView!.scrollIndicatorInsets = self.mTableView!.contentInset self.mTableView!.separatorStyle = UITableViewCell.SeparatorStyle.none mTableView!.register(CCSpatialPlayCell1.classForCoder(), forCellReuseIdentifier: CCSpatialPlayCell1Id) @@ -67,11 +68,11 @@ class CCSpatialPlayView: UIView,UITableViewDelegate,UITableViewDataSource{ // "name":"0"]] let popData = [ - (type:CCTransformParameterType.format3D,title:"3D 格式",name:"3D HSBS"), - (type:CCTransformParameterType.resolution,title:"分辨率",name:"1080P"), - (type:CCTransformParameterType.bitRate,title:"比特率",name:"最佳"), - (type:CCTransformParameterType.formatVideoEncoding,title:"视频编码格式",name:"H.265"), - (type:CCTransformParameterType.horizontalDialogueAdjustment,title:"水平视差调整",name:"0")] + (type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS"), + (type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: ""),name:"1080P"), + (type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:NSLocalizedString("最佳", comment: "")), + (type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:"H.265"), + (type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")] datas = popData self.mTableView!.reloadData() @@ -114,6 +115,7 @@ class CCSpatialPlayView: UIView,UITableViewDelegate,UITableViewDataSource{ }else{ cell.mLine?.isHidden = false } + cell.backgroundColor = UIColor.hexStringToColor(hexString: "#1F1E20") return cell }else{ let cell:CCSpatialPlayCell2 = tableView.dequeueReusableCell(withIdentifier: CCSpatialPlayCell2Id)! as! CCSpatialPlayCell2 @@ -125,6 +127,7 @@ class CCSpatialPlayView: UIView,UITableViewDelegate,UITableViewDataSource{ }else{ cell.mLine?.isHidden = false } + cell.backgroundColor = UIColor.hexStringToColor(hexString: "#1F1E20") return cell } diff --git a/SwiftProject/SwiftProject/Project/View/Progress/CCTransformProgressPopView.swift b/SwiftProject/SwiftProject/Project/View/Progress/CCTransformProgressPopView.swift index 9f61e22..0b86652 100644 --- a/SwiftProject/SwiftProject/Project/View/Progress/CCTransformProgressPopView.swift +++ b/SwiftProject/SwiftProject/Project/View/Progress/CCTransformProgressPopView.swift @@ -30,7 +30,7 @@ class CCTransformProgressPopView: UIView { label.backgroundColor = UIColor.clear label.font = KFont_Regular(18) label.textColor = KTextColor_White - label.text = "导出中..." + label.text = NSLocalizedString("导出中...", comment: "") return label }() @@ -39,7 +39,7 @@ class CCTransformProgressPopView: UIView { label.backgroundColor = UIColor.clear label.font = KFont_Regular(14) label.textColor = UIColor(hexString: "#9B9B9C") - label.text = "请不要锁屏或者退出APP" + label.text = NSLocalizedString("请不要锁屏或者退出APP", comment: "") return label }() @@ -70,7 +70,7 @@ class CCTransformProgressPopView: UIView { button.clipsToBounds = true button.titleLabel?.font = KFont_Medium(14) button.titleLabel?.textColor = KTextColor_White - button.setTitle("转码导出", for: .normal) + button.setTitle(NSLocalizedString("转码导出", comment: ""), for: .normal) button.setTitleColor(KTextColor_White, for: .normal) button.addTarget(self, action: #selector(transformButtonAction(_:)), for: .touchUpInside) @@ -88,7 +88,7 @@ class CCTransformProgressPopView: UIView { button.clipsToBounds = true button.titleLabel?.font = KFont_Medium(14) button.titleLabel?.textColor = KTextColor_White - button.setTitle("回到首页", for: .normal) + button.setTitle(NSLocalizedString("回到首页", comment: ""), for: .normal) button.setTitleColor(KTextColor_White, for: .normal) button.addTarget(self, action: #selector(closeButtonAction), for: .touchUpInside) @@ -159,8 +159,8 @@ class CCTransformProgressPopView: UIView { } func resetUI() { - titleLabel.text = "导出中..." - detailLabel.text = "请不要锁屏或者退出APP" + titleLabel.text = NSLocalizedString("导出中...", comment: "") + detailLabel.text = NSLocalizedString("请不要锁屏或者退出APP", comment: "") progressLabel.text = "0%" transformButton.isHidden = true closeButton.isHidden = true @@ -171,18 +171,18 @@ class CCTransformProgressPopView: UIView { func updateProgress(value:Float) { if value > 0.98 { - titleLabel.text = "转码完成" - detailLabel.text = "正在导出内容至相册中"//"导出内容已存储到相册中" + titleLabel.text = NSLocalizedString("转码完成", comment: "") + detailLabel.text = NSLocalizedString("正在导出内容至相册中", comment: "")//"导出内容已存储到相册中" progressLabel.isHidden = true - transformButton.setTitle("继续转码", for: .normal) + transformButton.setTitle(NSLocalizedString("继续转码", comment: ""), for: .normal) transformButton.isHidden = false closeButton.isHidden = false progressView.isHidden = true iconImageView.image = UIImage.init(named: "asset_exported") }else{ - titleLabel.text = "转码中..." - detailLabel.text = "请不要锁屏或者退出APP" + titleLabel.text = NSLocalizedString("处理中...", comment: "") + detailLabel.text = NSLocalizedString("请不要锁屏或者退出APP", comment: "") progressLabel.text = String.init(format: "%.f%%", value*100) transformButton.isHidden = true closeButton.isHidden = true diff --git a/SwiftProject/SwiftProject/en.lproj/Localizable.strings b/SwiftProject/SwiftProject/en.lproj/Localizable.strings index 049ad4f..fc5b794 100644 --- a/SwiftProject/SwiftProject/en.lproj/Localizable.strings +++ b/SwiftProject/SwiftProject/en.lproj/Localizable.strings @@ -1,2 +1,79 @@ "siteUrl" = "https://ingenious-taro-hvwxmk.mystrikingly.com"; +"home_card" = "Card_en"; +"home_card_1" = "Card_1_en"; +"home_card_2" = "Card_2_en"; +"未连接VR设备" = "Not Connected"; +"隐私政策" = "Privacy Policy"; +"联系我们" = "Contact Us"; +"请先前往系统设置配置发送的邮箱信息" = "Please Configure Email in System Settings First"; +"空间相簿" = "Spatial Album"; +"照片图库" = "Photo Gallery"; +"Tips.1 拍摄空间照片以及视频" = "Tips.1 Capture Spatial Photos and Videos"; +"Tips.2 视频转码" = "Tips.2 Video Transcoding"; +"Tips.3 直连VR设备" = "Tips.3 Directly Connect to VR Device"; +"一键拍摄空间格式的照片以及视频,留住美好瞬间" = "One-click Capture of Spatial Photos and Videos, Preserve Wonderful Moments"; +"可以将任意格式视频转码为 VR 或 3D 格式" = "Transcode Any Video to VR or 3D Format"; +"可以通过链接VR设备,直接观看转码内容" = "Watch Transcoded Content Directly by Linking VR Device"; +"已连接外部设备" = "Device Connected"; +"平行眼" = "Parallel View"; +"单眼2D" = "Mono 2D"; +"红蓝立体" = "Red-Blue 3D"; +"交叉眼" = "Cross-Eye"; +"图片转码" = "Transcoding"; +"转码导出" = "Transcoding Export"; +"格式" = "Format"; +"3D 格式" = "3D Format"; +"这不是一张空间图片,无法进行转码" = "This is Not a Spatial Image, Cannot Transcode"; +"导出相册失败" = "Export to Album Failed"; +"请查看相册权限" = "Please Check Album Permissions"; +"转码完成" = "Transcoding Complete"; +"导出内容已存储到相册中" = "Exported Content Stored in Album"; +"3D HSBS(半宽左右格式)" = "3D HSBS (Half-width Side-by-Side)"; +"3D FSBS(全宽左右格式)" = "3D FSBS (Full-width Side-by-Side)"; +"3D HOU(半高上下格式)" = "3D HOU (Half Over-Under)"; +"3D FOU(全高上下格式)" = "3D FOU (Full Over-Under)"; +"取消" = "Cancel"; +"视频转码" = "Transcoding"; +"分辨率" = "Resolution"; +"原始" = "Original"; +"比特率" = "Bitrate"; +"最佳" = "Best"; +"高" = "High"; +"中" = "Medium"; +"低" = "Low"; +"视频编码格式" = "Video Encoding Format"; +"水平视差调整" = "Horizontal Parallax Adjustment"; +"非空间视频不能转码" = "Non-Spatial Video Cannot Be Transcoded"; +"转码失败" = "Transcoding Failed"; +"导出会话创建失败" = "Export Session Creation Failed"; +"未能成功加载视频轨道" = "Failed to Load Video Track"; +"未能成功插入视频轨道" = "Failed to Insert Video Track"; +"创建媒体写入失败" = "Media Writing Creation Failed"; +"导出内容失败" = "Export Content Failed"; +"导出内容已存储到相册中" = "Exported Content Stored in Album"; +"将iPhone旋转为横向" = "Rotate iPhone to Landscape"; +"拍照" = "Take Photo"; +"摄像" = "Record Video"; +"合成过程出现问题" = "Issues in Synthesis Process"; +"处理中..." = "Processing..."; + +"全部" = "All"; +"图片" = "Photos"; +"视频" = "Videos"; +"无法访问相册,请前往设置中开发访问授权" = "Unable to Access Album, Please Grant Access in Settings"; +"空间" = "Spatial"; +"导出中..." = "Exporting..."; +"请不要锁屏或者退出APP" = "Do Not Lock Screen or Exit APP"; +"回到首页" = "Back to Home"; +"正在导出内容至相册中" = "Exporting Content to Album"; +"继续转码" = "Continue Transcoding"; +"无法使用相机" = "Cannot Use Camera"; +"请前往[设置->隐私安全]中开启访问授权" = "Please Enable Access in [Settings->Privacy & Security]"; +"设置" = "Settings"; + +"结束串流" = "End Streaming"; +"外部串流中" = "External Streaming"; +"开始串流" = "Start Streaming"; +"空间图片保存失败" = "Spatial Photo Save Failed"; +"空间视频保存失败" = "Spatial Video Save Failed"; diff --git a/SwiftProject/SwiftProject/zh-Hans.lproj/Localizable.strings b/SwiftProject/SwiftProject/zh-Hans.lproj/Localizable.strings index 806cead..3adec0e 100644 --- a/SwiftProject/SwiftProject/zh-Hans.lproj/Localizable.strings +++ b/SwiftProject/SwiftProject/zh-Hans.lproj/Localizable.strings @@ -1,2 +1,82 @@ "siteUrl" = "https://www.wolai.com/9BZr3sEbpbXJEUorHEyAoP"; +"home_card" = "Card"; +"home_card_1" = "Card_1"; +"home_card_2" = "Card_2"; +"未连接VR设备" = "未连接VR设备"; +"隐私政策" = "隐私政策"; +"联系我们" = "联系我们"; +"请先前往系统设置配置发送的邮箱信息" = "请先前往系统设置配置发送的邮箱信息"; +"空间相簿" = "空间相簿"; +"照片图库" = "照片图库"; +"Tips.1 拍摄空间照片以及视频" = "Tips.1 拍摄空间照片以及视频"; +"Tips.2 视频转码" = "Tips.2 视频转码"; +"Tips.3 直连VR设备" = "Tips.3 直连VR设备"; +"一键拍摄空间格式的照片以及视频,留住美好瞬间" = "一键拍摄空间格式的照片以及视频,留住美好瞬间"; +"可以将任意格式视频转码为 VR 或 3D 格式" = "可以将任意格式视频转码为 VR 或 3D 格式"; +"可以通过链接VR设备,直接观看转码内容" = "可以通过链接VR设备,直接观看转码内容"; +"已连接外部设备" = "已连接外部设备"; +"平行眼" = "平行眼"; +"单眼2D" = "单眼2D"; + + + +"红蓝立体" = "红蓝立体"; +"交叉眼" = "交叉眼"; +"图片转码" = "图片转码"; +"转码导出" = "转码导出"; +"格式" = "格式"; +"3D 格式" = "3D 格式"; +"这不是一张空间图片,无法进行转码" = "这不是一张空间图片,无法进行转码"; +"导出相册失败" = "导出相册失败"; +"请查看相册权限" = "请查看相册权限"; +"转码完成" = "转码完成"; +"导出内容已存储到相册中" = "导出内容已存储到相册中"; +"3D HSBS(半宽左右格式)" = "3D HSBS(半宽左右格式)"; +"3D FSBS(全宽左右格式)" = "3D FSBS(全宽左右格式)"; +"3D HOU(半高上下格式)" = "3D HOU(半高上下格式)"; +"3D FOU(全高上下格式)" = "3D FOU(全高上下格式)"; +"取消" = "取消"; +"视频转码" = "视频转码"; +"分辨率" = "分辨率"; +"原始" = "原始"; +"比特率" = "比特率"; +"最佳" = "最佳"; +"高" = "高"; +"中" = "中"; +"低" = "低"; +"视频编码格式" = "视频编码格式"; +"水平视差调整" = "水平视差调整"; +"非空间视频不能转码" = "非空间视频不能转码"; +"转码失败" = "转码失败"; +"导出会话创建失败" = "导出会话创建失败"; +"未能成功加载视频轨道" = "未能成功加载视频轨道"; +"未能成功插入视频轨道" = "未能成功插入视频轨道"; +"创建媒体写入失败" = "创建媒体写入失败"; +"导出内容失败" = "导出内容失败"; +"导出内容已存储到相册中" = "导出内容已存储到相册中"; +"将iPhone旋转为横向" = "将iPhone旋转为横向"; +"拍照" = "拍照"; +"摄像" = "摄像"; +"合成过程出现问题" = "合成过程出现问题"; +"处理中..." = "处理中..."; + +"全部" = "全部"; +"图片" = "图片"; +"视频" = "视频"; +"无法访问相册,请前往设置中开发访问授权" = "无法访问相册,请前往设置中开发访问授权"; +"空间" = "空间"; +"导出中..." = "导出中..."; +"请不要锁屏或者退出APP" = "请不要锁屏或者退出APP"; +"回到首页" = "回到首页"; +"正在导出内容至相册中" = "正在导出内容至相册中"; +"继续转码" = "继续转码"; +"无法使用相机" = "无法使用相机"; +"请前往[设置->隐私安全]中开启访问授权" = "请前往[设置->隐私安全]中开启访问授权"; +"设置" = "设置"; + +"结束串流" = "结束串流"; +"外部串流中" = "外部串流中"; +"开始串流" = "开始串流"; +"空间图片保存失败" = ""; +"空间视频保存失败" = "";