├── README.md ├── ReadChinese.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── Ashen.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── Ashen.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ ├── ReadChinese.xcscheme │ └── xcschememanagement.plist └── ReadChinese ├── ASConvertor ├── ASConvertor.h ├── ASConvertor.m └── ts.tab ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets └── AppIcon.appiconset │ └── Contents.json ├── Base.lproj └── Main.storyboard ├── Info.plist ├── ViewController.h ├── ViewController.m ├── main.m └── screenshot.png /README.md: -------------------------------------------------------------------------------- 1 | # ReadChinese 2 | 读取某个目录中的所有中文,并且将这些中文按照多语言(.string)格式写入文件中,可以直接拿来实现国际化 3 | 4 | 5 | ###操作示例图如下 6 | ![操作示例图](https://github.com/Ashen-Zhao/ReadChinese/blob/master/ReadChinese/screenshot.png) 7 | 8 | 9 | ###使用说明 10 |  本项目中,只是识别了.m和.h文件中的中文字符串,如果想要识别.swift等,请在`ViewController.m` 中的 `- (void)readFiles:(NSString *)str ` 方法中的`extension` 数组中,加入相应的后缀名即可。 11 |  该导出的文件,默认以`chinese.txt` 的形式存在于你选择的导出路径,想要修改导出文件名,请进入`- (IBAction)OpenFile:(NSButton *)sender` 方法中进行修改即可。 -------------------------------------------------------------------------------- /ReadChinese.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 8C8288191C32681E00D82F1B /* screenshot.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C8288181C32681E00D82F1B /* screenshot.png */; }; 11 | 8C8288321C34D00E00D82F1B /* ASConvertor.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C8288301C34D00E00D82F1B /* ASConvertor.m */; }; 12 | 8C8288331C34D00E00D82F1B /* ts.tab in Resources */ = {isa = PBXBuildFile; fileRef = 8C8288311C34D00E00D82F1B /* ts.tab */; }; 13 | 8C87AEA71C1982BA00AA8519 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C87AEA61C1982BA00AA8519 /* AppDelegate.m */; }; 14 | 8C87AEAA1C1982BA00AA8519 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C87AEA91C1982BA00AA8519 /* main.m */; }; 15 | 8C87AEAD1C1982BA00AA8519 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C87AEAC1C1982BA00AA8519 /* ViewController.m */; }; 16 | 8C87AEAF1C1982BA00AA8519 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8C87AEAE1C1982BA00AA8519 /* Assets.xcassets */; }; 17 | 8C87AEB21C1982BA00AA8519 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8C87AEB01C1982BA00AA8519 /* Main.storyboard */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXFileReference section */ 21 | 8C8288181C32681E00D82F1B /* screenshot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = screenshot.png; sourceTree = ""; }; 22 | 8C82882F1C34D00E00D82F1B /* ASConvertor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASConvertor.h; sourceTree = ""; }; 23 | 8C8288301C34D00E00D82F1B /* ASConvertor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASConvertor.m; sourceTree = ""; }; 24 | 8C8288311C34D00E00D82F1B /* ts.tab */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ts.tab; sourceTree = ""; }; 25 | 8C87AEA21C1982BA00AA8519 /* ReadChinese.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ReadChinese.app; sourceTree = BUILT_PRODUCTS_DIR; }; 26 | 8C87AEA51C1982BA00AA8519 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 27 | 8C87AEA61C1982BA00AA8519 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 28 | 8C87AEA91C1982BA00AA8519 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 29 | 8C87AEAB1C1982BA00AA8519 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 30 | 8C87AEAC1C1982BA00AA8519 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 31 | 8C87AEAE1C1982BA00AA8519 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 32 | 8C87AEB11C1982BA00AA8519 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 33 | 8C87AEB31C1982BA00AA8519 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 34 | /* End PBXFileReference section */ 35 | 36 | /* Begin PBXFrameworksBuildPhase section */ 37 | 8C87AE9F1C1982BA00AA8519 /* Frameworks */ = { 38 | isa = PBXFrameworksBuildPhase; 39 | buildActionMask = 2147483647; 40 | files = ( 41 | ); 42 | runOnlyForDeploymentPostprocessing = 0; 43 | }; 44 | /* End PBXFrameworksBuildPhase section */ 45 | 46 | /* Begin PBXGroup section */ 47 | 8C82882E1C34D00E00D82F1B /* ASConvertor */ = { 48 | isa = PBXGroup; 49 | children = ( 50 | 8C82882F1C34D00E00D82F1B /* ASConvertor.h */, 51 | 8C8288301C34D00E00D82F1B /* ASConvertor.m */, 52 | 8C8288311C34D00E00D82F1B /* ts.tab */, 53 | ); 54 | path = ASConvertor; 55 | sourceTree = ""; 56 | }; 57 | 8C87AE991C1982BA00AA8519 = { 58 | isa = PBXGroup; 59 | children = ( 60 | 8C87AEA41C1982BA00AA8519 /* ReadChinese */, 61 | 8C87AEA31C1982BA00AA8519 /* Products */, 62 | ); 63 | sourceTree = ""; 64 | }; 65 | 8C87AEA31C1982BA00AA8519 /* Products */ = { 66 | isa = PBXGroup; 67 | children = ( 68 | 8C87AEA21C1982BA00AA8519 /* ReadChinese.app */, 69 | ); 70 | name = Products; 71 | sourceTree = ""; 72 | }; 73 | 8C87AEA41C1982BA00AA8519 /* ReadChinese */ = { 74 | isa = PBXGroup; 75 | children = ( 76 | 8C82882E1C34D00E00D82F1B /* ASConvertor */, 77 | 8CE3AA021C1EBBE80088E5EC /* screenshots */, 78 | 8C87AEA51C1982BA00AA8519 /* AppDelegate.h */, 79 | 8C87AEA61C1982BA00AA8519 /* AppDelegate.m */, 80 | 8C87AEAB1C1982BA00AA8519 /* ViewController.h */, 81 | 8C87AEAC1C1982BA00AA8519 /* ViewController.m */, 82 | 8C87AEAE1C1982BA00AA8519 /* Assets.xcassets */, 83 | 8C87AEB01C1982BA00AA8519 /* Main.storyboard */, 84 | 8C87AEB31C1982BA00AA8519 /* Info.plist */, 85 | 8C87AEA81C1982BA00AA8519 /* Supporting Files */, 86 | ); 87 | path = ReadChinese; 88 | sourceTree = ""; 89 | }; 90 | 8C87AEA81C1982BA00AA8519 /* Supporting Files */ = { 91 | isa = PBXGroup; 92 | children = ( 93 | 8C87AEA91C1982BA00AA8519 /* main.m */, 94 | ); 95 | name = "Supporting Files"; 96 | sourceTree = ""; 97 | }; 98 | 8CE3AA021C1EBBE80088E5EC /* screenshots */ = { 99 | isa = PBXGroup; 100 | children = ( 101 | 8C8288181C32681E00D82F1B /* screenshot.png */, 102 | ); 103 | name = screenshots; 104 | sourceTree = ""; 105 | }; 106 | /* End PBXGroup section */ 107 | 108 | /* Begin PBXNativeTarget section */ 109 | 8C87AEA11C1982BA00AA8519 /* ReadChinese */ = { 110 | isa = PBXNativeTarget; 111 | buildConfigurationList = 8C87AEB61C1982BA00AA8519 /* Build configuration list for PBXNativeTarget "ReadChinese" */; 112 | buildPhases = ( 113 | 8C87AE9E1C1982BA00AA8519 /* Sources */, 114 | 8C87AE9F1C1982BA00AA8519 /* Frameworks */, 115 | 8C87AEA01C1982BA00AA8519 /* Resources */, 116 | ); 117 | buildRules = ( 118 | ); 119 | dependencies = ( 120 | ); 121 | name = ReadChinese; 122 | productName = ReadChinese; 123 | productReference = 8C87AEA21C1982BA00AA8519 /* ReadChinese.app */; 124 | productType = "com.apple.product-type.application"; 125 | }; 126 | /* End PBXNativeTarget section */ 127 | 128 | /* Begin PBXProject section */ 129 | 8C87AE9A1C1982BA00AA8519 /* Project object */ = { 130 | isa = PBXProject; 131 | attributes = { 132 | LastUpgradeCheck = 0710; 133 | ORGANIZATIONNAME = Ashen; 134 | TargetAttributes = { 135 | 8C87AEA11C1982BA00AA8519 = { 136 | CreatedOnToolsVersion = 7.1; 137 | }; 138 | }; 139 | }; 140 | buildConfigurationList = 8C87AE9D1C1982BA00AA8519 /* Build configuration list for PBXProject "ReadChinese" */; 141 | compatibilityVersion = "Xcode 3.2"; 142 | developmentRegion = English; 143 | hasScannedForEncodings = 0; 144 | knownRegions = ( 145 | en, 146 | Base, 147 | ); 148 | mainGroup = 8C87AE991C1982BA00AA8519; 149 | productRefGroup = 8C87AEA31C1982BA00AA8519 /* Products */; 150 | projectDirPath = ""; 151 | projectRoot = ""; 152 | targets = ( 153 | 8C87AEA11C1982BA00AA8519 /* ReadChinese */, 154 | ); 155 | }; 156 | /* End PBXProject section */ 157 | 158 | /* Begin PBXResourcesBuildPhase section */ 159 | 8C87AEA01C1982BA00AA8519 /* Resources */ = { 160 | isa = PBXResourcesBuildPhase; 161 | buildActionMask = 2147483647; 162 | files = ( 163 | 8C87AEAF1C1982BA00AA8519 /* Assets.xcassets in Resources */, 164 | 8C87AEB21C1982BA00AA8519 /* Main.storyboard in Resources */, 165 | 8C8288331C34D00E00D82F1B /* ts.tab in Resources */, 166 | 8C8288191C32681E00D82F1B /* screenshot.png in Resources */, 167 | ); 168 | runOnlyForDeploymentPostprocessing = 0; 169 | }; 170 | /* End PBXResourcesBuildPhase section */ 171 | 172 | /* Begin PBXSourcesBuildPhase section */ 173 | 8C87AE9E1C1982BA00AA8519 /* Sources */ = { 174 | isa = PBXSourcesBuildPhase; 175 | buildActionMask = 2147483647; 176 | files = ( 177 | 8C87AEAD1C1982BA00AA8519 /* ViewController.m in Sources */, 178 | 8C87AEAA1C1982BA00AA8519 /* main.m in Sources */, 179 | 8C8288321C34D00E00D82F1B /* ASConvertor.m in Sources */, 180 | 8C87AEA71C1982BA00AA8519 /* AppDelegate.m in Sources */, 181 | ); 182 | runOnlyForDeploymentPostprocessing = 0; 183 | }; 184 | /* End PBXSourcesBuildPhase section */ 185 | 186 | /* Begin PBXVariantGroup section */ 187 | 8C87AEB01C1982BA00AA8519 /* Main.storyboard */ = { 188 | isa = PBXVariantGroup; 189 | children = ( 190 | 8C87AEB11C1982BA00AA8519 /* Base */, 191 | ); 192 | name = Main.storyboard; 193 | sourceTree = ""; 194 | }; 195 | /* End PBXVariantGroup section */ 196 | 197 | /* Begin XCBuildConfiguration section */ 198 | 8C87AEB41C1982BA00AA8519 /* Debug */ = { 199 | isa = XCBuildConfiguration; 200 | buildSettings = { 201 | ALWAYS_SEARCH_USER_PATHS = NO; 202 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 203 | CLANG_CXX_LIBRARY = "libc++"; 204 | CLANG_ENABLE_MODULES = YES; 205 | CLANG_ENABLE_OBJC_ARC = YES; 206 | CLANG_WARN_BOOL_CONVERSION = YES; 207 | CLANG_WARN_CONSTANT_CONVERSION = YES; 208 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 209 | CLANG_WARN_EMPTY_BODY = YES; 210 | CLANG_WARN_ENUM_CONVERSION = YES; 211 | CLANG_WARN_INT_CONVERSION = YES; 212 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 213 | CLANG_WARN_UNREACHABLE_CODE = YES; 214 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 215 | CODE_SIGN_IDENTITY = "-"; 216 | COPY_PHASE_STRIP = NO; 217 | DEBUG_INFORMATION_FORMAT = dwarf; 218 | ENABLE_STRICT_OBJC_MSGSEND = YES; 219 | ENABLE_TESTABILITY = YES; 220 | GCC_C_LANGUAGE_STANDARD = gnu99; 221 | GCC_DYNAMIC_NO_PIC = NO; 222 | GCC_NO_COMMON_BLOCKS = YES; 223 | GCC_OPTIMIZATION_LEVEL = 0; 224 | GCC_PREPROCESSOR_DEFINITIONS = ( 225 | "DEBUG=1", 226 | "$(inherited)", 227 | ); 228 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 229 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 230 | GCC_WARN_UNDECLARED_SELECTOR = YES; 231 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 232 | GCC_WARN_UNUSED_FUNCTION = YES; 233 | GCC_WARN_UNUSED_VARIABLE = YES; 234 | MACOSX_DEPLOYMENT_TARGET = 10.10; 235 | MTL_ENABLE_DEBUG_INFO = YES; 236 | ONLY_ACTIVE_ARCH = YES; 237 | SDKROOT = macosx; 238 | }; 239 | name = Debug; 240 | }; 241 | 8C87AEB51C1982BA00AA8519 /* Release */ = { 242 | isa = XCBuildConfiguration; 243 | buildSettings = { 244 | ALWAYS_SEARCH_USER_PATHS = NO; 245 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 246 | CLANG_CXX_LIBRARY = "libc++"; 247 | CLANG_ENABLE_MODULES = YES; 248 | CLANG_ENABLE_OBJC_ARC = YES; 249 | CLANG_WARN_BOOL_CONVERSION = YES; 250 | CLANG_WARN_CONSTANT_CONVERSION = YES; 251 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 252 | CLANG_WARN_EMPTY_BODY = YES; 253 | CLANG_WARN_ENUM_CONVERSION = YES; 254 | CLANG_WARN_INT_CONVERSION = YES; 255 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 256 | CLANG_WARN_UNREACHABLE_CODE = YES; 257 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 258 | CODE_SIGN_IDENTITY = "-"; 259 | COPY_PHASE_STRIP = NO; 260 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 261 | ENABLE_NS_ASSERTIONS = NO; 262 | ENABLE_STRICT_OBJC_MSGSEND = YES; 263 | GCC_C_LANGUAGE_STANDARD = gnu99; 264 | GCC_NO_COMMON_BLOCKS = YES; 265 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 266 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 267 | GCC_WARN_UNDECLARED_SELECTOR = YES; 268 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 269 | GCC_WARN_UNUSED_FUNCTION = YES; 270 | GCC_WARN_UNUSED_VARIABLE = YES; 271 | MACOSX_DEPLOYMENT_TARGET = 10.10; 272 | MTL_ENABLE_DEBUG_INFO = NO; 273 | SDKROOT = macosx; 274 | }; 275 | name = Release; 276 | }; 277 | 8C87AEB71C1982BA00AA8519 /* Debug */ = { 278 | isa = XCBuildConfiguration; 279 | buildSettings = { 280 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 281 | COMBINE_HIDPI_IMAGES = YES; 282 | INFOPLIST_FILE = ReadChinese/Info.plist; 283 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; 284 | MACOSX_DEPLOYMENT_TARGET = 10.9; 285 | PRODUCT_BUNDLE_IDENTIFIER = Ashen.ReadChinese; 286 | PRODUCT_NAME = "$(TARGET_NAME)"; 287 | }; 288 | name = Debug; 289 | }; 290 | 8C87AEB81C1982BA00AA8519 /* Release */ = { 291 | isa = XCBuildConfiguration; 292 | buildSettings = { 293 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 294 | COMBINE_HIDPI_IMAGES = YES; 295 | INFOPLIST_FILE = ReadChinese/Info.plist; 296 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; 297 | MACOSX_DEPLOYMENT_TARGET = 10.9; 298 | PRODUCT_BUNDLE_IDENTIFIER = Ashen.ReadChinese; 299 | PRODUCT_NAME = "$(TARGET_NAME)"; 300 | }; 301 | name = Release; 302 | }; 303 | /* End XCBuildConfiguration section */ 304 | 305 | /* Begin XCConfigurationList section */ 306 | 8C87AE9D1C1982BA00AA8519 /* Build configuration list for PBXProject "ReadChinese" */ = { 307 | isa = XCConfigurationList; 308 | buildConfigurations = ( 309 | 8C87AEB41C1982BA00AA8519 /* Debug */, 310 | 8C87AEB51C1982BA00AA8519 /* Release */, 311 | ); 312 | defaultConfigurationIsVisible = 0; 313 | defaultConfigurationName = Release; 314 | }; 315 | 8C87AEB61C1982BA00AA8519 /* Build configuration list for PBXNativeTarget "ReadChinese" */ = { 316 | isa = XCConfigurationList; 317 | buildConfigurations = ( 318 | 8C87AEB71C1982BA00AA8519 /* Debug */, 319 | 8C87AEB81C1982BA00AA8519 /* Release */, 320 | ); 321 | defaultConfigurationIsVisible = 0; 322 | defaultConfigurationName = Release; 323 | }; 324 | /* End XCConfigurationList section */ 325 | }; 326 | rootObject = 8C87AE9A1C1982BA00AA8519 /* Project object */; 327 | } 328 | -------------------------------------------------------------------------------- /ReadChinese.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ReadChinese.xcodeproj/project.xcworkspace/xcuserdata/Ashen.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashen-zhao/ReadChinese/c26b818067fc2929fd351c1117f9a192d50f9ac9/ReadChinese.xcodeproj/project.xcworkspace/xcuserdata/Ashen.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ReadChinese.xcodeproj/xcuserdata/Ashen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /ReadChinese.xcodeproj/xcuserdata/Ashen.xcuserdatad/xcschemes/ReadChinese.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /ReadChinese.xcodeproj/xcuserdata/Ashen.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ReadChinese.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 8C87AEA11C1982BA00AA8519 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ReadChinese/ASConvertor/ASConvertor.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ReadChinese 4 | // 5 | // Created by Ashen on 15/12/29. 6 | // Copyright © 2015年 Ashen. All rights reserved. 7 | // 8 | 9 | 10 | #import 11 | 12 | @interface ASConvertor : NSObject{ 13 | NSMutableDictionary *ts, *st; 14 | } 15 | 16 | // Create Instance for the class 17 | + (ASConvertor*)getInstance; 18 | 19 | // Convert Tradictional chinese to Simple chinese 20 | - (NSString*)t2s:(NSString*)string; 21 | 22 | // convert Simple chinese to Tradictional chinese 23 | - (NSString*)s2t:(NSString*)string; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /ReadChinese/ASConvertor/ASConvertor.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ReadChinese 4 | // 5 | // Created by Ashen on 15/12/29. 6 | // Copyright © 2015年 Ashen. All rights reserved. 7 | // 8 | 9 | #import "ASConvertor.h" 10 | 11 | static ASConvertor * instance=nil; 12 | 13 | @implementation ASConvertor 14 | 15 | + (ASConvertor*)getInstance 16 | { 17 | @synchronized(self) { 18 | if (instance==nil) { 19 | instance=[[ASConvertor alloc] init]; 20 | } 21 | } 22 | return instance; 23 | } 24 | 25 | - (id)init 26 | { 27 | self = [super init]; 28 | if (self) { 29 | NSString *filrPath = [[NSBundle mainBundle] pathForResource:@"ts.tab" ofType:nil]; 30 | NSString *data = [NSString stringWithContentsOfFile:filrPath encoding:NSUTF8StringEncoding error:NULL]; 31 | NSMutableArray *chars = [[NSMutableArray alloc] initWithCapacity:[data length]]; 32 | for (int i=0; i < [data length]; i++) { 33 | NSString *ichar = [NSString stringWithFormat:@"%C", [data characterAtIndex:i]]; 34 | [chars addObject:ichar]; 35 | } 36 | 37 | ts = [NSMutableDictionary new]; 38 | st = [NSMutableDictionary new]; 39 | 40 | for (int i = 0; i < [chars count] ; i = i + 2){ 41 | NSString *one = [chars objectAtIndex:i]; 42 | NSString *two = [chars objectAtIndex:(i + 1)]; 43 | [st setObject:one forKey:two]; 44 | [ts setObject:two forKey:one]; 45 | } 46 | } 47 | return self; 48 | } 49 | 50 | - (NSString*)t2s:(NSString*)string; 51 | { 52 | NSString *result = @""; 53 | NSMutableArray *tmpArray = [[NSMutableArray alloc] initWithCapacity:[string length]]; 54 | for (int i=0; i < [string length]; i++) { 55 | NSString *ichar = [NSString stringWithFormat:@"%C", [string characterAtIndex:i]]; 56 | [tmpArray addObject:ichar]; 57 | } 58 | for (NSString *s in tmpArray){ 59 | if ([ts objectForKey:s]){ 60 | result = [NSString stringWithFormat:@"%@%@", result, [ts objectForKey:s]]; 61 | } else { 62 | result = [NSString stringWithFormat:@"%@%@", result, s]; 63 | } 64 | } 65 | return result; 66 | } 67 | 68 | - (NSString*)s2t:(NSString*)string 69 | { 70 | NSString *result = @""; 71 | NSMutableArray *tmpArray = [[NSMutableArray alloc] initWithCapacity:[string length]]; 72 | for (int i=0; i < [string length]; i++) { 73 | NSString *ichar = [NSString stringWithFormat:@"%C", [string characterAtIndex:i]]; 74 | [tmpArray addObject:ichar]; 75 | } 76 | for (NSString *s in tmpArray){ 77 | if ([st objectForKey:s]){ 78 | result = [NSString stringWithFormat:@"%@%@", result, [st objectForKey:s]]; 79 | } else { 80 | result = [NSString stringWithFormat:@"%@%@", result, s]; 81 | } 82 | } 83 | return result; 84 | } 85 | 86 | @end 87 | -------------------------------------------------------------------------------- /ReadChinese/ASConvertor/ts.tab: -------------------------------------------------------------------------------- 1 | 啊啊阿阿埃埃挨挨哎哎唉唉哀哀皚皑癌癌藹蔼矮矮艾艾礙碍愛爱隘隘鞍鞍氨氨安安俺俺按按暗暗岸岸胺胺案案肮肮昂昂盎盎凹凹敖敖熬熬翱翱襖袄傲傲奧奥懊懊澳澳芭芭捌捌扒扒叭叭吧吧笆笆八八疤疤巴巴拔拔跋跋靶靶把把耙耙壩坝霸霸罷罢爸爸白白柏柏百百擺摆佰佰敗败拜拜稗稗斑斑班班搬搬扳扳般般頒颁板板版版扮扮拌拌伴伴瓣瓣半半辦办絆绊邦邦幫帮梆梆榜榜膀膀綁绑棒棒磅磅蚌蚌鎊镑傍傍謗谤苞苞胞胞包包褒褒剝剥薄薄雹雹保保堡堡飽饱寶宝抱抱報报暴暴豹豹鮑鲍爆爆杯杯碑碑悲悲卑卑北北輩辈背背貝贝鋇钡倍倍狽狈備备憊惫焙焙被被奔奔苯苯本本笨笨崩崩繃绷甭甭泵泵蹦蹦迸迸逼逼鼻鼻比比鄙鄙筆笔彼彼碧碧蓖蓖蔽蔽畢毕斃毙毖毖幣币庇庇痹痹閉闭敝敝弊弊必必辟辟壁壁臂臂避避陛陛鞭鞭邊边編编貶贬扁扁便便變变卞卞辨辨辯辩辮辫遍遍標标彪彪膘膘表表鱉鳖憋憋別别癟瘪彬彬斌斌瀕濒濱滨賓宾擯摈兵兵冰冰柄柄丙丙秉秉餅饼炳炳病病並并玻玻菠菠播播撥拨缽钵波波博博勃勃搏搏鉑铂箔箔伯伯帛帛舶舶脖脖膊膊渤渤泊泊駁驳捕捕蔔卜哺哺補补埠埠不不布布步步簿簿部部怖怖擦擦猜猜裁裁材材才才財财睬睬踩踩采采彩彩菜菜蔡蔡餐餐參参蠶蚕殘残慚惭慘惨燦灿蒼苍艙舱倉仓滄沧藏藏操操糙糙槽槽曹曹草草廁厕策策側侧冊册測测層层蹭蹭插插叉叉茬茬茶茶查查碴碴搽搽察察岔岔差差詫诧拆拆柴柴豺豺攙搀摻掺蟬蝉饞馋讒谗纏缠鏟铲產产闡阐顫颤昌昌猖猖場场嘗尝常常長长償偿腸肠廠厂敞敞暢畅唱唱倡倡超超抄抄鈔钞朝朝嘲嘲潮潮巢巢吵吵炒炒車车扯扯撤撤掣掣徹彻澈澈郴郴臣臣辰辰塵尘晨晨忱忱沉沉陳陈趁趁襯衬撐撑稱称城城橙橙成成呈呈乘乘程程懲惩澄澄誠诚承承逞逞騁骋秤秤吃吃癡痴持持匙匙池池遲迟弛弛馳驰恥耻齒齿侈侈尺尺赤赤翅翅斥斥熾炽充充沖冲蟲虫崇崇寵宠抽抽酬酬疇畴躊踌稠稠愁愁籌筹仇仇綢绸瞅瞅醜丑臭臭初初出出櫥橱廚厨躇躇鋤锄雛雏滁滁除除楚楚礎础儲储矗矗搐搐觸触處处揣揣川川穿穿椽椽傳传船船喘喘串串瘡疮窗窗幢幢床床闖闯創创吹吹炊炊捶捶錘锤垂垂春春椿椿醇醇唇唇淳淳純纯蠢蠢戳戳綽绰疵疵茨茨磁磁雌雌辭辞慈慈瓷瓷詞词此此刺刺賜赐次次聰聪蔥葱囪囱匆匆從从叢丛湊凑粗粗醋醋簇簇促促躥蹿篡篡竄窜摧摧崔崔催催脆脆瘁瘁粹粹淬淬翠翠村村存存寸寸磋磋撮撮搓搓措措挫挫錯错搭搭達达答答瘩瘩打打大大呆呆歹歹傣傣戴戴帶带殆殆代代貸贷袋袋待待逮逮怠怠耽耽擔担丹丹單单鄲郸撣掸膽胆旦旦氮氮但但憚惮淡淡誕诞彈弹蛋蛋當当擋挡黨党蕩荡檔档刀刀搗捣蹈蹈倒倒島岛禱祷導导到到稻稻悼悼道道盜盗德德得得的的蹬蹬燈灯登登等等瞪瞪凳凳鄧邓堤堤低低滴滴迪迪敵敌笛笛狄狄滌涤翟翟嫡嫡抵抵底底地地蒂蒂第第帝帝弟弟遞递締缔顛颠掂掂滇滇碘碘點点典典靛靛墊垫電电佃佃甸甸店店惦惦奠奠澱淀殿殿碉碉叼叼雕雕凋凋刁刁掉掉吊吊釣钓調调跌跌爹爹碟碟蝶蝶迭迭諜谍疊叠丁丁盯盯叮叮釘钉頂顶鼎鼎錠锭定定訂订丟丢東东冬冬董董懂懂動动棟栋侗侗恫恫凍冻洞洞兜兜抖抖鬥斗陡陡豆豆逗逗痘痘都都督督毒毒犢犊獨独讀读堵堵睹睹賭赌杜杜鍍镀肚肚度度渡渡妒妒端端短短鍛锻段段斷断緞缎堆堆兌兑隊队對对墩墩噸吨蹲蹲敦敦頓顿囤囤鈍钝盾盾遁遁掇掇哆哆多多奪夺垛垛躲躲朵朵跺跺舵舵剁剁惰惰墮堕蛾蛾峨峨鵝鹅俄俄額额訛讹娥娥惡恶厄厄扼扼遏遏鄂鄂餓饿恩恩而而兒儿耳耳爾尔餌饵洱洱二二貳贰發发罰罚筏筏伐伐乏乏閥阀法法琺珐藩藩帆帆番番翻翻樊樊礬矾釩钒繁繁凡凡煩烦反反返返範范販贩犯犯飯饭泛泛坊坊芳芳方方肪肪房房防防妨妨仿仿訪访紡纺放放菲菲非非啡啡飛飞肥肥匪匪誹诽吠吠肺肺廢废沸沸費费芬芬酚酚吩吩氛氛分分紛纷墳坟焚焚汾汾粉粉奮奋份份忿忿憤愤糞粪豐丰封封楓枫蜂蜂峰峰鋒锋風风瘋疯烽烽逢逢馮冯縫缝諷讽奉奉鳳凤佛佛否否夫夫敷敷膚肤孵孵扶扶拂拂輻辐幅幅氟氟符符伏伏俘俘服服浮浮涪涪福福袱袱弗弗甫甫撫抚輔辅俯俯釜釜斧斧脯脯腑腑府府腐腐赴赴副副覆覆賦赋複复傅傅付付阜阜父父腹腹負负富富訃讣附附婦妇縛缚咐咐噶噶嘎嘎該该改改概概鈣钙蓋盖溉溉幹干甘甘杆杆柑柑竿竿肝肝趕赶感感稈秆敢敢贛赣岡冈剛刚鋼钢缸缸肛肛綱纲崗岗港港杠杠篙篙皋皋高高膏膏羔羔糕糕搞搞鎬镐稿稿告告哥哥歌歌擱搁戈戈鴿鸽胳胳疙疙割割革革葛葛格格蛤蛤閣阁隔隔鉻铬個个各各給给根根跟跟耕耕更更庚庚羹羹埂埂耿耿梗梗工工攻攻功功恭恭龔龚供供躬躬公公宮宫弓弓鞏巩汞汞拱拱貢贡共共鉤钩勾勾溝沟苟苟狗狗垢垢構构購购夠够辜辜菇菇咕咕箍箍估估沽沽孤孤姑姑鼓鼓古古蠱蛊骨骨谷谷股股故故顧顾固固雇雇刮刮瓜瓜剮剐寡寡掛挂褂褂乖乖拐拐怪怪棺棺關关官官冠冠觀观管管館馆罐罐慣惯灌灌貫贯光光廣广逛逛瑰瑰規规圭圭硅硅歸归龜龟閨闺軌轨鬼鬼詭诡癸癸桂桂櫃柜跪跪貴贵劊刽輥辊滾滚棍棍鍋锅郭郭國国果果裹裹過过哈哈骸骸孩孩海海氦氦亥亥害害駭骇酣酣憨憨邯邯韓韩含含涵涵寒寒函函喊喊罕罕翰翰撼撼捍捍旱旱憾憾悍悍焊焊汗汗漢汉夯夯杭杭航航壕壕嚎嚎豪豪毫毫郝郝好好耗耗號号浩浩呵呵喝喝荷荷菏菏核核禾禾和和何何合合盒盒貉貉閡阂河河涸涸赫赫褐褐鶴鹤賀贺嘿嘿黑黑痕痕很很狠狠恨恨哼哼亨亨橫横衡衡恒恒轟轰哄哄烘烘虹虹鴻鸿洪洪宏宏弘弘紅红喉喉侯侯猴猴吼吼厚厚候候後后呼呼乎乎忽忽瑚瑚壺壶葫葫胡胡蝴蝴狐狐糊糊湖湖弧弧虎虎唬唬護护互互滬沪戶户花花嘩哗華华猾猾滑滑畫画劃划化化話话槐槐徊徊懷怀淮淮壞坏歡欢環环桓桓還还緩缓換换患患喚唤瘓痪豢豢煥焕渙涣宦宦幻幻荒荒慌慌黃黄磺磺蝗蝗簧簧皇皇凰凰惶惶煌煌晃晃幌幌恍恍謊谎灰灰揮挥輝辉徽徽恢恢蛔蛔回回毀毁悔悔慧慧卉卉惠惠晦晦賄贿穢秽會会燴烩匯汇諱讳誨诲繪绘葷荤昏昏婚婚魂魂渾浑混混豁豁活活伙伙火火獲获或或惑惑霍霍貨货禍祸擊击圾圾基基機机畸畸稽稽積积箕箕肌肌饑饥迹迹激激譏讥雞鸡姬姬績绩緝缉吉吉極极棘棘輯辑籍籍集集及及急急疾疾汲汲即即嫉嫉級级擠挤幾几脊脊己己薊蓟技技冀冀季季伎伎祭祭劑剂悸悸濟济寄寄寂寂計计記记既既忌忌際际妓妓繼继紀纪嘉嘉枷枷夾夹佳佳家家加加莢荚頰颊賈贾甲甲鉀钾假假稼稼價价架架駕驾嫁嫁殲歼監监堅坚尖尖箋笺間间煎煎兼兼肩肩艱艰奸奸緘缄繭茧檢检柬柬堿碱鹼硷揀拣撿捡簡简儉俭剪剪減减薦荐檻槛鑒鉴踐践賤贱見见鍵键箭箭件件健健艦舰劍剑餞饯漸渐濺溅澗涧建建僵僵姜姜將将漿浆江江疆疆蔣蒋槳桨獎奖講讲匠匠醬酱降降蕉蕉椒椒礁礁焦焦膠胶交交郊郊澆浇驕骄嬌娇嚼嚼攪搅鉸铰矯矫僥侥腳脚狡狡角角餃饺繳缴絞绞剿剿教教酵酵轎轿較较叫叫窖窖揭揭接接皆皆秸秸街街階阶截截劫劫節节桔桔傑杰捷捷睫睫竭竭潔洁結结解解姐姐戒戒藉藉芥芥界界借借介介疥疥誡诫屆届巾巾筋筋斤斤金金今今津津襟襟緊紧錦锦僅仅謹谨進进靳靳晉晋禁禁近近燼烬浸浸盡尽勁劲荊荆兢兢莖茎睛睛晶晶鯨鲸京京驚惊精精粳粳經经井井警警景景頸颈靜静境境敬敬鏡镜徑径痙痉靖靖竟竟競竞淨净炯炯窘窘揪揪究究糾纠玖玖韭韭久久灸灸九九酒酒廄厩救救舊旧臼臼舅舅咎咎就就疚疚鞠鞠拘拘狙狙疽疽居居駒驹菊菊局局咀咀矩矩舉举沮沮聚聚拒拒據据巨巨具具距距踞踞鋸锯俱俱句句懼惧炬炬劇剧捐捐鵑鹃娟娟倦倦眷眷卷卷絹绢撅撅攫攫抉抉掘掘倔倔爵爵覺觉決决訣诀絕绝均均菌菌鈞钧軍军君君峻峻俊俊竣竣浚浚郡郡駿骏喀喀咖咖卡卡咯咯開开揩揩楷楷凱凯慨慨刊刊堪堪勘勘坎坎砍砍看看康康慷慷糠糠扛扛抗抗亢亢炕炕考考拷拷烤烤靠靠坷坷苛苛柯柯棵棵磕磕顆颗科科殼壳咳咳可可渴渴克克刻刻客客課课肯肯啃啃墾垦懇恳坑坑吭吭空空恐恐孔孔控控摳抠口口扣扣寇寇枯枯哭哭窟窟苦苦酷酷庫库褲裤誇夸垮垮挎挎跨跨胯胯塊块筷筷儈侩快快寬宽款款匡匡筐筐狂狂框框礦矿眶眶曠旷況况虧亏盔盔巋岿窺窥葵葵奎奎魁魁傀傀饋馈愧愧潰溃坤坤昆昆捆捆困困括括擴扩廓廓闊阔垃垃拉拉喇喇蠟蜡臘腊辣辣啦啦萊莱來来賴赖藍蓝婪婪欄栏攔拦籃篮闌阑蘭兰瀾澜讕谰攬揽覽览懶懒纜缆爛烂濫滥琅琅榔榔狼狼廊廊郎郎朗朗浪浪撈捞勞劳牢牢老老佬佬姥姥酪酪烙烙澇涝勒勒樂乐雷雷鐳镭蕾蕾磊磊累累儡儡壘垒擂擂肋肋類类淚泪棱棱楞楞冷冷厘厘梨梨犁犁黎黎籬篱狸狸離离漓漓理理李李裏里鯉鲤禮礼莉莉荔荔吏吏栗栗麗丽厲厉勵励礫砾曆历利利傈傈例例俐俐痢痢立立粒粒瀝沥隸隶力力璃璃哩哩倆俩聯联蓮莲連连鐮镰廉廉憐怜漣涟簾帘斂敛臉脸鏈链戀恋煉炼練练糧粮涼凉梁梁粱粱良良兩两輛辆量量晾晾亮亮諒谅撩撩聊聊僚僚療疗燎燎寥寥遼辽潦潦了了撂撂鐐镣廖廖料料列列裂裂烈烈劣劣獵猎琳琳林林磷磷霖霖臨临鄰邻鱗鳞淋淋凜凛賃赁吝吝拎拎玲玲菱菱零零齡龄鈴铃伶伶羚羚淩凌靈灵陵陵嶺岭領领另另令令溜溜琉琉榴榴硫硫餾馏留留劉刘瘤瘤流流柳柳六六龍龙聾聋嚨咙籠笼窿窿隆隆壟垄攏拢隴陇樓楼婁娄摟搂簍篓漏漏陋陋蘆芦盧卢顱颅廬庐爐炉擄掳鹵卤虜虏魯鲁麓麓碌碌露露路路賂赂鹿鹿潞潞祿禄錄录陸陆戮戮驢驴呂吕鋁铝侶侣旅旅履履屢屡縷缕慮虑氯氯律律率率濾滤綠绿巒峦攣挛孿孪灤滦卵卵亂乱掠掠略略掄抡輪轮倫伦侖仑淪沦綸纶論论蘿萝螺螺羅罗邏逻鑼锣籮箩騾骡裸裸落落洛洛駱骆絡络媽妈麻麻瑪玛碼码螞蚂馬马罵骂嘛嘛嗎吗埋埋買买麥麦賣卖邁迈脈脉瞞瞒饅馒蠻蛮滿满蔓蔓曼曼慢慢漫漫謾谩芒芒茫茫盲盲氓氓忙忙莽莽貓猫茅茅錨锚毛毛矛矛鉚铆卯卯茂茂冒冒帽帽貌貌貿贸麼么玫玫枚枚梅梅酶酶黴霉煤煤沒没眉眉媒媒鎂镁每每美美昧昧寐寐妹妹媚媚門门悶闷們们萌萌蒙蒙檬檬盟盟錳锰猛猛夢梦孟孟眯眯醚醚靡靡糜糜迷迷謎谜彌弥米米秘秘覓觅泌泌蜜蜜密密冪幂棉棉眠眠綿绵冕冕免免勉勉娩娩緬缅面面苗苗描描瞄瞄藐藐秒秒渺渺廟庙妙妙蔑蔑滅灭民民抿抿皿皿敏敏憫悯閩闽明明螟螟鳴鸣銘铭名名命命謬谬摸摸摹摹蘑蘑模模膜膜磨磨摩摩魔魔抹抹末末莫莫墨墨默默沫沫漠漠寞寞陌陌謀谋牟牟某某拇拇牡牡畝亩姆姆母母墓墓暮暮幕幕募募慕慕木木目目睦睦牧牧穆穆拿拿哪哪呐呐鈉钠那那娜娜納纳氖氖乃乃奶奶耐耐奈奈南南男男難难囊囊撓挠腦脑惱恼鬧闹淖淖呢呢餒馁內内嫩嫩能能妮妮霓霓倪倪泥泥尼尼擬拟你你匿匿膩腻逆逆溺溺蔫蔫拈拈年年碾碾攆撵撚捻念念娘娘釀酿鳥鸟尿尿捏捏聶聂孽孽齧啮鑷镊鎳镍涅涅您您檸柠獰狞凝凝寧宁擰拧濘泞牛牛扭扭鈕钮紐纽膿脓濃浓農农弄弄奴奴努努怒怒女女暖暖虐虐瘧疟挪挪懦懦糯糯諾诺哦哦歐欧鷗鸥毆殴藕藕嘔呕偶偶漚沤啪啪趴趴爬爬帕帕怕怕琶琶拍拍排排牌牌徘徘湃湃派派攀攀潘潘盤盘磐磐盼盼畔畔判判叛叛乓乓龐庞旁旁耪耪胖胖拋抛咆咆刨刨炮炮袍袍跑跑泡泡呸呸胚胚培培裴裴賠赔陪陪配配佩佩沛沛噴喷盆盆砰砰抨抨烹烹澎澎彭彭蓬蓬棚棚硼硼篷篷膨膨朋朋鵬鹏捧捧碰碰坯坯砒砒霹霹批批披披劈劈琵琵毗毗啤啤脾脾疲疲皮皮匹匹痞痞僻僻屁屁譬譬篇篇偏偏片片騙骗飄飘漂漂瓢瓢票票撇撇瞥瞥拼拼頻频貧贫品品聘聘乒乒坪坪蘋苹萍萍平平憑凭瓶瓶評评屏屏坡坡潑泼頗颇婆婆破破魄魄迫迫粕粕剖剖撲扑鋪铺僕仆莆莆葡葡菩菩蒲蒲埔埔樸朴圃圃普普浦浦譜谱曝曝瀑瀑期期欺欺棲栖戚戚妻妻七七淒凄漆漆柒柒沏沏其其棋棋奇奇歧歧畦畦崎崎臍脐齊齐旗旗祈祈祁祁騎骑起起豈岂乞乞企企啟启契契砌砌器器氣气迄迄棄弃汽汽泣泣訖讫掐掐恰恰洽洽牽牵扡扦釺钎鉛铅千千遷迁簽签仟仟謙谦乾乾黔黔錢钱鉗钳前前潛潜遣遣淺浅譴谴塹堑嵌嵌欠欠歉歉槍枪嗆呛腔腔羌羌牆墙薔蔷强强搶抢橇橇鍬锹敲敲悄悄橋桥瞧瞧喬乔僑侨巧巧鞘鞘撬撬翹翘峭峭俏俏竅窍切切茄茄且且怯怯竊窃欽钦侵侵親亲秦秦琴琴勤勤芹芹擒擒禽禽寢寝沁沁青青輕轻氫氢傾倾卿卿清清擎擎晴晴氰氰情情頃顷請请慶庆瓊琼窮穷秋秋丘丘邱邱球球求求囚囚酋酋泅泅趨趋區区蛆蛆曲曲軀躯屈屈驅驱渠渠取取娶娶齲龋趣趣去去圈圈顴颧權权醛醛泉泉全全痊痊拳拳犬犬券券勸劝缺缺炔炔瘸瘸卻却鵲鹊榷榷確确雀雀裙裙群群然然燃燃冉冉染染瓤瓤壤壤攘攘嚷嚷讓让饒饶擾扰繞绕惹惹熱热壬壬仁仁人人忍忍韌韧任任認认刃刃妊妊紉纫扔扔仍仍日日戎戎茸茸蓉蓉榮荣融融熔熔溶溶容容絨绒冗冗揉揉柔柔肉肉茹茹蠕蠕儒儒孺孺如如辱辱乳乳汝汝入入褥褥軟软阮阮蕊蕊瑞瑞銳锐閏闰潤润若若弱弱撒撒灑洒薩萨腮腮鰓鳃塞塞賽赛三三叁叁傘伞散散桑桑嗓嗓喪丧搔搔騷骚掃扫嫂嫂瑟瑟色色澀涩森森僧僧莎莎砂砂殺杀刹刹沙沙紗纱傻傻啥啥煞煞篩筛曬晒珊珊苫苫杉杉山山刪删煽煽衫衫閃闪陝陕擅擅贍赡膳膳善善汕汕扇扇繕缮墒墒傷伤商商賞赏晌晌上上尚尚裳裳梢梢捎捎稍稍燒烧芍芍勺勺韶韶少少哨哨邵邵紹绍奢奢賒赊蛇蛇舌舌舍舍赦赦攝摄射射懾慑涉涉社社設设砷砷申申呻呻伸伸身身深深娠娠紳绅神神沈沈審审嬸婶甚甚腎肾慎慎滲渗聲声生生甥甥牲牲升升繩绳省省盛盛剩剩勝胜聖圣師师失失獅狮施施濕湿詩诗屍尸虱虱十十石石拾拾時时什什食食蝕蚀實实識识史史矢矢使使屎屎駛驶始始式式示示士士世世柿柿事事拭拭誓誓逝逝勢势是是嗜嗜噬噬適适仕仕侍侍釋释飾饰氏氏市市恃恃室室視视試试收收手手首首守守壽寿授授售售受受瘦瘦獸兽蔬蔬樞枢梳梳殊殊抒抒輸输叔叔舒舒淑淑疏疏書书贖赎孰孰熟熟薯薯暑暑曙曙署署蜀蜀黍黍鼠鼠屬属術术述述樹树束束戍戍豎竖墅墅庶庶數数漱漱恕恕刷刷耍耍摔摔衰衰甩甩帥帅栓栓拴拴霜霜雙双爽爽誰谁水水睡睡稅税吮吮瞬瞬順顺舜舜說说碩硕朔朔爍烁斯斯撕撕嘶嘶思思私私司司絲丝死死肆肆寺寺嗣嗣四四伺伺似似飼饲巳巳松松聳耸慫怂頌颂送送宋宋訟讼誦诵搜搜艘艘擻擞嗽嗽蘇苏酥酥俗俗素素速速粟粟僳僳塑塑溯溯宿宿訴诉肅肃酸酸蒜蒜算算雖虽隋隋隨随綏绥髓髓碎碎歲岁穗穗遂遂隧隧祟祟孫孙損损筍笋蓑蓑梭梭唆唆縮缩瑣琐索索鎖锁所所塌塌他他它它她她塔塔獺獭撻挞蹋蹋踏踏胎胎苔苔抬抬台台泰泰酞酞太太態态汰汰坍坍攤摊貪贪癱瘫灘滩壇坛檀檀痰痰潭潭譚谭談谈坦坦毯毯袒袒碳碳探探歎叹炭炭湯汤塘塘搪搪堂堂棠棠膛膛唐唐糖糖倘倘躺躺淌淌趟趟燙烫掏掏濤涛滔滔絛绦萄萄桃桃逃逃淘淘陶陶討讨套套特特藤藤騰腾疼疼謄誊梯梯剔剔踢踢銻锑提提題题蹄蹄啼啼體体替替嚏嚏惕惕涕涕剃剃屜屉天天添添填填田田甜甜恬恬舔舔腆腆挑挑條条迢迢眺眺跳跳貼贴鐵铁帖帖廳厅聽听烴烃汀汀廷廷停停亭亭庭庭挺挺艇艇通通桐桐酮酮瞳瞳同同銅铜彤彤童童桶桶捅捅筒筒統统痛痛偷偷投投頭头透透凸凸禿秃突突圖图徒徒途途塗涂屠屠土土吐吐兔兔湍湍團团推推頹颓腿腿蛻蜕褪褪退退吞吞屯屯臀臀拖拖托托脫脱鴕鸵陀陀馱驮駝驼橢椭妥妥拓拓唾唾挖挖哇哇蛙蛙窪洼娃娃瓦瓦襪袜歪歪外外豌豌彎弯灣湾玩玩頑顽丸丸烷烷完完碗碗挽挽晚晚皖皖惋惋宛宛婉婉萬万腕腕汪汪王王亡亡枉枉網网往往旺旺望望忘忘妄妄威威巍巍微微危危韋韦違违桅桅圍围唯唯惟惟為为濰潍維维葦苇萎萎委委偉伟偽伪尾尾緯纬未未蔚蔚味味畏畏胃胃喂喂魏魏位位渭渭謂谓尉尉慰慰衛卫瘟瘟溫温蚊蚊文文聞闻紋纹吻吻穩稳紊紊問问嗡嗡翁翁甕瓮撾挝蝸蜗渦涡窩窝我我斡斡臥卧握握沃沃巫巫嗚呜鎢钨烏乌汙污誣诬屋屋無无蕪芜梧梧吾吾吳吴毋毋武武五五捂捂午午舞舞伍伍侮侮塢坞戊戊霧雾晤晤物物勿勿務务悟悟誤误昔昔熙熙析析西西硒硒矽矽晰晰嘻嘻吸吸錫锡犧牺稀稀息息希希悉悉膝膝夕夕惜惜熄熄烯烯溪溪汐汐犀犀檄檄襲袭席席習习媳媳喜喜銑铣洗洗系系隙隙戲戏細细瞎瞎蝦虾匣匣霞霞轄辖暇暇峽峡俠侠狹狭下下廈厦夏夏嚇吓掀掀鍁锨先先仙仙鮮鲜纖纤鹹咸賢贤銜衔舷舷閑闲涎涎弦弦嫌嫌顯显險险現现獻献縣县腺腺餡馅羨羡憲宪陷陷限限線线相相廂厢鑲镶香香箱箱襄襄湘湘鄉乡翔翔祥祥詳详想想響响享享項项巷巷橡橡像像向向象象蕭萧硝硝霄霄削削哮哮囂嚣銷销消消宵宵淆淆曉晓小小孝孝校校肖肖嘯啸笑笑效效楔楔些些歇歇蠍蝎鞋鞋協协挾挟攜携邪邪斜斜脅胁諧谐寫写械械卸卸蟹蟹懈懈泄泄瀉泻謝谢屑屑薪薪芯芯鋅锌欣欣辛辛新新忻忻心心信信釁衅星星腥腥猩猩惺惺興兴刑刑型型形形邢邢行行醒醒幸幸杏杏性性姓姓兄兄凶凶胸胸匈匈洶汹雄雄熊熊休休修修羞羞朽朽嗅嗅鏽锈秀秀袖袖繡绣墟墟戌戌需需虛虚噓嘘須须徐徐許许蓄蓄酗酗敘叙旭旭序序畜畜恤恤絮絮婿婿緒绪續续軒轩喧喧宣宣懸悬旋旋玄玄選选癬癣眩眩絢绚靴靴薛薛學学穴穴雪雪血血勳勋熏熏循循旬旬詢询尋寻馴驯巡巡殉殉汛汛訓训訊讯遜逊迅迅壓压押押鴉鸦鴨鸭呀呀丫丫芽芽牙牙蚜蚜崖崖衙衙涯涯雅雅啞哑亞亚訝讶焉焉咽咽閹阉煙烟淹淹鹽盐嚴严研研蜒蜒岩岩延延言言顏颜閻阎炎炎沿沿奄奄掩掩眼眼衍衍演演豔艳堰堰燕燕厭厌硯砚雁雁唁唁彥彦焰焰宴宴諺谚驗验殃殃央央鴦鸯秧秧楊杨揚扬佯佯瘍疡羊羊洋洋陽阳氧氧仰仰癢痒養养樣样漾漾邀邀腰腰妖妖瑤瑶搖摇堯尧遙遥窯窑謠谣姚姚咬咬舀舀藥药要要耀耀椰椰噎噎耶耶爺爷野野冶冶也也頁页掖掖業业葉叶曳曳腋腋夜夜液液一一壹壹醫医揖揖銥铱依依伊伊衣衣頤颐夷夷遺遗移移儀仪胰胰疑疑沂沂宜宜姨姨彝彝椅椅蟻蚁倚倚已已乙乙矣矣以以藝艺抑抑易易邑邑屹屹億亿役役臆臆逸逸肄肄疫疫亦亦裔裔意意毅毅憶忆義义益益溢溢詣诣議议誼谊譯译異异翼翼翌翌繹绎茵茵蔭荫因因殷殷音音陰阴姻姻吟吟銀银淫淫寅寅飲饮尹尹引引隱隐印印英英櫻樱嬰婴鷹鹰應应纓缨瑩莹螢萤營营熒荧蠅蝇迎迎贏赢盈盈影影穎颖硬硬映映喲哟擁拥傭佣臃臃癰痈庸庸雍雍踴踊蛹蛹詠咏泳泳湧涌永永恿恿勇勇用用幽幽優优悠悠憂忧尤尤由由郵邮鈾铀猶犹油油游游酉酉有有友友右右佑佑釉釉誘诱又又幼幼迂迂淤淤于于盂盂榆榆虞虞愚愚輿舆余余俞俞逾逾魚鱼愉愉渝渝漁渔隅隅予予娛娱雨雨與与嶼屿禹禹宇宇語语羽羽玉玉域域芋芋郁郁籲吁遇遇喻喻峪峪禦御愈愈欲欲獄狱育育譽誉浴浴寓寓裕裕預预豫豫馭驭鴛鸳淵渊冤冤元元垣垣袁袁原原援援轅辕園园員员圓圆猿猿源源緣缘遠远苑苑願愿怨怨院院曰曰約约越越躍跃鑰钥嶽岳粵粤月月悅悦閱阅耘耘雲云鄖郧勻匀隕陨允允運运蘊蕴醞酝暈晕韻韵孕孕匝匝砸砸雜杂栽栽哉哉災灾宰宰載载再再在在咱咱攢攒暫暂贊赞贓赃髒脏葬葬遭遭糟糟鑿凿藻藻棗枣早早澡澡蚤蚤躁躁噪噪造造皂皂灶灶燥燥責责擇择則则澤泽賊贼怎怎增增憎憎曾曾贈赠紮扎喳喳渣渣劄札軋轧鍘铡閘闸眨眨柵栅榨榨咋咋乍乍炸炸詐诈摘摘齋斋宅宅窄窄債债寨寨瞻瞻氈毡詹詹粘粘沾沾盞盏斬斩輾辗嶄崭展展蘸蘸棧栈占占戰战站站湛湛綻绽樟樟章章彰彰漳漳張张掌掌漲涨杖杖丈丈帳帐賬账仗仗脹胀瘴瘴障障招招昭昭找找沼沼趙赵照照罩罩兆兆肇肇召召遮遮折折哲哲蟄蛰轍辙者者鍺锗蔗蔗這这浙浙珍珍斟斟真真甄甄砧砧臻臻貞贞針针偵侦枕枕疹疹診诊震震振振鎮镇陣阵蒸蒸掙挣睜睁征征猙狰爭争怔怔整整拯拯正正政政幀帧症症鄭郑證证芝芝枝枝支支吱吱蜘蜘知知肢肢脂脂汁汁之之織织職职直直植植殖殖執执值值侄侄址址指指止止趾趾只只旨旨紙纸志志摯挚擲掷至至致致置置幟帜峙峙制制智智秩秩稚稚質质炙炙痔痔滯滞治治窒窒中中盅盅忠忠鐘钟衷衷終终種种腫肿重重仲仲衆众舟舟周周州州洲洲謅诌粥粥軸轴肘肘帚帚咒咒皺皱宙宙晝昼驟骤珠珠株株蛛蛛朱朱豬猪諸诸誅诛逐逐竹竹燭烛煮煮拄拄矚瞩囑嘱主主著著柱柱助助蛀蛀貯贮鑄铸築筑住住注注祝祝駐驻抓抓爪爪拽拽專专磚砖轉转撰撰賺赚篆篆樁桩莊庄裝装妝妆撞撞壯壮狀状椎椎錐锥追追贅赘墜坠綴缀諄谆准准捉捉拙拙卓卓桌桌琢琢茁茁酌酌啄啄着着灼灼濁浊茲兹咨咨資资姿姿滋滋淄淄孜孜紫紫仔仔籽籽滓滓子子自自漬渍字字鬃鬃棕棕蹤踪宗宗綜综總总縱纵鄒邹走走奏奏揍揍租租足足卒卒族族祖祖詛诅阻阻組组鑽钻纂纂嘴嘴醉醉最最罪罪尊尊遵遵昨昨左左佐佐柞柞做做作作坐坐座座亍亍丌丌兀兀丐丐廿廿卅卅丕丕亙亘丞丞鬲鬲孬孬噩噩丨丨禺禺丿丿匕匕乇乇夭夭爻爻卮卮氐氐囟囟胤胤馗馗毓毓睾睾鞀鼗丶丶亟亟鼐鼐乜乜乩乩亓亓羋芈孛孛嗇啬嘏嘏仄仄厙厍厝厝厴厣厥厥廝厮靨靥贗赝匚匚叵叵匭匦匱匮匾匾賾赜卦卦卣卣刂刂刈刈刎刎剄刭刳刳劌刿剴剀剌剌剞剞剡剡剜剜蒯蒯剽剽劂劂劁劁劐劐劓劓冂冂罔罔亻亻仃仃仉仉仂仂仨仨仡仡仫仫仞仞傴伛仳仳伢伢佤佤仵仵倀伥傖伧伉伉佇伫佞佞佧佧攸攸佚佚佝佝佟佟佗佗伲伲伽伽佶佶佴佴侑侑侉侉侃侃侏侏佾佾佻佻儕侪佼佼儂侬侔侔儔俦儼俨儷俪俅俅俚俚俁俣俜俜俑俑俟俟俸俸倩倩偌偌俳俳倬倬倏倏倮倮倭倭俾俾倜倜倌倌倥倥倨倨僨偾偃偃偕偕偈偈偎偎傯偬僂偻儻傥儐傧儺傩傺傺僖僖儆儆僭僭僬僬僦僦僮僮儇儇儋儋仝仝氽氽畲佘僉佥俎俎龠龠汆汆糴籴兮兮巽巽黌黉馘馘囅冁夔夔勹勹匍匍訇訇匐匐鳧凫夙夙兕兕亠亠兗兖亳亳袞衮袤袤褻亵臠脔裒裒稟禀嬴嬴蠃蠃羸羸冫冫冱冱冽冽冼冼凇凇冖冖塚冢冥冥訁讠訐讦訌讧訕讪謳讴詎讵訥讷詁诂訶诃詆诋詔诏詘诎詒诒誆诓誄诔詿诖詰诘詼诙詵诜詬诟詮诠諍诤諢诨詡诩誚诮誥诰誑诳誒诶諏诹諑诼諉诿諛谀諗谂諂谄誶谇諶谌諫谏謔谑謁谒諤谔諭谕諼谖諳谙諦谛諮谘諞谝謨谟讜谠謖谡諡谥謐谧謫谪譾谫譖谮譙谯譎谲讞谳譫谵讖谶卩卩巹卺阝阝阢阢阡阡阱阱坂阪阽阽阼阼陂陂陘陉陔陔陟陟隉陧陬陬陲陲陴陴隈隈隍隍隗隗隰隰邗邗邛邛鄺邝邙邙鄔邬邡邡邴邴邳邳邶邶鄴邺邸邸邰邰郟郏郅郅邾邾鄶郐郤郄郇郇鄆郓酈郦郢郢郜郜郗郗郛郛郫郫郯郯郾郾鄄鄄鄢鄢鄞鄞鄣鄣鄱鄱鄯鄯鄹鄹酃酃酆酆芻刍奐奂勱劢劬劬劭劭劾劾哿哿猛勐勖勖勰勰叟叟燮燮矍矍廴廴凵凵氹凼鬯鬯厶厶弁弁畚畚巰巯坌坌堊垩垡垡塾塾墼墼壅壅壑壑圩圩圬圬圪圪圳圳壙圹圮圮圯圯壢坜圻圻阪坂坩坩壟垅坫坫壚垆坼坼坻坻坨坨坭坭坶坶坳坳埡垭垤垤垌垌塏垲埏埏坰垧堖垴垓垓垠垠埕埕塒埘堝埚塤埙埒埒垸垸埴埴垵埯埸埸埤埤墊埝堋堋堍堍埽埽埭埭堀堀堞堞堙堙塄塄堠堠塥塥塬塬墁墁墉墉墚墚墀墀馨馨鼙鼙懿懿艸艹艽艽艿艿芏芏芊芊芨芨芄芄芎芎芑芑薌芗芙芙芫芫芸芸芾芾芰芰藶苈苊苊苣苣芘芘芷芷芮芮莧苋萇苌蓯苁芩芩芴芴芡芡芪芪芟芟苄苄苧苎芤芤苡苡茉茉苷苷苤苤蘢茏茇茇苜苜苴苴苒苒檾苘茌茌苻苻苓苓蔦茑茚茚茆茆塋茔煢茕苠苠苕苕茜茜荑荑蕘荛蓽荜茈茈莒莒茼茼茴茴茱茱莛莛蕎荞茯茯荏荏荇荇荃荃薈荟荀荀茗茗薺荠茭茭茺茺茳茳犖荦滎荥蕁荨茛茛藎荩蕒荬蓀荪葒荭葤荮莰莰荸荸蒔莳萵莴莠莠莪莪莓莓蓧莜蒞莅荼荼薟莶莩莩荽荽蕕莸荻荻莘莘莞莞莨莨鶯莺蓴莼菁菁萁萁菥菥菘菘堇堇萘萘萋萋菝菝菽菽菖菖萜萜萸萸萑萑萆萆菔菔菟菟萏萏萃萃菸菸菹菹菪菪菅菅菀菀縈萦菰菰菡菡葜葜葑葑葚葚葙葙葳葳蕆蒇蒈蒈葺葺蕢蒉葸葸萼萼葆葆葩葩葶葶蔞蒌蒎蒎萱萱葭葭蓁蓁蓍蓍蓐蓐驀蓦蒽蒽蓓蓓蓊蓊蒿蒿蒺蒺蘺蓠蒡蒡蒹蒹蒴蒴蒗蒗鎣蓥蕷蓣蔌蔌甍甍蔸蔸蓰蓰蘞蔹蔟蔟藺蔺蕖蕖蔻蔻蓿蓿蓼蓼蕙蕙蕈蕈蕨蕨蕤蕤蕞蕞蕺蕺瞢瞢蕃蕃蘄蕲蕻蕻薤薤薨薨薇薇薏薏蕹蕹藪薮薜薜薅薅薹薹薷薷薰薰蘚藓槁藁藜藜藿藿蘧蘧蘅蘅蘩蘩蘖蘖蘼蘼廾廾弈弈夼夼奩奁耷耷奕奕奚奚奘奘匏匏尢尢尥尥尬尬尷尴扌扌捫扪摶抟抻抻拊拊拚拚拗拗拮拮撟挢拶拶挹挹捋捋捃捃掭掭揶揶捱捱捺捺掎掎摑掴捭捭掬掬掊掊捩捩掮掮摜掼揲揲摣揸揠揠撳揿揄揄揞揞揎揎摒摒揆揆掾掾攄摅摁摁搋搋搛搛搠搠搌搌搦搦搡搡摞摞攖撄摭摭撖撖摺摺擷撷擼撸撙撙攛撺擀擀擐擐擗擗擤擤擢擢攉攉攥攥攮攮弋弋忒忒甙甙弑弑卟卟叱叱嘰叽叩叩叨叨叻叻吒吒吖吖吆吆呋呋嘸呒囈呓呔呔嚦呖呃呃吡吡唄呗咼呙唚吣吲吲咂咂哢咔呷呷呱呱呤呤咚咚嚀咛咄咄呶呶呦呦噝咝哐哐咭咭哂哂噅咴噠哒咧咧咦咦嘵哓嗶哔呲呲咣咣噦哕咻咻咿咿哌哌噲哙哚哚嚌哜咩咩咪咪咤咤噥哝哏哏哞哞嘜唛哧哧嘮唠哽哽唔唔哳哳嗩唢唕唣唏唏唑唑唧唧唪唪嘖啧喏喏喵喵啉啉囀啭啁啁啕啕呼唿啐啐唼唼唷唷啖啖啵啵啶啶啷啷唳唳唰唰啜啜喋喋嗒嗒喃喃喱喱喹喹喈喈喁喁喟喟啾啾嗖嗖喑喑啻啻嗟嗟嘍喽嚳喾喔喔喙喙嗪嗪嗷嗷嗉嗉嘟嘟嗑嗑囁嗫呵嗬嗔嗔嗦嗦嗝嗝嗄嗄嗯嗯嗥嗥嗲嗲噯嗳嗌嗌嗍嗍嗨嗨嗵嗵嗤嗤轡辔嘞嘞嘈嘈嘌嘌嘁嘁嚶嘤嘣嘣嗾嗾嘀嘀嘧嘧嘭嘭噘噘嘹嘹噗噗嘬嘬噍噍噢噢噙噙嚕噜噌噌噔噔嚆嚆噤噤噱噱噫噫噻噻噼噼嚅嚅嚓嚓嚯嚯囔囔囗囗囝囝囡囡圇囵囫囫囹囹囿囿圄圄圊圊圉圉圜圜幃帏帙帙帔帔帑帑幬帱幘帻幗帼帷帷幄幄幔幔幛幛襆幞幡幡岌岌屺屺岍岍岐岐嶇岖岈岈峴岘嶴岙岑岑嵐岚岜岜岵岵岢岢崠岽岬岬岫岫岱岱岣岣峁峁岷岷嶧峄峒峒嶠峤峋峋崢峥嶗崂崍崃崧崧崦崦崮崮崤崤崞崞崆崆崛崛嶸嵘崾崾崴崴崽崽嵬嵬崳嵛嵯嵯嶁嵝嵫嵫嵋嵋嵊嵊嵩嵩嵴嵴嶂嶂嶙嶙嶝嶝豳豳嶷嶷巔巅彳彳彷彷徂徂徇徇徉徉後後徠徕徙徙徜徜徨徨徭徭徵徵徼徼衢衢彡彡犭犭犰犰犴犴獷犷獁犸狃狃狁狁狎狎麅狍狒狒狨狨獪狯狩狩猻狲狴狴狷狷猁猁狳狳獫猃狺狺狻狻猗猗猓猓玀猡猊猊猞猞猝猝獼猕猢猢猹猹猥猥蝟猬猸猸猱猱獐獐獍獍獗獗獠獠獬獬獯獯獾獾舛舛夥夥飧飧夤夤夂夂饣饣餳饧飩饨餼饩飪饪飫饫飭饬飴饴餉饷餑饽餘馀餛馄餷馇餿馊饃馍饈馐饉馑饊馓饌馔饢馕庀庀廡庑庋庋庖庖庥庥庠庠庹庹庵庵庾庾庳庳賡赓廒廒廑廑廛廛廨廨廩廪膺膺忄忄忉忉忖忖懺忏憮怃忮忮慪怄忡忡忤忤愾忾悵怅愴怆忪忪忭忭忸忸怙怙怵怵怦怦怛怛怏怏怍怍怩怩怫怫怊怊懌怿怡怡慟恸懨恹惻恻愷恺恂恂恪恪惲恽悖悖悚悚慳悭悝悝悃悃悒悒悌悌悛悛愜惬悻悻悱悱惝惝惘惘惆惆惚惚悴悴慍愠憒愦愕愕愣愣惴惴愀愀愎愎愫愫慊慊慵慵憬憬憔憔憧憧憷憷懍懔懵懵忝忝隳隳閂闩閆闫闈闱閎闳閔闵閌闶闥闼閭闾閫阃鬮阄閬阆閾阈閶阊鬩阋閿阌閽阍閼阏闃阒闋阕闔阖闐阗闕阙闞阚爿丬丬爿戕戕氵氵汔汔汜汜汊汊灃沣沅沅沐沐沔沔沌沌汨汨汩汩汴汴汶汶沆沆溈沩泐泐泔泔沭沭瀧泷瀘泸泱泱泗泗沲沲泠泠泖泖濼泺泫泫泮泮沱沱泓泓泯泯涇泾洹洹洧洧洌洌浹浃湞浈洇洇洄洄洙洙洎洎洫洫澮浍洮洮洵洵洚洚瀏浏滸浒潯浔洳洳涑涑浯浯淶涞潿涠浞浞涓涓涔涔浜浜浠浠浼浼浣浣渚渚淇淇淅淅淞淞瀆渎涿涿淠淠澠渑淦淦淝淝淙淙瀋渖涫涫淥渌涮涮渫渫湮湮湎湎湫湫溲溲湟湟漵溆湓湓湔湔渲渲渥渥湄湄灩滟溱溱溘溘灄滠漭漭瀅滢溥溥溧溧溽溽溻溻溷溷潷滗溴溴滏滏溏溏滂滂溟溟潢潢瀠潆瀟潇濫漤漕漕滹滹漯漯漶漶瀲潋瀦潴漪漪漉漉漩漩澉澉澍澍澌澌潸潸潲潲潼潼潺潺瀨濑濉濉澧澧澹澹澶澶濂濂濡濡濮濮濞濞濠濠濯濯瀚瀚瀣瀣瀛瀛瀹瀹瀵瀵灝灏灞灞宀宀宄宄宕宕宓宓宥宥宸宸甯甯騫骞搴搴寤寤寮寮褰褰寰寰蹇蹇謇謇辶辶迓迓迕迕迥迥迮迮迤迤邇迩迦迦逕迳迨迨逅逅逄逄逋逋邐逦逑逑逍逍逖逖逡逡逵逵逶逶逭逭逯逯遄遄遑遑遒遒遐遐遨遨遘遘遢遢遛遛暹暹遴遴遽遽邂邂邈邈邃邃邋邋彐彐彗彗彖彖彘彘尻尻咫咫屐屐屙屙孱孱屣屣屨屦羼羼弳弪弩弩弭弭艴艴弼弼鬻鬻屮屮妁妁妃妃妍妍嫵妩嫗妪妣妣妗妗姊姊媯妫妞妞妤妤姒姒妲妲妯妯姍姗妾妾婭娅嬈娆姝姝孌娈姣姣姘姘姹姹娌娌娉娉媧娲嫻娴娑娑娣娣娓娓婀婀婧婧婊婊婕婕娼娼婢婢嬋婵胬胬媼媪媛媛婷婷婺婺媾媾嫫嫫媲媲嬡嫒嬪嫔媸媸嫠嫠嫣嫣嬙嫱嫖嫖嫦嫦嫘嫘嫜嫜嬉嬉嬗嬗嬖嬖嬲嬲嬤嬷孀孀尕尕尜尜孚孚孥孥孳孳孑孑孓孓孢孢駔驵駟驷駙驸騶驺驛驿駑驽駘骀驍骁驊骅駢骈驪骊騏骐騍骒騅骓驂骖騭骘騖骛驁骜騮骝騸骟驃骠驄骢驏骣驥骥驤骧糸纟紆纡紂纣紇纥紈纨纊纩紜纭紕纰紓纾紺绀絏绁紱绂縐绉紼绋絀绌紿绐絝绔絎绗絳绛綆绠綃绡綈绨綾绫綺绮緋绯緔绱緄绲綞缍綬绶綹绺綣绻綰绾緇缁緙缂緗缃緹缇緲缈繢缋緦缌緶缏緱缑縋缒緡缗縉缙縝缜縟缛縞缟縭缡縊缢縑缣繽缤縹缥縵缦縲缧繆缪繅缫纈缬繚缭繒缯韁缰繾缱繰缲繯缳纘缵么幺畿畿巛巛甾甾邕邕玎玎璣玑瑋玮玢玢玟玟玨珏珂珂瓏珑玷玷玳玳珀珀瑉珉珈珈珥珥珙珙頊顼琊琊珩珩珧珧珞珞璽玺琿珲璉琏琪琪瑛瑛琦琦琥琥琨琨琰琰琮琮琬琬琛琛琚琚瑁瑁瑜瑜瑗瑗瑕瑕瑙瑙璦瑷瑭瑭瑾瑾璜璜瓔璎璀璀璁璁璿璇璋璋璞璞璨璨璩璩璐璐璧璧瓚瓒璺璺韙韪韞韫韜韬杌杌杓杓杞杞杈杈榪杩櫪枥枇枇杪杪杳杳枘枘梘枧杵杵棖枨樅枞梟枭枋枋杷杷杼杼柰柰櫛栉柘柘櫳栊柩柩枰枰櫨栌柙柙枵枵柚柚枳枳柝柝梔栀柃柃枸枸柢柢櫟栎柁柁檉柽栲栲栳栳椏桠橈桡桎桎楨桢桄桄榿桤梃梃栝栝桕桕樺桦桁桁檜桧桀桀欒栾棬桊桉桉栩栩梵梵梏梏桴桴桷桷梓梓桫桫欞棂楮楮棼棼櫝椟槧椠棹棹欏椤棰棰椋椋槨椁楗楗棣棣椐椐楱楱椹椹楠楠楂楂楝楝欖榄楫楫榀榀榘榘楸楸椴椴槌槌櫬榇櫚榈槎槎櫸榉楦楦楣楣楹楹榛榛榧榧榻榻榫榫榭榭槔槔榱榱藁槁槊槊檳槟榕榕櫧槠榍榍槿槿檣樯槭槭樗樗樘樘櫫橥槲槲橄橄樾樾檠檠橐橐橛橛樵樵檎檎櫓橹樽樽樨樨橘橘櫞橼檑檑簷檐檁檩檗檗檫檫猷猷獒獒歿殁殂殂殤殇殄殄殞殒殮殓殍殍殫殚殛殛殯殡殪殪軔轫軛轭軲轱軻轲轤轳軹轵軼轶軫轸軤轷轢轹軺轺軾轼輊轾輇辁輅辂輒辄輦辇輞辋輟辍輜辎輳辏轆辘轔辚軎軎戔戋戧戗戛戛戟戟戢戢戡戡戥戥戤戤戩戬臧臧甌瓯瓴瓴瓿瓿甏甏甑甑甓甓攴攴旮旮旯旯旰旰昊昊曇昙杲杲昃昃昕昕昀昀炅炅曷曷昝昝昴昴昱昱昶昶昵昵耆耆晟晟曄晔晁晁晏晏暉晖晡晡晗晗晷晷暄暄暌暌曖暧暝暝暾暾曛曛曜曜曦曦曩曩賁贲貰贳貺贶貽贻贄贽貲赀賅赅贐赆賑赈賚赉賕赇齎赍賧赕賻赙覘觇覬觊覡觋覿觌覦觎覯觏覲觐覷觑牮牮強犟牝牝犛牦牯牯牾牾牿牿犄犄犋犋犍犍犏犏犒犒挈挈挲挲掰掰搿搿擘擘耄耄毪毪毳毳毽毽毿毵毹毹氅氅氌氇氆氆氍氍氕氕氘氘氙氙氚氚氡氡氬氩氤氤氪氪氳氲攵攵敕敕敫敫牘牍牒牒牖牖爰爰虢虢刖刖肟肟肜肜肓肓肼肼朊朊肽肽肱肱肫肫肭肭肴肴膁肷朧胧腖胨胩胩臚胪胛胛胂胂胄胄胙胙胍胍胗胗朐朐胝胝脛胫胱胱胴胴胭胭膾脍脎脎胲胲胼胼朕朕脒脒豚豚腡脶脞脞脬脬脘脘脲脲腈腈醃腌腓腓腴腴腙腙腚腚腱腱腠腠腩腩靦腼膃腽齶腭腧腧塍塍媵媵膈膈膂膂臏膑滕滕膣膣膪膪臌臌朦朦臊臊膻膻臁臁膦膦歟欤欷欷欹欹歃歃歆歆歙歙颮飑颯飒颶飓颼飕飆飙飚飚殳殳彀彀轂毂觳觳斐斐齏齑斕斓於於旆旆旄旄旃旃旌旌旎旎旒旒旖旖煬炀煒炜燉炖熗炝炻炻烀烀炷炷炫炫炱炱燁烨烊烊焐焐焓焓燜焖焯焯焱焱煳煳煜煜煨煨煆煅煲煲煊煊煸煸煺煺溜熘熳熳熵熵熨熨熠熠燠燠燔燔燧燧燹燹爝爝爨爨灬灬燾焘煦煦熹熹戾戾戽戽扃扃扈扈扉扉礻礻祀祀祆祆祉祉祛祛祜祜祓祓祚祚禰祢祗祗祠祠禎祯祧祧祺祺禪禅禊禊禚禚禧禧禳禳忑忑忐忐懟怼恝恝恚恚恧恧恁恁恙恙恣恣愨悫愆愆湣愍慝慝憩憩憝憝懋懋懣懑戇戆肀肀聿聿遝沓澩泶淼淼磯矶矸矸碭砀砉砉硨砗砘砘砑砑斫斫砭砭碸砜砝砝砹砹礪砺礱砻砟砟砼砼砥砥砬砬砣砣砩砩硎硎硭硭硤硖磽硗砦砦硐硐硇硇硌硌硪硪磧碛碓碓碚碚碇碇磣碜碡碡碣碣碲碲镟碹碥碥磔磔滾磙磉磉磬磬磲磲礅礅磴磴礓礓礤礤礞礞礴礴龕龛黹黹黻黻黼黼盱盱眄眄瞘眍盹盹眇眇眈眈眚眚眢眢眙眙眭眭眥眦眵眵眸眸睞睐瞼睑睇睇睃睃睚睚睨睨睢睢睥睥睿睿瞍瞍睽睽瞀瞀瞌瞌瞑瞑瞟瞟瞠瞠瞰瞰瞵瞵瞽瞽町町畀畀畎畎畋畋畈畈畛畛佘畲畹畹疃疃罘罘罡罡罟罟詈詈罨罨羆罴罱罱罹罹羈羁罾罾盍盍盥盥蠲蠲钅钅釓钆釔钇釙钋釗钊釕钌釷钍釧钏釤钐鍆钔釵钗釹钕鈈钚鈦钛钜钜鈑钣鈐钤鈁钫鈧钪鈄钭鈥钬鈀钯鈺钰鉦钲鈷钴鈳钶鉕钷鈽钸鈸钹鉞钺鉬钼鉭钽鈿钿鑠铄鈰铈鉉铉鉈铊鉍铋鈮铌鈹铍鐸铎銬铐銠铑鉺铒銪铕鋮铖鋏铗鐃铙鋣铘鐺铛銱铞銦铟鎧铠銖铢鋌铤銩铥鏵铧銓铨鉿铪鎩铩銚铫錚铮銫铯銃铳鐋铴銨铵銣铷鐒铹錸铼鋱铽鏗铿鋥锃鋰锂鋯锆鋨锇銼锉鋝锊鋶锍鉲锎鐧锏鋃锒鋟锓鋦锔錒锕錆锖鍩锘錛锛鍀锝錁锞錕锟錮锢鍃锪錇锫錈锩錟锬錙锱鍥锲鍇锴鍶锶鍔锷鍤锸鎪锼鍰锾鎄锿鏤镂鏘锵鐨镄鋂镅鏌镆鎘镉鐫镌錼镎鎦镏鎰镒鎵镓鑌镔鏢镖鏜镗鏝镘鏍镙鏞镛鏃镞鏇镟鏑镝鐔镡钁镢鏷镤鑥镥鐓镦鑭镧鐠镨鑹镩鏹镪鐙镫鑊镬鐲镯鐿镱鑔镲鑣镳鍾锺矧矧矬矬雉雉秕秕秭秭秣秣秫秫穭稆嵇嵇稃稃稂稂稞稞稔稔稹稹稷稷穡穑黏黏馥馥穰穰皈皈皎皎皓皓皙皙皤皤瓞瓞瓠瓠甬甬鳩鸠鳶鸢鴇鸨鴆鸩鴣鸪鶇鸫鸕鸬鴝鸲鴟鸱鷥鸶鴯鸸鷙鸷鴰鸹鵂鸺鸞鸾鵓鹁鸝鹂鵠鹄鵒鹆鷳鹇鵜鹈鵡鹉鶓鹋鵪鹌鵯鹎鶉鹑鶘鹕鶚鹗鶿鹚鶥鹛鶩鹜鷂鹞鶼鹣鸚鹦鷓鹧鷚鹨鷯鹩鷦鹪鷲鹫鷸鹬鸌鹱鷺鹭鸛鹳疒疒疔疔癤疖癘疠疝疝鬁疬疣疣疳疳疴疴疸疸痄痄皰疱疰疰痃痃痂痂瘂痖痍痍痣痣癆痨痦痦痤痤癇痫痧痧瘃瘃痱痱痼痼痿痿瘐瘐瘀瘀癉瘅瘌瘌瘞瘗瘊瘊瘥瘥瘺瘘瘕瘕瘙瘙瘛瘛瘼瘼瘢瘢瘠瘠癀癀瘭瘭瘰瘰癭瘿瘵瘵癃癃癮瘾瘳瘳癍癍癩癞癔癔癜癜癖癖癲癫臒癯翊翊竦竦穸穸穹穹窀窀窆窆窈窈窕窕竇窦窠窠窬窬窨窨窶窭窳窳衤衤衩衩衲衲衽衽衿衿袂袂袢袢襠裆袷袷袼袼裉裉褳裢裎裎襝裣襇裥裱裱褚褚裼裼裨裨裾裾裰裰褡褡褙褙褓褓褸褛褊褊襤褴褫褫褶褶繈襁襦襦襻襻疋疋胥胥皸皲皴皴矜矜耒耒耔耔耖耖耜耜耠耠耮耢耥耥耦耦耬耧耩耩耨耨耱耱耋耋耵耵聃聃聆聆聹聍聒聒聵聩聱聱覃覃頇顸頎颀頏颃頡颉頜颌潁颍頦颏頷颔顎颚顓颛顳颞顢颟顙颡顥颢顬颥顰颦虍虍虔虔虯虬蟣虮蠆虿虺虺虼虼虻虻蚨蚨蚍蚍蚋蚋蜆蚬蠔蚝蚧蚧蚣蚣蚪蚪蚓蚓蚩蚩蚶蚶蛄蛄蚵蚵蠣蛎蚰蚰蚺蚺蚱蚱蚯蚯蛉蛉蟶蛏蚴蚴蛩蛩蛺蛱蟯蛲蛭蛭螄蛳蛐蛐蜓蜓蛞蛞蠐蛴蛟蛟蛘蛘蛑蛑蜃蜃蜇蜇蛸蛸蜈蜈蜊蜊蜍蜍蜉蜉蜣蜣蜻蜻蜞蜞蜥蜥蜮蜮蜚蜚蜾蜾蟈蝈蜴蜴蜱蜱蜩蜩蜷蜷蜿蜿螂螂蜢蜢蝽蝽蠑蝾蝻蝻蝠蝠蝰蝰蝌蝌蝮蝮螋螋蝓蝓蝣蝣螻蝼蝤蝤蝙蝙蝥蝥螓螓螯螯蟎螨蟒蟒蟆蟆螈螈螅螅螭螭螗螗螃螃螫螫蟥蟥螬螬螵螵螳螳蟋蟋蟓蟓螽螽蟑蟑蟀蟀蟊蟊蟛蟛蟪蟪蟠蟠蟮蟮蠖蠖蠓蠓蟾蟾蠊蠊蠛蠛蠡蠡蠹蠹蠼蠼缶缶罌罂罄罄罅罅舐舐竺竺竽竽笈笈篤笃笄笄筧笕笊笊笫笫笏笏筇筇笸笸笪笪笙笙笮笮笱笱笠笠笥笥笤笤笳笳籩笾笞笞筘筘篳筚筅筅筵筵筌筌箏筝筠筠筮筮筻筻筢筢筲筲筱筱箐箐簀箦篋箧箸箸箬箬箝箝籜箨箅箅簞箪箜箜箢箢簫箫箴箴簣篑篁篁篌篌篝篝篚篚篥篥篦篦篪篪簌簌篾篾篼篼簏簏籪簖簋簋簟簟簪簪簦簦簸簸籟籁籀籀臾臾舁舁舂舂舄舄臬臬衄衄舡舡舢舢艤舣舭舭舯舯舨舨舫舫舸舸艫舻舳舳舴舴舾舾艄艄艉艉艋艋艏艏艚艚艟艟艨艨衾衾嫋袅袈袈裘裘裟裟襞襞羝羝羥羟羧羧羯羯羰羰羲羲秈籼敉敉粑粑糲粝糶粜粞粞粢粢粲粲粼粼粽粽糝糁餱糇糌糌糍糍糈糈糅糅糗糗糨糨艮艮暨暨羿羿翎翎翕翕翥翥翡翡翦翦翩翩翮翮翳翳纟糸縶絷綦綦綮綮繇繇纛纛麩麸麴麴赳赳趄趄趔趔趑趑趲趱赧赧赭赭豇豇豉豉酊酊酐酐酎酎酏酏酤酤酢酢酡酡醯酰酩酩酯酯釅酽釃酾酲酲酴酴酹酹醌醌醅醅醐醐醍醍醑醑醢醢醣醣醪醪醭醭醮醮酰醯醵醵醴醴醺醺豕豕鹺鹾躉趸跫跫踅踅蹙蹙蹩蹩趵趵趿趿趼趼趺趺蹌跄蹠跖跗跗跚跚躒跞跎跎跏跏跛跛跆跆跬跬蹺跷蹕跸跣跣躚跹躋跻跤跤踉踉跽跽踔踔踝踝踟踟躓踬踮踮踣踣躑踯踺踺蹀蹀踹踹踵踵踽踽踱踱蹉蹉蹁蹁蹂蹂躡蹑蹣蹒蹊蹊躕蹰蹶蹶蹼蹼蹯蹯蹴蹴躅躅躪躏躔躔躐躐躦躜躞躞豸豸貂貂貊貊貅貅貘貘貔貔斛斛觖觖觴觞觚觚觜觜觥觥觫觫觶觯訾訾謦謦靚靓雩雩靂雳雯雯霆霆霽霁霈霈霏霏霎霎霪霪靄霭霰霰霾霾齔龀齟龃齙龅齠龆齜龇齦龈齬龉齪龊齷龌黽黾黿鼋鼉鼍隹隹隼隼雋隽雎雎雒雒瞿瞿讎雠銎銎鑾銮鋈鋈鏨錾鍪鍪鏊鏊鎏鎏鐾鐾鑫鑫魷鱿魴鲂鮁鲅鮃鲆鯰鲇鱸鲈穌稣鮒鲋鱟鲎鮐鲐鮭鲑鮚鲒鮪鲔鮞鲕鱭鲚鮫鲛鯗鲞鱘鲟鯁鲠鱺鲡鰱鲢鰹鲣鰣鲥鰷鲦鯀鲧鯊鲨鯇鲩鯽鲫鯖鲭鯪鲮鯫鲰鯡鲱鯤鲲鯧鲳鯝鲴鯢鲵鲇鲶鯛鲷鯴鲺鯔鲻鱝鲼鰈鲽鱷鳄鰍鳅鰒鳆鰉鳇鯿鳊鰠鳋鼇鳌鰭鳍鰨鳎鰥鳏鰩鳐鰳鳓鰾鳔鱈鳕鰻鳗鰵鳘鱅鳙鱖鳜鱔鳝鱒鳟鱧鳢靼靼鞅鞅韃鞑鞽鞒鞔鞔韉鞯鞫鞫鞣鞣鞲鞲韝鞴骱骱骰骰骷骷鶻鹘骶骶骺骺骼骼髁髁髀髀髏髅髂髂髖髋髕髌髑髑魅魅魃魃魘魇魎魉魈魈魍魍魑魑饗飨饜餍餮餮饕饕饔饔髟髟髡髡髦髦髯髯髫髫髻髻髭髭髹髹鬈鬈鬏鬏鬢鬓鬟鬟鬣鬣麽麽麾麾縻縻麂麂麇麇麈麈麋麋麒麒鏖鏖麝麝麟麟黛黛黜黜黝黝黠黠黟黟黢黢黷黩黧黧黥黥黲黪黯黯鼢鼢鼬鼬鼯鼯鼴鼹鼷鼷鼽鼽鼾鼾齇齄 -------------------------------------------------------------------------------- /ReadChinese/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ReadChinese 4 | // 5 | // Created by Ashen on 15/12/10. 6 | // Copyright © 2015年 Ashen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : NSObject 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /ReadChinese/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // ReadChinese 4 | // 5 | // Created by Ashen on 15/12/10. 6 | // Copyright © 2015年 Ashen. 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 | - (void)applicationWillTerminate:(NSNotification *)aNotification { 22 | // Insert code here to tear down your application 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /ReadChinese/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "mac", 5 | "size" : "16x16", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "mac", 10 | "size" : "16x16", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "mac", 15 | "size" : "32x32", 16 | "scale" : "1x" 17 | }, 18 | { 19 | "idiom" : "mac", 20 | "size" : "32x32", 21 | "scale" : "2x" 22 | }, 23 | { 24 | "idiom" : "mac", 25 | "size" : "128x128", 26 | "scale" : "1x" 27 | }, 28 | { 29 | "idiom" : "mac", 30 | "size" : "128x128", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "idiom" : "mac", 35 | "size" : "256x256", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "mac", 40 | "size" : "256x256", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "mac", 45 | "size" : "512x512", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "mac", 50 | "size" : "512x512", 51 | "scale" : "2x" 52 | } 53 | ], 54 | "info" : { 55 | "version" : 1, 56 | "author" : "xcode" 57 | } 58 | } -------------------------------------------------------------------------------- /ReadChinese/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | Default 511 | 512 | 513 | 514 | 515 | 516 | 517 | Left to Right 518 | 519 | 520 | 521 | 522 | 523 | 524 | Right to Left 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | Default 536 | 537 | 538 | 539 | 540 | 541 | 542 | Left to Right 543 | 544 | 545 | 546 | 547 | 548 | 549 | Right to Left 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 773 | 774 | 775 | 776 | 777 | 778 | 791 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 831 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | -------------------------------------------------------------------------------- /ReadChinese/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 25 | LSMinimumSystemVersion 26 | $(MACOSX_DEPLOYMENT_TARGET) 27 | NSHumanReadableCopyright 28 | Copyright © 2015年 Ashen. All rights reserved. 29 | NSMainStoryboardFile 30 | Main 31 | NSPrincipalClass 32 | NSApplication 33 | 34 | 35 | -------------------------------------------------------------------------------- /ReadChinese/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // ReadChinese 4 | // 5 | // Created by Ashen on 15/12/10. 6 | // Copyright © 2015年 Ashen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : NSViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /ReadChinese/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // ReadChinese 4 | // 5 | // Created by Ashen on 15/12/10. 6 | // Copyright © 2015年 Ashen. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "ASConvertor.h" 11 | 12 | @interface ViewController() 13 | 14 | @property (weak) IBOutlet NSTextField *txtShowPath; 15 | @property (weak) IBOutlet NSTextField *txtShowOutPath; 16 | @property (weak) IBOutlet NSScrollView *txtShowChinese; 17 | @property (weak) IBOutlet NSButton *deleteInOneFile; 18 | @property (weak) IBOutlet NSButton *deleteInAllFiles; 19 | @property (weak) IBOutlet NSButton *tradition; 20 | 21 | @property (nonatomic, strong) NSTextView *txtView; 22 | 23 | @end 24 | 25 | @implementation ViewController 26 | 27 | - (void)viewDidLoad { 28 | [super viewDidLoad]; 29 | self.txtShowPath.editable = NO; 30 | self.txtShowOutPath.editable = NO; 31 | } 32 | 33 | - (void)setRepresentedObject:(id)representedObject { 34 | [super setRepresentedObject:representedObject]; 35 | } 36 | 37 | #pragma mark - action 38 | - (IBAction)deleteInAllFiles:(NSButton *)sender { 39 | self.deleteInOneFile.state = 0; 40 | } 41 | 42 | - (IBAction)deleteInOneFile:(NSButton *)sender { 43 | self.deleteInAllFiles.state = 0; 44 | } 45 | 46 | 47 | - (IBAction)OpenFile:(NSButton *)sender { 48 | NSOpenPanel *oPanel = [NSOpenPanel openPanel]; 49 | [oPanel setCanChooseDirectories:YES]; 50 | [oPanel setCanChooseFiles:NO]; 51 | if ([oPanel runModal] == NSOKButton) { 52 | NSString *path = [[[[[oPanel URLs] objectAtIndex:0] absoluteString] componentsSeparatedByString:@":"] lastObject]; 53 | path = [[path stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] stringByExpandingTildeInPath]; 54 | if (sender.tag == 100) { 55 | self.txtShowPath.placeholderString = path; 56 | } else { 57 | self.txtShowOutPath.placeholderString = [path stringByAppendingPathComponent:@"chinese.txt"]; 58 | } 59 | } 60 | } 61 | 62 | - (IBAction)exportAction:(id)sender { 63 | [self readFiles:self.txtShowPath.placeholderString]; 64 | } 65 | 66 | #pragma mark - Method 67 | - (void)showTxt:(NSMutableString *)txt { 68 | self.txtView.string = txt; 69 | self.txtShowChinese.documentView = _txtView; 70 | } 71 | 72 | 73 | - (void)readFiles:(NSString *)str { 74 | if (self.txtShowPath.placeholderString.length == 0 || self.txtShowOutPath.placeholderString.length == 0) { 75 | [self showTxt:[@"亲,选择路径没?" mutableCopy]]; 76 | return; 77 | } 78 | [self showTxt:[@"开始导出" mutableCopy]]; 79 | NSFileManager *manager = [NSFileManager defaultManager]; 80 | NSString *home = [str stringByExpandingTildeInPath]; 81 | NSMutableString *dataMstr = [NSMutableString string]; 82 | NSMutableArray *dataMSet = [NSMutableArray array]; 83 | 84 | NSDirectoryEnumerator *direnum = [manager enumeratorAtPath:home]; 85 | NSMutableArray *files = [NSMutableArray arrayWithCapacity:42]; 86 | 87 | NSString *filename ; 88 | NSArray *extension = @[@"m", @"h"]; 89 | while (filename = [direnum nextObject]) { 90 | for (NSString *ext in extension) { 91 | if ([[filename pathExtension] isEqualToString:ext]) { 92 | [files addObject: filename]; 93 | } 94 | } 95 | } 96 | NSEnumerator *fileenum; 97 | fileenum = [files objectEnumerator]; 98 | NSInteger chineseCount = 0; 99 | while (filename = [fileenum nextObject]) { 100 | 101 | NSMutableArray *dataInOneFile = [NSMutableArray array]; 102 | 103 | NSString *str=[NSString stringWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", home, filename] encoding:NSUTF8StringEncoding error:nil]; 104 | 105 | NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:@"@\"[^\"]*[\\u4E00-\\u9FA5]+[^\"\\n]*?\"" options:NSRegularExpressionCaseInsensitive error:nil]; 106 | 107 | NSArray *matches = [regular matchesInString:str 108 | options:0 109 | range:NSMakeRange(0, str.length)]; 110 | 111 | 112 | NSString *newFileName = [NSString stringWithFormat:@"\n/*\n%@\n*/", [[filename componentsSeparatedByString:@"/"] lastObject]]; 113 | BOOL isHasFileName = NO; 114 | BOOL isHasChineseInFile = NO; 115 | for (NSTextCheckingResult *match in matches) { 116 | if (!isHasFileName) { 117 | [dataMSet addObject:newFileName]; 118 | } 119 | NSRange range = [match range]; 120 | NSString *mStr = [str substringWithRange:range]; 121 | NSRange isOnlyAt = NSMakeRange(0, 1); 122 | mStr = [mStr stringByReplacingCharactersInRange:isOnlyAt withString:@""]; 123 | isHasFileName = YES; 124 | 125 | if (self.deleteInOneFile.state) { 126 | if ([dataInOneFile containsObject:mStr]) { //除去本文件中重复出现的字符串 127 | continue; 128 | } 129 | [dataInOneFile addObject:mStr]; 130 | } 131 | 132 | if (self.deleteInAllFiles.state) { 133 | if ([dataMSet containsObject:mStr]) { //除去所有文件中重复出现的字符串 134 | continue; 135 | } 136 | } 137 | chineseCount++; 138 | [dataMSet addObject:mStr]; 139 | isHasChineseInFile = YES; 140 | } 141 | if (!isHasChineseInFile) { 142 | [dataMSet removeObject:newFileName]; 143 | } 144 | } 145 | 146 | for (NSString *txt in dataMSet) { 147 | if ([txt containsString:@"/*"] && [txt containsString:@"*/"]) { 148 | [dataMstr appendString:txt]; 149 | [dataMstr appendString:@"\n"]; 150 | continue; 151 | } 152 | [dataMstr appendString:[[txt stringByAppendingString:@"="] stringByAppendingString: self.tradition.state ? [[ASConvertor getInstance] s2t:txt] : txt]]; 153 | [dataMstr appendString:@";"]; 154 | [dataMstr appendString:@"\n"]; 155 | } 156 | [dataMstr writeToFile:self.txtShowOutPath.placeholderString atomically:YES encoding:NSUTF8StringEncoding error:nil]; 157 | 158 | NSMutableString *finalStr = [NSMutableString stringWithFormat:@"\n共有 %ld 个中文字符串\n", chineseCount]; 159 | [finalStr appendString:dataMstr]; 160 | [self showTxt:finalStr]; 161 | } 162 | 163 | #pragma mark - getter / setter 164 | - (NSTextView *)txtView { 165 | if (_txtView) { 166 | return _txtView; 167 | } 168 | _txtView = [[NSTextView alloc]initWithFrame:CGRectMake(0, 0, 335, 190)]; 169 | [_txtView setMinSize:NSMakeSize(0.0, 190)]; 170 | [_txtView setMaxSize:NSMakeSize(FLT_MAX, FLT_MAX)]; 171 | [_txtView setVerticallyResizable:YES]; 172 | [_txtView setHorizontallyResizable:NO]; 173 | [_txtView setAutoresizingMask:NSViewWidthSizable]; 174 | [[_txtView textContainer]setContainerSize:NSMakeSize(335,FLT_MAX)]; 175 | [[_txtView textContainer]setWidthTracksTextView:YES]; 176 | [_txtView setFont:[NSFont fontWithName:@"Helvetica" size:12.0]]; 177 | [_txtView setEditable:NO]; 178 | return _txtView; 179 | } 180 | 181 | 182 | 183 | @end 184 | -------------------------------------------------------------------------------- /ReadChinese/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ReadChinese 4 | // 5 | // Created by Ashen on 15/12/10. 6 | // Copyright © 2015年 Ashen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, const char * argv[]) { 12 | return NSApplicationMain(argc, argv); 13 | } 14 | -------------------------------------------------------------------------------- /ReadChinese/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ashen-zhao/ReadChinese/c26b818067fc2929fd351c1117f9a192d50f9ac9/ReadChinese/screenshot.png --------------------------------------------------------------------------------