├── .source ├── 073331641B4BD2FC98D852E60121D341.png ├── 3101550-8279e9d744ff28e1.png ├── EAEC404C98DAECC6BB54A64924C24610.jpeg ├── EBE063B8-002E-4B22-BA79-912F3D555B6C.png ├── F1350746-FC3C-459F-AE0C-8D6CED517678.png └── logo.png ├── FDLocalizeder ├── .gitignore ├── FDLocalizeder.xcodeproj │ ├── .svn │ │ ├── entries │ │ └── text-base │ │ │ └── project.pbxproj.svn-base │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── .svn │ │ │ ├── entries │ │ │ └── text-base │ │ │ │ └── contents.xcworkspacedata.svn-base │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ ├── .svn │ │ │ │ ├── entries │ │ │ │ └── text-base │ │ │ │ │ └── MobPods.xcscmblueprint.svn-base │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── MobPods.xcscmblueprint │ │ └── xcuserdata │ │ │ ├── .svn │ │ │ └── entries │ │ │ ├── ShengQiangLiu.xcuserdatad │ │ │ ├── .svn │ │ │ │ ├── entries │ │ │ │ ├── prop-base │ │ │ │ │ └── UserInterfaceState.xcuserstate.svn-base │ │ │ │ └── text-base │ │ │ │ │ └── UserInterfaceState.xcuserstate.svn-base │ │ │ └── UserInterfaceState.xcuserstate │ │ │ ├── chdo.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ │ │ ├── chuxiao.xcuserdatad │ │ │ ├── .svn │ │ │ │ ├── entries │ │ │ │ ├── prop-base │ │ │ │ │ └── UserInterfaceState.xcuserstate.svn-base │ │ │ │ └── text-base │ │ │ │ │ └── UserInterfaceState.xcuserstate.svn-base │ │ │ └── UserInterfaceState.xcuserstate │ │ │ ├── fwzhou.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── youzu.xcuserdatad │ │ │ ├── .svn │ │ │ ├── entries │ │ │ ├── prop-base │ │ │ │ └── UserInterfaceState.xcuserstate.svn-base │ │ │ └── text-base │ │ │ │ └── UserInterfaceState.xcuserstate.svn-base │ │ │ └── UserInterfaceState.xcuserstate │ ├── xcshareddata │ │ ├── .svn │ │ │ └── entries │ │ └── xcschemes │ │ │ └── .svn │ │ │ └── entries │ └── xcuserdata │ │ ├── .svn │ │ └── entries │ │ ├── ShengQiangLiu.xcuserdatad │ │ ├── .svn │ │ │ └── entries │ │ ├── xcdebugger │ │ │ ├── .svn │ │ │ │ ├── entries │ │ │ │ └── text-base │ │ │ │ │ └── Breakpoints_v2.xcbkptlist.svn-base │ │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ │ ├── .svn │ │ │ ├── entries │ │ │ └── text-base │ │ │ │ ├── MobPods.xcscheme.svn-base │ │ │ │ ├── MobPodsScript copy.xcscheme.svn-base │ │ │ │ ├── MobPodsScript.xcscheme.svn-base │ │ │ │ └── xcschememanagement.plist.svn-base │ │ │ ├── MobPods.xcscheme │ │ │ ├── MobPodsScript copy.xcscheme │ │ │ ├── MobPodsScript.xcscheme │ │ │ └── xcschememanagement.plist │ │ ├── chdo.xcuserdatad │ │ └── xcschemes │ │ │ └── xcschememanagement.plist │ │ ├── chuxiao.xcuserdatad │ │ ├── .svn │ │ │ └── entries │ │ ├── xcdebugger │ │ │ ├── .svn │ │ │ │ ├── entries │ │ │ │ └── text-base │ │ │ │ │ └── Breakpoints_v2.xcbkptlist.svn-base │ │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ │ ├── .svn │ │ │ ├── entries │ │ │ └── text-base │ │ │ │ ├── MobPods.xcscheme.svn-base │ │ │ │ └── xcschememanagement.plist.svn-base │ │ │ ├── FDLocalizeder.xcscheme │ │ │ └── xcschememanagement.plist │ │ ├── fd.xcuserdatad │ │ └── xcschemes │ │ │ ├── FDLocalizeder.xcscheme │ │ │ └── xcschememanagement.plist │ │ ├── fwzhou.xcuserdatad │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ │ └── xcschememanagement.plist │ │ └── youzu.xcuserdatad │ │ ├── .svn │ │ └── entries │ │ ├── xcdebugger │ │ ├── .svn │ │ │ ├── entries │ │ │ └── text-base │ │ │ │ └── Breakpoints_v2.xcbkptlist.svn-base │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── .svn │ │ ├── entries │ │ └── text-base │ │ │ ├── MobPods.xcscheme.svn-base │ │ │ └── xcschememanagement.plist.svn-base │ │ ├── MobPods.xcscheme │ │ └── xcschememanagement.plist ├── FDLocalizeder │ ├── .svn │ │ ├── entries │ │ ├── prop-base │ │ │ └── backBtn.png.svn-base │ │ └── text-base │ │ │ ├── AppDelegate.h.svn-base │ │ │ ├── AppDelegate.m.svn-base │ │ │ ├── Info.plist.svn-base │ │ │ ├── MobPods.pch.svn-base │ │ │ ├── backBtn.png.svn-base │ │ │ └── main.m.svn-base │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── .svn │ │ │ ├── entries │ │ │ └── text-base │ │ │ │ └── Contents.json.svn-base │ │ ├── AppIcon.appiconset │ │ │ ├── .svn │ │ │ │ ├── entries │ │ │ │ ├── prop-base │ │ │ │ │ ├── 43-Automator-1.png.svn-base │ │ │ │ │ ├── 43-Automator-2.png.svn-base │ │ │ │ │ ├── 43-Automator-3.png.svn-base │ │ │ │ │ ├── 43-Automator-4.png.svn-base │ │ │ │ │ ├── 43-Automator-5.png.svn-base │ │ │ │ │ ├── 43-Automator-6.png.svn-base │ │ │ │ │ ├── 43-Automator-7.png.svn-base │ │ │ │ │ ├── 43-Automator-8.png.svn-base │ │ │ │ │ ├── 43-Automator-9.png.svn-base │ │ │ │ │ └── 43-Automator.png.svn-base │ │ │ │ └── text-base │ │ │ │ │ ├── 43-Automator-1.png.svn-base │ │ │ │ │ ├── 43-Automator-2.png.svn-base │ │ │ │ │ ├── 43-Automator-3.png.svn-base │ │ │ │ │ ├── 43-Automator-4.png.svn-base │ │ │ │ │ ├── 43-Automator-5.png.svn-base │ │ │ │ │ ├── 43-Automator-6.png.svn-base │ │ │ │ │ ├── 43-Automator-7.png.svn-base │ │ │ │ │ ├── 43-Automator-8.png.svn-base │ │ │ │ │ ├── 43-Automator-9.png.svn-base │ │ │ │ │ ├── 43-Automator.png.svn-base │ │ │ │ │ └── Contents.json.svn-base │ │ │ ├── Contents.json │ │ │ ├── folder_pen_write_128px_4234_easyicon.net-1.png │ │ │ ├── folder_pen_write_128px_4234_easyicon.net-2.png │ │ │ ├── folder_pen_write_128px_4234_easyicon.net-3.png │ │ │ ├── folder_pen_write_128px_4234_easyicon.net-4.png │ │ │ ├── folder_pen_write_128px_4234_easyicon.net.png │ │ │ ├── folder_pen_write_128px_4234_easyicon.net@2x-1.png │ │ │ ├── folder_pen_write_128px_4234_easyicon.net@2x-2.png │ │ │ ├── folder_pen_write_128px_4234_easyicon.net@2x-3.png │ │ │ ├── folder_pen_write_128px_4234_easyicon.net@2x-4.png │ │ │ └── folder_pen_write_128px_4234_easyicon.net@2x.png │ │ ├── Contents.json │ │ ├── Finder.imageset │ │ │ ├── Contents.json │ │ │ └── Finder.png │ │ ├── Finder1.imageset │ │ │ ├── Contents.json │ │ │ └── Finder.png │ │ ├── L_excel_bg.imageset │ │ │ ├── Contents.json │ │ │ └── L_excel_bg.png │ │ ├── L_excel_bg0.imageset │ │ │ ├── Contents.json │ │ │ └── L_excel_bg.png │ │ ├── L_excel_bg2.imageset │ │ │ ├── Contents.json │ │ │ └── L_excel_bg.png │ │ ├── L_excel_bg3.imageset │ │ │ ├── Contents.json │ │ │ └── L_excel_bg.png │ │ ├── L_excel_bg4.imageset │ │ │ ├── Contents.json │ │ │ └── L_excel_bg.png │ │ ├── L_export.imageset │ │ │ ├── Contents.json │ │ │ └── export.png │ │ ├── L_more.imageset │ │ │ ├── Contents.json │ │ │ └── L_more.png │ │ ├── L_more2.imageset │ │ │ ├── Contents.json │ │ │ └── L_more2.png │ │ ├── backup.imageset │ │ │ ├── Contents.json │ │ │ └── backup.png │ │ ├── dashboard_excel-1.imageset │ │ │ ├── Contents.json │ │ │ └── dashboard_excel.png │ │ ├── dashboard_excel.imageset │ │ │ ├── Contents.json │ │ │ └── dashboard_excel.png │ │ ├── down.imageset │ │ │ ├── Contents.json │ │ │ └── down.png │ │ ├── ex_close.imageset │ │ │ ├── Contents.json │ │ │ └── ex_close.png │ │ ├── ex_confirm.imageset │ │ │ ├── Contents.json │ │ │ └── ex_confirm.png │ │ ├── file.imageset │ │ │ ├── Contents.json │ │ │ └── wenjian.png │ │ ├── file0.imageset │ │ │ ├── Contents.json │ │ │ └── file.png │ │ ├── file2.imageset │ │ │ ├── Contents.json │ │ │ └── file.png │ │ ├── import.imageset │ │ │ ├── Contents.json │ │ │ └── import.png │ │ ├── reset.imageset │ │ │ ├── Contents.json │ │ │ └── reset.png │ │ ├── timg.imageset │ │ │ ├── Contents.json │ │ │ └── timg.jpeg │ │ ├── undo.imageset │ │ │ ├── Contents.json │ │ │ └── undo.png │ │ ├── wangge.imageset │ │ │ ├── Contents.json │ │ │ └── wangge.png │ │ ├── wenhao.imageset │ │ │ ├── Contents.json │ │ │ └── wenhao.png │ │ ├── xcode-project_Icon 0.imageset │ │ │ ├── Contents.json │ │ │ └── Untitled-2.png │ │ ├── xcode-project_Icon-1.imageset │ │ │ ├── Contents.json │ │ │ └── xcode-project_Icon.png │ │ ├── xcode-project_Icon.imageset │ │ │ ├── Contents.json │ │ │ └── xcode-project_Icon.png │ │ └── xcode-project_Icon_file.imageset │ │ │ ├── Contents.json │ │ │ └── xcode-project_Icon_file.png │ ├── Base.lproj │ │ ├── .svn │ │ │ ├── entries │ │ │ └── text-base │ │ │ │ └── Main.storyboard.svn-base │ │ └── Main.storyboard │ ├── Controllers │ │ ├── .svn │ │ │ ├── entries │ │ │ └── text-base │ │ │ │ ├── MPAlertController.h.svn-base │ │ │ │ ├── MPAlertController.m.svn-base │ │ │ │ ├── MPBaseViewController.h.svn-base │ │ │ │ ├── MPBaseViewController.m.svn-base │ │ │ │ ├── MPBaseWindow.h.svn-base │ │ │ │ ├── MPBaseWindow.m.svn-base │ │ │ │ ├── MPBaseWindowController.h.svn-base │ │ │ │ ├── MPBaseWindowController.m.svn-base │ │ │ │ ├── MPCocoaPodsViewController.h.svn-base │ │ │ │ ├── MPCocoaPodsViewController.m.svn-base │ │ │ │ ├── MPMainViewController.h.svn-base │ │ │ │ ├── MPMainViewController.m.svn-base │ │ │ │ ├── MPMoreVersionViewController.h.svn-base │ │ │ │ ├── MPMoreVersionViewController.m.svn-base │ │ │ │ ├── MPProjectListViewController.h.svn-base │ │ │ │ ├── MPProjectListViewController.m.svn-base │ │ │ │ ├── MPVirtualController.h.svn-base │ │ │ │ ├── MPVirtualController.m.svn-base │ │ │ │ ├── MPVirtualViewController.h.svn-base │ │ │ │ ├── MPVirtualViewController.m.svn-base │ │ │ │ ├── MPVirtualWindowController.h.svn-base │ │ │ │ ├── MPVirtualWindowController.m.svn-base │ │ │ │ ├── MPVirtualWindowController.xib.svn-base │ │ │ │ ├── MPWebViewController.h.svn-base │ │ │ │ └── MPWebViewController.m.svn-base │ │ ├── CXConsoleViewModel.h │ │ ├── CXConsoleViewModel.m │ │ ├── CXSelectLanguagePathCellView.h │ │ ├── CXSelectLanguagePathCellView.m │ │ ├── CXSelectLanguagePathView.h │ │ ├── CXSelectLanguagePathView.m │ │ ├── CXSelectLanguagePathView.xib │ │ ├── CXSliderRangeView.h │ │ ├── CXSliderRangeView.m │ │ ├── CXSliderRangeView.xib │ │ ├── FDLanguagePopoverViewController.h │ │ ├── FDLanguagePopoverViewController.m │ │ ├── FDLanguagePopoverViewController.xib │ │ ├── FDMainDataViewModel.h │ │ ├── FDMainDataViewModel.m │ │ ├── FDMainExtendViewModel.h │ │ ├── FDMainExtendViewModel.m │ │ ├── FDMainViewModel.h │ │ ├── FDMainViewModel.m │ │ ├── FDSecondVC.h │ │ ├── FDSecondVC.m │ │ ├── FDViewController.h │ │ ├── FDViewController.m │ │ ├── ObjC segues and animators │ │ │ ├── MyCustomAnimator.h │ │ │ ├── MyCustomAnimator.m │ │ │ ├── MyCustomSegue.h │ │ │ └── MyCustomSegue.m │ │ └── Swift segues and animators │ │ │ ├── FDLocalizeder-Bridging-Header.h │ │ │ ├── MyCustomSwiftAnimator.swift │ │ │ └── MyCustomSwiftSegue.swift │ ├── FDLocalizeder.pch │ ├── Info.plist │ ├── Libraries │ │ ├── .svn │ │ │ ├── entries │ │ │ └── text-base │ │ │ │ ├── MPDataTool.h.svn-base │ │ │ │ └── MPDataTool.m.svn-base │ │ └── MOBFoundation │ │ │ ├── .svn │ │ │ └── entries │ │ │ ├── Extends │ │ │ ├── .svn │ │ │ │ └── entries │ │ │ ├── JSONKit │ │ │ │ └── .svn │ │ │ │ │ └── entries │ │ │ └── RegexKitLite │ │ │ │ └── .svn │ │ │ │ └── entries │ │ │ ├── HTTP │ │ │ └── .svn │ │ │ │ └── entries │ │ │ └── Utils │ │ │ └── .svn │ │ │ └── entries │ ├── Macro │ │ ├── LanguageBindFile.plist │ │ ├── Languages.plist │ │ └── OtherSetting.plist │ ├── Manager │ │ ├── CXRegexHelper.h │ │ ├── CXRegexHelper.m │ │ ├── CXSpecialCharacterConversion.h │ │ ├── CXSpecialCharacterConversion.m │ │ ├── FDCompareManager.h │ │ ├── FDCompareManager.m │ │ ├── FDDataManager.h │ │ ├── FDDataManager.m │ │ ├── FDFileManager.h │ │ ├── FDFileManager.m │ │ ├── FDPredicateManager.h │ │ ├── FDPredicateManager.m │ │ ├── FDProjectFileManager.h │ │ ├── FDProjectFileManager.m │ │ ├── FDReadFile.h │ │ ├── FDReadFile.m │ │ ├── FDSafetyFileManager.h │ │ ├── FDSafetyFileManager.m │ │ ├── FDUndoManager.h │ │ ├── FDUndoManager.m │ │ ├── FDWriteFile.h │ │ ├── FDWriteFile.m │ │ ├── FDXMLFileManager.h │ │ └── FDXMLFileManager.m │ ├── Tools │ │ ├── MPTask │ │ │ ├── .svn │ │ │ │ ├── entries │ │ │ │ └── text-base │ │ │ │ │ ├── MPTask.h.svn-base │ │ │ │ │ └── MPTask.m.svn-base │ │ │ ├── MPTask.h │ │ │ └── MPTask.m │ │ ├── MPUserNotification │ │ │ └── .svn │ │ │ │ ├── entries │ │ │ │ └── text-base │ │ │ │ ├── MPUserNotification.h.svn-base │ │ │ │ └── MPUserNotification.m.svn-base │ │ ├── NSString+Tool.h │ │ └── NSString+Tool.m │ ├── Views │ │ ├── AXStatusItemPopup │ │ │ ├── AXStatusItemPopup.h │ │ │ └── AXStatusItemPopup.m │ │ ├── CXPopUpButton │ │ │ ├── CXPopUpButton.h │ │ │ └── CXPopUpButton.m │ │ ├── CustomSlider │ │ │ ├── CustomSlider.h │ │ │ ├── CustomSlider.m │ │ │ ├── CustomSliderCell.h │ │ │ ├── CustomSliderCell.m │ │ │ ├── NSColor+Hexa.h │ │ │ └── NSColor+Hexa.m │ │ ├── FDImageView.h │ │ ├── FDImageView.m │ │ ├── MPDragDropView │ │ │ ├── MPDragDropView.h │ │ │ └── MPDragDropView.m │ │ └── SCSelectionBorder │ │ │ ├── SCSelectionBorder.h │ │ │ └── SCSelectionBorder.m │ └── main.m └── XlsxReaderWriter │ ├── .gitignore │ ├── LICENSE │ ├── OfficeDocumentHierarchy.png │ ├── README.md │ ├── ThirdParties │ ├── SSZipArchive │ │ ├── LICENSE │ │ ├── Readme.markdown │ │ ├── SSZipArchive.podspec │ │ ├── SSZipArchive.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ └── SSZipArchive.xccheckout │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── SSZipArchive.xcscheme │ │ ├── SSZipArchive │ │ │ ├── SSZipArchive-Prefix.pch │ │ │ ├── SSZipArchive.h │ │ │ ├── SSZipArchive.m │ │ │ └── minizip │ │ │ │ ├── crypt.h │ │ │ │ ├── ioapi.c │ │ │ │ ├── ioapi.h │ │ │ │ ├── mztools.c │ │ │ │ ├── mztools.h │ │ │ │ ├── unzip.c │ │ │ │ ├── unzip.h │ │ │ │ ├── zip.c │ │ │ │ └── zip.h │ │ └── Tests │ │ │ ├── Fixtures │ │ │ ├── IncorrectHeaders.zip │ │ │ ├── RelativeSymbolicLink.zip │ │ │ ├── SymbolicLink.zip │ │ │ ├── TestArchive.zip │ │ │ ├── TestPasswordArchive.zip │ │ │ └── Unicode.zip │ │ │ ├── SSZipArchiveTests-Info.plist │ │ │ └── SSZipArchiveTests.m │ └── XMLDictionary │ │ ├── LICENCE.md │ │ ├── README.md │ │ ├── Tests │ │ ├── XMLTest.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ └── XMLTest.xccheckout │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── XMLTest.xcscheme │ │ └── XMLTest │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Default-568h@2x.png │ │ │ ├── ViewController.h │ │ │ ├── ViewController.m │ │ │ ├── XMLTest-Info.plist │ │ │ ├── XMLTest-Prefix.pch │ │ │ ├── en.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── ViewController.xib │ │ │ └── main.m │ │ ├── XMLDictionary.podspec │ │ └── XMLDictionary │ │ ├── XMLDictionary.h │ │ └── XMLDictionary.m │ ├── XlsxReaderWriter Mac │ ├── Info.plist │ └── XlsxReaderWriter.h │ ├── XlsxReaderWriter.podspec │ ├── XlsxReaderWriter.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── XlsxReaderWriter.xccheckout │ └── xcshareddata │ │ ├── xcbaselines │ │ └── 45B6E2441A148F7500288A78.xcbaseline │ │ │ ├── 2954B0B9-8AB5-4909-AD5F-73FF57878BD0.plist │ │ │ ├── CC47ACDC-BF73-43F6-86AE-D5D127FB07FE.plist │ │ │ └── Info.plist │ │ └── xcschemes │ │ └── XlsxReaderWriter.xcscheme │ ├── XlsxReaderWriter │ ├── BRACalcChain.h │ ├── BRACalcChain.m │ ├── BRACalcChainCell.h │ ├── BRACalcChainCell.m │ ├── BRACell.h │ ├── BRACell.m │ ├── BRACellFill.h │ ├── BRACellFill.m │ ├── BRACellFormat.h │ ├── BRACellFormat.m │ ├── BRACellRange.h │ ├── BRACellRange.m │ ├── BRAColumn.h │ ├── BRAColumn.m │ ├── BRAComment.h │ ├── BRAComment.m │ ├── BRAComments.h │ ├── BRAComments.m │ ├── BRAContentTypes.h │ ├── BRAContentTypes.m │ ├── BRAContentTypesDefaultExtension.h │ ├── BRAContentTypesDefaultExtension.m │ ├── BRAContentTypesOverride.h │ ├── BRAContentTypesOverride.m │ ├── BRADrawing.h │ ├── BRADrawing.m │ ├── BRAElementWithRelationships.h │ ├── BRAElementWithRelationships.m │ ├── BRAImage.h │ ├── BRAImage.m │ ├── BRAMergeCell.h │ ├── BRAMergeCell.m │ ├── BRANumberFormat.h │ ├── BRANumberFormat.m │ ├── BRAOfficeDocument.h │ ├── BRAOfficeDocument.m │ ├── BRAOfficeDocumentPackage.h │ ├── BRAOfficeDocumentPackage.m │ ├── BRAOpenXmlElement.h │ ├── BRAOpenXmlElement.m │ ├── BRAOpenXmlSubElement.h │ ├── BRAOpenXmlSubElement.m │ ├── BRAPlatformSpecificDefines.h │ ├── BRARelatedToColumnAndRowProtocol.h │ ├── BRARelationship.h │ ├── BRARelationship.m │ ├── BRARelationships.h │ ├── BRARelationships.m │ ├── BRARow.h │ ├── BRARow.m │ ├── BRASharedString.h │ ├── BRASharedString.m │ ├── BRASharedStrings.h │ ├── BRASharedStrings.m │ ├── BRASheet.h │ ├── BRASheet.m │ ├── BRAStyles.h │ ├── BRAStyles.m │ ├── BRATheme.h │ ├── BRATheme.m │ ├── BRAVmlDrawing.h │ ├── BRAVmlDrawing.m │ ├── BRAWorksheet.h │ ├── BRAWorksheet.m │ ├── BRAWorksheetDrawing.h │ ├── BRAWorksheetDrawing.m │ ├── NSDictionary+DeepCopy.h │ ├── NSDictionary+DeepCopy.m │ ├── NSDictionary+OpenXMLDictionaryParser.h │ ├── NSDictionary+OpenXMLDictionaryParser.m │ ├── NSDictionary+OpenXmlString.h │ ├── NSDictionary+OpenXmlString.m │ ├── NativeColor+HTML.h │ ├── NativeColor+HTML.m │ ├── NativeColor+OpenXML.h │ ├── NativeColor+OpenXML.m │ ├── NativeFont+BoldItalic.h │ ├── NativeFont+BoldItalic.m │ └── XlsxReaderWriter-swift-bridge.h │ └── XlsxReaderWriterTests │ ├── BRAXlsxReaderWriterTests.m │ ├── Info.plist │ ├── photo-1415226481302-c40f24f4d45e.jpeg │ └── testWorkbook.xlsx ├── FDLocalizederDemo ├── FDLocalizederDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcuserdata │ │ │ └── chuxiao.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── chuxiao.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── FDLocalizederDemo │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ ├── en.lproj │ │ ├── LocalizaFile1.strings │ │ └── LocalizaFile2.strings │ ├── es.lproj │ │ ├── LaunchScreen.strings │ │ ├── LocalizaFile1.strings │ │ ├── LocalizaFile2.strings │ │ └── Main.strings │ ├── fr.lproj │ │ ├── LaunchScreen.strings │ │ ├── LocalizaFile1.strings │ │ ├── LocalizaFile2.strings │ │ └── Main.strings │ ├── main.m │ └── zh-Hant.lproj │ │ ├── LaunchScreen.strings │ │ ├── LocalizaFile1.strings │ │ ├── LocalizaFile2.strings │ │ └── Main.strings └── FDLocalizederDemoTests │ ├── FDLocalizederDemoTests.m │ └── Info.plist ├── FDLocalizeder_Excel模板.xlsx ├── LICENSE └── README.md /.source/073331641B4BD2FC98D852E60121D341.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/.source/073331641B4BD2FC98D852E60121D341.png -------------------------------------------------------------------------------- /.source/3101550-8279e9d744ff28e1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/.source/3101550-8279e9d744ff28e1.png -------------------------------------------------------------------------------- /.source/EAEC404C98DAECC6BB54A64924C24610.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/.source/EAEC404C98DAECC6BB54A64924C24610.jpeg -------------------------------------------------------------------------------- /.source/EBE063B8-002E-4B22-BA79-912F3D555B6C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/.source/EBE063B8-002E-4B22-BA79-912F3D555B6C.png -------------------------------------------------------------------------------- /.source/F1350746-FC3C-459F-AE0C-8D6CED517678.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/.source/F1350746-FC3C-459F-AE0C-8D6CED517678.png -------------------------------------------------------------------------------- /.source/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/.source/logo.png -------------------------------------------------------------------------------- /FDLocalizeder/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/.gitignore -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2018-01-12T08:16:41.054847Z 11 | 29551 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | xcuserdata 30 | dir 31 | 32 | project.pbxproj 33 | file 34 | 35 | 36 | 37 | 38 | 2018-03-13T08:46:34.000000Z 39 | a02083aa3aeda7bc632c43147ed465e6 40 | 2017-12-14T10:11:16.250045Z 41 | 28811 42 | chux 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 67503 65 | 66 | xcshareddata 67 | dir 68 | 69 | project.xcworkspace 70 | dir 71 | 72 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/project.xcworkspace 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2018-01-12T08:16:41.054847Z 11 | 29551 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | contents.xcworkspacedata 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:34.000000Z 36 | a54b6450d65c401d48911394f6a65bd2 37 | 2017-07-24T13:31:00.455698Z 38 | 25213 39 | chux 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 135 62 | 63 | xcuserdata 64 | dir 65 | 66 | xcshareddata 67 | dir 68 | 69 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/.svn/text-base/contents.xcworkspacedata.svn-base: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcshareddata/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/project.xcworkspace/xcshareddata 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | MobPods.xcscmblueprint 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:34.000000Z 36 | 4bd2cbd94e6b23e2eaa27dd736cfc2df 37 | 2017-07-24T13:31:00.455698Z 38 | 25213 39 | chux 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 1276 62 | 63 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcshareddata/.svn/text-base/MobPods.xcscmblueprint.svn-base: -------------------------------------------------------------------------------- 1 | { 2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b++5326", 3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { 4 | "ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b++5326" : { 5 | 6 | } 7 | }, 8 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { 9 | "ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b++5326" : 9223372036854775807 10 | }, 11 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "10384C83-3E5B-4735-A503-107EA93841BA", 12 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { 13 | "ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b++5326" : "ios\/" 14 | }, 15 | "DVTSourceControlWorkspaceBlueprintNameKey" : "MobPods", 16 | "DVTSourceControlWorkspaceBlueprintVersion" : 204, 17 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "project\/MobPods\/branches\/MobPods\/trunk\/MobPods\/MobPods.xcodeproj", 18 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ 19 | { 20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "svn:\/\/192.168.180.65", 21 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Subversion", 22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b++5326" 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcshareddata/MobPods.xcscmblueprint: -------------------------------------------------------------------------------- 1 | { 2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b++5326", 3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { 4 | "ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b++5326" : { 5 | 6 | } 7 | }, 8 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { 9 | "ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b++5326" : 9223372036854775807 10 | }, 11 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "10384C83-3E5B-4735-A503-107EA93841BA", 12 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { 13 | "ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b++5326" : "ios\/" 14 | }, 15 | "DVTSourceControlWorkspaceBlueprintNameKey" : "MobPods", 16 | "DVTSourceControlWorkspaceBlueprintVersion" : 204, 17 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "project\/MobPods\/branches\/MobPods\/trunk\/MobPods\/MobPods.xcodeproj", 18 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ 19 | { 20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "svn:\/\/192.168.180.65", 21 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Subversion", 22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b++5326" 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/project.xcworkspace/xcuserdata 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2018-01-12T08:16:41.054847Z 11 | 29551 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | youzu.xcuserdatad 30 | dir 31 | 32 | ShengQiangLiu.xcuserdatad 33 | dir 34 | 35 | chuxiao.xcuserdatad 36 | dir 37 | 38 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/ShengQiangLiu.xcuserdatad/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/project.xcworkspace/xcuserdata/ShengQiangLiu.xcuserdatad 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | UserInterfaceState.xcuserstate 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:34.000000Z 36 | 24ec9c3f14858bba1f7dc3e75e11a9d7 37 | 2017-07-24T13:31:00.455698Z 38 | 25213 39 | chux 40 | has-props 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 19461 62 | 63 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/ShengQiangLiu.xcuserdatad/.svn/prop-base/UserInterfaceState.xcuserstate.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/ShengQiangLiu.xcuserdatad/.svn/text-base/UserInterfaceState.xcuserstate.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/ShengQiangLiu.xcuserdatad/.svn/text-base/UserInterfaceState.xcuserstate.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/ShengQiangLiu.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/ShengQiangLiu.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/chdo.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/chdo.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/chuxiao.xcuserdatad/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/project.xcworkspace/xcuserdata/chuxiao.xcuserdatad 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2018-01-12T08:16:41.054847Z 11 | 29551 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | UserInterfaceState.xcuserstate 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:34.000000Z 36 | dc5f65e76df5616d569bafdb9f45f866 37 | 2018-01-12T08:16:41.054847Z 38 | 29551 39 | chux 40 | has-props 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 362144 62 | 63 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/chuxiao.xcuserdatad/.svn/prop-base/UserInterfaceState.xcuserstate.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/chuxiao.xcuserdatad/.svn/text-base/UserInterfaceState.xcuserstate.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/chuxiao.xcuserdatad/.svn/text-base/UserInterfaceState.xcuserstate.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/chuxiao.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/chuxiao.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/fwzhou.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/fwzhou.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/youzu.xcuserdatad/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/project.xcworkspace/xcuserdata/youzu.xcuserdatad 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | UserInterfaceState.xcuserstate 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:34.000000Z 36 | 2862d14da72453410e5d1c3c7a3c9e98 37 | 2017-07-24T13:31:00.455698Z 38 | 25213 39 | chux 40 | has-props 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 38752 62 | 63 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/youzu.xcuserdatad/.svn/prop-base/UserInterfaceState.xcuserstate.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/youzu.xcuserdatad/.svn/text-base/UserInterfaceState.xcuserstate.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/youzu.xcuserdatad/.svn/text-base/UserInterfaceState.xcuserstate.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/youzu.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder.xcodeproj/project.xcworkspace/xcuserdata/youzu.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcshareddata/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/xcshareddata 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-11-14T09:26:01.605500Z 11 | 27809 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | xcschemes 30 | dir 31 | 32 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcshareddata/xcschemes/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/xcshareddata/xcschemes 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-11-14T09:26:01.605500Z 11 | 27809 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/xcuserdata 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2018-01-12T08:16:41.054847Z 11 | 29551 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | youzu.xcuserdatad 30 | dir 31 | 32 | ShengQiangLiu.xcuserdatad 33 | dir 34 | 35 | chuxiao.xcuserdatad 36 | dir 37 | 38 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/ShengQiangLiu.xcuserdatad/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/xcuserdata/ShengQiangLiu.xcuserdatad 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | xcdebugger 30 | dir 31 | 32 | xcschemes 33 | dir 34 | 35 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/ShengQiangLiu.xcuserdatad/xcdebugger/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/xcuserdata/ShengQiangLiu.xcuserdatad/xcdebugger 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | Breakpoints_v2.xcbkptlist 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:34.000000Z 36 | 8f08ce0db87acdc16e7fe96c41de03c8 37 | 2017-07-24T13:31:00.455698Z 38 | 25213 39 | chux 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 91 62 | 63 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/ShengQiangLiu.xcuserdatad/xcdebugger/.svn/text-base/Breakpoints_v2.xcbkptlist.svn-base: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/ShengQiangLiu.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/ShengQiangLiu.xcuserdatad/xcschemes/.svn/text-base/xcschememanagement.plist.svn-base: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | MobPods.xcscheme 8 | 9 | isShown 10 | 11 | orderHint 12 | 2 13 | 14 | MobPodsScript copy.xcscheme 15 | 16 | isShown 17 | 18 | orderHint 19 | 4 20 | 21 | MobPodsScript.xcscheme 22 | 23 | isShown 24 | 25 | orderHint 26 | 3 27 | 28 | 29 | SuppressBuildableAutocreation 30 | 31 | 82C1079C1DCB253E0052775D 32 | 33 | primary 34 | 35 | 36 | 82C107A31DCB25500052775D 37 | 38 | primary 39 | 40 | 41 | 82FBA3251D654DF7007AE170 42 | 43 | primary 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/ShengQiangLiu.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | MobPods.xcscheme 8 | 9 | isShown 10 | 11 | orderHint 12 | 2 13 | 14 | MobPodsScript copy.xcscheme 15 | 16 | isShown 17 | 18 | orderHint 19 | 4 20 | 21 | MobPodsScript.xcscheme 22 | 23 | isShown 24 | 25 | orderHint 26 | 3 27 | 28 | 29 | SuppressBuildableAutocreation 30 | 31 | 82C1079C1DCB253E0052775D 32 | 33 | primary 34 | 35 | 36 | 82C107A31DCB25500052775D 37 | 38 | primary 39 | 40 | 41 | 82FBA3251D654DF7007AE170 42 | 43 | primary 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/chdo.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | FDLocalizeder.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 2 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/chuxiao.xcuserdatad/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/xcuserdata/chuxiao.xcuserdatad 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2018-01-12T08:16:41.054847Z 11 | 29551 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | xcdebugger 30 | dir 31 | 32 | xcschemes 33 | dir 34 | 35 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/chuxiao.xcuserdatad/xcdebugger/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/xcuserdata/chuxiao.xcuserdatad/xcdebugger 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2018-01-12T08:16:41.054847Z 11 | 29551 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | Breakpoints_v2.xcbkptlist 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:34.000000Z 36 | 43a85c2ee8a67ff176eb3c14274a39d1 37 | 2018-01-12T08:16:41.054847Z 38 | 29551 39 | chux 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 93556 62 | 63 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/chuxiao.xcuserdatad/xcschemes/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/xcuserdata/chuxiao.xcuserdatad/xcschemes 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-11-14T09:26:01.605500Z 11 | 27809 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | MobPods.xcscheme 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:34.000000Z 36 | 7b81fcfc5fc61d703e91dbe808f0761d 37 | 2017-11-14T09:26:01.605500Z 38 | 27809 39 | chux 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 3343 62 | 63 | xcschememanagement.plist 64 | file 65 | 66 | 67 | 68 | 69 | 2018-03-13T08:46:34.000000Z 70 | f8cbfee431f8a5d38c2c12624d8de0a0 71 | 2017-07-24T13:31:00.455698Z 72 | 25213 73 | chux 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 479 96 | 97 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/chuxiao.xcuserdatad/xcschemes/.svn/text-base/xcschememanagement.plist.svn-base: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | MobPods.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 82FBA3251D654DF7007AE170 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/chuxiao.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | FDLocalizeder.xcscheme 8 | 9 | orderHint 10 | 2 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 82FBA3251D654DF7007AE170 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/fd.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | FDLocalizeder.xcscheme 8 | 9 | orderHint 10 | 5 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 82FBA3251D654DF7007AE170 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/fwzhou.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/fwzhou.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | FDLocalizeder.xcscheme 8 | 9 | orderHint 10 | 2 11 | 12 | FDLocalizeder.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 2 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/youzu.xcuserdatad/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/xcuserdata/youzu.xcuserdatad 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | xcdebugger 30 | dir 31 | 32 | xcschemes 33 | dir 34 | 35 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/youzu.xcuserdatad/xcdebugger/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/xcuserdata/youzu.xcuserdatad/xcdebugger 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | Breakpoints_v2.xcbkptlist 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:34.000000Z 36 | 8f08ce0db87acdc16e7fe96c41de03c8 37 | 2017-07-24T13:31:00.455698Z 38 | 25213 39 | chux 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 91 62 | 63 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/youzu.xcuserdatad/xcdebugger/.svn/text-base/Breakpoints_v2.xcbkptlist.svn-base: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/youzu.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/youzu.xcuserdatad/xcschemes/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods.xcodeproj/xcuserdata/youzu.xcuserdatad/xcschemes 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | MobPods.xcscheme 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:34.000000Z 36 | d0024d729fce4cb9fa152f3c60acd3c7 37 | 2017-07-24T13:31:00.455698Z 38 | 25213 39 | chux 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 3303 62 | 63 | xcschememanagement.plist 64 | file 65 | 66 | 67 | 68 | 69 | 2018-03-13T08:46:34.000000Z 70 | f8cbfee431f8a5d38c2c12624d8de0a0 71 | 2017-07-24T13:31:00.455698Z 72 | 25213 73 | chux 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 479 96 | 97 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/youzu.xcuserdatad/xcschemes/.svn/text-base/xcschememanagement.plist.svn-base: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | MobPods.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 82FBA3251D654DF7007AE170 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder.xcodeproj/xcuserdata/youzu.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | MobPods.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 82FBA3251D654DF7007AE170 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/.svn/prop-base/backBtn.png.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/.svn/text-base/AppDelegate.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // MobPods 4 | // 5 | // Created by ShengQiangLiu on 16/8/18. 6 | // Copyright © 2016年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol GlobalMonitorForEventDelegate 12 | 13 | - (void)openMainViewControllerWithPath:(NSString *)path; 14 | 15 | @end 16 | 17 | @interface AppDelegate : NSObject 18 | @property (nonatomic, strong) NSWindow *window; 19 | @property (nonatomic, assign) id delegate; 20 | 21 | @property (nonatomic, assign) NSInteger windowID; 22 | 23 | + (instancetype)shareInstanced; 24 | 25 | @end 26 | 27 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/.svn/text-base/backBtn.png.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/.svn/text-base/backBtn.png.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/.svn/text-base/main.m.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // MobPods 4 | // 5 | // Created by ShengQiangLiu on 16/8/18. 6 | // Copyright © 2016年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MPUserNotification.h" 11 | #import "AppDelegate.h" 12 | 13 | int main(int argc, const char * argv[]) 14 | { 15 | for (int i = 0; i < argc; i ++) { 16 | NSString *windowID = [NSString stringWithUTF8String:argv[i]]; 17 | 18 | if (i == 1) { 19 | [[NSUserDefaults standardUserDefaults] setValue:windowID forKey:@"currentWindowID"]; 20 | } 21 | 22 | } 23 | 24 | return NSApplicationMain(argc, argv); 25 | } 26 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // MacDemo 4 | // 5 | // Created by chuxiao on 2018/5/2. 6 | // Copyright © 2018年 chuxiao. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : NSObject 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // MacDemo 4 | // 5 | // Created by chuxiao on 2018/5/2. 6 | // Copyright © 2018年 chuxiao. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 18 | // Insert code here to initialize your application 19 | } 20 | 21 | 22 | - (void)applicationWillTerminate:(NSNotification *)aNotification { 23 | // Insert code here to tear down your application 24 | } 25 | 26 | - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender{ 27 | return YES;//YES-窗口程序两者都关闭,NO-只关闭窗口; 28 | } 29 | 30 | @end 31 | 32 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods/Assets.xcassets 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2018-01-12T08:16:41.054847Z 11 | 29551 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | mp_openProject.imageset 30 | dir 31 | 32 | mp_icon.imageset 33 | dir 34 | 35 | mp_add.imageset 36 | dir 37 | 38 | xcode-project_Icon 33.imageset 39 | dir 40 | 41 | Nav 42 | dir 43 | 44 | mp_back.imageset 45 | dir 46 | 47 | mp_more.imageset 48 | dir 49 | 50 | mp_delete.imageset 51 | dir 52 | 53 | xcode-project_Icon000.imageset 54 | dir 55 | 56 | AppIcon.appiconset 57 | dir 58 | 59 | mp_doc.imageset 60 | dir 61 | 62 | mp_backup.imageset 63 | dir 64 | 65 | xcode-project_Icon111.imageset 66 | dir 67 | 68 | mp_download.imageset 69 | dir 70 | 71 | workspace_Icon.imageset 72 | dir 73 | 74 | mp_add2.imageset 75 | dir 76 | 77 | Contents.json 78 | file 79 | 80 | 81 | 82 | 83 | 2018-03-13T08:46:34.000000Z 84 | 31cc68f34934a99c0b0c1bebde56309c 85 | 2017-07-24T13:31:00.455698Z 86 | 25213 87 | chux 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 62 110 | 111 | mp_setting.imageset 112 | dir 113 | 114 | mp_next.imageset 115 | dir 116 | 117 | mp_file.imageset 118 | dir 119 | 120 | xcode-project_Icon.imageset 121 | dir 122 | 123 | mp_delete2.imageset 124 | dir 125 | 126 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/.svn/text-base/Contents.json.svn-base: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/prop-base/43-Automator-1.png.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/prop-base/43-Automator-2.png.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/prop-base/43-Automator-3.png.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/prop-base/43-Automator-4.png.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/prop-base/43-Automator-5.png.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/prop-base/43-Automator-6.png.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/prop-base/43-Automator-7.png.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/prop-base/43-Automator-8.png.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/prop-base/43-Automator-9.png.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/prop-base/43-Automator.png.svn-base: -------------------------------------------------------------------------------- 1 | K 13 2 | svn:mime-type 3 | V 24 4 | application/octet-stream 5 | END 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-1.png.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-1.png.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-2.png.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-2.png.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-3.png.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-3.png.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-4.png.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-4.png.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-5.png.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-5.png.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-6.png.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-6.png.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-7.png.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-7.png.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-8.png.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-8.png.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-9.png.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator-9.png.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator.png.svn-base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/43-Automator.png.svn-base -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/.svn/text-base/Contents.json.svn-base: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "16x16", 5 | "idiom" : "mac", 6 | "filename" : "43-Automator-9.png", 7 | "scale" : "1x" 8 | }, 9 | { 10 | "size" : "16x16", 11 | "idiom" : "mac", 12 | "filename" : "43-Automator-8.png", 13 | "scale" : "2x" 14 | }, 15 | { 16 | "size" : "32x32", 17 | "idiom" : "mac", 18 | "filename" : "43-Automator-7.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "32x32", 23 | "idiom" : "mac", 24 | "filename" : "43-Automator-6.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "128x128", 29 | "idiom" : "mac", 30 | "filename" : "43-Automator-5.png", 31 | "scale" : "1x" 32 | }, 33 | { 34 | "size" : "128x128", 35 | "idiom" : "mac", 36 | "filename" : "43-Automator-4.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "256x256", 41 | "idiom" : "mac", 42 | "filename" : "43-Automator-3.png", 43 | "scale" : "1x" 44 | }, 45 | { 46 | "size" : "256x256", 47 | "idiom" : "mac", 48 | "filename" : "43-Automator.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "512x512", 53 | "idiom" : "mac", 54 | "filename" : "43-Automator-2.png", 55 | "scale" : "1x" 56 | }, 57 | { 58 | "size" : "512x512", 59 | "idiom" : "mac", 60 | "filename" : "43-Automator-1.png", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net-1.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net-2.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net-3.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net-4.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net@2x-1.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net@2x-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net@2x-2.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net@2x-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net@2x-3.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net@2x-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net@2x-4.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/AppIcon.appiconset/folder_pen_write_128px_4234_easyicon.net@2x.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/Finder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Finder.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/Finder.imageset/Finder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/Finder.imageset/Finder.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/Finder1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Finder.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/Finder1.imageset/Finder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/Finder1.imageset/Finder.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "L_excel_bg.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg.imageset/L_excel_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg.imageset/L_excel_bg.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "L_excel_bg.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg0.imageset/L_excel_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg0.imageset/L_excel_bg.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "L_excel_bg.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg2.imageset/L_excel_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg2.imageset/L_excel_bg.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "L_excel_bg.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg3.imageset/L_excel_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg3.imageset/L_excel_bg.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "L_excel_bg.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg4.imageset/L_excel_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/L_excel_bg4.imageset/L_excel_bg.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_export.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "export.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_export.imageset/export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/L_export.imageset/export.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_more.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "L_more.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_more.imageset/L_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/L_more.imageset/L_more.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_more2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "L_more2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/L_more2.imageset/L_more2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/L_more2.imageset/L_more2.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/backup.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "backup.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/backup.imageset/backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/backup.imageset/backup.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/dashboard_excel-1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "dashboard_excel.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/dashboard_excel-1.imageset/dashboard_excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/dashboard_excel-1.imageset/dashboard_excel.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/dashboard_excel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "dashboard_excel.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/dashboard_excel.imageset/dashboard_excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/dashboard_excel.imageset/dashboard_excel.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/down.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "down.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/down.imageset/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/down.imageset/down.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/ex_close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ex_close.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/ex_close.imageset/ex_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/ex_close.imageset/ex_close.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/ex_confirm.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ex_confirm.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/ex_confirm.imageset/ex_confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/ex_confirm.imageset/ex_confirm.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/file.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "wenjian.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/file.imageset/wenjian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/file.imageset/wenjian.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/file0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "file.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/file0.imageset/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/file0.imageset/file.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/file2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "file.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/file2.imageset/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/file2.imageset/file.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/import.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "import.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/import.imageset/import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/import.imageset/import.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/reset.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "reset.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/reset.imageset/reset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/reset.imageset/reset.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/timg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "timg.jpeg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/timg.imageset/timg.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/timg.imageset/timg.jpeg -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/undo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "undo.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/undo.imageset/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/undo.imageset/undo.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/wangge.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "wangge.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/wangge.imageset/wangge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/wangge.imageset/wangge.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/wenhao.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "wenhao.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/wenhao.imageset/wenhao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/wenhao.imageset/wenhao.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon 0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Untitled-2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon 0.imageset/Untitled-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon 0.imageset/Untitled-2.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon-1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "xcode-project_Icon.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon-1.imageset/xcode-project_Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon-1.imageset/xcode-project_Icon.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "xcode-project_Icon.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon.imageset/xcode-project_Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon.imageset/xcode-project_Icon.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon_file.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "xcode-project_Icon_file.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon_file.imageset/xcode-project_Icon_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/FDLocalizeder/Assets.xcassets/xcode-project_Icon_file.imageset/xcode-project_Icon_file.png -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Base.lproj/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods/Base.lproj 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2018-01-12T08:16:41.054847Z 11 | 29551 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | Main.storyboard 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:34.000000Z 36 | 2b6c8592cf4404b129ff8b5b720e6564 37 | 2018-01-12T08:16:41.054847Z 38 | 29551 39 | chux 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 197592 62 | 63 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPAlertController.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPAlertController.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/5/31. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPAlertController : NSViewController 12 | 13 | @property (nonatomic, copy) NSString *alertInfo; 14 | 15 | @property (nonatomic, copy) void (^confirmBlock)(); 16 | @property (nonatomic, copy) void (^chooseBlock)(); 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPAlertController.m.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPAlertController.m 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/5/31. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import "MPAlertController.h" 10 | 11 | @interface MPAlertController () 12 | @property (weak) IBOutlet NSTextField *lbAlertInfo; 13 | 14 | 15 | @end 16 | 17 | @implementation MPAlertController 18 | 19 | - (void)viewDidLoad { 20 | [super viewDidLoad]; 21 | // Do view setup here. 22 | 23 | self.lbAlertInfo.stringValue = self.alertInfo; 24 | } 25 | 26 | - (void)viewDidAppear{ 27 | [super viewDidAppear]; 28 | [self.view.window setLevel:kCGPopUpMenuWindowLevel]; 29 | } 30 | 31 | - (IBAction)confirmActiobn:(id)sender { 32 | if (self.confirmBlock) { 33 | self.confirmBlock(); 34 | } 35 | [self.view.window close]; 36 | } 37 | 38 | - (IBAction)chooseAction:(id)sender { 39 | if (self.chooseBlock) { 40 | self.chooseBlock(); 41 | } 42 | [self.view.window close]; 43 | } 44 | 45 | 46 | 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPBaseViewController.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPBaseViewController.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/9. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPBaseViewController : NSViewController 12 | @property (weak) IBOutlet NSView *navView; 13 | @property (weak) IBOutlet NSView *mainView; 14 | /** 15 | 加载指示器 16 | */ 17 | @property (weak) IBOutlet NSProgressIndicator *indicator; 18 | @end 19 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPBaseViewController.m.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPBaseViewController.m 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/9. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import "MPBaseViewController.h" 10 | #import "MPMainViewController.h" 11 | 12 | @interface MPBaseViewController () 13 | @property (weak) IBOutlet NSPopUpButton *pop; 14 | 15 | @end 16 | 17 | @implementation MPBaseViewController 18 | /** 19 | 通过覆盖视图的这个方法,可以强制视图坐标系远点为左上角 20 | */ 21 | //- (BOOL)isFlipped{ 22 | // return YES; 23 | //} 24 | - (void)viewDidLoad { 25 | [super viewDidLoad]; 26 | } 27 | 28 | - (void)dealloc{ 29 | [[NSNotificationCenter defaultCenter] removeObserver:self]; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPBaseWindow.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPBaseWindow.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/9. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPBaseWindow : NSWindow 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPBaseWindow.m.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPBaseWindow.m 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/9. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import "MPBaseWindow.h" 10 | 11 | @implementation MPBaseWindow 12 | 13 | - (instancetype)initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)style backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag { 14 | self = [super initWithContentRect:contentRect styleMask:style backing:bufferingType defer:flag]; 15 | if (self) { 16 | self.backgroundColor = [NSColor whiteColor]; 17 | } 18 | return self; 19 | } 20 | 21 | - (BOOL)canBecomeKeyWindow { 22 | return YES; 23 | } 24 | 25 | - (BOOL)canBecomeMainWindow{ 26 | return YES; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPBaseWindowController.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPBaseWindowController.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/2. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPBaseWindowController : NSWindowController 12 | 13 | //+ (instancetype)shareWindow; 14 | 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPCocoaPodsViewController.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPCocoaPodsViewController.h 3 | // MobPods 4 | // 5 | // Created by ShengQiangLiu on 16/11/14. 6 | // Copyright © 2016年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPCocoaPodsViewController : NSViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPMoreVersionViewController.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPMoreVersionViewController.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/11. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPMoreVersionViewController : NSViewController 12 | 13 | @property (nonatomic, strong) NSArray *arrData; 14 | 15 | @property (nonatomic, copy) selecteOtherVersionBlock selecteOtherVersionBlock; 16 | @end 17 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPProjectListViewController.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPProjectListViewController.h 3 | // MobPods 4 | // 5 | // Created by ShengQiangLiu on 16/11/2. 6 | // Copyright © 2016年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPProjectListViewController : NSViewController 12 | 13 | @property (nonatomic, copy) openMainVC openBlock; 14 | 15 | - (void)searchAction:(NSString *)searchValue; 16 | 17 | @property (nonatomic, assign) NSString *strWindowID; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPVirtualController.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPVirtualController.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/1. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPVirtualController : NSViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPVirtualController.m.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPVirtualController.m 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/1. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import "MPVirtualController.h" 10 | 11 | @interface MPVirtualController () 12 | 13 | @end 14 | 15 | @implementation MPVirtualController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | // Do view setup here. 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPVirtualViewController.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPVirtualViewController.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/1. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPVirtualViewController : NSViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPVirtualWindowController.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPVirtualWindowController.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/1. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPVirtualWindowController : NSWindowController 12 | - (void)click; 13 | @end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/.svn/text-base/MPWebViewController.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPWebViewController.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/5/8. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPWebViewController : NSViewController 12 | 13 | @property (nonatomic, copy) NSString *strURL; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/CXConsoleViewModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // CXConsoleViewModel.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2019/5/14. 6 | // Copyright © 2019 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | @class FDMainViewModel; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface CXConsoleViewModel : NSObject 15 | 16 | @property (nonatomic, weak) FDMainViewModel *mainVM; 17 | 18 | @property (nonatomic, copy) NSString *strConsole; 19 | 20 | @property (nonatomic, strong) NSMutableString *mstrConsole; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/CXConsoleViewModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // CXConsoleViewModel.m 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2019/5/14. 6 | // Copyright © 2019 mob.com. All rights reserved. 7 | // 8 | 9 | #import "CXConsoleViewModel.h" 10 | #import "FDMainViewModel.h" 11 | #import "FDViewController.h" 12 | 13 | @interface CXConsoleViewModel () 14 | { 15 | NSString *_strConsole; 16 | } 17 | 18 | @property (nonatomic, strong) NSTextView *tipText; 19 | 20 | 21 | @end 22 | 23 | static dispatch_queue_t _concurrentQueue; 24 | 25 | @implementation CXConsoleViewModel 26 | 27 | - (instancetype) init 28 | { 29 | if (self = [super init]) { 30 | self.tipText = self.mainVM.mainVC.tipText; 31 | _concurrentQueue = dispatch_queue_create("com.FDLocalizederConsole.syncQueue", DISPATCH_QUEUE_CONCURRENT); 32 | } 33 | return self; 34 | } 35 | 36 | - (NSString *)strConsole 37 | { 38 | __block NSString *tempStrConsole; 39 | dispatch_sync(_concurrentQueue, ^{ 40 | tempStrConsole = self.strConsole; 41 | }); 42 | return tempStrConsole; 43 | } 44 | 45 | - (void)setStrConsole:(NSString *)strConsole 46 | { 47 | dispatch_barrier_async(_concurrentQueue, ^{ 48 | self.mstrConsole = [strConsole copy]; 49 | // [self.mainVM.mainVC.tipText performSelectorOnMainThread:@selector(setString:) withObject:strConsole waitUntilDone:YES]; 50 | dispatch_async(dispatch_get_main_queue(), ^{ 51 | self.mainVM.mainVC.tipText.string = strConsole; 52 | }); 53 | }); 54 | } 55 | 56 | 57 | 58 | @end 59 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/CXSelectLanguagePathCellView.h: -------------------------------------------------------------------------------- 1 | // 2 | // CXSelectLanguagePathCellView.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2019/5/23. 6 | // Copyright © 2019 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface CXSelectLanguagePathCellView : NSTableCellView 14 | 15 | @property (weak) IBOutlet NSImageView *icon; 16 | 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/CXSelectLanguagePathCellView.m: -------------------------------------------------------------------------------- 1 | // 2 | // CXSelectLanguagePathCellView.m 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2019/5/23. 6 | // Copyright © 2019 mob.com. All rights reserved. 7 | // 8 | 9 | #import "CXSelectLanguagePathCellView.h" 10 | 11 | @implementation CXSelectLanguagePathCellView 12 | 13 | - (void)drawRect:(NSRect)dirtyRect { 14 | [super drawRect:dirtyRect]; 15 | 16 | // Drawing code here. 17 | } 18 | 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/CXSelectLanguagePathView.h: -------------------------------------------------------------------------------- 1 | // 2 | // CXSelectLanguagePathView.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2019/5/22. 6 | // Copyright © 2019 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | 没有办法,先弄个单例 15 | */ 16 | @interface CXSelectLanguageManager : NSObject 17 | 18 | + (instancetype)manager; 19 | 20 | @property (nonatomic, copy) NSArray *languagesPaths; 21 | 22 | @end 23 | 24 | 25 | @interface CXSelectLanguagePathView : NSView 26 | 27 | @property (nonatomic, copy) NSArray *languagesPaths; 28 | 29 | - (void)settingLanguagesPaths:(NSArray *)languagesPaths; 30 | 31 | - (instancetype)initWithLanguagesPaths:(NSArray *)languagesPaths; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/CXSliderRangeView.h: -------------------------------------------------------------------------------- 1 | // 2 | // CXSliderRangeView.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/15. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CXSliderRangeView : NSView 12 | 13 | +(CXSliderRangeView *)acquireCustomView; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/CXSliderRangeView.m: -------------------------------------------------------------------------------- 1 | // 2 | // CXSliderRangeView.m 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/15. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import "CXSliderRangeView.h" 10 | 11 | @implementation CXSliderRangeView 12 | 13 | - (void)drawRect:(NSRect)dirtyRect { 14 | [super drawRect:dirtyRect]; 15 | 16 | // Drawing code here. 17 | } 18 | 19 | +(CXSliderRangeView *)acquireCustomView 20 | { 21 | CXSliderRangeView *view = [[NSNib alloc] initWithNibNamed:@"CXSliderRangeView" bundle:nil]; 22 | 23 | return view; 24 | } 25 | @end 26 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/FDLanguagePopoverViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDLanguagePopoverViewController.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/10. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | /** 13 | 自定义操作模型 14 | */ 15 | @interface FDLanguagePersonalizeModel : NSObject 16 | 17 | // 自定义操作 18 | @property (assign, nonatomic) BOOL addWithRange; 19 | @property (assign, nonatomic) char leftRow; 20 | @property (assign, nonatomic) char rightRow; 21 | @property (assign, nonatomic) NSInteger leftRowIndex; 22 | @property (assign, nonatomic) NSInteger rightRowIndex; 23 | 24 | @property (assign, nonatomic) BOOL compare; 25 | @property (assign, nonatomic) BOOL compareToAdd; 26 | @property (nonatomic, assign) BOOL textSorting; 27 | @property (nonatomic, assign) BOOL deleteLocalize; 28 | 29 | @property (copy, nonatomic) NSString *baseLanguage; 30 | 31 | @end 32 | 33 | 34 | @interface FDLanguagePopoverViewController : NSViewController 35 | 36 | @property (strong, nonatomic) NSArray *arrLanguage; 37 | @property (copy, nonatomic) void (^disAppearBlock)(NSArray *arrLanguage, FDLanguagePersonalizeModel *personalizeModel); 38 | @property (copy, nonatomic) void (^undoBlock)(); 39 | @property (copy, nonatomic) void (^backupBlock)(); 40 | @property (copy, nonatomic) void (^documentWrappingBlcok)(); 41 | @property (copy, nonatomic) void (^closeBlock)(); 42 | @property (copy, nonatomic) void (^compareBlock)(FDLanguagePersonalizeModel *personalizeModel); 43 | @property (nonatomic, copy) void (^exportToExcelBLock)(); 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/FDMainDataViewModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDMainDataViewModel.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/11. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | @class FDMainViewModel; 11 | 12 | @interface FDMainDataViewModel : NSObject 13 | 14 | @property (weak, nonatomic) FDMainViewModel *mainVM; 15 | 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/FDMainDataViewModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // FDMainDataViewModel.m 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/11. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import "FDMainDataViewModel.h" 10 | 11 | @implementation FDMainDataViewModel 12 | 13 | - (instancetype) init 14 | { 15 | if (self = [super init]) { 16 | [self _configData]; 17 | } 18 | 19 | return self; 20 | } 21 | 22 | - (void)_configData 23 | { 24 | 25 | } 26 | 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/FDMainExtendViewModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDMainExtendViewModel.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/7/13. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | @class FDMainViewModel; 11 | 12 | @interface FDMainExtendViewModel : NSObject 13 | 14 | @property (nonatomic, weak) FDMainViewModel *mainVM; 15 | 16 | 17 | - (void)compareStrings; 18 | 19 | - (NSDictionary *)compareValuesWithFilePath:(NSString *)filePath 20 | codes:(NSArray *)codes 21 | values:(NSArray *)values; 22 | 23 | - (NSDictionary *)compareValuesWithFilePath_1:(NSString *)filePath_1 24 | filePath_2:(NSString *)filePath_2; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/FDSecondVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDSecondVC.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/6/8. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDSecondVC : NSViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/FDSecondVC.m: -------------------------------------------------------------------------------- 1 | // 2 | // FDSecondVC.m 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/6/8. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import "FDSecondVC.h" 10 | 11 | @implementation FDSecondVC 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/FDViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/4/25. 6 | // Copyright © 2018年 chuxiao. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDViewController : NSViewController 12 | 13 | @property (weak) IBOutlet NSPopUpButton *localizeNamesPopButton; 14 | 15 | @property (weak) IBOutlet NSPopUpButton *languagesPopButton; 16 | 17 | @property (unsafe_unretained) IBOutlet NSTextView *tipText; 18 | 19 | @property (unsafe_unretained) IBOutlet NSTextView *codeCommentTextView; 20 | 21 | @property (weak) IBOutlet NSButton *addLocalizeButton; 22 | 23 | @end 24 | 25 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/ObjC segues and animators/MyCustomAnimator.h: -------------------------------------------------------------------------------- 1 | // 2 | // MyCustomAnimator.h 3 | // TestOSXApp 4 | // 5 | // Created by jonathan on 22/01/2015. 6 | // Copyright (c) 2015 net.ellipsis. All rights reserved. 7 | // 8 | 9 | #import 10 | @import AppKit; 11 | 12 | @interface MyCustomAnimator : NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/ObjC segues and animators/MyCustomSegue.h: -------------------------------------------------------------------------------- 1 | // 2 | // MyCustomSegue.h 3 | // NSViewControllerPresentations 4 | // 5 | // Created by jonathan on 25/01/2015. 6 | // Copyright (c) 2015 net.ellipsis. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MyCustomSegue : NSStoryboardSegue 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/ObjC segues and animators/MyCustomSegue.m: -------------------------------------------------------------------------------- 1 | // 2 | // MyCustomSegue.m 3 | // NSViewControllerPresentations 4 | // 5 | // Created by jonathan on 25/01/2015. 6 | // Copyright (c) 2015 net.ellipsis. All rights reserved. 7 | // 8 | 9 | #import "MyCustomSegue.h" 10 | #import "MyCustomAnimator.h" 11 | 12 | #import "FDLocalizeder-Swift.h" 13 | 14 | @implementation MyCustomSegue 15 | 16 | - (void)perform { 17 | //Objective-C and Swift versions of animator both work 18 | //id animator1 = [[MyCustomAnimator alloc] init]; 19 | 20 | id animator2 = [[MyCustomSwiftAnimator alloc] init]; 21 | [self.sourceController presentViewController:self.destinationController 22 | animator:animator2]; 23 | } 24 | @end 25 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/Swift segues and animators/FDLocalizeder-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | 6 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Controllers/Swift segues and animators/MyCustomSwiftSegue.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MyCustomSwiftSegue.swift 3 | // NSViewControllerPresentations 4 | // 5 | // Created by jonathan on 25/01/2015. 6 | // Copyright (c) 2015 net.ellipsis. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class MyCustomSwiftSegue: NSStoryboardSegue { 12 | 13 | override func perform() { 14 | let animator = MyCustomSwiftAnimator() 15 | let sourceVC = self.sourceController as! NSViewController 16 | let destVC = self.destinationController as! NSViewController 17 | sourceVC.presentViewController(destVC, animator: animator) 18 | } 19 | 20 | } 21 | 22 | 23 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Libraries/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods/Libraries 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | MPTask 30 | dir 31 | 32 | MPDataTool.m 33 | file 34 | 35 | 36 | 37 | 38 | 2018-03-13T08:46:50.000000Z 39 | b661a6a9472ecc70010c14880d01af51 40 | 2017-07-24T13:31:00.455698Z 41 | 25213 42 | chux 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 408 65 | 66 | MOBFoundation.framework 67 | dir 68 | 69 | MPSpotlightQuery 70 | dir 71 | 72 | MPUserNotification 73 | dir 74 | 75 | DJProgressHUD 76 | dir 77 | 78 | MOBFoundation 79 | dir 80 | 81 | MPAlert 82 | dir 83 | 84 | fmdb 85 | dir 86 | 87 | MPDataTool.h 88 | file 89 | 90 | 91 | 92 | 93 | 2018-03-13T08:46:50.000000Z 94 | 6a89289972c202aa3612321cf4dae49e 95 | 2017-07-24T13:31:00.455698Z 96 | 25213 97 | chux 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 287 120 | 121 | FBKVOController 122 | dir 123 | 124 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Libraries/.svn/text-base/MPDataTool.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPDataTool.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/25. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPDataTool : NSObject 12 | 13 | + (instancetype)shareInstanced ; 14 | 15 | @property (nonatomic, assign) NSInteger btnTag; 16 | @end 17 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Libraries/.svn/text-base/MPDataTool.m.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPDataTool.m 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/25. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import "MPDataTool.h" 10 | 11 | @implementation MPDataTool 12 | 13 | + (instancetype)shareInstanced { 14 | static dispatch_once_t onceToken; 15 | static MPDataTool *appdele = nil; 16 | dispatch_once(&onceToken, ^{ 17 | appdele = [[[self class] alloc] init]; 18 | }); 19 | return appdele; 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Libraries/MOBFoundation/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods/Libraries/MOBFoundation 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | HTTP 30 | dir 31 | 32 | Utils 33 | dir 34 | 35 | Extends 36 | dir 37 | 38 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Libraries/MOBFoundation/Extends/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods/Libraries/MOBFoundation/Extends 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | RegexKitLite 30 | dir 31 | 32 | JSONKit 33 | dir 34 | 35 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Libraries/MOBFoundation/Extends/JSONKit/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods/Libraries/MOBFoundation/Extends/JSONKit 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Libraries/MOBFoundation/Extends/RegexKitLite/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods/Libraries/MOBFoundation/Extends/RegexKitLite 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Libraries/MOBFoundation/HTTP/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods/Libraries/MOBFoundation/HTTP 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Libraries/MOBFoundation/Utils/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods/Libraries/MOBFoundation/Utils 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Macro/Languages.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | German(de) 6 | de 7 | Hebrew(he) 8 | he 9 | Arabic(ar) 10 | ar 11 | English(en) 12 | en 13 | Norwegian(nb) 14 | nb 15 | Spanish(es) 16 | es 17 | Danish(da) 18 | da 19 | Italian(it) 20 | it 21 | Slovak(sk) 22 | sk 23 | Swedish(sv) 24 | sv 25 | Czech(cs) 26 | cs 27 | English(Base) 28 | Base 29 | Turkish(tr) 30 | tr 31 | Polish(pl) 32 | pl 33 | Russian(ru) 34 | ru 35 | French(fr) 36 | fr 37 | Finnish(fi) 38 | fi 39 | Dutch(nl) 40 | nl 41 | Portuguese(pt) 42 | pt 43 | Indonesia(id) 44 | id 45 | Thailand(th) 46 | th 47 | Chinese(Traditional) 48 | zh-Hant 49 | Japanese(ja) 50 | ja 51 | 52 | 53 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Macro/OtherSetting.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DevelopmentLanguage 6 | en 7 | 8 | 9 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/CXRegexHelper.h: -------------------------------------------------------------------------------- 1 | // 2 | // CXRegexHelper.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2019/5/11. 6 | // Copyright © 2019 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface CXRegexHelper : NSObject 14 | 15 | + (NSString *)getStringWithRegex:(NSString *)reg oriString:(NSString *)str; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/CXRegexHelper.m: -------------------------------------------------------------------------------- 1 | // 2 | // CXRegexHelper.m 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2019/5/11. 6 | // Copyright © 2019 mob.com. All rights reserved. 7 | // 8 | 9 | #import "CXRegexHelper.h" 10 | 11 | @implementation CXRegexHelper 12 | 13 | + (NSString *)getStringWithRegex:(NSString *)reg oriString:(NSString *)str 14 | { 15 | NSString *url = str; 16 | NSError *error; 17 | // 创建NSRegularExpression对象并指定正则表达式 @"[^@]*\\." 18 | NSRegularExpression *regex = [NSRegularExpression 19 | regularExpressionWithPattern:reg 20 | options:0 21 | error:&error]; 22 | if (!error) { // 如果没有错误 23 | // 获取特特定字符串的范围 24 | NSTextCheckingResult *match = [regex firstMatchInString:url 25 | options:0 26 | range:NSMakeRange(0, [url length])]; 27 | if (match) { 28 | // 截获特定的字符串 29 | NSString *result = [url substringWithRange:match.range]; 30 | // NSLog(@"%@",result); 31 | 32 | return result; 33 | } 34 | } else { // 如果有错误,则把错误打印出来 35 | NSLog(@"error - %@", error); 36 | } 37 | 38 | return nil; 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/CXSpecialCharacterConversion.h: -------------------------------------------------------------------------------- 1 | // 2 | // CXSpecialCharacterConversion.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2019/5/10. 6 | // Copyright © 2019 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface CXSpecialCharacterConversion : NSObject 14 | 15 | + (NSString *)replaceSpecialCharacters:(NSString *)string; 16 | 17 | + (NSString *)replaceSpecialCharacters2:(NSString *)string; 18 | 19 | + (NSString *)replaceSpecialCharactersForRegex:(NSString *)string; 20 | 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/FDCompareManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDCompareManager.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/12/4. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDCompareManager : NSObject 12 | 13 | + (NSDictionary *)parseLocalfileToDictionary:(NSString *)filePath; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/FDDataManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDDataManager.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/4. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDDataManager : NSObject 12 | 13 | + (instancetype)share; 14 | 15 | - (void)writeToFile:(NSString *)filePath 16 | existingCode:(NSDictionary *)existingCode 17 | content:(NSString *)content 18 | result:(void(^)(BOOL result))result; 19 | 20 | - (void)writeToFileQueue:(NSString *)filePath 21 | content:(NSString *)content 22 | result:(void(^)(BOOL result))result; 23 | 24 | - (void)writeToFileQueue:(NSString *)filePath 25 | key:(NSString *)key 26 | value:(NSString *)value 27 | result:(void(^)(BOOL result))result; 28 | 29 | - (void)writeToFileQueue:(NSString *)filePath 30 | key:(NSString *)key 31 | value:(NSString *)value 32 | codeComment:(NSString *)codeComment 33 | result:(void(^)(BOOL result))result; 34 | 35 | - (void)writeToFileQueue:(NSString *)filePath 36 | codes:(NSArray *)codes 37 | values:(NSArray *)values 38 | codeComment:(NSString *)codeComment 39 | result:(void(^)(BOOL result))result; 40 | 41 | - (void)truncateFileWithPath:(NSString *)path; 42 | 43 | - (void)deleteTextQueue:(NSString *)filePath 44 | codes:(NSArray *)codes 45 | codeComment:(NSString *)codeComment 46 | result:(void(^)(BOOL result))result; 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/FDPredicateManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDPredicateManager.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/6/4. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDPredicateManager : NSObject 12 | 13 | + (NSString *)filterStringWithArray:(NSArray *)array string:(NSString *)string; 14 | 15 | 16 | /** 17 | 获取两个数组相同的部分,这里区分大小写 18 | 19 | @param array1 <#array1 description#> 20 | @param array2 <#array2 description#> 21 | @return <#return value description#> 22 | */ 23 | + (NSString *)filterStringWithArray1:(NSArray *)array1 array2:(NSArray *)array2; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/FDPredicateManager.m: -------------------------------------------------------------------------------- 1 | // 2 | // FDPredicateManager.m 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/6/4. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import "FDPredicateManager.h" 10 | 11 | @implementation FDPredicateManager 12 | 13 | + (NSString *)filterStringWithArray:(NSArray *)array string:(NSString *)string 14 | { 15 | // 谓词搜索 16 | NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self == [cd] %@",string]; 17 | NSArray *arrays = [[NSArray alloc] initWithArray:[array filteredArrayUsingPredicate:predicate]]; 18 | 19 | return arrays.firstObject; 20 | } 21 | 22 | /** 23 | 获取两个数组相同的部分,这里区分大小写 24 | 25 | @param array1 <#array1 description#> 26 | @param array2 <#array2 description#> 27 | @return return value description 28 | */ 29 | + (NSString *)filterStringWithArray1:(NSArray *)array1 array2:(NSArray *)array2 30 | { 31 | // 谓词搜索 32 | NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self in [cd] %@",array2]; 33 | NSArray *arrays = [[NSArray alloc] initWithArray:[array1 filteredArrayUsingPredicate:predicate]]; 34 | 35 | return arrays.firstObject; 36 | } 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/FDProjectFileManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDProjectFileManager.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/2. 6 | // Copyright © 2018年 chuxiao. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDProjectFileManager : NSObject 12 | 13 | + (instancetype)share; 14 | 15 | - (void)getLocalizesWithPath:(NSString *)path result:(void(^)())result; 16 | 17 | - (void)readContentOfFile:(NSString *)filePath; 18 | 19 | - (void)writeToFile:(NSString *)content; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/FDReadFile.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDReadFile.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/14. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDReadFile : NSObject{ 12 | //路径 13 | NSString *parentDirectoryPath; 14 | //异步输出流 15 | NSInputStream *asyncInputStream; 16 | //读出来的数据 17 | NSMutableData *resultData; 18 | //返回去的数据 19 | // NoteDb *aNoteDb; 20 | } 21 | //@property(nonatomic,retain)NoteDb *aNoteDb; 22 | @property (nonatomic, retain) NSMutableData *resultData; 23 | //开始读数据 24 | -(void)read; 25 | //读出来的数据追加到resultData上 26 | - (void)appendData:(NSData*)_data; 27 | // 28 | - (void)dataAtNoteDB; 29 | //返回去的数据 30 | //- (NoteDb*)getNoteDb; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/FDSafetyFileManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDSafetyFileManager.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/14. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDSafetyFileManager : NSObject 12 | 13 | + (instancetype)shareInstance; 14 | 15 | - (NSData *)readFile:(NSString *)path; 16 | - (void)readFileAsync:(NSString *)path complete:(void (^)(NSData *data))complete; 17 | 18 | - (BOOL)writeFile:(NSString *)path data:(NSData *)data; 19 | - (void)writeFileAsync:(NSString *)path data:(NSData *)data complete:(void (^)(BOOL result))complete; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/FDUndoManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDUndoManager.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/11. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDUndoManager : NSObject 12 | 13 | + (instancetype)share; 14 | 15 | - (void)saveFileWithFilePath:(NSString *)filePath 16 | result:(void(^)(BOOL result))result; 17 | 18 | - (void)undoFileWithFilePathArray:(NSArray *)arrPaths; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/FDWriteFile.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDWriteFile.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/14. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDWriteFile : NSObject{ 12 | //文件地址 13 | NSString *parentDirectoryPath; 14 | //输出流,写数据 15 | NSOutputStream *asyncOutputStream; 16 | //写数据的内容 17 | NSData *outputData; 18 | //位置及长度 19 | NSRange outputRange; 20 | //数据的来源 21 | // NoteDb *aNoteDb; 22 | } 23 | 24 | @property (nonatomic,retain) NSData *outputData; 25 | //@property (nonatomic,retain) NoteDb *aNoteDb; 26 | //写数据 27 | -(void)write; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Manager/FDXMLFileManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDXMLFileManager.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/14. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDXMLFileManager : NSObject 12 | 13 | - (instancetype)initWithFilePath:(NSString *)filePath; 14 | 15 | + (void)parsFile:(id)obj 16 | path:(NSString *)path 17 | left:(char)left 18 | leftIndex:(NSInteger)leftIndex 19 | right:(char)right 20 | rightIndex:(NSInteger)rightIndex; 21 | 22 | + (void)parsFile:(id)obj 23 | path:(NSString *)path 24 | left:(NSString *)left 25 | right:(NSString *)right; 26 | 27 | - (NSArray *)parsFileVertical:(char)verticalRow 28 | top:(NSInteger)top 29 | bottom:(NSInteger)bottom 30 | limit:(BOOL)isLimit; 31 | 32 | - (NSArray *)parsFilehorizontal:(NSInteger)horizontalRow 33 | left:(char)left 34 | right:(char)right 35 | limit:(BOOL)isLimit; 36 | 37 | - (NSString *)parsRow:(char)charIndex 38 | :(NSInteger)intIndex; 39 | 40 | - (void)writeRowWithContent:(NSString *)content 41 | :(char)charIndex 42 | :(NSInteger)intIndex 43 | :(NSString *)worksheetName 44 | :(void(^)())success; 45 | 46 | - (void)createSecondWorksheetName:(NSString *)worksheetName; 47 | 48 | - (void)save; 49 | @end 50 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Tools/MPTask/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods/Libraries/MPTask 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | MPTask.h 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:49.000000Z 36 | b2e314d66a803c082cdada3e98a5ae70 37 | 2017-07-24T13:31:00.455698Z 38 | 25213 39 | chux 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 1348 62 | 63 | MPTask.m 64 | file 65 | 66 | 67 | 68 | 69 | 2018-03-13T08:46:49.000000Z 70 | a2b6b6c1cdf62c1f2a605e2ca50c0398 71 | 2017-07-24T13:31:00.455698Z 72 | 25213 73 | chux 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 4899 96 | 97 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Tools/MPTask/.svn/text-base/MPTask.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPTask.h 3 | // MobPods 4 | // 5 | // Created by ShengQiangLiu on 16/11/8. 6 | // Copyright © 2016年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #define CMD_ECHO @"/bin/echo" 12 | #define CMD_PYTHON @"/usr/bin/python" 13 | #define CMD_LAUCH @"/usr/bin/open" 14 | #define CMD_WHOAMI @"/usr/bin/whoami" 15 | #define CMD_GIT @"/usr/bin/git" 16 | #define CMD_SH @"/bin/sh" 17 | #define CMD_CP @"/bin/cp" 18 | #define CMD_MV @"/bin/mv" 19 | #define CMD_CURL @"/usr/bin/curl" 20 | #define CMD_RUBY @"/usr/bin/ruby" 21 | #define CMD_MDFIND @"/usr/bin/mdfind" 22 | 23 | 24 | //typedef enum : NSUInteger { 25 | // MPGitClone = 0, 26 | // MPGitPull, 27 | // MPGitLog, 28 | //} MPGit; 29 | 30 | @interface MPTask : NSObject{ 31 | 32 | 33 | } 34 | 35 | /** 36 | * 获取对象实例 37 | * 38 | * @return 对象 39 | */ 40 | //+ (MPTask *)task; 41 | 42 | //@property (nonatomic, assign) MPGit commandType; 43 | 44 | /** 45 | 启动 NSTask,执行命令行指令 46 | 47 | @param lanunchPath 启动路径 48 | @param arguments 指令执行参数 49 | @param directoryPath 指令执行目录 50 | @param success 成功回调信息 51 | @param exception 参数错误异常 52 | */ 53 | + (void)runTaskWithLanunchPath:(NSString *)lanunchPath 54 | arguments:(NSArray *)arguments 55 | currentDirectoryPath:(NSString *)directoryPath 56 | onSuccess:(void(^)(NSString *))success 57 | onException:(void(^)(NSException *))exception; 58 | 59 | 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Tools/MPTask/MPTask.h: -------------------------------------------------------------------------------- 1 | // 2 | // MPTask.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 16/11/8. 6 | // Copyright © 2016年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #define CMD_ECHO @"/bin/echo" 12 | #define CMD_PYTHON @"/usr/bin/python" 13 | #define CMD_LAUCH @"/usr/bin/open" 14 | #define CMD_WHOAMI @"/usr/bin/whoami" 15 | #define CMD_GIT @"/usr/bin/git" 16 | #define CMD_SH @"/bin/sh" 17 | #define CMD_CP @"/bin/cp" 18 | #define CMD_MV @"/bin/mv" 19 | #define CMD_CURL @"/usr/bin/curl" 20 | #define CMD_RUBY @"/usr/bin/ruby" 21 | #define CMD_MDFIND @"/usr/bin/mdfind" 22 | 23 | 24 | //typedef enum : NSUInteger { 25 | // MPGitClone = 0, 26 | // MPGitPull, 27 | // MPGitLog, 28 | //} MPGit; 29 | 30 | @interface MPTask : NSObject{ 31 | 32 | 33 | } 34 | 35 | /** 36 | * 获取对象实例 37 | * 38 | * @return 对象 39 | */ 40 | //+ (MPTask *)task; 41 | 42 | //@property (nonatomic, assign) MPGit commandType; 43 | 44 | /** 45 | 启动 NSTask,执行命令行指令 46 | 47 | @param lanunchPath 启动路径 48 | @param arguments 指令执行参数 49 | @param directoryPath 指令执行目录 50 | @param success 成功回调信息 51 | @param exception 参数错误异常 52 | */ 53 | + (void)runTaskWithLanunchPath:(NSString *)lanunchPath 54 | arguments:(NSArray *)arguments 55 | currentDirectoryPath:(NSString *)directoryPath 56 | onSuccess:(void(^)(NSString *))success 57 | onException:(void(^)(NSException *))exception; 58 | 59 | 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Tools/MPUserNotification/.svn/entries: -------------------------------------------------------------------------------- 1 | 10 2 | 3 | dir 4 | 29926 5 | svn://chux@svn.code.mob.com/ios/project/MobPods/trunk/MobPods/MobPods/Libraries/MPUserNotification 6 | svn://chux@svn.code.mob.com 7 | 8 | 9 | 10 | 2017-07-24T13:31:00.455698Z 11 | 25213 12 | chux 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ddbbef2e-7d24-4ea3-accf-f5ea24af4a8b 28 | 29 | MPUserNotification.h 30 | file 31 | 32 | 33 | 34 | 35 | 2018-03-13T08:46:50.000000Z 36 | 0a896f5d29f6abeea95172c9827e7acf 37 | 2017-07-24T13:31:00.455698Z 38 | 25213 39 | chux 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 433 62 | 63 | MPUserNotification.m 64 | file 65 | 66 | 67 | 68 | 69 | 2018-03-13T08:46:50.000000Z 70 | e6e3453d832a382bde7822462088147d 71 | 2017-07-24T13:31:00.455698Z 72 | 25213 73 | chux 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 2228 96 | 97 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Tools/MPUserNotification/.svn/text-base/MPUserNotification.h.svn-base: -------------------------------------------------------------------------------- 1 | // 2 | // MPUserNotification.h 3 | // MobPods 4 | // 5 | // Created by ShengQiangLiu on 16/11/9. 6 | // Copyright © 2016年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPUserNotification : NSObject 12 | 13 | @property (nonatomic, copy) NSString *title; 14 | 15 | @property (nonatomic, copy) NSString *informativeText; 16 | 17 | + (instancetype)notification; 18 | 19 | - (void)notificationWithTitle:(NSString *)title informativeText:(NSString *)text; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Tools/NSString+Tool.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Tool.h 3 | // TelSalesAssistant 4 | // 5 | // Created by chuxiao on 2017/12/25. 6 | // Copyright © 2017年 chuxiao. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSString (Tool) 12 | 13 | + (NSString *)timeFromTimeStep; 14 | + (NSString *)currentTimeStep; 15 | + (NSString *)timeFromTimeStepWithFormat:(NSString *)format; 16 | 17 | - (NSDictionary *)getLastRangeStrWithFindText:(NSString *)findText; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Views/AXStatusItemPopup/AXStatusItemPopup.h: -------------------------------------------------------------------------------- 1 | // 2 | // StatusItemPopup.h 3 | // StatusItemPopup 4 | // 5 | // Created by Alexander Schuch on 06/03/13. 6 | // Copyright (c) 2013 Alexander Schuch. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AXStatusItemPopup : NSView 12 | 13 | // properties 14 | @property(assign, nonatomic, getter=isActive) BOOL active; 15 | @property(assign, nonatomic) BOOL animated; 16 | @property(strong, nonatomic) NSImage *image; 17 | @property(strong, nonatomic) NSImage *alternateImage; 18 | @property(strong, nonatomic) NSStatusItem *statusItem; 19 | 20 | /** 21 | Popovers may have one of several predefined appearances. 22 | You may specify the appearance of a popover using the constants defined in NSPopoverAppearance. The default appearance is NSPopoverAppearanceMinimal. 23 | 24 | @param appearance NSPopoverAppearance 25 | */ 26 | @property(nonatomic, strong, readonly) NSPopover *popover; 27 | 28 | // init 29 | - (id)initWithViewController:(NSViewController *)controller; 30 | - (id)initWithViewController:(NSViewController *)controller image:(NSImage *)image; 31 | - (id)initWithViewController:(NSViewController *)controller image:(NSImage *)image alternateImage:(NSImage *)alternateImage; 32 | 33 | 34 | // show / hide popover 35 | - (void)showPopover; 36 | - (void)showPopoverAnimated:(BOOL)animated; 37 | - (void)hidePopover; 38 | 39 | // view size 40 | - (void)setContentSize:(CGSize)size; 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Views/CXPopUpButton/CXPopUpButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // CXPopUpButton.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/10. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CXPopUpButton : NSPopUpButton 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Views/CustomSlider/CustomSlider.h: -------------------------------------------------------------------------------- 1 | // 2 | // CustomSlider.h 3 | // X300A 4 | // 5 | // Created by Chen Ling on 15/3/2018. 6 | // Copyright © 2018 Chen Ling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CustomSlider : NSSlider 12 | 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Views/CustomSlider/CustomSliderCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // CustomSliderCell.h 3 | // CustomSlider 4 | // 5 | // Created by Chen Ling on 15/3/2018. 6 | // Copyright © 2018 Chen Ling. All rights reserved. 7 | 8 | #import 9 | 10 | 11 | #define ColorWithRGB(colorCode) [NSColor colorWithDeviceRed:((colorCode>>16)&0xFF)/255.0 green:((colorCode>>8)&0xFF)/255.0 blue:((colorCode)&0xFF)/255.0 alpha:1.0]; 12 | 13 | #define SLIDER_PROGRESS_DEFAUT_COLOR ColorWithRGB(0x3399FF) 14 | #define SLIDER_BACKGROUND_DEFAUT_COLOR ColorWithRGB(0x969696) 15 | #define SLIDER_KNOB_DEFAUT_COLOR ColorWithRGB(0x3399FF) 16 | #define SLIDER_DEFAUT_HEIGHT 3.0 17 | #define SLIDER_DEFAUT_BAR_RADIUS 5.0 18 | #define SLIDER_DEFAUT_KNOB_WIDTH 8.0 19 | #define SLIDER_DEFAUT_KNOB_HEIGHT 8.0 20 | 21 | 22 | IB_DESIGNABLE 23 | @interface CustomSliderCell : NSSliderCell 24 | 25 | @property (nonatomic, strong) IBInspectable NSColor *sliderProgressColor; 26 | @property (nonatomic, strong) IBInspectable NSColor *sliderBackgroundColor; 27 | @property (nonatomic, strong) IBInspectable NSColor *sliderKnobColor; 28 | @property (nonatomic, assign) IBInspectable CGFloat sliderHeight; 29 | @property (nonatomic, assign) IBInspectable CGFloat sliderBarRadius; 30 | @property (nonatomic, assign) IBInspectable CGFloat sliderKnobWidth; 31 | @property (nonatomic, assign) IBInspectable CGFloat sliderKnobHeight; 32 | @end 33 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Views/CustomSlider/NSColor+Hexa.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSColor+Hexa.h 3 | // CustomSlider 4 | // 5 | // Created by Chen Ling on 15/3/2018. 6 | // Copyright © 2018 Chen Ling. All rights reserved. 7 | // 8 | // 9 | 10 | #import 11 | 12 | @interface NSColor (Hexa) 13 | 14 | + (NSColor *)colorFromHexadecimalValue:(NSString *)hexaString; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Views/CustomSlider/NSColor+Hexa.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSColor+Hexa.m 3 | // CustomSlider 4 | // 5 | // Created by Chen Ling on 15/3/2018. 6 | // Copyright © 2018 Chen Ling. All rights reserved. 7 | // 8 | // 9 | 10 | #import "NSColor+Hexa.h" 11 | 12 | @implementation NSColor (Hexa) 13 | 14 | 15 | + (NSColor *)colorFromHexadecimalValue:(NSString *)hexaString { 16 | 17 | if ([hexaString hasPrefix:@"#"]) { 18 | hexaString = [hexaString substringWithRange:NSMakeRange(1, [hexaString length] - 1)]; 19 | } 20 | 21 | unsigned int colorCode = 0; 22 | 23 | if (hexaString) { 24 | NSScanner *scanner = [NSScanner scannerWithString:hexaString]; 25 | (void)[scanner scanHexInt:&colorCode]; 26 | } 27 | 28 | return [NSColor colorWithDeviceRed:((colorCode>>16)&0xFF)/255.0 green:((colorCode>>8)&0xFF)/255.0 blue:((colorCode)&0xFF)/255.0 alpha:1.0]; 29 | } 30 | @end 31 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Views/FDImageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // FDImageView.h 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/5/15. 6 | // Copyright © 2018年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | @class SCSelectionBorder; 11 | 12 | @protocol FDImageSelectRectDelegate 13 | 14 | @optional 15 | - (void)selectRect:(NSRect)rect; 16 | 17 | @end 18 | 19 | @interface FDImageView : NSImageView 20 | @property (strong, readonly) SCSelectionBorder *cropMarker; 21 | @property (assign, nonatomic) id delegate; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/Views/MPDragDropView/MPDragDropView.h: -------------------------------------------------------------------------------- 1 | // 2 | // MPDragDropView.h 3 | // MobPods 4 | // 5 | // Created by chuxiao on 2017/6/20. 6 | // Copyright © 2017年 mob.com. All rights reserved. 7 | // 8 | 9 | #import 10 | @protocol DragDropViewDelegate; 11 | 12 | @interface MPDragDropView : NSView 13 | 14 | //设置代理 15 | @property(assign) IBOutlet id delegate; 16 | 17 | @end 18 | 19 | @protocol DragDropViewDelegate 20 | //设置代理方法 21 | -(void) doGetDragDropArrayFiles:(NSArray*) fileLists; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /FDLocalizeder/FDLocalizeder/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // FDLocalizeder 4 | // 5 | // Created by chuxiao on 2018/4/25. 6 | // Copyright © 2018年 chuxiao. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, const char * argv[]) { 12 | return NSApplicationMain(argc, argv); 13 | } 14 | 15 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files 2 | *.slo 3 | *.lo 4 | *.o 5 | 6 | # Compiled Dynamic libraries 7 | *.so 8 | 9 | # Compiled Static libraries 10 | *.lai 11 | *.la 12 | *.a 13 | 14 | # OS X Finder 15 | .DS_Store 16 | 17 | # Xcode per-user config 18 | *.mode1 19 | *.mode1v3 20 | *.mode2v3 21 | *.perspective 22 | *.perspectivev3 23 | *.pbxuser 24 | xcuserdata 25 | 26 | # Build products 27 | build/ 28 | *.o 29 | *.LinkFileList 30 | *.hmap 31 | 32 | # Automatic backup files 33 | *~.nib/ 34 | *.swp 35 | *~ 36 | *.dat 37 | *.dep 38 | 39 | # *.xcodeproj/ 40 | !*.xcodeproj/project.pbxproj 41 | 42 | 43 | 44 | *.xcuserstate 45 | 46 | c061750_ISO_IEC_29500-1_2012.pdf 47 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 René BIGOT 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/OfficeDocumentHierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/XlsxReaderWriter/OfficeDocumentHierarchy.png -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010-2013 Sam Soffes, http://soff.es 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/SSZipArchive.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'SSZipArchive' 3 | s.version = '0.3.1' 4 | s.summary = 'Utility class for zipping and unzipping files on iOS and Mac.' 5 | s.description = 'SSZipArchive is a simple utility class for zipping and unzipping files on iOS and Mac.' 6 | s.homepage = 'https://github.com/soffes/ssziparchive' 7 | s.license = { :type => 'MIT', :file => 'LICENSE' } 8 | s.author = { 'Sam Soffes' => 'sam@soff.es' } 9 | s.source = { :git => 'https://github.com/soffes/ssziparchive.git', :tag => "v#{s.version}" } 10 | s.ios.deployment_target = '4.0' 11 | s.osx.deployment_target = '10.6' 12 | s.source_files = 'SSZipArchive/**/*', 13 | s.library = 'z' 14 | end 15 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/SSZipArchive.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/SSZipArchive/SSZipArchive-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #ifdef __OBJC__ 8 | #import 9 | #endif 10 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/SSZipArchive/minizip/mztools.h: -------------------------------------------------------------------------------- 1 | /* 2 | Additional tools for Minizip 3 | Code: Xavier Roche '2004 4 | License: Same as ZLIB (www.gzip.org) 5 | */ 6 | 7 | #ifndef _zip_tools_H 8 | #define _zip_tools_H 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | #ifndef _ZLIB_H 15 | #include "zlib.h" 16 | #endif 17 | 18 | #include "unzip.h" 19 | 20 | /* Repair a ZIP file (missing central directory) 21 | file: file to recover 22 | fileOut: output file after recovery 23 | fileOutTmp: temporary file name used for recovery 24 | */ 25 | extern int ZEXPORT unzRepair(const char* file, 26 | const char* fileOut, 27 | const char* fileOutTmp, 28 | uLong* nRecovered, 29 | uLong* bytesRecovered); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/IncorrectHeaders.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/IncorrectHeaders.zip -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/RelativeSymbolicLink.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/RelativeSymbolicLink.zip -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/SymbolicLink.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/SymbolicLink.zip -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/TestArchive.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/TestArchive.zip -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/TestPasswordArchive.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/TestPasswordArchive.zip -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/Unicode.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/Fixtures/Unicode.zip -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/SSZipArchive/Tests/SSZipArchiveTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/LICENCE.md: -------------------------------------------------------------------------------- 1 | XMLDictionary 2 | version 1.4, April 16th, 2014 3 | 4 | Copyright (C) 2011 Charcoal Design 5 | 6 | This software is provided 'as-is', without any express or implied 7 | warranty. In no event will the authors be held liable for any damages 8 | arising from the use of this software. 9 | 10 | Permission is granted to anyone to use this software for any purpose, 11 | including commercial applications, and to alter it and redistribute it 12 | freely, subject to the following restrictions: 13 | 14 | 1. The origin of this software must not be misrepresented; you must not 15 | claim that you wrote the original software. If you use this software 16 | in a product, an acknowledgment in the product documentation would be 17 | appreciated but is not required. 18 | 2. Altered source versions must be plainly marked as such, and must not be 19 | misrepresented as being the original software. 20 | 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/Tests/XMLTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/Tests/XMLTest/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // XMLTest 4 | // 5 | // Created by Nick Lockwood on 28/04/2012. 6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ViewController; 12 | 13 | @interface AppDelegate : UIResponder 14 | 15 | @property (strong, nonatomic) UIWindow *window; 16 | @property (strong, nonatomic) ViewController *viewController; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/Tests/XMLTest/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // XMLTest 4 | // 5 | // Created by Nick Lockwood on 28/04/2012. 6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | #import "ViewController.h" 11 | #import "XMLDictionary.h" 12 | 13 | @implementation AppDelegate 14 | 15 | - (BOOL)application:(__unused UIApplication *)application didFinishLaunchingWithOptions:(__unused NSDictionary *)launchOptions 16 | { 17 | NSURL *URL = [[NSURL alloc] initWithString:@"http://www.ibiblio.org/xml/examples/shakespeare/all_well.xml"]; 18 | NSString *xmlString = [[NSString alloc] initWithContentsOfURL:URL encoding:NSUTF8StringEncoding error:NULL]; 19 | NSLog(@"string: %@", xmlString); 20 | NSDictionary *xmlDoc = [NSDictionary dictionaryWithXMLString:xmlString]; 21 | NSLog(@"dictionary: %@", xmlDoc); 22 | 23 | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 24 | self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 25 | self.window.rootViewController = self.viewController; 26 | [self.window makeKeyAndVisible]; 27 | return YES; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/Tests/XMLTest/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/Tests/XMLTest/Default-568h@2x.png -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/Tests/XMLTest/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // XMLTest 4 | // 5 | // Created by Nick Lockwood on 28/04/2012. 6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/Tests/XMLTest/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // XMLTest 4 | // 5 | // Created by Nick Lockwood on 28/04/2012. 6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | 11 | @interface ViewController () 12 | 13 | @end 14 | 15 | @implementation ViewController 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/Tests/XMLTest/XMLTest-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | com.charcoaldesign.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations~ipad 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationPortraitUpsideDown 35 | UIInterfaceOrientationLandscapeLeft 36 | UIInterfaceOrientationLandscapeRight 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/Tests/XMLTest/XMLTest-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'XMLTest' target in the 'XMLTest' project 3 | // 4 | 5 | #import 6 | 7 | #ifndef __IPHONE_4_0 8 | #warning "This project uses features only available in iOS SDK 4.0 and later." 9 | #endif 10 | 11 | #ifdef __OBJC__ 12 | #import 13 | #import 14 | #endif 15 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/Tests/XMLTest/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | "FDLocalizeder_Excel模板" = "This is a code"; 4 | "This is a code" = "Measure aaaa from \\nthe highest point of your shoulder to the “hem” of dress. Make sure to measure in bare feet and stand straight with your feet together."; 5 | "这是一个code(不能为空)" = "This is a code"; 6 | "this_language_is" = "这是英语"; 7 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/Tests/XMLTest/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // XMLTest 4 | // 5 | // Created by Nick Lockwood on 28/04/2012. 6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "AppDelegate.h" 12 | 13 | int main(int argc, char *argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/ThirdParties/XMLDictionary/XMLDictionary.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "XMLDictionary" 3 | s.version = "1.4" 4 | s.license = { :type => 'zlib', :file => 'LICENCE.md' } 5 | s.summary = "XMLDictionary is a class designed to simplify parsing and generating of XML on iOS and Mac OS." 6 | s.homepage = "https://github.com/nicklockwood/XMLDictionary" 7 | s.authors = "Nick Lockwood" 8 | s.source = { :git => "https://github.com/nicklockwood/XMLDictionary.git", :tag => "1.4" } 9 | s.source_files = 'XMLDictionary' 10 | s.requires_arc = true 11 | s.ios.deployment_target = '4.3' 12 | s.osx.deployment_target = '10.6' 13 | end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter Mac/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.3.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSHumanReadableCopyright 24 | Copyright © 2016 BRAE. All rights reserved. 25 | NSPrincipalClass 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter Mac/XlsxReaderWriter.h: -------------------------------------------------------------------------------- 1 | #ifndef BRAXlsxReaderWriter_h 2 | #define BRAXlsxReaderWriter_h 3 | 4 | #import "BRAOfficeDocumentPackage.h" 5 | #import "BRAWorksheet.h" 6 | #import "BRANumberFormat.h" 7 | #import "BRARelationships.h" 8 | #import "BRADrawing.h" 9 | #import "BRAImage.h" 10 | #import "BRAColumn.h" 11 | #import "BRARow.h" 12 | #import "BRACell.h" 13 | 14 | 15 | 16 | #endif /* BRAXlsxReaderWriter_h */ 17 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "XlsxReaderWriter" 3 | s.version = "2.3.2" 4 | s.summary = "XlsxReaderWriter is an Objective-C library for iPhone / iPad and Mac. It parses and writes Excel OpenXml files (XLSX)." 5 | s.homepage = "https://github.com/renebigot/XlsxReaderWriter" 6 | s.license = "MIT" 7 | s.author = "René Bigot" 8 | s.social_media_url = "https://www.linkedin.com/in/renebigot" 9 | s.platforms = { :ios => "7.0" } 10 | s.source = { :git => "https://github.com/renebigot/XlsxReaderWriter.git", :tag => s.version.to_s } 11 | s.source_files = "XlsxReaderWriter/*.{h,m}" 12 | s.exclude_files = "ThirdParties" 13 | s.frameworks = "Foundation", "UIKit" 14 | s.requires_arc = true 15 | 16 | s.dependency "SSZipArchive", "~> 1.1" 17 | s.dependency "XMLDictionary", "~> 1.4" 18 | 19 | end 20 | 21 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter.xcodeproj/xcshareddata/xcbaselines/45B6E2441A148F7500288A78.xcbaseline/2954B0B9-8AB5-4909-AD5F-73FF57878BD0.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | classNames 6 | 7 | BRAXlsxReaderWriterTests 8 | 9 | testRemove1RowAndKeepMergeCellContent 10 | 11 | com.apple.XCTPerformanceMetric_WallClockTime 12 | 13 | baselineAverage 14 | 0.165 15 | baselineIntegrationDisplayName 16 | Local Baseline 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRACalcChain.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRACalcChain.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 24/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRARelationship.h" 10 | #import "BRARelatedToColumnAndRowProtocol.h" 11 | #import "BRACalcChainCell.h" 12 | 13 | @interface BRACalcChain : BRARelationship 14 | 15 | @property (nonatomic, strong) NSArray *cells; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRACalcChainCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRACalcChainCell.h 3 | // XlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 23/09/2015. 6 | // Copyright © 2015 BRAE. All rights reserved. 7 | // 8 | 9 | #import "BRAOpenXmlSubElement.h" 10 | 11 | @interface BRACalcChainCell : BRAOpenXmlSubElement 12 | 13 | @property (nonatomic, strong) NSString *reference; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRACalcChainCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // BRACalcChainCell.m 3 | // XlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 23/09/2015. 6 | // Copyright © 2015 BRAE. All rights reserved. 7 | // 8 | 9 | #import "BRACalcChainCell.h" 10 | 11 | @implementation BRACalcChainCell 12 | 13 | - (void)loadAttributes { 14 | NSDictionary *dictionaryRepresentation = [super dictionaryRepresentation]; 15 | 16 | _reference = dictionaryRepresentation[@"_r"]; 17 | } 18 | 19 | - (NSDictionary *)dictionaryRepresentation { 20 | NSMutableDictionary *dictionaryRepresentation = [super dictionaryRepresentation].mutableCopy; 21 | 22 | dictionaryRepresentation[@"_r"] = _reference; 23 | 24 | [super setDictionaryRepresentation:dictionaryRepresentation]; 25 | 26 | return dictionaryRepresentation; 27 | } 28 | 29 | - (NSString *)description { 30 | return [NSString stringWithFormat:@"<%@: %p> : %@", [self class], self, _reference]; 31 | } 32 | 33 | @end 34 | 35 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRACellFormat.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRACellFormat.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 08/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BRAOpenXmlSubElement.h" 11 | 12 | @class BRAStyles, BRACellFill, BRANumberFormat; 13 | 14 | @interface BRACellFormat : BRAOpenXmlSubElementWithStyle { 15 | BOOL _isCellStyleXf; 16 | NSDictionary *_stylesTextsAttributes; 17 | BRACellFill *_cellFill; 18 | BRANumberFormat *_numberFormat; 19 | } 20 | 21 | @property (nonatomic, getter=isProtected) BOOL protected; 22 | @property (nonatomic) NSTextAlignment textAlignment; 23 | @property (nonatomic, strong) NSDictionary *textAttributes; 24 | 25 | //Cell format (cellXfs) may have a reference to a cell style format (cellStyleXfs) 26 | @property (nonatomic, weak) BRACellFormat *cellStyleFormat; 27 | 28 | - (void)setCellFill:(BRACellFill *)cellFill; 29 | - (BRACellFill *)cellFill; 30 | 31 | - (void)setNumberFormat:(BRANumberFormat *)numberFormat; 32 | - (BRANumberFormat *)numberFormat; 33 | 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRACellRange.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRACellRange.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 17/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BRAOpenXmlSubElement.h" 11 | 12 | @interface BRACellRange : BRAOpenXmlSubElement { 13 | NSString *_leftColumnName; 14 | NSString *_rightColumnName; 15 | } 16 | 17 | - (instancetype)initWithRangeReference:(NSString *)rangeReference; 18 | - (NSString *)reference; 19 | 20 | @property (nonatomic) NSInteger topRowIndex; 21 | @property (nonatomic) NSInteger bottomRowIndex; 22 | @property (nonatomic) NSInteger leffColumnIndex; 23 | @property (nonatomic) NSInteger rightColumnIndex; 24 | 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAColumn.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAColumn.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 17/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BRAOpenXmlSubElement.h" 11 | 12 | @interface BRAColumn : BRAOpenXmlSubElement 13 | 14 | + (NSInteger)columnIndexForCellReference:(NSString *)cellReference; 15 | + (NSString *)columnNameForCellReference:(NSString *)cellReference; 16 | + (NSString *)columnNameForColumnIndex:(NSInteger)index; 17 | - (instancetype)initWithMinimum:(NSInteger)minimum andMaximum:(NSInteger)maximum; 18 | 19 | @property (nonatomic, getter = hasCustomWidth) BOOL customWidth; 20 | @property (nonatomic) NSInteger minimum; 21 | @property (nonatomic) NSInteger maximum; 22 | @property (nonatomic) NSInteger width; 23 | @property (nonatomic) NSInteger pointWidth; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAComment.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAComment.h 3 | // XlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 23/09/2015. 6 | // Copyright © 2015 BRAE. All rights reserved. 7 | // 8 | 9 | #import "BRAOpenXmlSubElement.h" 10 | 11 | /** This class does not change the comments content. 12 | * It just handles rows and columns deletions / additions */ 13 | 14 | @interface BRAComment : BRAOpenXmlSubElement 15 | 16 | @property (nonatomic, strong) NSString *reference; 17 | 18 | @end 19 | 20 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAComment.m: -------------------------------------------------------------------------------- 1 | // 2 | // BRAComment.m 3 | // XlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 23/09/2015. 6 | // Copyright © 2015 BRAE. All rights reserved. 7 | // 8 | 9 | #import "BRAComment.h" 10 | 11 | @implementation BRAComment 12 | 13 | - (void)loadAttributes { 14 | NSDictionary *dictionaryRepresentation = [super dictionaryRepresentation]; 15 | 16 | _reference = dictionaryRepresentation[@"_ref"]; 17 | } 18 | 19 | - (NSDictionary *)dictionaryRepresentation { 20 | NSMutableDictionary *dictionaryRepresentation = [super dictionaryRepresentation].mutableCopy; 21 | 22 | dictionaryRepresentation[@"_r"] = _reference; 23 | 24 | [super setDictionaryRepresentation:dictionaryRepresentation]; 25 | 26 | return dictionaryRepresentation; 27 | } 28 | 29 | - (NSString *)description { 30 | return [NSString stringWithFormat:@"<%@: %p> : %@", [self class], self, _reference]; 31 | } 32 | 33 | @end 34 | 35 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAComments.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAComments.m 3 | // XlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 23/09/2015. 6 | // Copyright © 2015 BRAE. All rights reserved. 7 | // 8 | 9 | #import "BRARelationship.h" 10 | #import "BRARelationships.h" 11 | #import "BRARelatedToColumnAndRowProtocol.h" 12 | #import "BRAComment.h" 13 | 14 | /** This class does not change the comments content. 15 | * It just handles rows and columns deletions / additions */ 16 | 17 | @interface BRAComments : BRARelationship 18 | 19 | @property (nonatomic, strong) NSArray *comments; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAContentTypes.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAContentTypes.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 05/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BRAOpenXmlElement.h" 11 | #import "NSDictionary+OpenXMLDictionaryParser.h" 12 | #import "BRAContentTypesDefaultExtension.h" 13 | #import "BRAContentTypesOverride.h" 14 | 15 | typedef NSString *BRAContentType; 16 | 17 | @class BRARelationship; 18 | 19 | @interface BRAContentTypes : BRAOpenXmlElement 20 | 21 | - (BOOL)hasOverrideForPart:(NSString *)partName; 22 | - (BOOL)hasContentTypeForPart:(NSString *)partName; 23 | - (void)addContentTypeForExtension:(NSString *)extension; 24 | - (void)overrideContentType:(NSString *)contentType forPart:(NSString *)partName; 25 | 26 | @property (nonatomic, strong) NSArray *defaultExtensions; 27 | @property (nonatomic, strong) NSArray *overrides; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAContentTypesDefaultExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAContentTypesDefaultExtension.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 23/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRAOpenXmlSubElement.h" 10 | 11 | @class BRARelationship; 12 | 13 | @interface BRAContentTypesDefaultExtension : BRAOpenXmlSubElement 14 | 15 | - (instancetype)initWithExtension:(NSString *)extension; 16 | 17 | @property (nonatomic, strong) NSString *extension; 18 | @property (nonatomic, strong) NSString *contentType; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAContentTypesOverride.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAContentTypesOverride.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 23/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRAOpenXmlSubElement.h" 10 | 11 | @class BRARelationship; 12 | 13 | @interface BRAContentTypesOverride : BRAOpenXmlSubElement 14 | 15 | - (instancetype)initWithContentType:(NSString *)contentType forPart:(NSString *)partName; 16 | 17 | @property (nonatomic, strong) NSString *partName; 18 | @property (nonatomic, strong) NSString *contentType; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAContentTypesOverride.m: -------------------------------------------------------------------------------- 1 | // 2 | // BRAContentTypesOverride.m 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 23/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRAContentTypesOverride.h" 10 | #import "BRARelationship.h" 11 | 12 | @implementation BRAContentTypesOverride 13 | 14 | - (instancetype)initWithContentType:(NSString *)contentType forPart:(NSString *)partName { 15 | NSDictionary *attributes = @{ 16 | @"_ContentType": contentType, 17 | @"_PartName": partName, 18 | }; 19 | 20 | self = [super initWithOpenXmlAttributes:attributes]; 21 | 22 | return self; 23 | } 24 | 25 | - (void)loadAttributes { 26 | NSDictionary *dictionaryRepresentation = [super dictionaryRepresentation]; 27 | 28 | self.contentType = dictionaryRepresentation.attributes[@"ContentType"]; 29 | self.partName = dictionaryRepresentation.attributes[@"PartName"]; 30 | } 31 | 32 | - (NSString *)description { 33 | return [NSString stringWithFormat:@"<%@: %p> ContentType: %@ - PartName: %@", self.class, self, _contentType, _partName]; 34 | } 35 | 36 | @end 37 | 38 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRADrawing.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRADrawing.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 22/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRARelationship.h" 10 | #import "BRARelationships.h" 11 | #import "BRARelatedToColumnAndRowProtocol.h" 12 | #import "BRAWorksheetDrawing.h" 13 | #import "BRAImage.h" 14 | 15 | @interface BRADrawing : BRARelationship 16 | 17 | - (BRAWorksheetDrawing *)addDrawingForImage:(BRAImage *)image withAnchor:(BRAAnchor *)anchor; 18 | 19 | @property (nonatomic, strong) NSArray *worksheetDrawings; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAElementWithRelationships.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAElementWithRelationships.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 03/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BRAOpenXmlElement.h" 11 | #import "NSDictionary+OpenXMLDictionaryParser.h" 12 | 13 | @class BRARelationships; 14 | 15 | @interface BRAElementWithRelationships : BRAOpenXmlElement 16 | 17 | @property (nonatomic, strong) BRARelationships *relationships; 18 | 19 | - (NSString *)relationshipsTarget; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAImage.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAImage.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 22/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRARelationship.h" 10 | 11 | @interface BRAImage : BRARelationship 12 | 13 | @property (nonatomic, getter=isJpeg) BOOL jpeg; 14 | @property (nonatomic, strong) BRANativeImage *uiImage; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAImage.m: -------------------------------------------------------------------------------- 1 | // 2 | // BRAImage.m 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 22/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRAImage.h" 10 | 11 | @implementation BRAImage 12 | 13 | - (NSString *)targetFormat { 14 | return self.isJpeg ? @"../media/image%ld.jpeg" : @"../media/image%ld.png"; 15 | } 16 | 17 | + (NSString *)fullRelationshipType { 18 | return @"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"; 19 | } 20 | 21 | - (void)loadXmlContents { 22 | [super loadXmlContents]; 23 | 24 | if (_dataRepresentation == nil && self.target != nil) { 25 | NSString *fullFilePath = [[self.parentDirectory stringByAppendingPathComponent:self.target] stringByStandardizingPath]; 26 | _uiImage = [[BRANativeImage alloc] initWithContentsOfFile:fullFilePath]; 27 | } else if (_dataRepresentation != nil) { 28 | _uiImage = [[BRANativeImage alloc] initWithData:_dataRepresentation]; 29 | } 30 | } 31 | 32 | #pragma mark - 33 | 34 | - (NSString *)xmlRepresentation { 35 | //Have to be nil. BRAImage is not an xml file, so BRAOpenXmlElement will save it as raw data 36 | return nil; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAMergeCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAMergeCell.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 17/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BRACellRange.h" 11 | 12 | @interface BRAMergeCell : BRACellRange 13 | 14 | - (NSString *)firstCellReference; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAMergeCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // BRAMergeCell.m 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 17/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRAMergeCell.h" 10 | 11 | @implementation BRAMergeCell 12 | 13 | - (NSString *)firstCellReference { 14 | return [NSString stringWithFormat:@"%@%ld", _leftColumnName, (long)self.topRowIndex]; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAOfficeDocument.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAOfficeDocument.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 03/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BRARelationship.h" 11 | #import "BRAStyles.h" 12 | #import "BRACalcChain.h" 13 | #import "BRAComments.h" 14 | #import "BRAOpenXmlSubElement.h" 15 | 16 | @class BRASharedStrings; 17 | 18 | @interface BRAOfficeDocument : BRARelationship 19 | 20 | - (BRAWorksheet *)worksheetNamed:(NSString *)worksheetName; 21 | - (BRAWorksheet *)createWorksheetNamed:(NSString *)worksheetName; 22 | - (BRAWorksheet *)createWorksheetNamed:(NSString *)worksheetName byCopyingWorksheet:(BRAWorksheet *)worksheet; 23 | - (void)removeWorksheetNamed:(NSString *)worksheetName; 24 | 25 | @property (nonatomic, weak) BRACalcChain *calcChain; 26 | @property (nonatomic, weak) BRASharedStrings *sharedStrings; 27 | @property (nonatomic, weak) BRAStyles *styles; 28 | @property (nonatomic, strong) NSArray *sheets; 29 | @property (nonatomic, strong, readonly) NSArray *worksheets; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAOfficeDocumentPackage.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAOfficeDocumentPackage.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 03/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BRAElementWithRelationships.h" 11 | #import "BRAOfficeDocument.h" 12 | #import "BRAContentTypes.h" 13 | #import "BRAWorksheet.h" 14 | #import "BRARow.h" 15 | #import "BRAColumn.h" 16 | #import "BRACell.h" 17 | 18 | @interface BRAOfficeDocumentPackage : BRAElementWithRelationships 19 | 20 | @property (nonatomic, strong) BRAContentTypes *contentTypes; 21 | @property (nonatomic, strong) BRAOfficeDocument *workbook; 22 | @property (nonatomic, strong) NSString *cacheDirectory; 23 | 24 | + (instancetype)open:(NSString *)filePath; 25 | + (instancetype)create:(NSString *)filePath; 26 | - (void)saveAs:(NSString *)filePath; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAOpenXmlElement.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAOpenXmlElement.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 05/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "NSDictionary+OpenXMLDictionaryParser.h" 11 | 12 | #define NOT_IMPLEMENTED NSAssert2(NO, @"%s is not implemented in %@", __PRETTY_FUNCTION__, [super class]); 13 | 14 | @interface BRAOpenXmlElement : NSObject { 15 | NSString *_xmlRepresentation; 16 | NSData *_dataRepresentation; 17 | } 18 | 19 | @property (nonatomic, strong) NSString *target; 20 | @property (nonatomic, strong) NSString *parentDirectory; 21 | @property (nonatomic, strong) NSString *xmlRepresentation; 22 | @property (nonatomic, strong) NSData *dataRepresentation; 23 | 24 | - (instancetype)initWithContentsOfTarget:(NSString *)target inParentDirectory:(NSString *)parentDirectory; 25 | - (instancetype)initWithTarget:(NSString *)target inParentDirectory:(NSString *)parentDirectory; 26 | - (void)loadXmlContents; 27 | - (void)save; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAOpenXmlSubElement.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAOpenXmlSubElement.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 22/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "NativeColor+HTML.h" 11 | #import "NativeFont+BoldItalic.h" 12 | #import "XMLDictionary.h" 13 | #import "NSDictionary+DeepCopy.h" 14 | #import "NSDictionary+OpenXmlString.h" 15 | #import "NSDictionary+OpenXMLDictionaryParser.h" 16 | 17 | @class BRAStyles, BRAWorksheet; 18 | 19 | @interface BRAOpenXmlSubElement : NSObject 20 | 21 | - (instancetype)initWithOpenXmlAttributes:(NSDictionary *)attributes; 22 | - (void)loadAttributes; 23 | 24 | @property (nonatomic, strong) NSDictionary *dictionaryRepresentation; 25 | 26 | @end 27 | 28 | 29 | @interface BRAOpenXmlSubElementWithStyle : BRAOpenXmlSubElement { 30 | BRAStyles *_styles; 31 | } 32 | 33 | - (instancetype)initWithOpenXmlAttributes:(NSDictionary *)attributes inStyles:(BRAStyles *)styles; 34 | 35 | @end 36 | 37 | @interface BRAOpenXmlSubElementWithWorksheet : BRAOpenXmlSubElement { 38 | BRAWorksheet *_worksheet; 39 | } 40 | 41 | - (instancetype)initWithOpenXmlAttributes:(NSDictionary *)attributes inWorksheet:(BRAWorksheet *)worksheet; 42 | 43 | @end -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRARelatedToColumnAndRowProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRARelatedToColumnAndRowProtocol.h 3 | // XlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 23/09/2015. 6 | // Copyright © 2015 BRAE. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol BRARelatedToColumnAndRowProtocol 12 | 13 | @required 14 | - (void)didAddRowsAtIndexes:(NSIndexSet *)indexes; 15 | - (void)didRemoveRowsAtIndexes:(NSIndexSet *)indexes; 16 | - (void)didAddColumnsAtIndexes:(NSIndexSet *)indexes; 17 | - (void)didRemoveColumnsAtIndexes:(NSIndexSet *)indexes; 18 | 19 | @end -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRARelationship.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRARelationship.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 05/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "XMLDictionary.h" 11 | #import "NativeColor+OpenXML.h" 12 | #import "BRAElementWithRelationships.h" 13 | 14 | @interface BRARelationship : BRAElementWithRelationships 15 | 16 | + (NSString *)fullRelationshipType; 17 | - (instancetype)initWithId:(NSString *)relationshipId type:(NSString *)relationshipType andTarget:(NSString *)relationTarget inParentDirectory:(NSString *)parentDirectory; 18 | - (instancetype)initWithXmlRepresentation:(NSString *)xmlRepresentation forRelationId:(NSString *)relationId inParentDirectory:(NSString *)parentDirectory; 19 | - (instancetype)initWithDataRepresentation:(NSData *)dataRepresentation forRelationId:(NSString *)relationId inParentDirectory:(NSString *)parentDirectory; 20 | - (NSString *)contentType; 21 | - (NSString *)targetFormat; 22 | - (NSString *)newTarget; 23 | 24 | @property (nonatomic, strong) NSString *identifier; 25 | @property (nonatomic, strong) NSString *type; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRARelationships.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRARelationships.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 04/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BRARelationship.h" 11 | 12 | @interface BRARelationships : BRAOpenXmlElement 13 | 14 | @property (nonatomic, strong) NSMutableArray *relationshipsArray; 15 | 16 | - (id)relationshipWithId:(NSString *)rId; 17 | - (id)anyRelationshipWithType:(NSString *)relationshipType; 18 | - (void)addRelationship:(BRARelationship *)relationship; 19 | - (void)removeRelationshipWithId:(NSString *)identifier; 20 | - (NSArray *)allRelationships; 21 | - (NSString *)relationshipIdForNewRelationship; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRARow.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRARow.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 17/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BRAOpenXmlSubElement.h" 11 | 12 | @class BRACell, BRAWorksheet; 13 | 14 | @interface BRARow : BRAOpenXmlSubElementWithWorksheet 15 | 16 | + (NSInteger)rowIndexForCellReference:(NSString *)cellReference; 17 | - (instancetype)initWithRowIndex:(NSInteger)rowIndex inWorksheet:(BRAWorksheet *)worksheet; 18 | - (void)addCell:(BRACell *)cell; 19 | 20 | @property (nonatomic, getter=hasCustomHeight) BOOL customHeight; 21 | @property (nonatomic) NSInteger rowIndex; 22 | @property (nonatomic) NSInteger height; 23 | @property (nonatomic, strong) NSMutableArray *cells; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRASharedString.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRASharedString.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 07/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | 10 | #import "BRAOfficeDocument.h" 11 | #import "BRAOpenXmlSubElement.h" 12 | 13 | @interface BRASharedString : BRAOpenXmlSubElementWithStyle { 14 | NSMutableAttributedString *_attributedString; 15 | } 16 | 17 | - (instancetype)initWithAttributedString:(NSAttributedString *)attributedString inStyles:(BRAStyles *)styles; 18 | 19 | //Read only ! We won't change shared strings but create new ones 20 | - (NSAttributedString *)attributedString; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRASharedStrings.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRASharedStrings.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 05/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRARelationship.h" 10 | #import "BRASharedString.h" 11 | 12 | @class BRAStyles; 13 | 14 | @interface BRASharedStrings : BRARelationship 15 | 16 | - (void)addSharedString:(BRASharedString *)sharedString; 17 | 18 | @property (nonatomic, weak) BRAStyles *styles; 19 | @property (nonatomic, strong) NSArray *sharedStrings; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRASheet.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRASheet.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 05/11/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRAOpenXmlSubElement.h" 10 | 11 | @interface BRASheet : BRAOpenXmlSubElement 12 | 13 | @property (nonatomic, strong) NSString *identifier; 14 | @property (nonatomic, strong) NSString *name; 15 | @property (nonatomic, strong) NSString *sheetId; 16 | @property (nonatomic, strong) NSString *state; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRASheet.m: -------------------------------------------------------------------------------- 1 | // 2 | // BRASheet.m 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 05/11/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRASheet.h" 10 | 11 | @implementation BRASheet 12 | 13 | - (void)loadAttributes { 14 | NSDictionary *dictionaryRepresentation = [super dictionaryRepresentation]; 15 | 16 | _name = dictionaryRepresentation[@"_name"]; 17 | _identifier = dictionaryRepresentation[@"_r:id"]; 18 | _sheetId = dictionaryRepresentation[@"_sheetId"]; 19 | _state = dictionaryRepresentation[@"_state"]; 20 | } 21 | 22 | - (NSDictionary *)dictionaryRepresentation { 23 | NSMutableDictionary *dictionaryRepresentation = [super dictionaryRepresentation].mutableCopy; 24 | 25 | dictionaryRepresentation[@"_name"] = _name; 26 | dictionaryRepresentation[@"_r:id"] = _identifier; 27 | dictionaryRepresentation[@"_sheetId"] = _sheetId; 28 | 29 | if (_state != nil) { 30 | dictionaryRepresentation[@"_state"] = _state; 31 | } 32 | 33 | [super setDictionaryRepresentation:dictionaryRepresentation]; 34 | 35 | return dictionaryRepresentation; 36 | } 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAStyles.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAStyles.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 07/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRARelationship.h" 10 | #import "BRACellFill.h" 11 | #import "BRACellFormat.h" 12 | #import "BRANumberFormat.h" 13 | #import "BRATheme.h" 14 | #import "BRAPlatformSpecificDefines.h" 15 | 16 | @interface BRAStyles : BRARelationship { 17 | NSDictionary *_attributes; 18 | } 19 | 20 | @property (nonatomic, strong) NSArray *indexedColors; 21 | @property (nonatomic, strong) NSArray *textsAttributes; 22 | @property (nonatomic, strong) NSArray *cellFormats; 23 | @property (nonatomic, strong) NSArray *cellStyleFormats; 24 | @property (nonatomic, strong) NSArray *cellFills; 25 | @property (nonatomic, strong) NSDictionary *numberFormats; 26 | @property (nonatomic, weak) BRATheme *theme; 27 | 28 | - (void)loadThemableContent; 29 | - (NSDictionary *)defaultNumberFormats; 30 | - (NSDictionary *)attributedStringAttributesFromOpenXmlAttributes:(NSDictionary *)attributes; 31 | - (BRANativeColor *)colorWithOpenXmlAttributes:(NSDictionary *)attributes; 32 | - (NSDictionary *)openXmlAttributesWithColor:(BRANativeColor *)color; 33 | - (NSString *)addNumberFormat:(BRANumberFormat *)numberFormat; 34 | - (NSInteger)addStyleByCopyingStyleWithId:(NSInteger)styleId; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRATheme.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRATheme.h 3 | // XlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 06/07/2015. 6 | // Copyright (c) 2015 BRAE. All rights reserved. 7 | // 8 | 9 | #import "BRARelationship.h" 10 | 11 | @interface BRATheme : BRARelationship 12 | 13 | @property (nonatomic, strong, readonly) NSArray *colors; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAVmlDrawing.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAVmlDrawing.h 3 | // XlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 28/09/2015. 6 | // Copyright © 2015 BRAE. All rights reserved. 7 | // 8 | 9 | #import "BRARelationship.h" 10 | 11 | @interface BRAVmlDrawing : BRARelationship 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAVmlDrawing.m: -------------------------------------------------------------------------------- 1 | // 2 | // BRAVmlDrawing.m 3 | // XlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 28/09/2015. 6 | // Copyright © 2015 BRAE. All rights reserved. 7 | // 8 | 9 | #import "BRAVmlDrawing.h" 10 | 11 | @implementation BRAVmlDrawing 12 | 13 | - (NSString *)targetFormat { 14 | return @"../drawings/vmlDrawing%ld.vml"; 15 | } 16 | 17 | + (NSString *)fullRelationshipType { 18 | return @"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing"; 19 | } 20 | 21 | - (void)loadXmlContents { 22 | [super loadXmlContents]; 23 | } 24 | 25 | #pragma mark - 26 | 27 | - (NSString *)xmlRepresentation { 28 | //Have to be nil. BRAImage is not an xml file, so BRAOpenXmlElement will save it as raw data 29 | return nil; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/BRAWorksheetDrawing.h: -------------------------------------------------------------------------------- 1 | // 2 | // BRAWorksheetDrawing.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 22/10/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | #import "BRAPlatformSpecificDefines.h" 9 | #import "BRAOpenXmlSubElement.h" 10 | #import "BRAImage.h" 11 | 12 | @interface BRAAnchor : NSObject 13 | 14 | - (NSDictionary *)openXmlAttributesForNewAnchoredDrawing; 15 | 16 | @end 17 | 18 | @interface BRAAbsoluteAnchor : BRAAnchor 19 | 20 | @property (nonatomic) CGRect frame; 21 | 22 | @end 23 | 24 | @interface BRAOneCellAnchor : BRAAnchor 25 | 26 | @property (nonatomic) CGSize size; 27 | @property (nonatomic) CGPoint topLeftCellOffset; 28 | @property (nonatomic, strong) NSString *topLeftCellReference; 29 | 30 | @end 31 | 32 | @interface BRATwoCellAnchor : BRAOneCellAnchor 33 | 34 | @property (nonatomic) CGPoint bottomRightCellOffset; 35 | @property (nonatomic, strong) NSString *bottomRightCellReference; 36 | 37 | @end 38 | 39 | @interface BRAWorksheetDrawing : BRAOpenXmlSubElement 40 | 41 | @property (nonatomic, getter=shouldKeepAspectRatio) BOOL keepAspectRatio; 42 | @property (nonatomic) BRANativeEdgeInsets insets; 43 | @property (nonatomic, strong) BRAAnchor *anchor; 44 | @property (nonatomic, strong) NSString *name; 45 | @property (nonatomic, strong) NSString *identifier; 46 | @property (nonatomic, strong) NSString *drawingIdentifier; 47 | @property (nonatomic, strong) BRAImage *image; 48 | 49 | - (instancetype)initWithImage:(BRAImage *)image andAnchor:(BRAAnchor *)anchor; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/NSDictionary+DeepCopy.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSDictionary+DeepCopy.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 20/06/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSDictionary (DeepCopy) 12 | 13 | - (NSMutableDictionary *)mutableDeepCopy; 14 | 15 | @end 16 | 17 | @interface NSArray (DeepCopy) 18 | 19 | - (NSMutableArray *)mutableDeepCopy; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/NSDictionary+OpenXMLDictionaryParser.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSDictionary+OpenXmlDictionaryParser.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 19/06/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "XMLDictionary.h" 10 | 11 | @interface NSDictionary (OpenXmlDictionaryParser) 12 | 13 | + (NSDictionary *)dictionaryWithOpenXmlParser:(NSXMLParser *)parser; 14 | + (NSDictionary *)dictionaryWithOpenXmlData:(NSData *)data; 15 | + (NSDictionary *)dictionaryWithOpenXmlString:(NSString *)string; 16 | + (NSDictionary *)dictionaryWithOpenXmlFile:(NSString *)path; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/NSDictionary+OpenXmlString.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSDictionary+OpenXmlString.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 03/09/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "XMLDictionary.h" 11 | 12 | @interface NSDictionary (OpenXmlString) 13 | 14 | - (NSString *)openXmlStringInNodeNamed:(NSString *)nodeName; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/NativeColor+HTML.h: -------------------------------------------------------------------------------- 1 | // 2 | // NativeColor+HTML.h 3 | // FasciaLib 4 | // 5 | // Created by René Bigot on 26/01/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRAPlatformSpecificDefines.h" 10 | 11 | @interface BRANativeColor(HTML) 12 | 13 | + (BRANativeColor *)colorWithHexString:(NSString *)hexString; 14 | + (CGFloat)colorComponentFrom:(NSString *)string start:(NSUInteger)start length:(NSUInteger)length; 15 | - (NSString *)hexStringValue; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/NativeColor+OpenXML.h: -------------------------------------------------------------------------------- 1 | // 2 | // NativeColor+OpenXml.h 3 | // Levé 4 | // 5 | // Created by René BIGOT on 14/04/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRAPlatformSpecificDefines.h" 10 | #import "NativeColor+HTML.h" 11 | 12 | @interface BRANativeColor (OpenXml) 13 | 14 | + (NSArray *)defaultIndexedColors; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/NativeFont+BoldItalic.h: -------------------------------------------------------------------------------- 1 | // 2 | // NativeFont+BoldItalic.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 22/04/2014. 6 | // Copyright (c) 2014 René Bigot. All rights reserved. 7 | // 8 | 9 | #import "BRAPlatformSpecificDefines.h" 10 | 11 | static const NSString *kBRAFontNameRegular = @"regular"; 12 | static const NSString *kBRAFontNameItalic = @"italic"; 13 | static const NSString *kBRAFontNameBold = @"bold"; 14 | static const NSString *kBRAFontNameBoldItalic = @"bold-italic"; 15 | static const NSString *kBRAFontNameWindows = @"windows"; 16 | 17 | @interface BRANativeFont (BoldItalic) 18 | 19 | + (BRANativeFont *)nativeFontWithName:(NSString *)fontName size:(CGFloat)size bold:(BOOL)isBold italic:(BOOL)isItalic; 20 | - (NSDictionary *)windowsFontProperties; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriter/XlsxReaderWriter-swift-bridge.h: -------------------------------------------------------------------------------- 1 | // 2 | // XlsxReaderWriter-swift-bridge.h 3 | // BRAXlsxReaderWriter 4 | // 5 | // Created by René BIGOT on 02/09/2015. 6 | // Copyright (c) 2015 René Bigot. All rights reserved. 7 | // 8 | 9 | 10 | #import "NativeFont+BoldItalic.h" 11 | #import "NativeColor+OpenXML.h" 12 | #import "NativeColor+HTML.h" 13 | #import "XMLDictionary.h" 14 | #import "NSDictionary+OpenXmlString.h" 15 | #import "NSDictionary+OpenXMLDictionaryParser.h" 16 | #import "NSDictionary+DeepCopy.h" 17 | #import "BRAWorksheetDrawing.h" 18 | #import "BRAWorksheet.h" 19 | #import "BRATheme.h" 20 | #import "BRAStyles.h" 21 | #import "BRASheet.h" 22 | #import "BRASharedStrings.h" 23 | #import "BRASharedString.h" 24 | #import "BRARow.h" 25 | #import "BRARelationships.h" 26 | #import "BRARelationship.h" 27 | #import "BRAOpenXmlSubElement.h" 28 | #import "BRAOpenXmlElement.h" 29 | #import "BRAOfficeDocumentPackage.h" 30 | #import "BRAOfficeDocument.h" 31 | #import "BRANumberFormat.h" 32 | #import "BRAMergeCell.h" 33 | #import "BRAImage.h" 34 | #import "BRAElementWithRelationships.h" 35 | #import "BRADrawing.h" 36 | #import "BRAContentTypesOverride.h" 37 | #import "BRAContentTypesDefaultExtension.h" 38 | #import "BRAContentTypes.h" 39 | #import "BRAColumn.h" 40 | #import "BRACellRange.h" 41 | #import "BRACellFormat.h" 42 | #import "BRACellFill.h" 43 | #import "BRACell.h" 44 | #import "BRACalcChain.h" -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriterTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriterTests/photo-1415226481302-c40f24f4d45e.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/XlsxReaderWriter/XlsxReaderWriterTests/photo-1415226481302-c40f24f4d45e.jpeg -------------------------------------------------------------------------------- /FDLocalizeder/XlsxReaderWriter/XlsxReaderWriterTests/testWorkbook.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder/XlsxReaderWriter/XlsxReaderWriterTests/testWorkbook.xlsx -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo.xcodeproj/project.xcworkspace/xcuserdata/chuxiao.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizederDemo/FDLocalizederDemo.xcodeproj/project.xcworkspace/xcuserdata/chuxiao.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo.xcodeproj/xcuserdata/chuxiao.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | FDLocalizederDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | FDLocalizederDemo.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 0 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // FDLocalizederDemo 4 | // 5 | // Created by chuxiao on 2018/12/7. 6 | // Copyright © 2018年 chuxiao. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // FDLocalizederDemo 4 | // 5 | // Created by chuxiao on 2018/12/7. 6 | // Copyright © 2018年 chuxiao. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/en.lproj/LocalizaFile1.strings: -------------------------------------------------------------------------------- 1 | /* 2 | LocalizaFile1.strings 3 | FDLocalizederDemo 4 | 5 | Created by chuxiao on 2018/12/7. 6 | Copyright © 2018年 chuxiao. All rights reserved. 7 | */ 8 | 9 | /** 10 | 这是一个注释 11 | 12 | ***也可以通过双斜杠(//)添加注释*** 13 | ***也可以不添加注释*** 14 | */ 15 | "FDLocalizeder_Excel模板" = "This is a code"; 16 | "This is a code" = "Measure from the highest point of your shoulder to the hem of dress. Make sure to measure in bare feet and stand straight with your feet together."; 17 | "这是一个code(不能为空)" = "This is a code"; 18 | "this_language_is" = "这是英语"; 19 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/en.lproj/LocalizaFile2.strings: -------------------------------------------------------------------------------- 1 | /* 2 | LocalizaFile2.strings 3 | FDLocalizederDemo 4 | 5 | Created by chuxiao on 2018/12/7. 6 | Copyright © 2018年 chuxiao. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/es.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | "FDLocalizeder_Excel模板" = "Longitud"; 3 | "This is a code" = "Mida desde el punto más alto de su hombro hasta el dobladillo del vestido. Asegúrese de medir con los pies descalzos y estar de pie con los pies juntos."; 4 | "这是一个code(不能为空)" = "Nota:"; 5 | "app_note_explaination1" = "La tabla de tamaños solo sirve de referencia."; 6 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/es.lproj/LocalizaFile1.strings: -------------------------------------------------------------------------------- 1 | /* 2 | LocalizaFile1.strings 3 | FDLocalizederDemo 4 | 5 | Created by chuxiao on 2018/12/7. 6 | Copyright © 2018年 chuxiao. All rights reserved. 7 | */ 8 | 9 | /** 10 | 这是一个注释 11 | 12 | ***也可以通过双斜杠(//)添加注释*** 13 | ***也可以不添加注释*** 14 | */ 15 | "FDLocalizeder_Excel模板" = "Longitud"; 16 | "This is a code" = "Mida desde el punto más alto de su hombro hasta el dobladillo del vestido. Asegúrese de medir con los pies descalzos y estar de pie con los pies juntos."; 17 | "这是一个code(不能为空)" = "Nota:"; 18 | "this_language_is" = "这是西班牙语"; 19 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/es.lproj/LocalizaFile2.strings: -------------------------------------------------------------------------------- 1 | /* 2 | LocalizaFile2.strings 3 | FDLocalizederDemo 4 | 5 | Created by chuxiao on 2018/12/7. 6 | Copyright © 2018年 chuxiao. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/es.lproj/Main.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/fr.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | "FDLocalizeder_Excel模板" = "Longueur"; 3 | "This is a code" = "Mesurez de point le plus haut de votre épaule jusqu\'à l\'ourlet de la robe. Assurez-vous de faire la mesure pieds nus et en vous tenant droite avec vos pieds joints."; 4 | "这是一个code(不能为空)" = "Remarque :"; 5 | "app_note_explaination1" = "Le tableau des tailles est à titre de référence uniquement."; 6 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/fr.lproj/LocalizaFile1.strings: -------------------------------------------------------------------------------- 1 | /* 2 | LocalizaFile1.strings 3 | FDLocalizederDemo 4 | 5 | Created by chuxiao on 2018/12/7. 6 | Copyright © 2018年 chuxiao. All rights reserved. 7 | */ 8 | 9 | /** 10 | 这是一个注释 11 | 12 | ***也可以通过双斜杠(//)添加注释*** 13 | ***也可以不添加注释*** 14 | */ 15 | "FDLocalizeder_Excel模板" = "Longueur"; 16 | "This is a code" = "Mesurez de point le plus haut de votre épaule jusqu\'à l\'ourlet de la robe. Assurez-vous de faire la mesure pieds nus et en vous tenant droite avec vos pieds joints."; 17 | "这是一个code(不能为空)" = "Remarque :"; 18 | "this_language_is" = "这是法语"; 19 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/fr.lproj/LocalizaFile2.strings: -------------------------------------------------------------------------------- 1 | /* 2 | LocalizaFile2.strings 3 | FDLocalizederDemo 4 | 5 | Created by chuxiao on 2018/12/7. 6 | Copyright © 2018年 chuxiao. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/fr.lproj/Main.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // FDLocalizederDemo 4 | // 5 | // Created by chuxiao on 2018/12/7. 6 | // Copyright © 2018年 chuxiao. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/zh-Hant.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | "FDLocalizeder_Excel模板" = "说明:\n\n第一列code不能为空,第一排语言标识不能为空。\n\n语言标识可以通过项目里的Languages.plist和LanguageBindFile.plist进行配置"; 3 | "This is a code" = "从肩膀的最高点一直量到衣服的下摆。一定要光着脚,双脚并拢站直。"; 4 | "这是一个code(不能为空)" = "这是一个code"; 5 | "app_note_explaination1" = "แผนภูมิขนาดนี้ใช้เพื่อการอ้างอิงเท่านั้น"; 6 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/zh-Hant.lproj/LocalizaFile1.strings: -------------------------------------------------------------------------------- 1 | /* 2 | LocalizaFile1.strings 3 | FDLocalizederDemo 4 | 5 | Created by chuxiao on 2018/12/7. 6 | Copyright © 2018年 chuxiao. All rights reserved. 7 | */ 8 | 9 | /** 10 | 这是一个注释 11 | 12 | ***也可以通过双斜杠(//)添加注释*** 13 | ***也可以不添加注释*** 14 | */ 15 | "FDLocalizeder_Excel模板" = "说明:\n\n第一列code不能为空,第一排语言标识不能为空。\n\n语言标识可以通过项目里的Languages.plist和LanguageBindFile.plist进行配置"; 16 | "This is a code" = "从肩膀的最高点一直量到衣服的下摆。一定要光着脚,双脚并拢站直。"; 17 | "这是一个code(不能为空)" = "这是一个code"; 18 | "this_language_is" = "这是繁体中文"; 19 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/zh-Hant.lproj/LocalizaFile2.strings: -------------------------------------------------------------------------------- 1 | /* 2 | LocalizaFile2.strings 3 | FDLocalizederDemo 4 | 5 | Created by chuxiao on 2018/12/7. 6 | Copyright © 2018年 chuxiao. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemo/zh-Hant.lproj/Main.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemoTests/FDLocalizederDemoTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // FDLocalizederDemoTests.m 3 | // FDLocalizederDemoTests 4 | // 5 | // Created by chuxiao on 2018/12/7. 6 | // Copyright © 2018年 chuxiao. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FDLocalizederDemoTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation FDLocalizederDemoTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /FDLocalizederDemo/FDLocalizederDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /FDLocalizeder_Excel模板.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chuxao/FDLocalizeder/7f8a7b822ac4a90c52f66fbccb79a00136642c1d/FDLocalizeder_Excel模板.xlsx -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 chuxiaojiajia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | --------------------------------------------------------------------------------