├── .gitignore ├── DailyWidget ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ └── WidgetBackground.colorset │ │ └── Contents.json ├── DailyWidget.intentdefinition ├── DailyWidget.swift └── Info.plist ├── DailyWidgetExtension.entitlements ├── DailyWord.xcodeproj ├── project.pbxproj └── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── DailyWord ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-1024.png │ │ ├── Icon-120.png │ │ ├── Icon-121.png │ │ ├── Icon-152.png │ │ ├── Icon-167.png │ │ ├── Icon-180.png │ │ ├── Icon-20.png │ │ ├── Icon-29.png │ │ ├── Icon-40.png │ │ ├── Icon-41.png │ │ ├── Icon-42.png │ │ ├── Icon-58.png │ │ ├── Icon-59.png │ │ ├── Icon-60.png │ │ ├── Icon-76.png │ │ ├── Icon-80.png │ │ ├── Icon-81.png │ │ └── Icon-87.png │ └── Contents.json ├── ContentView.swift ├── DailyWord.entitlements ├── DailyWord.swift ├── Info.plist ├── Languages │ ├── CountryCodes.swift │ ├── French.swift │ ├── Italian.swift │ ├── Japanese.swift │ ├── LanguageFactory.swift │ ├── Morse.swift │ ├── NationalFlags.swift │ ├── NoLang.swift │ └── Pair.swift ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json ├── SupportedLanguages.swift ├── Word.swift └── WordView.swift ├── README.md ├── combine.phonenumbers.py ├── combine.swift.py ├── combine.typescript.py ├── extract.py ├── flags ├── flags.json └── parse.js ├── img.png └── privacy.md /.gitignore: -------------------------------------------------------------------------------- 1 | **/Secrets.swift* 2 | 3 | output.txt 4 | words.txt 5 | 6 | .DS_Store 7 | .venv 8 | 9 | # Xcode 10 | # 11 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 12 | 13 | ## User settings 14 | xcuserdata/ 15 | 16 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) 17 | *.xcscmblueprint 18 | *.xccheckout 19 | 20 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) 21 | build/ 22 | DerivedData/ 23 | *.moved-aside 24 | *.pbxuser 25 | !default.pbxuser 26 | *.mode1v3 27 | !default.mode1v3 28 | *.mode2v3 29 | !default.mode2v3 30 | *.perspectivev3 31 | !default.perspectivev3 32 | 33 | ## Obj-C/Swift specific 34 | *.hmap 35 | 36 | ## App packaging 37 | *.ipa 38 | *.dSYM.zip 39 | *.dSYM 40 | 41 | ## Playgrounds 42 | timeline.xctimeline 43 | playground.xcworkspace 44 | 45 | # Swift Package Manager 46 | # 47 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 48 | # Packages/ 49 | # Package.pins 50 | # Package.resolved 51 | # *.xcodeproj 52 | # 53 | # Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata 54 | # hence it is not needed unless you have added a package configuration file to your project 55 | # .swiftpm 56 | 57 | .build/ 58 | 59 | # CocoaPods 60 | # 61 | # We recommend against adding the Pods directory to your .gitignore. However 62 | # you should judge for yourself, the pros and cons are mentioned at: 63 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 64 | # 65 | # Pods/ 66 | # 67 | # Add this line if you want to avoid checking in source code from the Xcode workspace 68 | # *.xcworkspace 69 | 70 | # Carthage 71 | # 72 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 73 | # Carthage/Checkouts 74 | 75 | Carthage/Build/ 76 | 77 | # Accio dependency management 78 | Dependencies/ 79 | .accio/ 80 | 81 | # fastlane 82 | # 83 | # It is recommended to not store the screenshots in the git repo. 84 | # Instead, use fastlane to re-generate the screenshots whenever they are needed. 85 | # For more information about the recommended setup visit: 86 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 87 | 88 | fastlane/report.xml 89 | fastlane/Preview.html 90 | fastlane/screenshots/**/*.png 91 | fastlane/test_output 92 | 93 | # Code Injection 94 | # 95 | # After new code Injection tools there's a generated folder /iOSInjectionProject 96 | # https://github.com/johnno1962/injectionforxcode 97 | 98 | iOSInjectionProject/ 99 | -------------------------------------------------------------------------------- /DailyWidget/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /DailyWidget/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "scale" : "1x", 46 | "size" : "20x20" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "scale" : "2x", 51 | "size" : "20x20" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "scale" : "1x", 56 | "size" : "29x29" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "scale" : "2x", 61 | "size" : "29x29" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "scale" : "1x", 66 | "size" : "40x40" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "scale" : "2x", 71 | "size" : "40x40" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "scale" : "1x", 76 | "size" : "76x76" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "scale" : "2x", 81 | "size" : "76x76" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "scale" : "2x", 86 | "size" : "83.5x83.5" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "scale" : "1x", 91 | "size" : "1024x1024" 92 | } 93 | ], 94 | "info" : { 95 | "author" : "xcode", 96 | "version" : 1 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /DailyWidget/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /DailyWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /DailyWidget/DailyWidget.intentdefinition: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | INEnums 6 | 7 | INIntentDefinitionModelVersion 8 | 1.2 9 | INIntentDefinitionNamespace 10 | 88xZPY 11 | INIntentDefinitionSystemVersion 12 | 20A294 13 | INIntentDefinitionToolsBuildVersion 14 | 12A6144 15 | INIntentDefinitionToolsVersion 16 | 12.0 17 | INIntents 18 | 19 | 20 | INIntentCategory 21 | information 22 | INIntentDescriptionID 23 | tVvJ9c 24 | INIntentEligibleForWidgets 25 | 26 | INIntentIneligibleForSuggestions 27 | 28 | INIntentName 29 | Configuration 30 | INIntentResponse 31 | 32 | INIntentResponseCodes 33 | 34 | 35 | INIntentResponseCodeName 36 | success 37 | INIntentResponseCodeSuccess 38 | 39 | 40 | 41 | INIntentResponseCodeName 42 | failure 43 | 44 | 45 | 46 | INIntentTitle 47 | Configuration 48 | INIntentTitleID 49 | gpCwrM 50 | INIntentType 51 | Custom 52 | INIntentVerb 53 | View 54 | 55 | 56 | INTypes 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /DailyWidget/DailyWidget.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DailyWidget.swift 3 | // DailyWidget 4 | // 5 | // Created by Joshua Spicer on 10/10/20. 6 | // 7 | 8 | import WidgetKit 9 | import SwiftUI 10 | 11 | struct WordEntry: TimelineEntry { 12 | var date: Date 13 | let word: Word 14 | let flag: String 15 | let language: SupportedLanguages 16 | } 17 | 18 | struct Provider: TimelineProvider { 19 | 20 | @AppStorage("language", store: UserDefaults(suiteName: "group.com.joshspicer.dailyword")) 21 | var language: SupportedLanguages = SupportedLanguages.Italian 22 | 23 | func placeholder(in context: Context) -> WordEntry { 24 | return WordEntry(date: Date(), word: Word(native: "Hello", foreign: "Hello"), flag: "🇺🇸", language: .Italian) 25 | } 26 | 27 | func getSnapshot(in context: Context, completion: @escaping (WordEntry) -> Void) { 28 | 29 | let entry = WordEntry(date: Date(), word: Word(native: "Hello", foreign: "Hello"), flag: "🇺🇸", language: .Italian) 30 | completion(entry) 31 | } 32 | 33 | func getTimeline(in context: Context, completion: @escaping (Timeline) -> Void) { 34 | 35 | // Time of creation 36 | let now: Date = Date() 37 | 38 | // The earliest moment we'd be ok with the widget refreshing 39 | let calendar = Calendar.current 40 | let future = calendar.date(byAdding: .hour, value: 24, to: now)! 41 | 42 | let lang = LanguageFactory.Create(lang: language) 43 | let randWord = lang.getRandom() 44 | 45 | let entry = WordEntry(date: now, word: randWord, flag: lang.getFlag(), language: language) 46 | let timeline = Timeline(entries: [entry], policy: .after(future)) 47 | 48 | completion(timeline) 49 | } 50 | 51 | typealias Entry = WordEntry 52 | } 53 | 54 | struct WidgetEntryView: View { 55 | //let entry: Provider.Entry 56 | let word: Word 57 | let date: Date 58 | let flag: String 59 | let language: SupportedLanguages 60 | 61 | var body: some View { 62 | let isMorse = language == .Morse 63 | let isNatlFlags = language == .NationalFlags 64 | let isCountryCode = language == .CountryCodes 65 | GeometryReader { g in 66 | 67 | VStack(alignment: .leading, spacing: 0, content: { 68 | if (!isMorse && !isNatlFlags) { 69 | // Flag 70 | HStack { 71 | Text(flag) 72 | .font(isCountryCode ? .system(size: 25) : .system(size: 40)) 73 | } 74 | .padding(.top, 10) 75 | .padding(.horizontal, 10) 76 | .foregroundColor(.white) 77 | } 78 | // Words 79 | VStack(alignment: .leading, spacing: nil, content: { 80 | HStack { 81 | Text(word.foreign) 82 | .fontWeight(.bold) 83 | .foregroundColor(.green) 84 | .lineLimit(1) 85 | .font(isMorse || isNatlFlags ? .system(size: 70) : .largeTitle) 86 | .minimumScaleFactor(0.2) 87 | } 88 | HStack { 89 | Text(word.native) 90 | .fontWeight(.bold) 91 | .font(isMorse ? .system(size: 50) : .system(.body)) 92 | .minimumScaleFactor(0.2) 93 | .foregroundColor(.gray) 94 | .padding(.leading, isNatlFlags ? 4 : 0) 95 | } 96 | }) 97 | .padding(.trailing, 10) 98 | .padding(.horizontal, 10) 99 | Spacer () 100 | }) 101 | 102 | .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: .leading) 103 | .padding(.leading, 10) 104 | .background( 105 | LinearGradient( 106 | gradient: Gradient(colors: [.black]), 107 | startPoint: .top, 108 | endPoint: .bottomLeading) 109 | .opacity(0.90) 110 | .shadow(radius: 10.0)) 111 | } 112 | } 113 | } 114 | 115 | @main 116 | struct DailyWidget: Widget { 117 | private let kind = "DailyWidget" 118 | 119 | var body: some WidgetConfiguration { 120 | StaticConfiguration(kind: kind, provider: Provider(), content: { 121 | entry in WidgetEntryView(word: entry.word, date: entry.date, flag: entry.flag, language: entry.language) 122 | }).supportedFamilies([.systemSmall]) 123 | } 124 | } 125 | 126 | struct DailyWidget_Previews: PreviewProvider { 127 | static var previews: some View { 128 | WidgetEntryView (word: Word(native: "Bye", foreign: "Arrivederci"), date: Date(), flag: "🇮🇹", language: .Italian) 129 | .previewContext(WidgetPreviewContext(family: .systemSmall)) 130 | 131 | WidgetEntryView (word: Word(native: "v", foreign: "...-"), date: Date(), flag: "🤖", language: .Morse) 132 | .previewContext(WidgetPreviewContext(family: .systemSmall)) 133 | 134 | WidgetEntryView (word: Word(native: "United States", foreign: "🇺🇸"), date: Date(), flag: "", language: .NationalFlags) 135 | .previewContext(WidgetPreviewContext(family: .systemSmall)) 136 | 137 | WidgetEntryView (word: Word(native: "Qatar", foreign: "🇶🇦"), date: Date(), flag: "", language: .NationalFlags) 138 | .previewContext(WidgetPreviewContext(family: .systemSmall)) 139 | 140 | WidgetEntryView (word: Word(native: "United Kingdom", foreign: "+44"), date: Date(), flag: "☎️", language: .CountryCodes) 141 | .previewContext(WidgetPreviewContext(family: .systemSmall)) 142 | 143 | } 144 | } 145 | -------------------------------------------------------------------------------- /DailyWidget/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | Daily Word 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 19 | CFBundleShortVersionString 20 | $(MARKETING_VERSION) 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSExtension 24 | 25 | NSExtensionPointIdentifier 26 | com.apple.widgetkit-extension 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /DailyWidgetExtension.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.application-groups 8 | 9 | group.com.joshspicer.dailyword 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /DailyWord.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 0341BD6727E364F500A81E70 /* CountryCodes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0341BD6627E364F500A81E70 /* CountryCodes.swift */; }; 11 | 0341BD6827E364FA00A81E70 /* CountryCodes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0341BD6627E364F500A81E70 /* CountryCodes.swift */; }; 12 | 0356CE2527B9A78300CDBB0A /* Morse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0356CE2427B9A78300CDBB0A /* Morse.swift */; }; 13 | 0356CE2627B9A91400CDBB0A /* Morse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0356CE2427B9A78300CDBB0A /* Morse.swift */; }; 14 | 0364956227CEE81400813442 /* NationalFlags.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0364956127CEE81400813442 /* NationalFlags.swift */; }; 15 | 0364956327CEE81400813442 /* NationalFlags.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0364956127CEE81400813442 /* NationalFlags.swift */; }; 16 | 08684A74253E30E000AACF77 /* SupportedLanguages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A73253E30E000AACF77 /* SupportedLanguages.swift */; }; 17 | 08684A75253E30E000AACF77 /* SupportedLanguages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A73253E30E000AACF77 /* SupportedLanguages.swift */; }; 18 | 08684A7A253E46B400AACF77 /* Italian.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A79253E46B400AACF77 /* Italian.swift */; }; 19 | 08684A7B253E46B400AACF77 /* Italian.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A79253E46B400AACF77 /* Italian.swift */; }; 20 | 08684A7F253E46D300AACF77 /* LanguageFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A7E253E46D300AACF77 /* LanguageFactory.swift */; }; 21 | 08684A80253E46D300AACF77 /* LanguageFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A7E253E46D300AACF77 /* LanguageFactory.swift */; }; 22 | 08684A8D253E61BF00AACF77 /* French.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A8C253E61BF00AACF77 /* French.swift */; }; 23 | 08684A8E253E61BF00AACF77 /* French.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A8C253E61BF00AACF77 /* French.swift */; }; 24 | 08684A92253E621800AACF77 /* NoLang.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A91253E621800AACF77 /* NoLang.swift */; }; 25 | 08684A93253E621800AACF77 /* NoLang.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A91253E621800AACF77 /* NoLang.swift */; }; 26 | 08684A97253E755D00AACF77 /* Japanese.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A96253E755C00AACF77 /* Japanese.swift */; }; 27 | 08684A98253E755D00AACF77 /* Japanese.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08684A96253E755C00AACF77 /* Japanese.swift */; }; 28 | 08AE64B62531EC5E00AB157E /* DailyWord.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AE64B52531EC5E00AB157E /* DailyWord.swift */; }; 29 | 08AE64B82531EC5E00AB157E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AE64B72531EC5E00AB157E /* ContentView.swift */; }; 30 | 08AE64BA2531EC6100AB157E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 08AE64B92531EC6100AB157E /* Assets.xcassets */; }; 31 | 08AE64BD2531EC6100AB157E /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 08AE64BC2531EC6100AB157E /* Preview Assets.xcassets */; }; 32 | 08AE64CC2531EC7500AB157E /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08AE64CB2531EC7500AB157E /* WidgetKit.framework */; }; 33 | 08AE64CE2531EC7500AB157E /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08AE64CD2531EC7500AB157E /* SwiftUI.framework */; }; 34 | 08AE64D12531EC7500AB157E /* DailyWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AE64D02531EC7500AB157E /* DailyWidget.swift */; }; 35 | 08AE64D42531EC7700AB157E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 08AE64D32531EC7700AB157E /* Assets.xcassets */; }; 36 | 08AE64D62531EC7700AB157E /* DailyWidget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 08AE64D22531EC7500AB157E /* DailyWidget.intentdefinition */; }; 37 | 08AE64D72531EC7700AB157E /* DailyWidget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 08AE64D22531EC7500AB157E /* DailyWidget.intentdefinition */; }; 38 | 08AE64DA2531EC7700AB157E /* DailyWidgetExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 08AE64C92531EC7500AB157E /* DailyWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 39 | 08AE64E22531EF2F00AB157E /* Word.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AE64E12531EF2F00AB157E /* Word.swift */; }; 40 | 08AE64E52531EFA200AB157E /* Word.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AE64E12531EF2F00AB157E /* Word.swift */; }; 41 | 08AE64E82531F4B600AB157E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AE64B72531EC5E00AB157E /* ContentView.swift */; }; 42 | /* End PBXBuildFile section */ 43 | 44 | /* Begin PBXContainerItemProxy section */ 45 | 08AE64D82531EC7700AB157E /* PBXContainerItemProxy */ = { 46 | isa = PBXContainerItemProxy; 47 | containerPortal = 08AE64AA2531EC5E00AB157E /* Project object */; 48 | proxyType = 1; 49 | remoteGlobalIDString = 08AE64C82531EC7500AB157E; 50 | remoteInfo = DailyWidgetExtension; 51 | }; 52 | /* End PBXContainerItemProxy section */ 53 | 54 | /* Begin PBXCopyFilesBuildPhase section */ 55 | 08AE64DE2531EC7700AB157E /* Embed App Extensions */ = { 56 | isa = PBXCopyFilesBuildPhase; 57 | buildActionMask = 2147483647; 58 | dstPath = ""; 59 | dstSubfolderSpec = 13; 60 | files = ( 61 | 08AE64DA2531EC7700AB157E /* DailyWidgetExtension.appex in Embed App Extensions */, 62 | ); 63 | name = "Embed App Extensions"; 64 | runOnlyForDeploymentPostprocessing = 0; 65 | }; 66 | /* End PBXCopyFilesBuildPhase section */ 67 | 68 | /* Begin PBXFileReference section */ 69 | 0341BD6627E364F500A81E70 /* CountryCodes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CountryCodes.swift; sourceTree = ""; }; 70 | 0356CE2427B9A78300CDBB0A /* Morse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Morse.swift; sourceTree = ""; }; 71 | 0364956127CEE81400813442 /* NationalFlags.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NationalFlags.swift; sourceTree = ""; }; 72 | 08684A73253E30E000AACF77 /* SupportedLanguages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportedLanguages.swift; sourceTree = ""; }; 73 | 08684A79253E46B400AACF77 /* Italian.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Italian.swift; sourceTree = ""; }; 74 | 08684A7E253E46D300AACF77 /* LanguageFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageFactory.swift; sourceTree = ""; }; 75 | 08684A8C253E61BF00AACF77 /* French.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = French.swift; sourceTree = ""; }; 76 | 08684A91253E621800AACF77 /* NoLang.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoLang.swift; sourceTree = ""; }; 77 | 08684A96253E755C00AACF77 /* Japanese.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Japanese.swift; sourceTree = ""; }; 78 | 08AE64B22531EC5E00AB157E /* DailyWord.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DailyWord.app; sourceTree = BUILT_PRODUCTS_DIR; }; 79 | 08AE64B52531EC5E00AB157E /* DailyWord.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DailyWord.swift; sourceTree = ""; }; 80 | 08AE64B72531EC5E00AB157E /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 81 | 08AE64B92531EC6100AB157E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 82 | 08AE64BC2531EC6100AB157E /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 83 | 08AE64BE2531EC6100AB157E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 84 | 08AE64C92531EC7500AB157E /* DailyWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = DailyWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 85 | 08AE64CB2531EC7500AB157E /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; 86 | 08AE64CD2531EC7500AB157E /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; 87 | 08AE64D02531EC7500AB157E /* DailyWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DailyWidget.swift; sourceTree = ""; }; 88 | 08AE64D22531EC7500AB157E /* DailyWidget.intentdefinition */ = {isa = PBXFileReference; lastKnownFileType = file.intentdefinition; path = DailyWidget.intentdefinition; sourceTree = ""; }; 89 | 08AE64D32531EC7700AB157E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 90 | 08AE64D52531EC7700AB157E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 91 | 08AE64E12531EF2F00AB157E /* Word.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Word.swift; sourceTree = ""; }; 92 | 08AE64F12531F60200AB157E /* DailyWidgetExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DailyWidgetExtension.entitlements; sourceTree = ""; }; 93 | /* End PBXFileReference section */ 94 | 95 | /* Begin PBXFrameworksBuildPhase section */ 96 | 08AE64AF2531EC5E00AB157E /* Frameworks */ = { 97 | isa = PBXFrameworksBuildPhase; 98 | buildActionMask = 2147483647; 99 | files = ( 100 | ); 101 | runOnlyForDeploymentPostprocessing = 0; 102 | }; 103 | 08AE64C62531EC7500AB157E /* Frameworks */ = { 104 | isa = PBXFrameworksBuildPhase; 105 | buildActionMask = 2147483647; 106 | files = ( 107 | 08AE64CE2531EC7500AB157E /* SwiftUI.framework in Frameworks */, 108 | 08AE64CC2531EC7500AB157E /* WidgetKit.framework in Frameworks */, 109 | ); 110 | runOnlyForDeploymentPostprocessing = 0; 111 | }; 112 | /* End PBXFrameworksBuildPhase section */ 113 | 114 | /* Begin PBXGroup section */ 115 | 08684A78253E361A00AACF77 /* Languages */ = { 116 | isa = PBXGroup; 117 | children = ( 118 | 0356CE2427B9A78300CDBB0A /* Morse.swift */, 119 | 08684A79253E46B400AACF77 /* Italian.swift */, 120 | 08684A7E253E46D300AACF77 /* LanguageFactory.swift */, 121 | 08684A8C253E61BF00AACF77 /* French.swift */, 122 | 08684A91253E621800AACF77 /* NoLang.swift */, 123 | 08684A96253E755C00AACF77 /* Japanese.swift */, 124 | 0364956127CEE81400813442 /* NationalFlags.swift */, 125 | 0341BD6627E364F500A81E70 /* CountryCodes.swift */, 126 | ); 127 | path = Languages; 128 | sourceTree = ""; 129 | }; 130 | 08AE64A92531EC5E00AB157E = { 131 | isa = PBXGroup; 132 | children = ( 133 | 08AE64F12531F60200AB157E /* DailyWidgetExtension.entitlements */, 134 | 08AE64B42531EC5E00AB157E /* DailyWord */, 135 | 08AE64CF2531EC7500AB157E /* DailyWidget */, 136 | 08AE64CA2531EC7500AB157E /* Frameworks */, 137 | 08AE64B32531EC5E00AB157E /* Products */, 138 | ); 139 | sourceTree = ""; 140 | }; 141 | 08AE64B32531EC5E00AB157E /* Products */ = { 142 | isa = PBXGroup; 143 | children = ( 144 | 08AE64B22531EC5E00AB157E /* DailyWord.app */, 145 | 08AE64C92531EC7500AB157E /* DailyWidgetExtension.appex */, 146 | ); 147 | name = Products; 148 | sourceTree = ""; 149 | }; 150 | 08AE64B42531EC5E00AB157E /* DailyWord */ = { 151 | isa = PBXGroup; 152 | children = ( 153 | 08684A78253E361A00AACF77 /* Languages */, 154 | 08AE64B52531EC5E00AB157E /* DailyWord.swift */, 155 | 08AE64B72531EC5E00AB157E /* ContentView.swift */, 156 | 08AE64B92531EC6100AB157E /* Assets.xcassets */, 157 | 08AE64BE2531EC6100AB157E /* Info.plist */, 158 | 08AE64BB2531EC6100AB157E /* Preview Content */, 159 | 08AE64E12531EF2F00AB157E /* Word.swift */, 160 | 08684A73253E30E000AACF77 /* SupportedLanguages.swift */, 161 | ); 162 | path = DailyWord; 163 | sourceTree = ""; 164 | }; 165 | 08AE64BB2531EC6100AB157E /* Preview Content */ = { 166 | isa = PBXGroup; 167 | children = ( 168 | 08AE64BC2531EC6100AB157E /* Preview Assets.xcassets */, 169 | ); 170 | path = "Preview Content"; 171 | sourceTree = ""; 172 | }; 173 | 08AE64CA2531EC7500AB157E /* Frameworks */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | 08AE64CB2531EC7500AB157E /* WidgetKit.framework */, 177 | 08AE64CD2531EC7500AB157E /* SwiftUI.framework */, 178 | ); 179 | name = Frameworks; 180 | sourceTree = ""; 181 | }; 182 | 08AE64CF2531EC7500AB157E /* DailyWidget */ = { 183 | isa = PBXGroup; 184 | children = ( 185 | 08AE64D02531EC7500AB157E /* DailyWidget.swift */, 186 | 08AE64D22531EC7500AB157E /* DailyWidget.intentdefinition */, 187 | 08AE64D32531EC7700AB157E /* Assets.xcassets */, 188 | 08AE64D52531EC7700AB157E /* Info.plist */, 189 | ); 190 | path = DailyWidget; 191 | sourceTree = ""; 192 | }; 193 | /* End PBXGroup section */ 194 | 195 | /* Begin PBXNativeTarget section */ 196 | 08AE64B12531EC5E00AB157E /* DailyWord */ = { 197 | isa = PBXNativeTarget; 198 | buildConfigurationList = 08AE64C12531EC6100AB157E /* Build configuration list for PBXNativeTarget "DailyWord" */; 199 | buildPhases = ( 200 | 08AE64AE2531EC5E00AB157E /* Sources */, 201 | 08AE64AF2531EC5E00AB157E /* Frameworks */, 202 | 08AE64B02531EC5E00AB157E /* Resources */, 203 | 08AE64DE2531EC7700AB157E /* Embed App Extensions */, 204 | ); 205 | buildRules = ( 206 | ); 207 | dependencies = ( 208 | 08AE64D92531EC7700AB157E /* PBXTargetDependency */, 209 | ); 210 | name = DailyWord; 211 | productName = DailyItalianWord; 212 | productReference = 08AE64B22531EC5E00AB157E /* DailyWord.app */; 213 | productType = "com.apple.product-type.application"; 214 | }; 215 | 08AE64C82531EC7500AB157E /* DailyWidgetExtension */ = { 216 | isa = PBXNativeTarget; 217 | buildConfigurationList = 08AE64DB2531EC7700AB157E /* Build configuration list for PBXNativeTarget "DailyWidgetExtension" */; 218 | buildPhases = ( 219 | 08AE64C52531EC7500AB157E /* Sources */, 220 | 08AE64C62531EC7500AB157E /* Frameworks */, 221 | 08AE64C72531EC7500AB157E /* Resources */, 222 | ); 223 | buildRules = ( 224 | ); 225 | dependencies = ( 226 | ); 227 | name = DailyWidgetExtension; 228 | productName = DailyWidgetExtension; 229 | productReference = 08AE64C92531EC7500AB157E /* DailyWidgetExtension.appex */; 230 | productType = "com.apple.product-type.app-extension"; 231 | }; 232 | /* End PBXNativeTarget section */ 233 | 234 | /* Begin PBXProject section */ 235 | 08AE64AA2531EC5E00AB157E /* Project object */ = { 236 | isa = PBXProject; 237 | attributes = { 238 | LastSwiftUpdateCheck = 1200; 239 | LastUpgradeCheck = 1200; 240 | TargetAttributes = { 241 | 08AE64B12531EC5E00AB157E = { 242 | CreatedOnToolsVersion = 12.0.1; 243 | }; 244 | 08AE64C82531EC7500AB157E = { 245 | CreatedOnToolsVersion = 12.0.1; 246 | }; 247 | }; 248 | }; 249 | buildConfigurationList = 08AE64AD2531EC5E00AB157E /* Build configuration list for PBXProject "DailyWord" */; 250 | compatibilityVersion = "Xcode 9.3"; 251 | developmentRegion = en; 252 | hasScannedForEncodings = 0; 253 | knownRegions = ( 254 | en, 255 | Base, 256 | ); 257 | mainGroup = 08AE64A92531EC5E00AB157E; 258 | productRefGroup = 08AE64B32531EC5E00AB157E /* Products */; 259 | projectDirPath = ""; 260 | projectRoot = ""; 261 | targets = ( 262 | 08AE64B12531EC5E00AB157E /* DailyWord */, 263 | 08AE64C82531EC7500AB157E /* DailyWidgetExtension */, 264 | ); 265 | }; 266 | /* End PBXProject section */ 267 | 268 | /* Begin PBXResourcesBuildPhase section */ 269 | 08AE64B02531EC5E00AB157E /* Resources */ = { 270 | isa = PBXResourcesBuildPhase; 271 | buildActionMask = 2147483647; 272 | files = ( 273 | 08AE64BD2531EC6100AB157E /* Preview Assets.xcassets in Resources */, 274 | 08AE64BA2531EC6100AB157E /* Assets.xcassets in Resources */, 275 | ); 276 | runOnlyForDeploymentPostprocessing = 0; 277 | }; 278 | 08AE64C72531EC7500AB157E /* Resources */ = { 279 | isa = PBXResourcesBuildPhase; 280 | buildActionMask = 2147483647; 281 | files = ( 282 | 08AE64D42531EC7700AB157E /* Assets.xcassets in Resources */, 283 | ); 284 | runOnlyForDeploymentPostprocessing = 0; 285 | }; 286 | /* End PBXResourcesBuildPhase section */ 287 | 288 | /* Begin PBXSourcesBuildPhase section */ 289 | 08AE64AE2531EC5E00AB157E /* Sources */ = { 290 | isa = PBXSourcesBuildPhase; 291 | buildActionMask = 2147483647; 292 | files = ( 293 | 0356CE2527B9A78300CDBB0A /* Morse.swift in Sources */, 294 | 0364956227CEE81400813442 /* NationalFlags.swift in Sources */, 295 | 08684A97253E755D00AACF77 /* Japanese.swift in Sources */, 296 | 08AE64B82531EC5E00AB157E /* ContentView.swift in Sources */, 297 | 0341BD6727E364F500A81E70 /* CountryCodes.swift in Sources */, 298 | 08684A8D253E61BF00AACF77 /* French.swift in Sources */, 299 | 08684A7A253E46B400AACF77 /* Italian.swift in Sources */, 300 | 08684A92253E621800AACF77 /* NoLang.swift in Sources */, 301 | 08AE64E22531EF2F00AB157E /* Word.swift in Sources */, 302 | 08684A74253E30E000AACF77 /* SupportedLanguages.swift in Sources */, 303 | 08AE64D72531EC7700AB157E /* DailyWidget.intentdefinition in Sources */, 304 | 08684A7F253E46D300AACF77 /* LanguageFactory.swift in Sources */, 305 | 08AE64B62531EC5E00AB157E /* DailyWord.swift in Sources */, 306 | ); 307 | runOnlyForDeploymentPostprocessing = 0; 308 | }; 309 | 08AE64C52531EC7500AB157E /* Sources */ = { 310 | isa = PBXSourcesBuildPhase; 311 | buildActionMask = 2147483647; 312 | files = ( 313 | 08684A98253E755D00AACF77 /* Japanese.swift in Sources */, 314 | 0364956327CEE81400813442 /* NationalFlags.swift in Sources */, 315 | 08AE64D62531EC7700AB157E /* DailyWidget.intentdefinition in Sources */, 316 | 08684A8E253E61BF00AACF77 /* French.swift in Sources */, 317 | 0341BD6827E364FA00A81E70 /* CountryCodes.swift in Sources */, 318 | 08684A7B253E46B400AACF77 /* Italian.swift in Sources */, 319 | 08684A93253E621800AACF77 /* NoLang.swift in Sources */, 320 | 08AE64D12531EC7500AB157E /* DailyWidget.swift in Sources */, 321 | 08684A75253E30E000AACF77 /* SupportedLanguages.swift in Sources */, 322 | 0356CE2627B9A91400CDBB0A /* Morse.swift in Sources */, 323 | 08AE64E82531F4B600AB157E /* ContentView.swift in Sources */, 324 | 08684A80253E46D300AACF77 /* LanguageFactory.swift in Sources */, 325 | 08AE64E52531EFA200AB157E /* Word.swift in Sources */, 326 | ); 327 | runOnlyForDeploymentPostprocessing = 0; 328 | }; 329 | /* End PBXSourcesBuildPhase section */ 330 | 331 | /* Begin PBXTargetDependency section */ 332 | 08AE64D92531EC7700AB157E /* PBXTargetDependency */ = { 333 | isa = PBXTargetDependency; 334 | target = 08AE64C82531EC7500AB157E /* DailyWidgetExtension */; 335 | targetProxy = 08AE64D82531EC7700AB157E /* PBXContainerItemProxy */; 336 | }; 337 | /* End PBXTargetDependency section */ 338 | 339 | /* Begin XCBuildConfiguration section */ 340 | 08AE64BF2531EC6100AB157E /* Debug */ = { 341 | isa = XCBuildConfiguration; 342 | buildSettings = { 343 | ALWAYS_SEARCH_USER_PATHS = NO; 344 | CLANG_ANALYZER_NONNULL = YES; 345 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 346 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 347 | CLANG_CXX_LIBRARY = "libc++"; 348 | CLANG_ENABLE_MODULES = YES; 349 | CLANG_ENABLE_OBJC_ARC = YES; 350 | CLANG_ENABLE_OBJC_WEAK = YES; 351 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 352 | CLANG_WARN_BOOL_CONVERSION = YES; 353 | CLANG_WARN_COMMA = YES; 354 | CLANG_WARN_CONSTANT_CONVERSION = YES; 355 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 356 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 357 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 358 | CLANG_WARN_EMPTY_BODY = YES; 359 | CLANG_WARN_ENUM_CONVERSION = YES; 360 | CLANG_WARN_INFINITE_RECURSION = YES; 361 | CLANG_WARN_INT_CONVERSION = YES; 362 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 363 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 364 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 365 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 366 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 367 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 368 | CLANG_WARN_STRICT_PROTOTYPES = YES; 369 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 370 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 371 | CLANG_WARN_UNREACHABLE_CODE = YES; 372 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 373 | COPY_PHASE_STRIP = NO; 374 | DEBUG_INFORMATION_FORMAT = dwarf; 375 | ENABLE_STRICT_OBJC_MSGSEND = YES; 376 | ENABLE_TESTABILITY = YES; 377 | GCC_C_LANGUAGE_STANDARD = gnu11; 378 | GCC_DYNAMIC_NO_PIC = NO; 379 | GCC_NO_COMMON_BLOCKS = YES; 380 | GCC_OPTIMIZATION_LEVEL = 0; 381 | GCC_PREPROCESSOR_DEFINITIONS = ( 382 | "DEBUG=1", 383 | "$(inherited)", 384 | ); 385 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 386 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 387 | GCC_WARN_UNDECLARED_SELECTOR = YES; 388 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 389 | GCC_WARN_UNUSED_FUNCTION = YES; 390 | GCC_WARN_UNUSED_VARIABLE = YES; 391 | IPHONEOS_DEPLOYMENT_TARGET = 14.0; 392 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 393 | MTL_FAST_MATH = YES; 394 | ONLY_ACTIVE_ARCH = YES; 395 | SDKROOT = iphoneos; 396 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 397 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 398 | }; 399 | name = Debug; 400 | }; 401 | 08AE64C02531EC6100AB157E /* Release */ = { 402 | isa = XCBuildConfiguration; 403 | buildSettings = { 404 | ALWAYS_SEARCH_USER_PATHS = NO; 405 | CLANG_ANALYZER_NONNULL = YES; 406 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 407 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 408 | CLANG_CXX_LIBRARY = "libc++"; 409 | CLANG_ENABLE_MODULES = YES; 410 | CLANG_ENABLE_OBJC_ARC = YES; 411 | CLANG_ENABLE_OBJC_WEAK = YES; 412 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 413 | CLANG_WARN_BOOL_CONVERSION = YES; 414 | CLANG_WARN_COMMA = YES; 415 | CLANG_WARN_CONSTANT_CONVERSION = YES; 416 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 417 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 418 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 419 | CLANG_WARN_EMPTY_BODY = YES; 420 | CLANG_WARN_ENUM_CONVERSION = YES; 421 | CLANG_WARN_INFINITE_RECURSION = YES; 422 | CLANG_WARN_INT_CONVERSION = YES; 423 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 424 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 425 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 426 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 427 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 428 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 429 | CLANG_WARN_STRICT_PROTOTYPES = YES; 430 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 431 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 432 | CLANG_WARN_UNREACHABLE_CODE = YES; 433 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 434 | COPY_PHASE_STRIP = NO; 435 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 436 | ENABLE_NS_ASSERTIONS = NO; 437 | ENABLE_STRICT_OBJC_MSGSEND = YES; 438 | GCC_C_LANGUAGE_STANDARD = gnu11; 439 | GCC_NO_COMMON_BLOCKS = YES; 440 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 441 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 442 | GCC_WARN_UNDECLARED_SELECTOR = YES; 443 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 444 | GCC_WARN_UNUSED_FUNCTION = YES; 445 | GCC_WARN_UNUSED_VARIABLE = YES; 446 | IPHONEOS_DEPLOYMENT_TARGET = 14.0; 447 | MTL_ENABLE_DEBUG_INFO = NO; 448 | MTL_FAST_MATH = YES; 449 | SDKROOT = iphoneos; 450 | SWIFT_COMPILATION_MODE = wholemodule; 451 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 452 | VALIDATE_PRODUCT = YES; 453 | }; 454 | name = Release; 455 | }; 456 | 08AE64C22531EC6100AB157E /* Debug */ = { 457 | isa = XCBuildConfiguration; 458 | buildSettings = { 459 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 460 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 461 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 462 | CODE_SIGN_ENTITLEMENTS = DailyWord/DailyWord.entitlements; 463 | CODE_SIGN_STYLE = Automatic; 464 | CURRENT_PROJECT_VERSION = 1; 465 | DEVELOPMENT_ASSET_PATHS = "\"DailyWord/Preview Content\""; 466 | DEVELOPMENT_TEAM = N7C8DEK852; 467 | ENABLE_PREVIEWS = YES; 468 | INFOPLIST_FILE = DailyWord/Info.plist; 469 | IPHONEOS_DEPLOYMENT_TARGET = 14.0; 470 | LD_RUNPATH_SEARCH_PATHS = ( 471 | "$(inherited)", 472 | "@executable_path/Frameworks", 473 | ); 474 | MARKETING_VERSION = 1.3.2; 475 | PRODUCT_BUNDLE_IDENTIFIER = com.joshspicer.DailyItalianWord; 476 | PRODUCT_NAME = "$(TARGET_NAME)"; 477 | SUPPORTS_MACCATALYST = YES; 478 | SWIFT_VERSION = 5.0; 479 | TARGETED_DEVICE_FAMILY = "1,2"; 480 | }; 481 | name = Debug; 482 | }; 483 | 08AE64C32531EC6100AB157E /* Release */ = { 484 | isa = XCBuildConfiguration; 485 | buildSettings = { 486 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 487 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 488 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 489 | CODE_SIGN_ENTITLEMENTS = DailyWord/DailyWord.entitlements; 490 | CODE_SIGN_STYLE = Automatic; 491 | CURRENT_PROJECT_VERSION = 1; 492 | DEVELOPMENT_ASSET_PATHS = "\"DailyWord/Preview Content\""; 493 | DEVELOPMENT_TEAM = N7C8DEK852; 494 | ENABLE_PREVIEWS = YES; 495 | INFOPLIST_FILE = DailyWord/Info.plist; 496 | IPHONEOS_DEPLOYMENT_TARGET = 14.0; 497 | LD_RUNPATH_SEARCH_PATHS = ( 498 | "$(inherited)", 499 | "@executable_path/Frameworks", 500 | ); 501 | MARKETING_VERSION = 1.3.2; 502 | PRODUCT_BUNDLE_IDENTIFIER = com.joshspicer.DailyItalianWord; 503 | PRODUCT_NAME = "$(TARGET_NAME)"; 504 | SUPPORTS_MACCATALYST = YES; 505 | SWIFT_VERSION = 5.0; 506 | TARGETED_DEVICE_FAMILY = "1,2"; 507 | }; 508 | name = Release; 509 | }; 510 | 08AE64DC2531EC7700AB157E /* Debug */ = { 511 | isa = XCBuildConfiguration; 512 | buildSettings = { 513 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 514 | ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; 515 | CODE_SIGN_ENTITLEMENTS = DailyWidgetExtension.entitlements; 516 | CODE_SIGN_STYLE = Automatic; 517 | CURRENT_PROJECT_VERSION = 1; 518 | DEVELOPMENT_TEAM = N7C8DEK852; 519 | INFOPLIST_FILE = DailyWidget/Info.plist; 520 | LD_RUNPATH_SEARCH_PATHS = ( 521 | "$(inherited)", 522 | "@executable_path/Frameworks", 523 | "@executable_path/../../Frameworks", 524 | ); 525 | MARKETING_VERSION = 1.3.2; 526 | PRODUCT_BUNDLE_IDENTIFIER = com.joshspicer.DailyItalianWord.widget; 527 | PRODUCT_NAME = "$(TARGET_NAME)"; 528 | SKIP_INSTALL = YES; 529 | SUPPORTS_MACCATALYST = YES; 530 | SWIFT_VERSION = 5.0; 531 | TARGETED_DEVICE_FAMILY = "1,2"; 532 | }; 533 | name = Debug; 534 | }; 535 | 08AE64DD2531EC7700AB157E /* Release */ = { 536 | isa = XCBuildConfiguration; 537 | buildSettings = { 538 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 539 | ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; 540 | CODE_SIGN_ENTITLEMENTS = DailyWidgetExtension.entitlements; 541 | CODE_SIGN_STYLE = Automatic; 542 | CURRENT_PROJECT_VERSION = 1; 543 | DEVELOPMENT_TEAM = N7C8DEK852; 544 | INFOPLIST_FILE = DailyWidget/Info.plist; 545 | LD_RUNPATH_SEARCH_PATHS = ( 546 | "$(inherited)", 547 | "@executable_path/Frameworks", 548 | "@executable_path/../../Frameworks", 549 | ); 550 | MARKETING_VERSION = 1.3.2; 551 | PRODUCT_BUNDLE_IDENTIFIER = com.joshspicer.DailyItalianWord.widget; 552 | PRODUCT_NAME = "$(TARGET_NAME)"; 553 | SKIP_INSTALL = YES; 554 | SUPPORTS_MACCATALYST = YES; 555 | SWIFT_VERSION = 5.0; 556 | TARGETED_DEVICE_FAMILY = "1,2"; 557 | }; 558 | name = Release; 559 | }; 560 | /* End XCBuildConfiguration section */ 561 | 562 | /* Begin XCConfigurationList section */ 563 | 08AE64AD2531EC5E00AB157E /* Build configuration list for PBXProject "DailyWord" */ = { 564 | isa = XCConfigurationList; 565 | buildConfigurations = ( 566 | 08AE64BF2531EC6100AB157E /* Debug */, 567 | 08AE64C02531EC6100AB157E /* Release */, 568 | ); 569 | defaultConfigurationIsVisible = 0; 570 | defaultConfigurationName = Release; 571 | }; 572 | 08AE64C12531EC6100AB157E /* Build configuration list for PBXNativeTarget "DailyWord" */ = { 573 | isa = XCConfigurationList; 574 | buildConfigurations = ( 575 | 08AE64C22531EC6100AB157E /* Debug */, 576 | 08AE64C32531EC6100AB157E /* Release */, 577 | ); 578 | defaultConfigurationIsVisible = 0; 579 | defaultConfigurationName = Release; 580 | }; 581 | 08AE64DB2531EC7700AB157E /* Build configuration list for PBXNativeTarget "DailyWidgetExtension" */ = { 582 | isa = XCConfigurationList; 583 | buildConfigurations = ( 584 | 08AE64DC2531EC7700AB157E /* Debug */, 585 | 08AE64DD2531EC7700AB157E /* Release */, 586 | ); 587 | defaultConfigurationIsVisible = 0; 588 | defaultConfigurationName = Release; 589 | }; 590 | /* End XCConfigurationList section */ 591 | }; 592 | rootObject = 08AE64AA2531EC5E00AB157E /* Project object */; 593 | } 594 | -------------------------------------------------------------------------------- /DailyWord.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /DailyWord.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Icon-40.png", 5 | "idiom" : "iphone", 6 | "scale" : "2x", 7 | "size" : "20x20" 8 | }, 9 | { 10 | "filename" : "Icon-60.png", 11 | "idiom" : "iphone", 12 | "scale" : "3x", 13 | "size" : "20x20" 14 | }, 15 | { 16 | "filename" : "Icon-58.png", 17 | "idiom" : "iphone", 18 | "scale" : "2x", 19 | "size" : "29x29" 20 | }, 21 | { 22 | "filename" : "Icon-87.png", 23 | "idiom" : "iphone", 24 | "scale" : "3x", 25 | "size" : "29x29" 26 | }, 27 | { 28 | "filename" : "Icon-80.png", 29 | "idiom" : "iphone", 30 | "scale" : "2x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "filename" : "Icon-120.png", 35 | "idiom" : "iphone", 36 | "scale" : "3x", 37 | "size" : "40x40" 38 | }, 39 | { 40 | "filename" : "Icon-121.png", 41 | "idiom" : "iphone", 42 | "scale" : "2x", 43 | "size" : "60x60" 44 | }, 45 | { 46 | "filename" : "Icon-180.png", 47 | "idiom" : "iphone", 48 | "scale" : "3x", 49 | "size" : "60x60" 50 | }, 51 | { 52 | "filename" : "Icon-20.png", 53 | "idiom" : "ipad", 54 | "scale" : "1x", 55 | "size" : "20x20" 56 | }, 57 | { 58 | "filename" : "Icon-41.png", 59 | "idiom" : "ipad", 60 | "scale" : "2x", 61 | "size" : "20x20" 62 | }, 63 | { 64 | "filename" : "Icon-29.png", 65 | "idiom" : "ipad", 66 | "scale" : "1x", 67 | "size" : "29x29" 68 | }, 69 | { 70 | "filename" : "Icon-59.png", 71 | "idiom" : "ipad", 72 | "scale" : "2x", 73 | "size" : "29x29" 74 | }, 75 | { 76 | "filename" : "Icon-42.png", 77 | "idiom" : "ipad", 78 | "scale" : "1x", 79 | "size" : "40x40" 80 | }, 81 | { 82 | "filename" : "Icon-81.png", 83 | "idiom" : "ipad", 84 | "scale" : "2x", 85 | "size" : "40x40" 86 | }, 87 | { 88 | "filename" : "Icon-76.png", 89 | "idiom" : "ipad", 90 | "scale" : "1x", 91 | "size" : "76x76" 92 | }, 93 | { 94 | "filename" : "Icon-152.png", 95 | "idiom" : "ipad", 96 | "scale" : "2x", 97 | "size" : "76x76" 98 | }, 99 | { 100 | "filename" : "Icon-167.png", 101 | "idiom" : "ipad", 102 | "scale" : "2x", 103 | "size" : "83.5x83.5" 104 | }, 105 | { 106 | "filename" : "Icon-1024.png", 107 | "idiom" : "ios-marketing", 108 | "scale" : "1x", 109 | "size" : "1024x1024" 110 | } 111 | ], 112 | "info" : { 113 | "author" : "xcode", 114 | "version" : 1 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-1024.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-120.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-121.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-152.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-167.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-180.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-20.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-29.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-40.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-41.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-42.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-58.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-59.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-60.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-80.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-81.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/DailyWord/Assets.xcassets/AppIcon.appiconset/Icon-87.png -------------------------------------------------------------------------------- /DailyWord/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /DailyWord/ContentView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContentView.swift 3 | // DailyItalianWord 4 | // 5 | // Created by Joshua Spicer on 10/10/20. 6 | // 7 | 8 | import SwiftUI 9 | import WidgetKit 10 | 11 | 12 | struct ContentView: View { 13 | 14 | @State private var selection = SupportedLanguages.Italian 15 | 16 | @AppStorage("language", store: UserDefaults(suiteName: "group.com.joshspicer.dailyword")) 17 | var language: SupportedLanguages = SupportedLanguages.Italian 18 | 19 | var body: some View { 20 | 21 | VStack { 22 | Text("Daily Word") 23 | .font(.largeTitle) 24 | .padding() 25 | Text("Language: \(language.rawValue)") 26 | .font(.subheadline) 27 | 28 | Picker(selection: $selection, label: Text("Choose Language"), content: /*@START_MENU_TOKEN@*/{ 29 | 30 | ForEach(SupportedLanguages.allCases) { lang in 31 | Text(lang.rawValue) 32 | } 33 | }/*@END_MENU_TOKEN@*/) 34 | .onChange(of: $selection.wrappedValue, perform: { value in 35 | language = selection 36 | WidgetCenter.shared.reloadAllTimelines() 37 | print("updated language var!") 38 | }) 39 | 40 | Button(action: { 41 | WidgetCenter.shared.reloadAllTimelines() 42 | print("clicked update button") 43 | }) { 44 | HStack { 45 | Text("Refresh Word") 46 | .fontWeight(.semibold) 47 | .font(.title) 48 | } 49 | .padding() 50 | .foregroundColor(.white) 51 | .background(Color.green) 52 | .cornerRadius(40) 53 | } 54 | } 55 | } 56 | } 57 | 58 | struct ContentView_Previews: PreviewProvider { 59 | static var previews: some View { 60 | ContentView() 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /DailyWord/DailyWord.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.application-groups 8 | 9 | group.com.joshspicer.dailyword 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /DailyWord/DailyWord.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DailyItalianWordApp.swift 3 | // DailyItalianWord 4 | // 5 | // Created by Joshua Spicer on 10/10/20. 6 | // 7 | 8 | import SwiftUI 9 | 10 | @main 11 | struct DailyWord: App { 12 | var body: some Scene { 13 | WindowGroup { 14 | ContentView() 15 | } 16 | } 17 | } 18 | 19 | struct DailyWordApp_Previews: PreviewProvider { 20 | static var previews: some View { 21 | /*@START_MENU_TOKEN@*/Text("Hello, World!")/*@END_MENU_TOKEN@*/ 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /DailyWord/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | Daily Word 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 19 | CFBundleShortVersionString 20 | $(MARKETING_VERSION) 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | LSApplicationCategoryType 24 | public.app-category.education 25 | LSRequiresIPhoneOS 26 | 27 | UIApplicationSceneManifest 28 | 29 | UIApplicationSupportsMultipleScenes 30 | 31 | 32 | UIApplicationSupportsIndirectInputEvents 33 | 34 | UILaunchScreen 35 | 36 | UIRequiredDeviceCapabilities 37 | 38 | armv7 39 | 40 | UISupportedInterfaceOrientations 41 | 42 | UIInterfaceOrientationPortrait 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | UISupportedInterfaceOrientations~ipad 47 | 48 | UIInterfaceOrientationPortrait 49 | UIInterfaceOrientationPortraitUpsideDown 50 | UIInterfaceOrientationLandscapeLeft 51 | UIInterfaceOrientationLandscapeRight 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /DailyWord/Languages/CountryCodes.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CountryCodes.swift 3 | // DailyWord 4 | // 5 | // Created by Josh Spicer on 3/17/22. 6 | // 7 | 8 | import Foundation 9 | 10 | class CountryCodes : LanguageBase { 11 | 12 | let words: [Word] = [ 13 | Word(native: "Afghanistan", foreign: "+93"), 14 | Word(native: "Albania", foreign: "+355"), 15 | Word(native: "Algeria", foreign: "+213"), 16 | Word(native: "American Samoa", foreign: "+1-684"), 17 | Word(native: "Andorra", foreign: "+376"), 18 | Word(native: "Angola", foreign: "+244"), 19 | Word(native: "Anguilla", foreign: "+1-264"), 20 | Word(native: "Antarctica", foreign: "+672"), 21 | Word(native: "Antigua", foreign: "+1-268"), 22 | Word(native: "Argentina", foreign: "+54"), 23 | Word(native: "Armenia", foreign: "+374"), 24 | Word(native: "Aruba", foreign: "+297"), 25 | Word(native: "Ascension", foreign: "+247"), 26 | Word(native: "Australia", foreign: "+61"), 27 | Word(native: "Australian External Territories", foreign: "+672"), 28 | Word(native: "Austria", foreign: "+43"), 29 | Word(native: "Azerbaijan", foreign: "+994"), 30 | Word(native: "Bahamas", foreign: "+1-242"), 31 | Word(native: "Bahrain", foreign: "+973"), 32 | Word(native: "Bangladesh", foreign: "+880"), 33 | Word(native: "Barbados", foreign: "+1-246"), 34 | Word(native: "Barbuda", foreign: "+1-268"), 35 | Word(native: "Belarus", foreign: "+375"), 36 | Word(native: "Belgium", foreign: "+32"), 37 | Word(native: "Belize", foreign: "+501"), 38 | Word(native: "Benin", foreign: "+229"), 39 | Word(native: "Bermuda", foreign: "+1-441"), 40 | Word(native: "Bhutan", foreign: "+975"), 41 | Word(native: "Bolivia", foreign: "+591"), 42 | Word(native: "Bosnia & Herzegovina", foreign: "+387"), 43 | Word(native: "Botswana", foreign: "+267"), 44 | Word(native: "Brazil", foreign: "+55"), 45 | Word(native: "British Virgin Islands", foreign: "+1-284"), 46 | Word(native: "Brunei Darussalam", foreign: "+673"), 47 | Word(native: "Bulgaria", foreign: "+359"), 48 | Word(native: "Burkina Faso", foreign: "+226"), 49 | Word(native: "Burundi", foreign: "+257"), 50 | Word(native: "Cambodia", foreign: "+855"), 51 | Word(native: "Cameroon", foreign: "+237"), 52 | Word(native: "Canada", foreign: "+1"), 53 | Word(native: "Cape Verde Islands", foreign: "+238"), 54 | Word(native: "Cayman Islands", foreign: "+1-345"), 55 | Word(native: "Central African Republic", foreign: "+236"), 56 | Word(native: "Chad", foreign: "+235"), 57 | Word(native: "Chatham Island (New Zealand)", foreign: "+64"), 58 | Word(native: "Chile", foreign: "+56"), 59 | Word(native: "China (PRC)", foreign: "+86"), 60 | Word(native: "Christmas Island", foreign: "+61-8"), 61 | Word(native: "Cocos-Keeling Islands", foreign: "+61"), 62 | Word(native: "Colombia", foreign: "+57"), 63 | Word(native: "Comoros", foreign: "+269"), 64 | Word(native: "Congo", foreign: "+242"), 65 | Word(native: "Congo, Dem. Rep. of (former Zaire)", foreign: "+243"), 66 | Word(native: "Cook Islands", foreign: "+682"), 67 | Word(native: "Costa Rica", foreign: "+506"), 68 | Word(native: "Côte d'Ivoire (Ivory Coast)", foreign: "+225"), 69 | Word(native: "Croatia", foreign: "+385"), 70 | Word(native: "Cuba", foreign: "+53"), 71 | Word(native: "Cuba (Guantanamo Bay)", foreign: "+5399"), 72 | Word(native: "Curaçao", foreign: "+599"), 73 | Word(native: "Cyprus", foreign: "+357"), 74 | Word(native: "Czech Republic", foreign: "+420"), 75 | Word(native: "Denmark", foreign: "+45"), 76 | Word(native: "Diego Garcia", foreign: "+246"), 77 | Word(native: "Djibouti", foreign: "+253"), 78 | Word(native: "Dominica", foreign: "+1-767"), 79 | Word(native: "Dominican Republic", foreign: "+1-809/"), 80 | Word(native: "East Timor", foreign: "+670"), 81 | Word(native: "Easter Island", foreign: "+56"), 82 | Word(native: "Ecuador", foreign: "+593"), 83 | Word(native: "Egypt", foreign: "+20"), 84 | Word(native: "El Salvador", foreign: "+503"), 85 | Word(native: "Ellipso (Mobile Satellite service)", foreign: "+8812/"), 86 | Word(native: "EMSAT (Mobile Satellite service)", foreign: "+88213"), 87 | Word(native: "Equatorial Guinea", foreign: "+240"), 88 | Word(native: "Eritrea", foreign: "+291"), 89 | Word(native: "Estonia", foreign: "+372"), 90 | Word(native: "Ethiopia", foreign: "+251"), 91 | Word(native: "Falkland Islands (Malvinas)", foreign: "+500"), 92 | Word(native: "Faroe Islands", foreign: "+298"), 93 | Word(native: "Fiji Islands", foreign: "+679"), 94 | Word(native: "Finland", foreign: "+358"), 95 | Word(native: "France", foreign: "+33"), 96 | Word(native: "French Antilles", foreign: "+596"), 97 | Word(native: "French Guiana", foreign: "+594"), 98 | Word(native: "French Polynesia", foreign: "+689"), 99 | Word(native: "Gabonese Republic", foreign: "+241"), 100 | Word(native: "Gambia", foreign: "+220"), 101 | Word(native: "Georgia", foreign: "+995"), 102 | Word(native: "Germany", foreign: "+49"), 103 | Word(native: "Ghana", foreign: "+233"), 104 | Word(native: "Gibraltar", foreign: "+350"), 105 | Word(native: "Global Mobile Satellite System (GMSS)", foreign: "+881"), 106 | Word(native: "ICO Global", foreign: "+8810/"), 107 | Word(native: "Ellipso 8812", foreign: "+8813"), 108 | Word(native: "Iridium 8816", foreign: "+8817"), 109 | Word(native: "Globalstar", foreign: "+8818/"), 110 | Word(native: "Globalstar (Mobile Satellite Service)", foreign: "+8818/"), 111 | Word(native: "Greece", foreign: "+30"), 112 | Word(native: "Greenland", foreign: "+299"), 113 | Word(native: "Grenada", foreign: "+1-473"), 114 | Word(native: "Guadeloupe", foreign: "+590"), 115 | Word(native: "Guam", foreign: "+1-671"), 116 | Word(native: "Guantanamo Bay", foreign: "+5399"), 117 | Word(native: "Guatemala", foreign: "+502"), 118 | Word(native: "Guinea-Bissau", foreign: "+245"), 119 | Word(native: "Guinea", foreign: "+224"), 120 | Word(native: "Guyana", foreign: "+592"), 121 | Word(native: "Haiti", foreign: "+509"), 122 | Word(native: "Honduras", foreign: "+504"), 123 | Word(native: "Hong Kong", foreign: "+852"), 124 | Word(native: "Hungary", foreign: "+36"), 125 | Word(native: "ICO Global (Mobile Satellite Service)", foreign: "+8810/"), 126 | Word(native: "Iceland", foreign: "+354"), 127 | Word(native: "India", foreign: "+91"), 128 | Word(native: "Indonesia", foreign: "+62"), 129 | Word(native: "Inmarsat (Atlantic Ocean - East)", foreign: "+871"), 130 | Word(native: "Inmarsat (Atlantic Ocean - West)", foreign: "+874"), 131 | Word(native: "Inmarsat (Indian Ocean)", foreign: "+873"), 132 | Word(native: "Inmarsat (Pacific Ocean)", foreign: "+872"), 133 | Word(native: "Inmarsat SNAC", foreign: "+870"), 134 | Word(native: "International Freephone Service", foreign: "+800"), 135 | Word(native: "International Shared Cost Service (ISCS)", foreign: "+808"), 136 | Word(native: "Iran", foreign: "+98"), 137 | Word(native: "Iraq", foreign: "+964"), 138 | Word(native: "Ireland", foreign: "+353"), 139 | Word(native: "Iridium (Mobile Satellite service)", foreign: "+8816/"), 140 | Word(native: "Israel", foreign: "+972"), 141 | Word(native: "Italy", foreign: "+39"), 142 | Word(native: "Ivory Coast", foreign: "+225"), 143 | Word(native: "Jamaica", foreign: "+1-876"), 144 | Word(native: "Japan", foreign: "+81"), 145 | Word(native: "Jordan", foreign: "+962"), 146 | Word(native: "Kazakhstan", foreign: "+7"), 147 | Word(native: "Kenya", foreign: "+254"), 148 | Word(native: "Kiribati", foreign: "+686"), 149 | Word(native: "Korea (North)", foreign: "+850"), 150 | Word(native: "Korea (South)", foreign: "+82"), 151 | Word(native: "Kuwait", foreign: "+965"), 152 | Word(native: "Kyrgyz Republic", foreign: "+996"), 153 | Word(native: "Laos", foreign: "+856"), 154 | Word(native: "Latvia", foreign: "+371"), 155 | Word(native: "Lebanon", foreign: "+961"), 156 | Word(native: "Lesotho", foreign: "+266"), 157 | Word(native: "Liberia", foreign: "+231"), 158 | Word(native: "Libya", foreign: "+218"), 159 | Word(native: "Liechtenstein", foreign: "+423"), 160 | Word(native: "Lithuania", foreign: "+370"), 161 | Word(native: "Luxembourg", foreign: "+352"), 162 | Word(native: "Macao", foreign: "+853"), 163 | Word(native: "Macedonia (Former Yugoslav Rep of.)", foreign: "+389"), 164 | Word(native: "Madagascar", foreign: "+261"), 165 | Word(native: "Malawi", foreign: "+265"), 166 | Word(native: "Malaysia", foreign: "+60"), 167 | Word(native: "Maldives", foreign: "+960"), 168 | Word(native: "Mali Republic", foreign: "+223"), 169 | Word(native: "Malta", foreign: "+356"), 170 | Word(native: "Marshall Islands", foreign: "+692"), 171 | Word(native: "Martinique", foreign: "+596"), 172 | Word(native: "Mauritania", foreign: "+222"), 173 | Word(native: "Mauritius", foreign: "+230"), 174 | Word(native: "Mayotte Island", foreign: "+269"), 175 | Word(native: "Mexico", foreign: "+52"), 176 | Word(native: "Micronesia (Federal States of)", foreign: "+691"), 177 | Word(native: "Midway Island", foreign: "+1-808"), 178 | Word(native: "Moldova", foreign: "+373"), 179 | Word(native: "Monaco", foreign: "+377"), 180 | Word(native: "Mongolia", foreign: "+976"), 181 | Word(native: "Montenegro", foreign: "+382"), 182 | Word(native: "Montserrat", foreign: "+1-664"), 183 | Word(native: "Morocco", foreign: "+212"), 184 | Word(native: "Mozambique", foreign: "+258"), 185 | Word(native: "Myanmar", foreign: "+95"), 186 | Word(native: "Namibia", foreign: "+264"), 187 | Word(native: "Nauru", foreign: "+674"), 188 | Word(native: "Nepal", foreign: "+977"), 189 | Word(native: "Netherlands", foreign: "+31"), 190 | Word(native: "Netherlands Antilles", foreign: "+599"), 191 | Word(native: "Nevis", foreign: "+1-869"), 192 | Word(native: "New Caledonia", foreign: "+687"), 193 | Word(native: "New Zealand", foreign: "+64"), 194 | Word(native: "Nicaragua", foreign: "+505"), 195 | Word(native: "Niger", foreign: "+227"), 196 | Word(native: "Nigeria", foreign: "+234"), 197 | Word(native: "Niue", foreign: "+683"), 198 | Word(native: "Norfolk Island", foreign: "+672"), 199 | Word(native: "Northern Marianas Islands (Saipan, Rota & Tinian)", foreign: "+1-670"), 200 | Word(native: "Norway", foreign: "+47"), 201 | Word(native: "Oman", foreign: "+968"), 202 | Word(native: "Pakistan", foreign: "+92"), 203 | Word(native: "Palau", foreign: "+680"), 204 | Word(native: "Palestinian Settlements", foreign: "+970"), 205 | Word(native: "Panama", foreign: "+507"), 206 | Word(native: "Papua New Guinea", foreign: "+675"), 207 | Word(native: "Paraguay", foreign: "+595"), 208 | Word(native: "Peru", foreign: "+51"), 209 | Word(native: "Philippines", foreign: "+63"), 210 | Word(native: "Poland", foreign: "+48"), 211 | Word(native: "Portugal", foreign: "+351"), 212 | Word(native: "Puerto Rico", foreign: "+1-787 or "), 213 | Word(native: "Qatar", foreign: "+974"), 214 | Word(native: "Réunion Island", foreign: "+262"), 215 | Word(native: "Romania", foreign: "+40"), 216 | Word(native: "Russia", foreign: "+7"), 217 | Word(native: "Rwandese Republic", foreign: "+250"), 218 | Word(native: "St. Helena", foreign: "+290"), 219 | Word(native: "St. Kitts/Nevis", foreign: "+1-869"), 220 | Word(native: "St. Lucia", foreign: "+1-758"), 221 | Word(native: "St. Pierre & Miquelon", foreign: "+508"), 222 | Word(native: "St. Vincent & Grenadines", foreign: "+1-784"), 223 | Word(native: "Samoa", foreign: "+685"), 224 | Word(native: "San Marino", foreign: "+378"), 225 | Word(native: "São Tomé and Principe", foreign: "+239"), 226 | Word(native: "Saudi Arabia", foreign: "+966"), 227 | Word(native: "Senegal", foreign: "+221"), 228 | Word(native: "Serbia", foreign: "+381"), 229 | Word(native: "Seychelles Republic", foreign: "+248"), 230 | Word(native: "Sierra Leone", foreign: "+232"), 231 | Word(native: "Singapore", foreign: "+65"), 232 | Word(native: "Slovak Republic", foreign: "+421"), 233 | Word(native: "Slovenia", foreign: "+386"), 234 | Word(native: "Solomon Islands", foreign: "+677"), 235 | Word(native: "Somali Democratic Republic", foreign: "+252"), 236 | Word(native: "South Africa", foreign: "+27"), 237 | Word(native: "Spain", foreign: "+34"), 238 | Word(native: "Sri Lanka", foreign: "+94"), 239 | Word(native: "Sudan", foreign: "+249"), 240 | Word(native: "Suriname", foreign: "+597"), 241 | Word(native: "Swaziland", foreign: "+268"), 242 | Word(native: "Sweden", foreign: "+46"), 243 | Word(native: "Switzerland", foreign: "+41"), 244 | Word(native: "Syria", foreign: "+963"), 245 | Word(native: "Taiwan", foreign: "+886"), 246 | Word(native: "Tajikistan", foreign: "+992"), 247 | Word(native: "Tanzania", foreign: "+255"), 248 | Word(native: "Thailand", foreign: "+66"), 249 | Word(native: "Thuraya (Mobile Satellite service)", foreign: "+88216"), 250 | Word(native: "Timor Leste", foreign: "+670"), 251 | Word(native: "Togolese Republic", foreign: "+228"), 252 | Word(native: "Tokelau", foreign: "+690"), 253 | Word(native: "Tonga Islands", foreign: "+676"), 254 | Word(native: "Trinidad & Tobago", foreign: "+1-868"), 255 | Word(native: "Tunisia", foreign: "+216"), 256 | Word(native: "Turkey", foreign: "+90"), 257 | Word(native: "Turkmenistan", foreign: "+993"), 258 | Word(native: "Turks and Caicos Islands", foreign: "+1-649"), 259 | Word(native: "Tuvalu", foreign: "+688"), 260 | Word(native: "Uganda", foreign: "+256"), 261 | Word(native: "Ukraine", foreign: "+380"), 262 | Word(native: "United Arab Emirates", foreign: "+971"), 263 | Word(native: "United Kingdom", foreign: "+44"), 264 | Word(native: "United States of America", foreign: "+1"), 265 | Word(native: "US Virgin Islands", foreign: "+1-340"), 266 | Word(native: "Universal Personal Telecommunications (UPT)", foreign: "+878"), 267 | Word(native: "Uruguay", foreign: "+598"), 268 | Word(native: "Uzbekistan", foreign: "+998"), 269 | Word(native: "Vanuatu", foreign: "+678"), 270 | Word(native: "Vatican City", foreign: "+39/"), 271 | Word(native: "Venezuela", foreign: "+58"), 272 | Word(native: "Vietnam", foreign: "+84"), 273 | Word(native: "Wake Island", foreign: "+808"), 274 | Word(native: "Wallis and Futuna Islands", foreign: "+681"), 275 | Word(native: "Yemen", foreign: "+967"), 276 | Word(native: "Zambia", foreign: "+260"), 277 | Word(native: "Zanzibar", foreign: "+255"), 278 | Word(native: "Zimbabwe", foreign: "+263") 279 | ] 280 | 281 | func getRandom() -> Word { 282 | let number = Int.random(in: 0.. [Word] { 287 | return words 288 | } 289 | 290 | func getFlag() -> String { 291 | return "☎️" 292 | } 293 | } 294 | -------------------------------------------------------------------------------- /DailyWord/Languages/Japanese.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Japanese.swift 3 | // DailyItalianWord 4 | // 5 | // Created by Josh Spicer on 10/19/20. 6 | // 7 | 8 | import Foundation 9 | 10 | class Japanese : LanguageBase { 11 | 12 | let words: [Word] = [ 13 | Word(native: "as", foreign: "ように"), 14 | Word(native: "I", foreign: "私は"), 15 | Word(native: "his", foreign: "彼の"), 16 | Word(native: "that", foreign: "その"), 17 | Word(native: "he", foreign: "彼"), 18 | Word(native: "was", foreign: "た"), 19 | Word(native: "for", foreign: "ために"), 20 | Word(native: "on", foreign: "上の"), 21 | Word(native: "are", foreign: "アール"), 22 | Word(native: "with", foreign: "とともに"), 23 | Word(native: "they", foreign: "彼ら"), 24 | Word(native: "be", foreign: "ある"), 25 | Word(native: "at", foreign: "アット"), 26 | Word(native: "one", foreign: "一つ"), 27 | Word(native: "have", foreign: "持っている"), 28 | Word(native: "this", foreign: "この"), 29 | Word(native: "from", foreign: "から"), 30 | Word(native: "by", foreign: "バイ"), 31 | Word(native: "hot", foreign: "ホット"), 32 | Word(native: "word", foreign: "言葉"), 33 | Word(native: "but", foreign: "しかし"), 34 | Word(native: "what", foreign: "何"), 35 | Word(native: "some", foreign: "いくつかの"), 36 | Word(native: "is", foreign: "です"), 37 | Word(native: "it", foreign: "それ"), 38 | Word(native: "you", foreign: "あなた"), 39 | Word(native: "or", foreign: "または"), 40 | Word(native: "had", foreign: "持っていた"), 41 | Word(native: "the", foreign: "インクルード"), 42 | Word(native: "of", foreign: "の"), 43 | Word(native: "to", foreign: "へ"), 44 | Word(native: "and", foreign: "そして"), 45 | Word(native: "a", foreign: "は"), 46 | Word(native: "in", foreign: "で"), 47 | Word(native: "we", foreign: "我々"), 48 | Word(native: "can", foreign: "缶"), 49 | Word(native: "out", foreign: "アウト"), 50 | Word(native: "other", foreign: "その他"), 51 | Word(native: "were", foreign: "だった"), 52 | Word(native: "which", foreign: "これ"), 53 | Word(native: "do", foreign: "やる"), 54 | Word(native: "their", foreign: "それらの"), 55 | Word(native: "time", foreign: "時間"), 56 | Word(native: "if", foreign: "もし"), 57 | Word(native: "will", foreign: "意志"), 58 | Word(native: "how", foreign: "方法"), 59 | Word(native: "said", foreign: "前記"), 60 | Word(native: "an", foreign: "の"), 61 | Word(native: "each", foreign: "それぞれ"), 62 | Word(native: "tell", foreign: "言う"), 63 | Word(native: "does", foreign: "し"), 64 | Word(native: "set", foreign: "セット"), 65 | Word(native: "three", foreign: "個"), 66 | Word(native: "want", foreign: "欲しい"), 67 | Word(native: "air", foreign: "空気"), 68 | Word(native: "well", foreign: "よく"), 69 | Word(native: "also", foreign: "また"), 70 | Word(native: "play", foreign: "遊ぶ"), 71 | Word(native: "small", foreign: "小さい"), 72 | Word(native: "end", foreign: "終わり"), 73 | Word(native: "put", foreign: "置く"), 74 | Word(native: "home", foreign: "ホーム"), 75 | Word(native: "read", foreign: "読む"), 76 | Word(native: "hand", foreign: "手"), 77 | Word(native: "port", foreign: "ポート"), 78 | Word(native: "large", foreign: "大きい"), 79 | Word(native: "spell", foreign: "スペル"), 80 | Word(native: "add", foreign: "加える"), 81 | Word(native: "even", foreign: "さらに"), 82 | Word(native: "land", foreign: "土地"), 83 | Word(native: "here", foreign: "ここに"), 84 | Word(native: "must", foreign: "しなければならない"), 85 | Word(native: "big", foreign: "大きい"), 86 | Word(native: "high", foreign: "高い"), 87 | Word(native: "such", foreign: "そのような"), 88 | Word(native: "follow", foreign: "続く"), 89 | Word(native: "act", foreign: "行為"), 90 | Word(native: "why", foreign: "なぜ"), 91 | Word(native: "ask", foreign: "頼む"), 92 | Word(native: "men", foreign: "人々"), 93 | Word(native: "change", foreign: "変更"), 94 | Word(native: "went", foreign: "行ってきました"), 95 | Word(native: "light", foreign: "光"), 96 | Word(native: "kind", foreign: "種類"), 97 | Word(native: "off", foreign: "オフ"), 98 | Word(native: "need", foreign: "必要"), 99 | Word(native: "house", foreign: "家"), 100 | Word(native: "picture", foreign: "絵"), 101 | Word(native: "try", foreign: "試す"), 102 | Word(native: "us", foreign: "私たち"), 103 | Word(native: "again", foreign: "再び"), 104 | Word(native: "animal", foreign: "動物"), 105 | Word(native: "point", foreign: "ポイント"), 106 | Word(native: "mother", foreign: "母"), 107 | Word(native: "world", foreign: "世界"), 108 | Word(native: "near", foreign: "近く"), 109 | Word(native: "build", foreign: "ビルド"), 110 | Word(native: "self", foreign: "自己"), 111 | Word(native: "earth", foreign: "地球"), 112 | Word(native: "father", foreign: "父"), 113 | Word(native: "any", foreign: "任意の"), 114 | Word(native: "new", foreign: "新しい"), 115 | Word(native: "work", foreign: "仕事"), 116 | Word(native: "part", foreign: "パート"), 117 | Word(native: "take", foreign: "取る"), 118 | Word(native: "get", foreign: "ゲット"), 119 | Word(native: "place", foreign: "場所"), 120 | Word(native: "made", foreign: "製"), 121 | Word(native: "live", foreign: "暮らす"), 122 | Word(native: "where", foreign: "どこ"), 123 | Word(native: "after", foreign: "後に"), 124 | Word(native: "back", foreign: "バック"), 125 | Word(native: "little", foreign: "少し"), 126 | Word(native: "only", foreign: "唯一の"), 127 | Word(native: "round", foreign: "ラウンド"), 128 | Word(native: "man", foreign: "男"), 129 | Word(native: "year", foreign: "年"), 130 | Word(native: "came", foreign: "来た"), 131 | Word(native: "show", foreign: "ショー"), 132 | Word(native: "every", foreign: "すべての"), 133 | Word(native: "good", foreign: "良い"), 134 | Word(native: "me", foreign: "私に"), 135 | Word(native: "give", foreign: "与える"), 136 | Word(native: "our", foreign: "私たちの"), 137 | Word(native: "under", foreign: "下"), 138 | Word(native: "name", foreign: "名前"), 139 | Word(native: "very", foreign: "非常に"), 140 | Word(native: "through", foreign: "スルー"), 141 | Word(native: "just", foreign: "ただ"), 142 | Word(native: "form", foreign: "フォーム"), 143 | Word(native: "sentence", foreign: "文"), 144 | Word(native: "great", foreign: "素晴らしい"), 145 | Word(native: "think", foreign: "思う"), 146 | Word(native: "say", foreign: "言う"), 147 | Word(native: "help", foreign: "助け"), 148 | Word(native: "low", foreign: "低い"), 149 | Word(native: "line", foreign: "ライン"), 150 | Word(native: "differ", foreign: "異なる"), 151 | Word(native: "turn", foreign: "ターン"), 152 | Word(native: "cause", foreign: "原因"), 153 | Word(native: "much", foreign: "ずっと"), 154 | Word(native: "mean", foreign: "意味する"), 155 | Word(native: "before", foreign: "前に"), 156 | Word(native: "move", foreign: "移動"), 157 | Word(native: "right", foreign: "権利"), 158 | Word(native: "boy", foreign: "男の子"), 159 | Word(native: "old", foreign: "古い"), 160 | Word(native: "too", foreign: "あまりに"), 161 | Word(native: "same", foreign: "同じ"), 162 | Word(native: "she", foreign: "彼女"), 163 | Word(native: "all", foreign: "すべて"), 164 | Word(native: "there", foreign: "そこ"), 165 | Word(native: "when", foreign: "時"), 166 | Word(native: "up", foreign: "アップ"), 167 | Word(native: "use", foreign: "使用"), 168 | Word(native: "your", foreign: "あなたの"), 169 | Word(native: "way", foreign: "道"), 170 | Word(native: "about", foreign: "約"), 171 | Word(native: "many", foreign: "多くの"), 172 | Word(native: "then", foreign: "その後"), 173 | Word(native: "them", foreign: "それら"), 174 | Word(native: "write", foreign: "書く"), 175 | Word(native: "would", foreign: "でしょう"), 176 | Word(native: "like", foreign: "ような"), 177 | Word(native: "so", foreign: "そう"), 178 | Word(native: "these", foreign: "これらの"), 179 | Word(native: "her", foreign: "彼女の"), 180 | Word(native: "long", foreign: "長い"), 181 | Word(native: "make", foreign: "作る"), 182 | Word(native: "thing", foreign: "もの"), 183 | Word(native: "see", foreign: "見る"), 184 | Word(native: "him", foreign: "彼に"), 185 | Word(native: "two", foreign: "二つ"), 186 | Word(native: "has", foreign: "があります"), 187 | Word(native: "look", foreign: "見える"), 188 | Word(native: "more", foreign: "多くの"), 189 | Word(native: "day", foreign: "日"), 190 | Word(native: "could", foreign: "可能性"), 191 | Word(native: "go", foreign: "行く"), 192 | Word(native: "come", foreign: "来る"), 193 | Word(native: "did", foreign: "やった"), 194 | Word(native: "number", foreign: "番号"), 195 | Word(native: "sound", foreign: "聞こえる"), 196 | Word(native: "no", foreign: "いいえ"), 197 | Word(native: "most", foreign: "最も"), 198 | Word(native: "people", foreign: "人々"), 199 | Word(native: "my", foreign: "私の"), 200 | Word(native: "over", foreign: "オーバー"), 201 | Word(native: "know", foreign: "知っている"), 202 | Word(native: "water", foreign: "水"), 203 | Word(native: "than", foreign: "比べて"), 204 | Word(native: "call", foreign: "コール"), 205 | Word(native: "first", foreign: "最初の"), 206 | Word(native: "who", foreign: "誰"), 207 | Word(native: "may", foreign: "よい"), 208 | Word(native: "down", foreign: "ダウン"), 209 | Word(native: "side", foreign: "サイド"), 210 | Word(native: "been", foreign: "き"), 211 | Word(native: "now", foreign: "今"), 212 | Word(native: "find", foreign: "見つける"), 213 | Word(native: "head", foreign: "ヘッド"), 214 | Word(native: "stand", foreign: "スタンド"), 215 | Word(native: "own", foreign: "独自の"), 216 | Word(native: "page", foreign: "ページ"), 217 | Word(native: "should", foreign: "べき"), 218 | Word(native: "country", foreign: "国"), 219 | Word(native: "found", foreign: "発見"), 220 | Word(native: "answer", foreign: "答え"), 221 | Word(native: "school", foreign: "学校"), 222 | Word(native: "grow", foreign: "成長する"), 223 | Word(native: "study", foreign: "研究"), 224 | Word(native: "still", foreign: "まだ"), 225 | Word(native: "learn", foreign: "学ぶ"), 226 | Word(native: "plant", foreign: "植物"), 227 | Word(native: "cover", foreign: "カバー"), 228 | Word(native: "food", foreign: "食品"), 229 | Word(native: "sun", foreign: "太陽"), 230 | Word(native: "four", foreign: "つの"), 231 | Word(native: "between", foreign: "間に"), 232 | Word(native: "state", foreign: "状態"), 233 | Word(native: "keep", foreign: "キープ"), 234 | Word(native: "eye", foreign: "目"), 235 | Word(native: "never", foreign: "ネバー"), 236 | Word(native: "last", foreign: "最後の"), 237 | Word(native: "let", foreign: "てみましょう"), 238 | Word(native: "thought", foreign: "考え"), 239 | Word(native: "city", foreign: "街"), 240 | Word(native: "tree", foreign: "ツリー"), 241 | Word(native: "cross", foreign: "クロス"), 242 | Word(native: "farm", foreign: "農場"), 243 | Word(native: "hard", foreign: "ハード"), 244 | Word(native: "start", foreign: "スタート"), 245 | Word(native: "might", foreign: "可能性がある"), 246 | Word(native: "story", foreign: "物語"), 247 | Word(native: "saw", foreign: "のこぎり"), 248 | Word(native: "far", foreign: "遠く"), 249 | Word(native: "sea", foreign: "海"), 250 | Word(native: "draw", foreign: "描く"), 251 | Word(native: "left", foreign: "左"), 252 | Word(native: "late", foreign: "遅く"), 253 | Word(native: "run", foreign: "ラン"), 254 | Word(native: "don’t", foreign: "ない"), 255 | Word(native: "while", foreign: "一方、"), 256 | Word(native: "press", foreign: "プレス"), 257 | Word(native: "close", foreign: "クローズ"), 258 | Word(native: "night", foreign: "夜"), 259 | Word(native: "real", foreign: "リアル"), 260 | Word(native: "life", foreign: "生活"), 261 | Word(native: "few", foreign: "少数"), 262 | Word(native: "north", foreign: "北"), 263 | Word(native: "book", foreign: "ブック"), 264 | Word(native: "carry", foreign: "運ぶ"), 265 | Word(native: "took", foreign: "かかった"), 266 | Word(native: "science", foreign: "科学"), 267 | Word(native: "eat", foreign: "食べる"), 268 | Word(native: "room", foreign: "部屋"), 269 | Word(native: "friend", foreign: "友人"), 270 | Word(native: "began", foreign: "始まった"), 271 | Word(native: "idea", foreign: "アイデア"), 272 | Word(native: "fish", foreign: "魚"), 273 | Word(native: "mountain", foreign: "山"), 274 | Word(native: "stop", foreign: "停止"), 275 | Word(native: "once", foreign: "一度"), 276 | Word(native: "base", foreign: "ベース"), 277 | Word(native: "hear", foreign: "聞く"), 278 | Word(native: "horse", foreign: "馬"), 279 | Word(native: "cut", foreign: "カット"), 280 | Word(native: "sure", foreign: "確か"), 281 | Word(native: "watch", foreign: "見る"), 282 | Word(native: "color", foreign: "カラー"), 283 | Word(native: "face", foreign: "顔"), 284 | Word(native: "wood", foreign: "木材"), 285 | Word(native: "main", foreign: "メイン"), 286 | Word(native: "open", foreign: "オープン"), 287 | Word(native: "seem", foreign: "見える"), 288 | Word(native: "together", foreign: "一緒に"), 289 | Word(native: "next", foreign: "次"), 290 | Word(native: "white", foreign: "白"), 291 | Word(native: "children", foreign: "子どもたち"), 292 | Word(native: "begin", foreign: "始まる"), 293 | Word(native: "got", foreign: "だ"), 294 | Word(native: "walk", foreign: "歩く"), 295 | Word(native: "example", foreign: "例"), 296 | Word(native: "ease", foreign: "和らげる"), 297 | Word(native: "paper", foreign: "紙"), 298 | Word(native: "group", foreign: "グループ"), 299 | Word(native: "always", foreign: "常に"), 300 | Word(native: "music", foreign: "音楽"), 301 | Word(native: "those", foreign: "それらの"), 302 | Word(native: "both", foreign: "両方"), 303 | Word(native: "mark", foreign: "マーク"), 304 | Word(native: "often", foreign: "しばしば"), 305 | Word(native: "letter", foreign: "手紙"), 306 | Word(native: "until", foreign: "まで、"), 307 | Word(native: "mile", foreign: "マイル"), 308 | Word(native: "river", foreign: "川"), 309 | Word(native: "car", foreign: "カー"), 310 | Word(native: "feet", foreign: "フィート"), 311 | Word(native: "care", foreign: "介護"), 312 | Word(native: "second", foreign: "第2"), 313 | Word(native: "enough", foreign: "十分な"), 314 | Word(native: "plain", foreign: "平野"), 315 | Word(native: "girl", foreign: "女の子"), 316 | Word(native: "usual", foreign: "いつもの"), 317 | Word(native: "young", foreign: "若い"), 318 | Word(native: "ready", foreign: "レディー"), 319 | Word(native: "above", foreign: "上記"), 320 | Word(native: "ever", foreign: "今までに"), 321 | Word(native: "red", foreign: "赤"), 322 | Word(native: "list", foreign: "リスト"), 323 | Word(native: "though", foreign: "しかし"), 324 | Word(native: "feel", foreign: "感じる"), 325 | Word(native: "talk", foreign: "トーク"), 326 | Word(native: "bird", foreign: "鳥"), 327 | Word(native: "soon", foreign: "すぐに"), 328 | Word(native: "body", foreign: "ボディ"), 329 | Word(native: "dog", foreign: "犬"), 330 | Word(native: "family", foreign: "家族"), 331 | Word(native: "direct", foreign: "ダイレクト"), 332 | Word(native: "pose", foreign: "ポーズ"), 333 | Word(native: "leave", foreign: "去る"), 334 | Word(native: "song", foreign: "歌"), 335 | Word(native: "measure", foreign: "測定"), 336 | Word(native: "door", foreign: "ドア"), 337 | Word(native: "product", foreign: "製品"), 338 | Word(native: "black", foreign: "黒"), 339 | Word(native: "short", foreign: "短い"), 340 | Word(native: "numeral", foreign: "数字"), 341 | Word(native: "class", foreign: "クラス"), 342 | Word(native: "wind", foreign: "風"), 343 | Word(native: "question", foreign: "質問"), 344 | Word(native: "happen", foreign: "起こる"), 345 | Word(native: "complete", foreign: "完全な"), 346 | Word(native: "ship", foreign: "船"), 347 | Word(native: "area", foreign: "エリア"), 348 | Word(native: "half", foreign: "半分"), 349 | Word(native: "rock", foreign: "岩"), 350 | Word(native: "order", foreign: "オーダー"), 351 | Word(native: "fire", foreign: "火災"), 352 | Word(native: "south", foreign: "南"), 353 | Word(native: "problem", foreign: "問題"), 354 | Word(native: "piece", foreign: "作品"), 355 | Word(native: "told", foreign: "言われ"), 356 | Word(native: "knew", foreign: "知っていた"), 357 | Word(native: "pass", foreign: "合格"), 358 | Word(native: "since", foreign: "以来"), 359 | Word(native: "top", foreign: "トップ"), 360 | Word(native: "whole", foreign: "全体"), 361 | Word(native: "king", foreign: "王"), 362 | Word(native: "street", foreign: "ストリート"), 363 | Word(native: "inch", foreign: "インチ"), 364 | Word(native: "multiply", foreign: "掛ける"), 365 | Word(native: "nothing", foreign: "何も"), 366 | Word(native: "course", foreign: "もちろん"), 367 | Word(native: "stay", foreign: "滞在"), 368 | Word(native: "wheel", foreign: "ホイール"), 369 | Word(native: "full", foreign: "フル"), 370 | Word(native: "force", foreign: "力"), 371 | Word(native: "blue", foreign: "ブルー"), 372 | Word(native: "object", foreign: "オブジェクト"), 373 | Word(native: "decide", foreign: "決定する"), 374 | Word(native: "surface", foreign: "表面"), 375 | Word(native: "deep", foreign: "深い"), 376 | Word(native: "moon", foreign: "ムーン"), 377 | Word(native: "island", foreign: "島"), 378 | Word(native: "foot", foreign: "足"), 379 | Word(native: "system", foreign: "システム"), 380 | Word(native: "busy", foreign: "忙しい"), 381 | Word(native: "test", foreign: "テスト"), 382 | Word(native: "record", foreign: "記録"), 383 | Word(native: "boat", foreign: "ボート"), 384 | Word(native: "common", foreign: "一般的な"), 385 | Word(native: "gold", foreign: "ゴールド"), 386 | Word(native: "possible", foreign: "可能"), 387 | Word(native: "plane", foreign: "飛行機"), 388 | Word(native: "stead", foreign: "代わり"), 389 | Word(native: "dry", foreign: "ドライ"), 390 | Word(native: "wonder", foreign: "不思議"), 391 | Word(native: "laugh", foreign: "笑い"), 392 | Word(native: "thousand", foreign: "千の"), 393 | Word(native: "ago", foreign: "前"), 394 | Word(native: "ran", foreign: "走った"), 395 | Word(native: "check", foreign: "チェック"), 396 | Word(native: "game", foreign: "ゲーム"), 397 | Word(native: "shape", foreign: "形状"), 398 | Word(native: "equate", foreign: "一致する"), 399 | Word(native: "hot", foreign: "ホット"), 400 | Word(native: "miss", foreign: "ミス"), 401 | Word(native: "brought", foreign: "た"), 402 | Word(native: "heat", foreign: "熱"), 403 | Word(native: "snow", foreign: "雪"), 404 | Word(native: "tire", foreign: "タイヤ"), 405 | Word(native: "bring", foreign: "持って来る"), 406 | Word(native: "yes", foreign: "はい"), 407 | Word(native: "distant", foreign: "遠い"), 408 | Word(native: "fill", foreign: "埋める"), 409 | Word(native: "east", foreign: "東"), 410 | Word(native: "paint", foreign: "ペイント"), 411 | Word(native: "language", foreign: "言語"), 412 | Word(native: "among", foreign: "の間で"), 413 | Word(native: "unit", foreign: "ユニット"), 414 | Word(native: "power", foreign: "パワー"), 415 | Word(native: "town", foreign: "町"), 416 | Word(native: "fine", foreign: "罰金"), 417 | Word(native: "certain", foreign: "特定の"), 418 | Word(native: "fly", foreign: "飛ぶ"), 419 | Word(native: "fall", foreign: "落ちる"), 420 | Word(native: "lead", foreign: "鉛"), 421 | Word(native: "cry", foreign: "泣く"), 422 | Word(native: "dark", foreign: "暗い"), 423 | Word(native: "machine", foreign: "マシン"), 424 | Word(native: "note", foreign: "ノート"), 425 | Word(native: "wait", foreign: "待つ"), 426 | Word(native: "plan", foreign: "計画"), 427 | Word(native: "figure", foreign: "図"), 428 | Word(native: "star", foreign: "スター"), 429 | Word(native: "box", foreign: "ボックス"), 430 | Word(native: "noun", foreign: "名詞"), 431 | Word(native: "field", foreign: "フィールド"), 432 | Word(native: "rest", foreign: "残り"), 433 | Word(native: "correct", foreign: "正しい"), 434 | Word(native: "able", foreign: "できる"), 435 | Word(native: "pound", foreign: "ポンド"), 436 | Word(native: "done", foreign: "終わった"), 437 | Word(native: "beauty", foreign: "美しさ"), 438 | Word(native: "drive", foreign: "ドライブ"), 439 | Word(native: "stood", foreign: "立っていた"), 440 | Word(native: "contain", foreign: "含む"), 441 | Word(native: "front", foreign: "フロント"), 442 | Word(native: "teach", foreign: "教える"), 443 | Word(native: "week", foreign: "週"), 444 | Word(native: "final", foreign: "ファイナル"), 445 | Word(native: "gave", foreign: "与えた"), 446 | Word(native: "green", foreign: "緑"), 447 | Word(native: "oh", foreign: "ああ"), 448 | Word(native: "quick", foreign: "クイック"), 449 | Word(native: "develop", foreign: "開発する"), 450 | Word(native: "ocean", foreign: "海"), 451 | Word(native: "warm", foreign: "暖かい"), 452 | Word(native: "free", foreign: "無料で"), 453 | Word(native: "minute", foreign: "分"), 454 | Word(native: "strong", foreign: "強い"), 455 | Word(native: "special", foreign: "特別"), 456 | Word(native: "mind", foreign: "心"), 457 | Word(native: "behind", foreign: "背後に"), 458 | Word(native: "clear", foreign: "明確な"), 459 | Word(native: "tail", foreign: "テール"), 460 | Word(native: "produce", foreign: "作る"), 461 | Word(native: "fact", foreign: "事実"), 462 | Word(native: "space", foreign: "スペース"), 463 | Word(native: "heard", foreign: "聞いた"), 464 | Word(native: "best", foreign: "ベスト"), 465 | Word(native: "hour", foreign: "時間"), 466 | Word(native: "better", foreign: "良い"), 467 | Word(native: "true", foreign: "真の"), 468 | Word(native: "during", foreign: "間に"), 469 | Word(native: "hundred", foreign: "百"), 470 | Word(native: "five", foreign: "五"), 471 | Word(native: "remember", foreign: "覚えている"), 472 | Word(native: "step", foreign: "ステップ"), 473 | Word(native: "early", foreign: "早い"), 474 | Word(native: "hold", foreign: "ホールド"), 475 | Word(native: "west", foreign: "西"), 476 | Word(native: "ground", foreign: "地面"), 477 | Word(native: "interest", foreign: "関心"), 478 | Word(native: "reach", foreign: "リーチ"), 479 | Word(native: "fast", foreign: "速い"), 480 | Word(native: "verb", foreign: "動詞"), 481 | Word(native: "sing", foreign: "歌う"), 482 | Word(native: "listen", foreign: "聞く"), 483 | Word(native: "six", foreign: "六"), 484 | Word(native: "table", foreign: "テーブル"), 485 | Word(native: "travel", foreign: "旅行"), 486 | Word(native: "less", foreign: "レス"), 487 | Word(native: "morning", foreign: "朝"), 488 | Word(native: "ten", foreign: "十"), 489 | Word(native: "simple", foreign: "シンプル"), 490 | Word(native: "several", foreign: "いくつかの"), 491 | Word(native: "vowel", foreign: "母音"), 492 | Word(native: "toward", foreign: "の方へ"), 493 | Word(native: "war", foreign: "戦争"), 494 | Word(native: "lay", foreign: "産む"), 495 | Word(native: "against", foreign: "に対する"), 496 | Word(native: "pattern", foreign: "パターン"), 497 | Word(native: "slow", foreign: "遅い"), 498 | Word(native: "center", foreign: "センター"), 499 | Word(native: "love", foreign: "愛"), 500 | Word(native: "person", foreign: "人"), 501 | Word(native: "money", foreign: "マネー"), 502 | Word(native: "serve", foreign: "サーブ"), 503 | Word(native: "appear", foreign: "見える"), 504 | Word(native: "road", foreign: "道路"), 505 | Word(native: "map", foreign: "マップ"), 506 | Word(native: "rain", foreign: "雨"), 507 | Word(native: "rule", foreign: "ルール"), 508 | Word(native: "govern", foreign: "支配する"), 509 | Word(native: "pull", foreign: "引っ張る"), 510 | Word(native: "cold", foreign: "寒い"), 511 | Word(native: "notice", foreign: "予告"), 512 | Word(native: "voice", foreign: "声"), 513 | Word(native: "energy", foreign: "エネルギー"), 514 | Word(native: "hunt", foreign: "狩り"), 515 | Word(native: "probable", foreign: "ありそうな"), 516 | Word(native: "bed", foreign: "ベッド"), 517 | Word(native: "brother", foreign: "兄"), 518 | Word(native: "egg", foreign: "卵"), 519 | Word(native: "ride", foreign: "乗る"), 520 | Word(native: "cell", foreign: "セル"), 521 | Word(native: "believe", foreign: "信じる"), 522 | Word(native: "perhaps", foreign: "たぶん"), 523 | Word(native: "pick", foreign: "選ぶ"), 524 | Word(native: "sudden", foreign: "突然の"), 525 | Word(native: "count", foreign: "カウント"), 526 | Word(native: "square", foreign: "広場"), 527 | Word(native: "reason", foreign: "理由"), 528 | Word(native: "length", foreign: "長さ"), 529 | Word(native: "represent", foreign: "表す"), 530 | Word(native: "art", foreign: "アート"), 531 | Word(native: "subject", foreign: "テーマ"), 532 | Word(native: "region", foreign: "地域"), 533 | Word(native: "size", foreign: "サイズ"), 534 | Word(native: "vary", foreign: "変える"), 535 | Word(native: "settle", foreign: "落ち着く"), 536 | Word(native: "speak", foreign: "話す"), 537 | Word(native: "weight", foreign: "重さ"), 538 | Word(native: "general", foreign: "一般"), 539 | Word(native: "ice", foreign: "アイス"), 540 | Word(native: "matter", foreign: "問題"), 541 | Word(native: "circle", foreign: "サークル"), 542 | Word(native: "pair", foreign: "ペア"), 543 | Word(native: "include", foreign: "含める"), 544 | Word(native: "divide", foreign: "分割"), 545 | Word(native: "syllable", foreign: "音節"), 546 | Word(native: "felt", foreign: "フェルト"), 547 | Word(native: "grand", foreign: "壮大な"), 548 | Word(native: "ball", foreign: "ボール"), 549 | Word(native: "yet", foreign: "まだ"), 550 | Word(native: "wave", foreign: "波"), 551 | Word(native: "drop", foreign: "ドロップ"), 552 | Word(native: "heart", foreign: "心"), 553 | Word(native: "am", foreign: "AM"), 554 | Word(native: "present", foreign: "現在"), 555 | Word(native: "heavy", foreign: "重い"), 556 | Word(native: "dance", foreign: "ダンス"), 557 | Word(native: "engine", foreign: "エンジン"), 558 | Word(native: "position", foreign: "ポジション"), 559 | Word(native: "arm", foreign: "アーム"), 560 | Word(native: "wide", foreign: "広い"), 561 | Word(native: "sail", foreign: "帆"), 562 | Word(native: "material", foreign: "材料"), 563 | Word(native: "fraction", foreign: "分数"), 564 | Word(native: "forest", foreign: "森"), 565 | Word(native: "sit", foreign: "座る"), 566 | Word(native: "race", foreign: "レース"), 567 | Word(native: "window", foreign: "窓"), 568 | Word(native: "store", foreign: "店"), 569 | Word(native: "summer", foreign: "夏"), 570 | Word(native: "train", foreign: "列車"), 571 | Word(native: "sleep", foreign: "スリープ"), 572 | Word(native: "prove", foreign: "証明する"), 573 | Word(native: "lone", foreign: "ローン"), 574 | Word(native: "leg", foreign: "レッグ"), 575 | Word(native: "exercise", foreign: "エクササイズ"), 576 | Word(native: "wall", foreign: "壁"), 577 | Word(native: "catch", foreign: "キャッチ"), 578 | Word(native: "mount", foreign: "マウント"), 579 | Word(native: "wish", foreign: "希望"), 580 | Word(native: "sky", foreign: "空"), 581 | Word(native: "board", foreign: "ボード"), 582 | Word(native: "joy", foreign: "喜び"), 583 | Word(native: "winter", foreign: "冬"), 584 | Word(native: "sat", foreign: "土"), 585 | Word(native: "written", foreign: "書かれた"), 586 | Word(native: "wild", foreign: "ワイルド"), 587 | Word(native: "instrument", foreign: "楽器"), 588 | Word(native: "kept", foreign: "保管"), 589 | Word(native: "glass", foreign: "ガラス"), 590 | Word(native: "grass", foreign: "草"), 591 | Word(native: "cow", foreign: "乳牛"), 592 | Word(native: "job", foreign: "仕事"), 593 | Word(native: "edge", foreign: "エッジ"), 594 | Word(native: "sign", foreign: "看板"), 595 | Word(native: "visit", foreign: "訪問"), 596 | Word(native: "past", foreign: "過去"), 597 | Word(native: "soft", foreign: "ソフト"), 598 | Word(native: "fun", foreign: "楽しい"), 599 | Word(native: "bright", foreign: "明るい"), 600 | Word(native: "gas", foreign: "ガス"), 601 | Word(native: "weather", foreign: "天候"), 602 | Word(native: "month", foreign: "月"), 603 | Word(native: "million", foreign: "万"), 604 | Word(native: "bear", foreign: "クマ"), 605 | Word(native: "finish", foreign: "仕上げ"), 606 | Word(native: "happy", foreign: "幸せな"), 607 | Word(native: "hope", foreign: "希望"), 608 | Word(native: "flower", foreign: "花"), 609 | Word(native: "clothe", foreign: "衣服を着せる"), 610 | Word(native: "strange", foreign: "奇妙な"), 611 | Word(native: "gone", foreign: "いなくなった"), 612 | Word(native: "trade", foreign: "トレード"), 613 | Word(native: "melody", foreign: "メロディー"), 614 | Word(native: "trip", foreign: "旅"), 615 | Word(native: "office", foreign: "オフィス"), 616 | Word(native: "receive", foreign: "受け取る"), 617 | Word(native: "row", foreign: "行"), 618 | Word(native: "mouth", foreign: "口"), 619 | Word(native: "exact", foreign: "正確な"), 620 | Word(native: "symbol", foreign: "シンボル"), 621 | Word(native: "die", foreign: "死ぬ"), 622 | Word(native: "least", foreign: "最低"), 623 | Word(native: "trouble", foreign: "トラブル"), 624 | Word(native: "shout", foreign: "シャウト"), 625 | Word(native: "except", foreign: "ただし"), 626 | Word(native: "wrote", foreign: "書いた"), 627 | Word(native: "seed", foreign: "シード"), 628 | Word(native: "tone", foreign: "トーン"), 629 | Word(native: "join", foreign: "参加する"), 630 | Word(native: "suggest", foreign: "提案する"), 631 | Word(native: "clean", foreign: "クリーン"), 632 | Word(native: "break", foreign: "ブレーク"), 633 | Word(native: "lady", foreign: "女性"), 634 | Word(native: "yard", foreign: "庭"), 635 | Word(native: "rise", foreign: "上昇"), 636 | Word(native: "bad", foreign: "悪い"), 637 | Word(native: "blow", foreign: "打撃"), 638 | Word(native: "oil", foreign: "オイル"), 639 | Word(native: "blood", foreign: "血"), 640 | Word(native: "touch", foreign: "触れる"), 641 | Word(native: "grew", foreign: "成長した"), 642 | Word(native: "cent", foreign: "セント"), 643 | Word(native: "mix", foreign: "ミックス"), 644 | Word(native: "team", foreign: "チーム"), 645 | Word(native: "wire", foreign: "ワイヤー"), 646 | Word(native: "cost", foreign: "コスト"), 647 | Word(native: "lost", foreign: "失われた"), 648 | Word(native: "brown", foreign: "ブラウン"), 649 | Word(native: "wear", foreign: "着用"), 650 | Word(native: "garden", foreign: "庭"), 651 | Word(native: "equal", foreign: "等しい"), 652 | Word(native: "sent", foreign: "送信された"), 653 | Word(native: "choose", foreign: "選ぶ"), 654 | Word(native: "fell", foreign: "落ちた"), 655 | Word(native: "fit", foreign: "フィット"), 656 | Word(native: "flow", foreign: "流れ"), 657 | Word(native: "fair", foreign: "フェア"), 658 | Word(native: "bank", foreign: "銀行"), 659 | Word(native: "collect", foreign: "集める"), 660 | Word(native: "save", foreign: "保存"), 661 | Word(native: "control", foreign: "コントロール"), 662 | Word(native: "decimal", foreign: "進"), 663 | Word(native: "ear", foreign: "耳"), 664 | Word(native: "else", foreign: "ほかに"), 665 | Word(native: "quite", foreign: "かなり"), 666 | Word(native: "broke", foreign: "壊した"), 667 | Word(native: "case", foreign: "ケース"), 668 | Word(native: "middle", foreign: "ミドル"), 669 | Word(native: "kill", foreign: "殺す"), 670 | Word(native: "son", foreign: "息子"), 671 | Word(native: "lake", foreign: "湖"), 672 | Word(native: "moment", foreign: "瞬間"), 673 | Word(native: "scale", foreign: "スケール"), 674 | Word(native: "loud", foreign: "騒々しい"), 675 | Word(native: "spring", foreign: "春"), 676 | Word(native: "observe", foreign: "観察する"), 677 | Word(native: "child", foreign: "子ども"), 678 | Word(native: "straight", foreign: "ストレート"), 679 | Word(native: "consonant", foreign: "子音"), 680 | Word(native: "nation", foreign: "国家"), 681 | Word(native: "dictionary", foreign: "辞書"), 682 | Word(native: "milk", foreign: "ミルク"), 683 | Word(native: "speed", foreign: "スピード"), 684 | Word(native: "method", foreign: "方法"), 685 | Word(native: "organ", foreign: "オルガン"), 686 | Word(native: "pay", foreign: "支払い"), 687 | Word(native: "age", foreign: "年齢"), 688 | Word(native: "section", foreign: "セクション"), 689 | Word(native: "dress", foreign: "ドレス"), 690 | Word(native: "cloud", foreign: "クラウド"), 691 | Word(native: "surprise", foreign: "驚き"), 692 | Word(native: "quiet", foreign: "静かな"), 693 | Word(native: "stone", foreign: "石"), 694 | Word(native: "tiny", foreign: "小さな"), 695 | Word(native: "climb", foreign: "登る"), 696 | Word(native: "cool", foreign: "涼しい"), 697 | Word(native: "design", foreign: "デザイン"), 698 | Word(native: "poor", foreign: "貧しい"), 699 | Word(native: "lot", foreign: "たくさん"), 700 | Word(native: "experiment", foreign: "実験"), 701 | Word(native: "bottom", foreign: "ボトム"), 702 | Word(native: "key", foreign: "キー"), 703 | Word(native: "iron", foreign: "鉄"), 704 | Word(native: "single", foreign: "シングル"), 705 | Word(native: "stick", foreign: "スティック"), 706 | Word(native: "flat", foreign: "フラット"), 707 | Word(native: "twenty", foreign: "個の"), 708 | Word(native: "skin", foreign: "スキン"), 709 | Word(native: "smile", foreign: "笑顔"), 710 | Word(native: "crease", foreign: "しわ"), 711 | Word(native: "hole", foreign: "穴"), 712 | Word(native: "jump", foreign: "ジャンプ"), 713 | Word(native: "baby", foreign: "赤ちゃん"), 714 | Word(native: "eight", foreign: "人"), 715 | Word(native: "village", foreign: "村"), 716 | Word(native: "meet", foreign: "大会"), 717 | Word(native: "root", foreign: "ルート"), 718 | Word(native: "buy", foreign: "買う"), 719 | Word(native: "raise", foreign: "上げる"), 720 | Word(native: "solve", foreign: "解く"), 721 | Word(native: "metal", foreign: "金属"), 722 | Word(native: "whether", foreign: "かどうか"), 723 | Word(native: "push", foreign: "プッシュ"), 724 | Word(native: "seven", foreign: "7"), 725 | Word(native: "paragraph", foreign: "パラグラフ"), 726 | Word(native: "third", foreign: "第3"), 727 | Word(native: "shall", foreign: "しなければならない"), 728 | Word(native: "held", foreign: "ハンドヘルド"), 729 | Word(native: "hair", foreign: "髪"), 730 | Word(native: "describe", foreign: "説明する"), 731 | Word(native: "cook", foreign: "料理人"), 732 | Word(native: "floor", foreign: "床"), 733 | Word(native: "either", foreign: "どちら"), 734 | Word(native: "result", foreign: "結果"), 735 | Word(native: "burn", foreign: "燃やす"), 736 | Word(native: "hill", foreign: "丘"), 737 | Word(native: "safe", foreign: "金庫"), 738 | Word(native: "cat", foreign: "猫"), 739 | Word(native: "century", foreign: "世紀"), 740 | Word(native: "consider", foreign: "考える"), 741 | Word(native: "type", foreign: "タイプ"), 742 | Word(native: "law", foreign: "法則"), 743 | Word(native: "bit", foreign: "ビット"), 744 | Word(native: "coast", foreign: "海岸"), 745 | Word(native: "copy", foreign: "コピー"), 746 | Word(native: "phrase", foreign: "フレーズ"), 747 | Word(native: "silent", foreign: "サイレント"), 748 | Word(native: "tall", foreign: "背の高い"), 749 | Word(native: "sand", foreign: "砂"), 750 | Word(native: "soil", foreign: "土壌"), 751 | Word(native: "roll", foreign: "ロール"), 752 | Word(native: "temperature", foreign: "温度"), 753 | Word(native: "finger", foreign: "指"), 754 | Word(native: "industry", foreign: "業界"), 755 | Word(native: "value", foreign: "値"), 756 | Word(native: "fight", foreign: "戦い"), 757 | Word(native: "lie", foreign: "うそ"), 758 | Word(native: "beat", foreign: "ビート"), 759 | Word(native: "excite", foreign: "エキサイト"), 760 | Word(native: "natural", foreign: "ナチュラル"), 761 | Word(native: "view", foreign: "ビュー"), 762 | Word(native: "sense", foreign: "感覚"), 763 | Word(native: "capital", foreign: "首都"), 764 | Word(native: "won’t", foreign: "ないでしょう"), 765 | Word(native: "chair", foreign: "椅子"), 766 | Word(native: "danger", foreign: "危険"), 767 | Word(native: "fruit", foreign: "フルーツ"), 768 | Word(native: "rich", foreign: "金持ち"), 769 | Word(native: "thick", foreign: "厚い"), 770 | Word(native: "soldier", foreign: "兵士"), 771 | Word(native: "process", foreign: "プロセス"), 772 | Word(native: "operate", foreign: "操作する"), 773 | Word(native: "practice", foreign: "練習"), 774 | Word(native: "separate", foreign: "別"), 775 | Word(native: "difficult", foreign: "難しい"), 776 | Word(native: "doctor", foreign: "医師"), 777 | Word(native: "please", foreign: "どうぞ"), 778 | Word(native: "protect", foreign: "守る"), 779 | Word(native: "noon", foreign: "正午"), 780 | Word(native: "crop", foreign: "作物"), 781 | Word(native: "modern", foreign: "モダン"), 782 | Word(native: "element", foreign: "要素"), 783 | Word(native: "hit", foreign: "ヒット"), 784 | Word(native: "student", foreign: "学生"), 785 | Word(native: "corner", foreign: "コーナー"), 786 | Word(native: "party", foreign: "パーティー"), 787 | Word(native: "supply", foreign: "サプライ"), 788 | Word(native: "whose", foreign: "その"), 789 | Word(native: "locate", foreign: "検索する"), 790 | Word(native: "ring", foreign: "リング"), 791 | Word(native: "character", foreign: "キャラクター"), 792 | Word(native: "insect", foreign: "昆虫"), 793 | Word(native: "caught", foreign: "キャッチ"), 794 | Word(native: "period", foreign: "期間"), 795 | Word(native: "indicate", foreign: "示す"), 796 | Word(native: "radio", foreign: "ラジオ"), 797 | Word(native: "spoke", foreign: "スポーク"), 798 | Word(native: "atom", foreign: "アトム"), 799 | Word(native: "human", foreign: "人間"), 800 | Word(native: "history", foreign: "歴史"), 801 | Word(native: "effect", foreign: "効果"), 802 | Word(native: "electric", foreign: "エレクトリック"), 803 | Word(native: "expect", foreign: "期待する"), 804 | Word(native: "bone", foreign: "骨"), 805 | Word(native: "rail", foreign: "レール"), 806 | Word(native: "imagine", foreign: "想像する"), 807 | Word(native: "provide", foreign: "提供する"), 808 | Word(native: "agree", foreign: "同意する"), 809 | Word(native: "thus", foreign: "このようにして"), 810 | Word(native: "gentle", foreign: "優しい"), 811 | Word(native: "woman", foreign: "女"), 812 | Word(native: "captain", foreign: "キャプテン"), 813 | Word(native: "guess", foreign: "推測"), 814 | Word(native: "necessary", foreign: "必要"), 815 | Word(native: "sharp", foreign: "シャープ"), 816 | Word(native: "wing", foreign: "ウイング"), 817 | Word(native: "create", foreign: "作る"), 818 | Word(native: "neighbor", foreign: "隣人"), 819 | Word(native: "wash", foreign: "ウォッシュ"), 820 | Word(native: "bat", foreign: "バット"), 821 | Word(native: "rather", foreign: "むしろ"), 822 | Word(native: "crowd", foreign: "群衆"), 823 | Word(native: "corn", foreign: "トウモロコシ"), 824 | Word(native: "compare", foreign: "比較する"), 825 | Word(native: "poem", foreign: "詩"), 826 | Word(native: "string", foreign: "文字列"), 827 | Word(native: "bell", foreign: "鐘"), 828 | Word(native: "depend", foreign: "決まる"), 829 | Word(native: "meat", foreign: "肉"), 830 | Word(native: "rub", foreign: "こする"), 831 | Word(native: "tube", foreign: "チューブ"), 832 | Word(native: "famous", foreign: "有名な"), 833 | Word(native: "dollar", foreign: "ドル"), 834 | Word(native: "stream", foreign: "ストリーム"), 835 | Word(native: "fear", foreign: "恐怖"), 836 | Word(native: "sight", foreign: "視力"), 837 | Word(native: "thin", foreign: "薄い"), 838 | Word(native: "triangle", foreign: "三角形"), 839 | Word(native: "planet", foreign: "惑星"), 840 | Word(native: "hurry", foreign: "急ぐ"), 841 | Word(native: "chief", foreign: "チーフ"), 842 | Word(native: "colony", foreign: "コロニー"), 843 | Word(native: "clock", foreign: "クロック"), 844 | Word(native: "mine", foreign: "地雷"), 845 | Word(native: "tie", foreign: "ネクタイ"), 846 | Word(native: "enter", foreign: "入力する"), 847 | Word(native: "major", foreign: "主要な"), 848 | Word(native: "fresh", foreign: "新鮮な"), 849 | Word(native: "search", foreign: "検索"), 850 | Word(native: "send", foreign: "送信"), 851 | Word(native: "yellow", foreign: "黄色"), 852 | Word(native: "gun", foreign: "銃"), 853 | Word(native: "allow", foreign: "許可する"), 854 | Word(native: "print", foreign: "印刷"), 855 | Word(native: "dead", foreign: "死んだ"), 856 | Word(native: "spot", foreign: "スポット"), 857 | Word(native: "desert", foreign: "砂漠"), 858 | Word(native: "suit", foreign: "スーツ"), 859 | Word(native: "current", foreign: "現在の"), 860 | Word(native: "lift", foreign: "リフト"), 861 | Word(native: "rose", foreign: "ローズ"), 862 | Word(native: "arrive", foreign: "届く"), 863 | Word(native: "master", foreign: "マスター"), 864 | Word(native: "track", foreign: "トラック"), 865 | Word(native: "parent", foreign: "親"), 866 | Word(native: "shore", foreign: "海岸"), 867 | Word(native: "division", foreign: "分裂"), 868 | Word(native: "sheet", foreign: "シート"), 869 | Word(native: "substance", foreign: "物質"), 870 | Word(native: "favor", foreign: "好む"), 871 | Word(native: "connect", foreign: "接続する"), 872 | Word(native: "post", foreign: "ポスト"), 873 | Word(native: "spend", foreign: "過ごす"), 874 | Word(native: "chord", foreign: "和音"), 875 | Word(native: "fat", foreign: "脂肪"), 876 | Word(native: "glad", foreign: "うれしい"), 877 | Word(native: "original", foreign: "オリジナル"), 878 | Word(native: "share", foreign: "シェア"), 879 | Word(native: "station", foreign: "駅"), 880 | Word(native: "dad", foreign: "お父さん"), 881 | Word(native: "bread", foreign: "パン"), 882 | Word(native: "charge", foreign: "充電"), 883 | Word(native: "proper", foreign: "適切な"), 884 | Word(native: "bar", foreign: "バー"), 885 | Word(native: "offer", foreign: "申し出"), 886 | Word(native: "segment", foreign: "セグメント"), 887 | Word(native: "slave", foreign: "スレーブ"), 888 | Word(native: "duck", foreign: "アヒル"), 889 | Word(native: "instant", foreign: "インスタント"), 890 | Word(native: "market", foreign: "市場"), 891 | Word(native: "degree", foreign: "度"), 892 | Word(native: "populate", foreign: "投入する"), 893 | Word(native: "chick", foreign: "ひよこ"), 894 | Word(native: "dear", foreign: "かわいい"), 895 | Word(native: "enemy", foreign: "敵"), 896 | Word(native: "reply", foreign: "返事"), 897 | Word(native: "drink", foreign: "ドリンク"), 898 | Word(native: "occur", foreign: "起こる"), 899 | Word(native: "support", foreign: "サポート"), 900 | Word(native: "speech", foreign: "スピーチ"), 901 | Word(native: "nature", foreign: "自然"), 902 | Word(native: "range", foreign: "レンジ"), 903 | Word(native: "steam", foreign: "スチーム"), 904 | Word(native: "motion", foreign: "モーション"), 905 | Word(native: "path", foreign: "パス"), 906 | Word(native: "liquid", foreign: "液体"), 907 | Word(native: "log", foreign: "ログ"), 908 | Word(native: "meant", foreign: "意味"), 909 | Word(native: "quotient", foreign: "商"), 910 | Word(native: "teeth", foreign: "歯牙"), 911 | Word(native: "shell", foreign: "シェル"), 912 | Word(native: "neck", foreign: "首"), 913 | Word(native: "oxygen", foreign: "酸素"), 914 | Word(native: "sugar", foreign: "砂糖"), 915 | Word(native: "death", foreign: "死"), 916 | Word(native: "pretty", foreign: "かわいい"), 917 | Word(native: "skill", foreign: "スキル"), 918 | Word(native: "women", foreign: "女性たち"), 919 | Word(native: "season", foreign: "シーズン"), 920 | Word(native: "solution", foreign: "ソリューション"), 921 | Word(native: "magnet", foreign: "マグネット"), 922 | Word(native: "silver", foreign: "銀"), 923 | Word(native: "thank", foreign: "感謝"), 924 | Word(native: "branch", foreign: "ブランチ"), 925 | Word(native: "match", foreign: "マッチ"), 926 | Word(native: "suffix", foreign: "サフィックス"), 927 | Word(native: "especially", foreign: "特に"), 928 | Word(native: "fig", foreign: "イチジク"), 929 | Word(native: "afraid", foreign: "恐れて"), 930 | Word(native: "huge", foreign: "巨大な"), 931 | Word(native: "sister", foreign: "姉妹"), 932 | Word(native: "steel", foreign: "スチール"), 933 | Word(native: "discuss", foreign: "話し合う"), 934 | Word(native: "forward", foreign: "フォワード"), 935 | Word(native: "similar", foreign: "同じような"), 936 | Word(native: "guide", foreign: "ガイド"), 937 | Word(native: "experience", foreign: "経験"), 938 | Word(native: "score", foreign: "スコア"), 939 | Word(native: "apple", foreign: "リンゴ"), 940 | Word(native: "bought", foreign: "買った"), 941 | Word(native: "led", foreign: "主導"), 942 | Word(native: "pitch", foreign: "ピッチ"), 943 | Word(native: "coat", foreign: "コート"), 944 | Word(native: "mass", foreign: "マス"), 945 | Word(native: "card", foreign: "カード"), 946 | Word(native: "band", foreign: "バンド"), 947 | Word(native: "rope", foreign: "ロープ"), 948 | Word(native: "slip", foreign: "スリップ"), 949 | Word(native: "win", foreign: "勝つ"), 950 | Word(native: "dream", foreign: "夢"), 951 | Word(native: "evening", foreign: "夕べ"), 952 | Word(native: "condition", foreign: "条件"), 953 | Word(native: "feed", foreign: "フィード"), 954 | Word(native: "tool", foreign: "ツール"), 955 | Word(native: "total", foreign: "合計"), 956 | Word(native: "basic", foreign: "基本"), 957 | Word(native: "smell", foreign: "匂い"), 958 | Word(native: "valley", foreign: "谷"), 959 | Word(native: "nor", foreign: "も"), 960 | Word(native: "double", foreign: "ダブル"), 961 | Word(native: "seat", foreign: "座席"), 962 | Word(native: "continue", foreign: "続ける"), 963 | Word(native: "block", foreign: "ブロック"), 964 | Word(native: "chart", foreign: "チャート"), 965 | Word(native: "hat", foreign: "帽子"), 966 | Word(native: "sell", foreign: "売る"), 967 | Word(native: "success", foreign: "成功"), 968 | Word(native: "company", foreign: "会社"), 969 | Word(native: "subtract", foreign: "引く"), 970 | Word(native: "event", foreign: "イベント"), 971 | Word(native: "particular", foreign: "特定の"), 972 | Word(native: "deal", foreign: "契約"), 973 | Word(native: "swim", foreign: "泳ぐ"), 974 | Word(native: "term", foreign: "言葉"), 975 | Word(native: "opposite", foreign: "反対"), 976 | Word(native: "wife", foreign: "妻"), 977 | Word(native: "shoe", foreign: "靴"), 978 | Word(native: "shoulder", foreign: "肩"), 979 | Word(native: "spread", foreign: "スプレッド"), 980 | Word(native: "arrange", foreign: "アレンジ"), 981 | Word(native: "camp", foreign: "キャンプ"), 982 | Word(native: "invent", foreign: "発明する"), 983 | Word(native: "cotton", foreign: "綿"), 984 | Word(native: "born", foreign: "ボルン"), 985 | Word(native: "determine", foreign: "決定する"), 986 | Word(native: "quart", foreign: "クォート"), 987 | Word(native: "nine", foreign: "人"), 988 | Word(native: "truck", foreign: "トラック"), 989 | Word(native: "noise", foreign: "ノイズ"), 990 | Word(native: "level", foreign: "レベル"), 991 | Word(native: "chance", foreign: "チャンス"), 992 | Word(native: "gather", foreign: "集まる"), 993 | Word(native: "shop", foreign: "ショップ"), 994 | Word(native: "stretch", foreign: "ストレッチ"), 995 | Word(native: "throw", foreign: "投げる"), 996 | Word(native: "shine", foreign: "輝き"), 997 | Word(native: "property", foreign: "財産"), 998 | Word(native: "column", foreign: "コラム"), 999 | Word(native: "molecule", foreign: "分子"), 1000 | Word(native: "select", foreign: "選択する"), 1001 | Word(native: "wrong", foreign: "間違った"), 1002 | Word(native: "gray", foreign: "グレー"), 1003 | Word(native: "repeat", foreign: "リピート"), 1004 | Word(native: "require", foreign: "必要とする"), 1005 | Word(native: "broad", foreign: "幅広い"), 1006 | Word(native: "prepare", foreign: "準備する"), 1007 | Word(native: "salt", foreign: "塩"), 1008 | Word(native: "nose", foreign: "鼻"), 1009 | Word(native: "plural", foreign: "複数"), 1010 | Word(native: "anger", foreign: "怒り"), 1011 | Word(native: "claim", foreign: "請求") 1012 | ] 1013 | 1014 | func getAll() -> [Word] { 1015 | return words 1016 | } 1017 | 1018 | func getRandom() -> Word { 1019 | let number = Int.random(in: 0.. String { 1024 | return "🇯🇵" 1025 | } 1026 | } 1027 | -------------------------------------------------------------------------------- /DailyWord/Languages/LanguageFactory.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LanaguageFactory.swift 3 | // DailyItalianWord 4 | // 5 | // Created by Josh Spicer on 10/19/20. 6 | // 7 | 8 | import Foundation 9 | 10 | protocol LanguageBase { 11 | func getAll() -> [Word] 12 | func getRandom() -> Word 13 | func getFlag() -> String 14 | } 15 | 16 | class LanguageFactory { 17 | 18 | public static func Create(lang: SupportedLanguages) -> LanguageBase { 19 | switch lang { 20 | case .Italian: 21 | return Italian() 22 | case .French: 23 | return French() 24 | case .Japanese: 25 | return Japanese() 26 | case .Morse: 27 | return Morse() 28 | case .NationalFlags: 29 | return NationalFlags() 30 | case .CountryCodes: 31 | return CountryCodes() 32 | default: 33 | return NoLang() 34 | 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /DailyWord/Languages/Morse.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Morse.swift 3 | // DailyItalianWord 4 | // 5 | // Created by Josh Spicer on 02/13/2022 6 | // 7 | 8 | import Foundation 9 | 10 | class Morse : LanguageBase { 11 | 12 | let words: [Word] = [ 13 | Word(native: "A", foreign: ".-"), 14 | Word(native: "B", foreign: "-..."), 15 | Word(native: "C", foreign: "-.-."), 16 | Word(native: "D", foreign: "-.."), 17 | Word(native: "E", foreign: "."), 18 | Word(native: "F", foreign: "..-."), 19 | Word(native: "G", foreign: "--."), 20 | Word(native: "H", foreign: "...."), 21 | Word(native: "I", foreign: ".."), 22 | Word(native: "J", foreign: ".---"), 23 | Word(native: "K", foreign: "-.-"), 24 | Word(native: "L", foreign: ".-.."), 25 | Word(native: "M", foreign: "--"), 26 | Word(native: "N", foreign: "-."), 27 | Word(native: "O", foreign: "---"), 28 | Word(native: "P", foreign: ".--."), 29 | Word(native: "Q", foreign: "--.-"), 30 | Word(native: "R", foreign: ".-."), 31 | Word(native: "S", foreign: "..."), 32 | Word(native: "T", foreign: "-"), 33 | Word(native: "U", foreign: "..-"), 34 | Word(native: "V", foreign: "...-"), 35 | Word(native: "W", foreign: ".--"), 36 | Word(native: "X", foreign: "-..-"), 37 | Word(native: "Y", foreign: "-.--"), 38 | Word(native: "Z", foreign: "--.."), 39 | Word(native: "1", foreign: ".----"), 40 | Word(native: "2", foreign: "..---"), 41 | Word(native: "3", foreign: "...--"), 42 | Word(native: "4", foreign: "....-"), 43 | Word(native: "5", foreign: "....."), 44 | Word(native: "6", foreign: "-...."), 45 | Word(native: "7", foreign: "--..."), 46 | Word(native: "8", foreign: "---.."), 47 | Word(native: "9", foreign: "----."), 48 | Word(native: "0", foreign: "-----") 49 | ] 50 | 51 | func getRandom() -> Word { 52 | let number = Int.random(in: 0.. [Word] { 57 | return words 58 | } 59 | 60 | func getFlag() -> String { 61 | return "🖥️" 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /DailyWord/Languages/NationalFlags.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NationalFlags.swift 3 | // DailyItalianWord 4 | // 5 | // Created by Josh Spicer on 3/1/22. 6 | // 7 | 8 | import Foundation 9 | 10 | class NationalFlags : LanguageBase { 11 | 12 | let words: [Word] = [ 13 | Word(native: "Ascension Island", foreign: "🇦🇨"), 14 | Word(native: "Andorra", foreign: "🇦🇩"), 15 | Word(native: "United Arab Emirates", foreign: "🇦🇪"), 16 | Word(native: "Afghanistan", foreign: "🇦🇫"), 17 | Word(native: "Antigua & Barbuda", foreign: "🇦🇬"), 18 | Word(native: "Anguilla", foreign: "🇦🇮"), 19 | Word(native: "Albania", foreign: "🇦🇱"), 20 | Word(native: "Armenia", foreign: "🇦🇲"), 21 | Word(native: "Angola", foreign: "🇦🇴"), 22 | Word(native: "Antarctica", foreign: "🇦🇶"), 23 | Word(native: "Argentina", foreign: "🇦🇷"), 24 | Word(native: "American Samoa", foreign: "🇦🇸"), 25 | Word(native: "Austria", foreign: "🇦🇹"), 26 | Word(native: "Australia", foreign: "🇦🇺"), 27 | Word(native: "Aruba", foreign: "🇦🇼"), 28 | Word(native: "Åland Islands", foreign: "🇦🇽"), 29 | Word(native: "Azerbaijan", foreign: "🇦🇿"), 30 | Word(native: "Bosnia & Herzegovina", foreign: "🇧🇦"), 31 | Word(native: "Barbados", foreign: "🇧🇧"), 32 | Word(native: "Bangladesh", foreign: "🇧🇩"), 33 | Word(native: "Belgium", foreign: "🇧🇪"), 34 | Word(native: "Burkina Faso", foreign: "🇧🇫"), 35 | Word(native: "Bulgaria", foreign: "🇧🇬"), 36 | Word(native: "Bahrain", foreign: "🇧🇭"), 37 | Word(native: "Burundi", foreign: "🇧🇮"), 38 | Word(native: "Benin", foreign: "🇧🇯"), 39 | Word(native: "St. Barthélemy", foreign: "🇧🇱"), 40 | Word(native: "Bermuda", foreign: "🇧🇲"), 41 | Word(native: "Brunei", foreign: "🇧🇳"), 42 | Word(native: "Bolivia", foreign: "🇧🇴"), 43 | Word(native: "Caribbean Netherlands", foreign: "🇧🇶"), 44 | Word(native: "Brazil", foreign: "🇧🇷"), 45 | Word(native: "Bahamas", foreign: "🇧🇸"), 46 | Word(native: "Bhutan", foreign: "🇧🇹"), 47 | Word(native: "Bouvet Island", foreign: "🇧🇻"), 48 | Word(native: "Botswana", foreign: "🇧🇼"), 49 | Word(native: "Belarus", foreign: "🇧🇾"), 50 | Word(native: "Belize", foreign: "🇧🇿"), 51 | Word(native: "Canada", foreign: "🇨🇦"), 52 | Word(native: "Cocos (Keeling) Islands", foreign: "🇨🇨"), 53 | Word(native: "Congo - Kinshasa", foreign: "🇨🇩"), 54 | Word(native: "Central African Republic", foreign: "🇨🇫"), 55 | Word(native: "Congo - Brazzaville", foreign: "🇨🇬"), 56 | Word(native: "Switzerland", foreign: "🇨🇭"), 57 | Word(native: "Côte d’Ivoire", foreign: "🇨🇮"), 58 | Word(native: "Cook Islands", foreign: "🇨🇰"), 59 | Word(native: "Chile", foreign: "🇨🇱"), 60 | Word(native: "Cameroon", foreign: "🇨🇲"), 61 | Word(native: "China", foreign: "🇨🇳"), 62 | Word(native: "Colombia", foreign: "🇨🇴"), 63 | Word(native: "Clipperton Island", foreign: "🇨🇵"), 64 | Word(native: "Costa Rica", foreign: "🇨🇷"), 65 | Word(native: "Cuba", foreign: "🇨🇺"), 66 | Word(native: "Cape Verde", foreign: "🇨🇻"), 67 | Word(native: "Curaçao", foreign: "🇨🇼"), 68 | Word(native: "Christmas Island", foreign: "🇨🇽"), 69 | Word(native: "Cyprus", foreign: "🇨🇾"), 70 | Word(native: "Czechia", foreign: "🇨🇿"), 71 | Word(native: "Germany", foreign: "🇩🇪"), 72 | Word(native: "Diego Garcia", foreign: "🇩🇬"), 73 | Word(native: "Djibouti", foreign: "🇩🇯"), 74 | Word(native: "Denmark", foreign: "🇩🇰"), 75 | Word(native: "Dominica", foreign: "🇩🇲"), 76 | Word(native: "Dominican Republic", foreign: "🇩🇴"), 77 | Word(native: "Algeria", foreign: "🇩🇿"), 78 | Word(native: "Ceuta & Melilla", foreign: "🇪🇦"), 79 | Word(native: "Ecuador", foreign: "🇪🇨"), 80 | Word(native: "Estonia", foreign: "🇪🇪"), 81 | Word(native: "Egypt", foreign: "🇪🇬"), 82 | Word(native: "Western Sahara", foreign: "🇪🇭"), 83 | Word(native: "Eritrea", foreign: "🇪🇷"), 84 | Word(native: "Spain", foreign: "🇪🇸"), 85 | Word(native: "Ethiopia", foreign: "🇪🇹"), 86 | Word(native: "European Union", foreign: "🇪🇺"), 87 | Word(native: "Finland", foreign: "🇫🇮"), 88 | Word(native: "Fiji", foreign: "🇫🇯"), 89 | Word(native: "Falkland Islands", foreign: "🇫🇰"), 90 | Word(native: "Micronesia", foreign: "🇫🇲"), 91 | Word(native: "Faroe Islands", foreign: "🇫🇴"), 92 | Word(native: "France", foreign: "🇫🇷"), 93 | Word(native: "Gabon", foreign: "🇬🇦"), 94 | Word(native: "United Kingdom", foreign: "🇬🇧"), 95 | Word(native: "Grenada", foreign: "🇬🇩"), 96 | Word(native: "Georgia", foreign: "🇬🇪"), 97 | Word(native: "French Guiana", foreign: "🇬🇫"), 98 | Word(native: "Guernsey", foreign: "🇬🇬"), 99 | Word(native: "Ghana", foreign: "🇬🇭"), 100 | Word(native: "Gibraltar", foreign: "🇬🇮"), 101 | Word(native: "Greenland", foreign: "🇬🇱"), 102 | Word(native: "Gambia", foreign: "🇬🇲"), 103 | Word(native: "Guinea", foreign: "🇬🇳"), 104 | Word(native: "Guadeloupe", foreign: "🇬🇵"), 105 | Word(native: "Equatorial Guinea", foreign: "🇬🇶"), 106 | Word(native: "Greece", foreign: "🇬🇷"), 107 | Word(native: "South Georgia & South Sandwich Islands", foreign: "🇬🇸"), 108 | Word(native: "Guatemala", foreign: "🇬🇹"), 109 | Word(native: "Guam", foreign: "🇬🇺"), 110 | Word(native: "Guinea-Bissau", foreign: "🇬🇼"), 111 | Word(native: "Guyana", foreign: "🇬🇾"), 112 | Word(native: "Hong Kong SAR China", foreign: "🇭🇰"), 113 | Word(native: "Heard & McDonald Islands", foreign: "🇭🇲"), 114 | Word(native: "Honduras", foreign: "🇭🇳"), 115 | Word(native: "Croatia", foreign: "🇭🇷"), 116 | Word(native: "Haiti", foreign: "🇭🇹"), 117 | Word(native: "Hungary", foreign: "🇭🇺"), 118 | Word(native: "Canary Islands", foreign: "🇮🇨"), 119 | Word(native: "Indonesia", foreign: "🇮🇩"), 120 | Word(native: "Ireland", foreign: "🇮🇪"), 121 | Word(native: "Israel", foreign: "🇮🇱"), 122 | Word(native: "Isle of Man", foreign: "🇮🇲"), 123 | Word(native: "India", foreign: "🇮🇳"), 124 | Word(native: "British Indian Ocean Territory", foreign: "🇮🇴"), 125 | Word(native: "Iraq", foreign: "🇮🇶"), 126 | Word(native: "Iran", foreign: "🇮🇷"), 127 | Word(native: "Iceland", foreign: "🇮🇸"), 128 | Word(native: "Italy", foreign: "🇮🇹"), 129 | Word(native: "Jersey", foreign: "🇯🇪"), 130 | Word(native: "Jamaica", foreign: "🇯🇲"), 131 | Word(native: "Jordan", foreign: "🇯🇴"), 132 | Word(native: "Japan", foreign: "🇯🇵"), 133 | Word(native: "Kenya", foreign: "🇰🇪"), 134 | Word(native: "Kyrgyzstan", foreign: "🇰🇬"), 135 | Word(native: "Cambodia", foreign: "🇰🇭"), 136 | Word(native: "Kiribati", foreign: "🇰🇮"), 137 | Word(native: "Comoros", foreign: "🇰🇲"), 138 | Word(native: "St. Kitts & Nevis", foreign: "🇰🇳"), 139 | Word(native: "North Korea", foreign: "🇰🇵"), 140 | Word(native: "South Korea", foreign: "🇰🇷"), 141 | Word(native: "Kuwait", foreign: "🇰🇼"), 142 | Word(native: "Cayman Islands", foreign: "🇰🇾"), 143 | Word(native: "Kazakhstan", foreign: "🇰🇿"), 144 | Word(native: "Laos", foreign: "🇱🇦"), 145 | Word(native: "Lebanon", foreign: "🇱🇧"), 146 | Word(native: "St. Lucia", foreign: "🇱🇨"), 147 | Word(native: "Liechtenstein", foreign: "🇱🇮"), 148 | Word(native: "Sri Lanka", foreign: "🇱🇰"), 149 | Word(native: "Liberia", foreign: "🇱🇷"), 150 | Word(native: "Lesotho", foreign: "🇱🇸"), 151 | Word(native: "Lithuania", foreign: "🇱🇹"), 152 | Word(native: "Luxembourg", foreign: "🇱🇺"), 153 | Word(native: "Latvia", foreign: "🇱🇻"), 154 | Word(native: "Libya", foreign: "🇱🇾"), 155 | Word(native: "Morocco", foreign: "🇲🇦"), 156 | Word(native: "Monaco", foreign: "🇲🇨"), 157 | Word(native: "Moldova", foreign: "🇲🇩"), 158 | Word(native: "Montenegro", foreign: "🇲🇪"), 159 | Word(native: "St. Martin", foreign: "🇲🇫"), 160 | Word(native: "Madagascar", foreign: "🇲🇬"), 161 | Word(native: "Marshall Islands", foreign: "🇲🇭"), 162 | Word(native: "North Macedonia", foreign: "🇲🇰"), 163 | Word(native: "Mali", foreign: "🇲🇱"), 164 | Word(native: "Myanmar (Burma)", foreign: "🇲🇲"), 165 | Word(native: "Mongolia", foreign: "🇲🇳"), 166 | Word(native: "Macao SAR China", foreign: "🇲🇴"), 167 | Word(native: "Northern Mariana Islands", foreign: "🇲🇵"), 168 | Word(native: "Martinique", foreign: "🇲🇶"), 169 | Word(native: "Mauritania", foreign: "🇲🇷"), 170 | Word(native: "Montserrat", foreign: "🇲🇸"), 171 | Word(native: "Malta", foreign: "🇲🇹"), 172 | Word(native: "Mauritius", foreign: "🇲🇺"), 173 | Word(native: "Maldives", foreign: "🇲🇻"), 174 | Word(native: "Malawi", foreign: "🇲🇼"), 175 | Word(native: "Mexico", foreign: "🇲🇽"), 176 | Word(native: "Malaysia", foreign: "🇲🇾"), 177 | Word(native: "Mozambique", foreign: "🇲🇿"), 178 | Word(native: "Namibia", foreign: "🇳🇦"), 179 | Word(native: "New Caledonia", foreign: "🇳🇨"), 180 | Word(native: "Niger", foreign: "🇳🇪"), 181 | Word(native: "Norfolk Island", foreign: "🇳🇫"), 182 | Word(native: "Nigeria", foreign: "🇳🇬"), 183 | Word(native: "Nicaragua", foreign: "🇳🇮"), 184 | Word(native: "Netherlands", foreign: "🇳🇱"), 185 | Word(native: "Norway", foreign: "🇳🇴"), 186 | Word(native: "Nepal", foreign: "🇳🇵"), 187 | Word(native: "Nauru", foreign: "🇳🇷"), 188 | Word(native: "Niue", foreign: "🇳🇺"), 189 | Word(native: "New Zealand", foreign: "🇳🇿"), 190 | Word(native: "Oman", foreign: "🇴🇲"), 191 | Word(native: "Panama", foreign: "🇵🇦"), 192 | Word(native: "Peru", foreign: "🇵🇪"), 193 | Word(native: "French Polynesia", foreign: "🇵🇫"), 194 | Word(native: "Papua New Guinea", foreign: "🇵🇬"), 195 | Word(native: "Philippines", foreign: "🇵🇭"), 196 | Word(native: "Pakistan", foreign: "🇵🇰"), 197 | Word(native: "Poland", foreign: "🇵🇱"), 198 | Word(native: "St. Pierre & Miquelon", foreign: "🇵🇲"), 199 | Word(native: "Pitcairn Islands", foreign: "🇵🇳"), 200 | Word(native: "Puerto Rico", foreign: "🇵🇷"), 201 | Word(native: "Palestinian Territories", foreign: "🇵🇸"), 202 | Word(native: "Portugal", foreign: "🇵🇹"), 203 | Word(native: "Palau", foreign: "🇵🇼"), 204 | Word(native: "Paraguay", foreign: "🇵🇾"), 205 | Word(native: "Qatar", foreign: "🇶🇦"), 206 | Word(native: "Réunion", foreign: "🇷🇪"), 207 | Word(native: "Romania", foreign: "🇷🇴"), 208 | Word(native: "Serbia", foreign: "🇷🇸"), 209 | Word(native: "Russia", foreign: "🇷🇺"), 210 | Word(native: "Rwanda", foreign: "🇷🇼"), 211 | Word(native: "Saudi Arabia", foreign: "🇸🇦"), 212 | Word(native: "Solomon Islands", foreign: "🇸🇧"), 213 | Word(native: "Seychelles", foreign: "🇸🇨"), 214 | Word(native: "Sudan", foreign: "🇸🇩"), 215 | Word(native: "Sweden", foreign: "🇸🇪"), 216 | Word(native: "Singapore", foreign: "🇸🇬"), 217 | Word(native: "St. Helena", foreign: "🇸🇭"), 218 | Word(native: "Slovenia", foreign: "🇸🇮"), 219 | Word(native: "Svalbard & Jan Mayen", foreign: "🇸🇯"), 220 | Word(native: "Slovakia", foreign: "🇸🇰"), 221 | Word(native: "Sierra Leone", foreign: "🇸🇱"), 222 | Word(native: "San Marino", foreign: "🇸🇲"), 223 | Word(native: "Senegal", foreign: "🇸🇳"), 224 | Word(native: "Somalia", foreign: "🇸🇴"), 225 | Word(native: "Suriname", foreign: "🇸🇷"), 226 | Word(native: "South Sudan", foreign: "🇸🇸"), 227 | Word(native: "São Tomé & Príncipe", foreign: "🇸🇹"), 228 | Word(native: "El Salvador", foreign: "🇸🇻"), 229 | Word(native: "Sint Maarten", foreign: "🇸🇽"), 230 | Word(native: "Syria", foreign: "🇸🇾"), 231 | Word(native: "Eswatini", foreign: "🇸🇿"), 232 | Word(native: "Tristan da Cunha", foreign: "🇹🇦"), 233 | Word(native: "Turks & Caicos Islands", foreign: "🇹🇨"), 234 | Word(native: "Chad", foreign: "🇹🇩"), 235 | Word(native: "French Southern Territories", foreign: "🇹🇫"), 236 | Word(native: "Togo", foreign: "🇹🇬"), 237 | Word(native: "Thailand", foreign: "🇹🇭"), 238 | Word(native: "Tajikistan", foreign: "🇹🇯"), 239 | Word(native: "Tokelau", foreign: "🇹🇰"), 240 | Word(native: "Timor-Leste", foreign: "🇹🇱"), 241 | Word(native: "Turkmenistan", foreign: "🇹🇲"), 242 | Word(native: "Tunisia", foreign: "🇹🇳"), 243 | Word(native: "Tonga", foreign: "🇹🇴"), 244 | Word(native: "Turkey", foreign: "🇹🇷"), 245 | Word(native: "Trinidad & Tobago", foreign: "🇹🇹"), 246 | Word(native: "Tuvalu", foreign: "🇹🇻"), 247 | Word(native: "Taiwan", foreign: "🇹🇼"), 248 | Word(native: "Tanzania", foreign: "🇹🇿"), 249 | Word(native: "Ukraine", foreign: "🇺🇦"), 250 | Word(native: "Uganda", foreign: "🇺🇬"), 251 | Word(native: "U.S. Outlying Islands", foreign: "🇺🇲"), 252 | Word(native: "United Nations", foreign: "🇺🇳"), 253 | Word(native: "United States", foreign: "🇺🇸"), 254 | Word(native: "Uruguay", foreign: "🇺🇾"), 255 | Word(native: "Uzbekistan", foreign: "🇺🇿"), 256 | Word(native: "Vatican City", foreign: "🇻🇦"), 257 | Word(native: "St. Vincent & Grenadines", foreign: "🇻🇨"), 258 | Word(native: "Venezuela", foreign: "🇻🇪"), 259 | Word(native: "British Virgin Islands", foreign: "🇻🇬"), 260 | Word(native: "U.S. Virgin Islands", foreign: "🇻🇮"), 261 | Word(native: "Vietnam", foreign: "🇻🇳"), 262 | Word(native: "Vanuatu", foreign: "🇻🇺"), 263 | Word(native: "Wallis & Futuna", foreign: "🇼🇫"), 264 | Word(native: "Samoa", foreign: "🇼🇸"), 265 | Word(native: "Kosovo", foreign: "🇽🇰"), 266 | Word(native: "Yemen", foreign: "🇾🇪"), 267 | Word(native: "Mayotte", foreign: "🇾🇹"), 268 | Word(native: "South Africa", foreign: "🇿🇦"), 269 | Word(native: "Zambia", foreign: "🇿🇲"), 270 | Word(native: "Zimbabwe", foreign: "🇿🇼"), 271 | Word(native: "England", foreign: "🏴󠁧󠁢󠁥󠁮󠁧󠁿"), 272 | Word(native: "Scotland", foreign: "🏴󠁧󠁢󠁳󠁣󠁴󠁿"), 273 | Word(native: "Wales", foreign: "🏴󠁧󠁢󠁷󠁬󠁳󠁿") 274 | ] 275 | 276 | func getRandom() -> Word { 277 | let number = Int.random(in: 0.. [Word] { 282 | return words 283 | } 284 | 285 | func getFlag() -> String { 286 | return "" 287 | } 288 | } 289 | -------------------------------------------------------------------------------- /DailyWord/Languages/NoLang.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NoLang.swift 3 | // DailyItalianWord 4 | // 5 | // Created by Josh Spicer on 10/19/20. 6 | // 7 | 8 | import Foundation 9 | 10 | class NoLang : LanguageBase { 11 | 12 | let words: [Word] = [Word(native: "Err", foreign: "Err")] 13 | 14 | func getRandom() -> Word { 15 | let number = Int.random(in: 0.. [Word] { 20 | return words 21 | } 22 | 23 | func getFlag() -> String { 24 | return "⚠️" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /DailyWord/Languages/Pair.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Pair.swift 3 | // DailyItalianWord 4 | // 5 | // Created by Josh Spicer on 10/19/20. 6 | // 7 | 8 | import Foundation 9 | -------------------------------------------------------------------------------- /DailyWord/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /DailyWord/SupportedLanguages.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SupportedLanguages.swift 3 | // DailyItalianWord 4 | // 5 | // Created by Josh Spicer on 10/19/20. 6 | // 7 | 8 | import Foundation 9 | 10 | enum SupportedLanguages: String, Equatable, CaseIterable, Identifiable { 11 | var id: SupportedLanguages { self } 12 | 13 | case Italian 14 | case French 15 | case Japanese 16 | case Morse 17 | case NationalFlags 18 | case CountryCodes 19 | } 20 | -------------------------------------------------------------------------------- /DailyWord/Word.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Word.swift 3 | // DailyItalianWord 4 | // 5 | // Created by Joshua Spicer on 10/10/20. 6 | // 7 | 8 | import Foundation 9 | 10 | struct Word: Identifiable, Codable { 11 | let native: String // English (for now) 12 | let foreign: String // Italian (etc..) 13 | 14 | var id: String { native } 15 | } 16 | -------------------------------------------------------------------------------- /DailyWord/WordView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WordView.swift 3 | // DailyItalianWord 4 | // 5 | // Created by Joshua Spicer on 10/10/20. 6 | // 7 | 8 | import Foundation 9 | import SwiftUI 10 | 11 | struct WordView: View { 12 | 13 | let word: Word 14 | var body: some View { 15 | 16 | 17 | } 18 | } 19 | 20 | struct WordView_Previews: PreviewProvider { 21 | static var previews: some View { 22 | WordView(word: Word(native: "English", foreign: "Italian")) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # widgetkit-daily-language 2 | 3 | > Download for iOS/iPad OS/MacOS here: https://apps.apple.com/us/app/daily-word-language-widget/id1535573526 4 | 5 | This simple SwiftUI project utilizes iOS 14's WidgetKit to display a simple, at-a-glance widget with a randomly selected `{{Foreign Word}} <-> {{Native Word}}` pair. 6 | 7 | Learn a new language with a new word a day from a language you'd like to learn. 8 | 9 | Current Languages include: 10 | * `Italian <-> English` 11 | * `French <-> English` 12 | * `Japanese <-> English` 13 | 14 | As well as some 'non-language' language sets: 15 | * `Morse Code <-> English` 16 | * `National Flag <-> Country Name` 17 | 18 | ...with wordlists [extracted](https://github.com/joshspicer/widgetkit-daily-italian/blob/main/extract.py) using a quick BeautifulSoup script from 1000mostcommonwords.com . 19 | 20 | 21 | 22 | 23 | ## Add a language 24 | 25 | Wordlists are embedded into the widget and can be added easily. 26 | 27 | 1. Add a unique enum for your newly [Supported Language](https://github.com/joshspicer/widgetkit-daily-italian/blob/main/DailyItalianWord/SupportedLanguages.swift). 28 | 2. Create a new `.swift` file to [/Lanaguages](https://github.com/joshspicer/widgetkit-daily-italian/tree/main/DailyItalianWord/Languages) that conforms to the `LanguageBase` protocol. 29 | 30 | ### Example {{language}}.swift 31 | 32 | ```swift 33 | class {{language}} : LanguageBase { 34 | 35 | var words: [Word] = [ 36 | Word(native: "war", foreign: "guerra"), 37 | Word(native: "thing", foreign: "cosa"), 38 | Word(native: "street", foreign: "strada") 39 | ... 40 | ... 41 | ] 42 | 43 | func getAll() -> [Word] { 44 | return words 45 | } 46 | 47 | func getRandom() -> Word { 48 | let number = Int.random(in: 0.. String { 53 | return "🇮🇹" 54 | } 55 | } 56 | ``` 57 | 58 | 3. Add your new class here in the [LanguageFactory.swift](https://github.com/joshspicer/widgetkit-daily-italian/blob/main/DailyItalianWord/Languages/LanguageFactory.swift). 59 | 60 | Your language will be available in the picker! 61 | -------------------------------------------------------------------------------- /combine.phonenumbers.py: -------------------------------------------------------------------------------- 1 | raw = """Afghanistan +93 2 | Albania +355 3 | Algeria +213 4 | American Samoa +1-684 5 | Andorra +376 6 | Angola +244 7 | Anguilla +1-264 8 | Antarctica +672 9 | Antigua +1-268 10 | Argentina +54 11 | Armenia +374 12 | Aruba +297 13 | Ascension +247 14 | Australia +61 15 | Australian External Territories +672 16 | Austria +43 17 | Azerbaijan +994 18 | Bahamas +1-242 19 | Bahrain +973 20 | Bangladesh +880 21 | Barbados +1-246 22 | Barbuda +1-268 23 | Belarus +375 24 | Belgium +32 25 | Belize +501 26 | Benin +229 27 | Bermuda +1-441 28 | Bhutan +975 29 | Bolivia +591 30 | Bosnia & Herzegovina +387 31 | Botswana +267 32 | Brazil +55 33 | British Virgin Islands +1-284 34 | Brunei Darussalam +673 35 | Bulgaria +359 36 | Burkina Faso +226 37 | Burundi +257 38 | Cambodia +855 39 | Cameroon +237 40 | Canada +1 41 | Cape Verde Islands +238 42 | Cayman Islands +1-345 43 | Central African Republic +236 44 | Chad +235 45 | Chatham Island (New Zealand) +64 46 | Chile +56 47 | China (PRC) +86 48 | Christmas Island +61-8 49 | Cocos-Keeling Islands +61 50 | Colombia +57 51 | Comoros +269 52 | Congo +242 53 | Congo, Dem. Rep. of (former Zaire) +243 54 | Cook Islands +682 55 | Costa Rica +506 56 | Côte d'Ivoire (Ivory Coast) +225 57 | Croatia +385 58 | Cuba +53 59 | Cuba (Guantanamo Bay) +5399 60 | Curaçao +599 61 | Cyprus +357 62 | Czech Republic +420 63 | Denmark +45 64 | Diego Garcia +246 65 | Djibouti +253 66 | Dominica +1-767 67 | Dominican Republic +1-809 and +1-829 68 | East Timor +670 69 | Easter Island +56 70 | Ecuador +593 71 | Egypt +20 72 | El Salvador +503 73 | Ellipso (Mobile Satellite service) +8812 and +8813 74 | EMSAT (Mobile Satellite service) +88213 75 | Equatorial Guinea +240 76 | Eritrea +291 77 | Estonia +372 78 | Ethiopia +251 79 | Falkland Islands (Malvinas) +500 80 | Faroe Islands +298 81 | Fiji Islands +679 82 | Finland +358 83 | France +33 84 | French Antilles +596 85 | French Guiana +594 86 | French Polynesia +689 87 | Gabonese Republic +241 88 | Gambia +220 89 | Georgia +995 90 | Germany +49 91 | Ghana +233 92 | Gibraltar +350 93 | Global Mobile Satellite System (GMSS) +881 94 | ICO Global +8810 and +8811 95 | Ellipso 8812 +8813 96 | Iridium 8816 +8817 97 | Globalstar +8818 and +8819 98 | Globalstar (Mobile Satellite Service) +8818 and +8819 99 | Greece +30 100 | Greenland +299 101 | Grenada +1-473 102 | Guadeloupe +590 103 | Guam +1-671 104 | Guantanamo Bay +5399 105 | Guatemala +502 106 | Guinea-Bissau +245 107 | Guinea +224 108 | Guyana +592 109 | Haiti +509 110 | Honduras +504 111 | Hong Kong +852 112 | Hungary +36 113 | ICO Global (Mobile Satellite Service) +8810 and +8811 114 | Iceland +354 115 | India +91 116 | Indonesia +62 117 | Inmarsat (Atlantic Ocean - East) +871 118 | Inmarsat (Atlantic Ocean - West) +874 119 | Inmarsat (Indian Ocean) +873 120 | Inmarsat (Pacific Ocean) +872 121 | Inmarsat SNAC +870 122 | International Freephone Service +800 123 | International Shared Cost Service (ISCS) +808 124 | Iran +98 125 | Iraq +964 126 | Ireland +353 127 | Iridium (Mobile Satellite service) +8816 and +8817 128 | Israel +972 129 | Italy +39 130 | Ivory Coast +225 131 | Jamaica +1-876 132 | Japan +81 133 | Jordan +962 134 | Kazakhstan +7 135 | Kenya +254 136 | Kiribati +686 137 | Korea (North) +850 138 | Korea (South) +82 139 | Kuwait +965 140 | Kyrgyz Republic +996 141 | Laos +856 142 | Latvia +371 143 | Lebanon +961 144 | Lesotho +266 145 | Liberia +231 146 | Libya +218 147 | Liechtenstein +423 148 | Lithuania +370 149 | Luxembourg +352 150 | Macao +853 151 | Macedonia (Former Yugoslav Rep of.) +389 152 | Madagascar +261 153 | Malawi +265 154 | Malaysia +60 155 | Maldives +960 156 | Mali Republic +223 157 | Malta +356 158 | Marshall Islands +692 159 | Martinique +596 160 | Mauritania +222 161 | Mauritius +230 162 | Mayotte Island +269 163 | Mexico +52 164 | Micronesia (Federal States of) +691 165 | Midway Island +1-808 166 | Moldova +373 167 | Monaco +377 168 | Mongolia +976 169 | Montenegro +382 170 | Montserrat +1-664 171 | Morocco +212 172 | Mozambique +258 173 | Myanmar +95 174 | Namibia +264 175 | Nauru +674 176 | Nepal +977 177 | Netherlands +31 178 | Netherlands Antilles +599 179 | Nevis +1-869 180 | New Caledonia +687 181 | New Zealand +64 182 | Nicaragua +505 183 | Niger +227 184 | Nigeria +234 185 | Niue +683 186 | Norfolk Island +672 187 | Northern Marianas Islands (Saipan, Rota & Tinian) +1-670 188 | Norway +47 189 | Oman +968 190 | Pakistan +92 191 | Palau +680 192 | Palestinian Settlements +970 193 | Panama +507 194 | Papua New Guinea +675 195 | Paraguay +595 196 | Peru +51 197 | Philippines +63 198 | Poland +48 199 | Portugal +351 200 | Puerto Rico +1-787 or +1-939 201 | Qatar +974 202 | Réunion Island +262 203 | Romania +40 204 | Russia +7 205 | Rwandese Republic +250 206 | St. Helena +290 207 | St. Kitts/Nevis +1-869 208 | St. Lucia +1-758 209 | St. Pierre & Miquelon +508 210 | St. Vincent & Grenadines +1-784 211 | Samoa +685 212 | San Marino +378 213 | São Tomé and Principe +239 214 | Saudi Arabia +966 215 | Senegal +221 216 | Serbia +381 217 | Seychelles Republic +248 218 | Sierra Leone +232 219 | Singapore +65 220 | Slovak Republic +421 221 | Slovenia +386 222 | Solomon Islands +677 223 | Somali Democratic Republic +252 224 | South Africa +27 225 | Spain +34 226 | Sri Lanka +94 227 | Sudan +249 228 | Suriname +597 229 | Swaziland +268 230 | Sweden +46 231 | Switzerland +41 232 | Syria +963 233 | Taiwan +886 234 | Tajikistan +992 235 | Tanzania +255 236 | Thailand +66 237 | Thuraya (Mobile Satellite service) +88216 238 | Timor Leste +670 239 | Togolese Republic +228 240 | Tokelau +690 241 | Tonga Islands +676 242 | Trinidad & Tobago +1-868 243 | Tunisia +216 244 | Turkey +90 245 | Turkmenistan +993 246 | Turks and Caicos Islands +1-649 247 | Tuvalu +688 248 | Uganda +256 249 | Ukraine +380 250 | United Arab Emirates +971 251 | United Kingdom +44 252 | United States of America +1 253 | US Virgin Islands +1-340 254 | Universal Personal Telecommunications (UPT) +878 255 | Uruguay +598 256 | Uzbekistan +998 257 | Vanuatu +678 258 | Vatican City +39 and +379 259 | Venezuela +58 260 | Vietnam +84 261 | Wake Island +808 262 | Wallis and Futuna Islands +681 263 | Yemen +967 264 | Zambia +260 265 | Zanzibar +255 266 | Zimbabwe +263""" 267 | 268 | for line in raw.splitlines(): 269 | split = line.split('+') 270 | 271 | country = split[0].strip() 272 | 273 | code = split[1] 274 | if 'and' in code: 275 | pieces = code.split('and') 276 | code = f'{pieces[0].strip()}/{pieces[1].strip()}' 277 | 278 | print(f"Word(native: \"{country}\", foreign: \"+{code}\"),") 279 | 280 | 281 | -------------------------------------------------------------------------------- /combine.swift.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | f = open('words.txt') 4 | o = open('output.txt', "w") 5 | while True: 6 | line1 = f.readline().replace('\n','') 7 | line2 = f.readline().replace('\n','') 8 | if not line2: break # EOF 9 | o.write("Word(native: \"{}\", foreign: \"{}\"),\n".format(line2, line1)) 10 | -------------------------------------------------------------------------------- /combine.typescript.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import json 4 | 5 | f = open('words.txt') 6 | d = [] 7 | o = open('output.txt', "w") 8 | while True: 9 | line1 = f.readline().replace('\n','') 10 | line2 = f.readline().replace('\n','') 11 | if not line2: break # EOF 12 | d.append({"english": line2, "italian": line1}) 13 | 14 | o.write(json.dumps(d)) 15 | 16 | -------------------------------------------------------------------------------- /extract.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from bs4 import BeautifulSoup 4 | import requests 5 | 6 | r = requests.get("https://1000mostcommonwords.com/1000-most-common-japanese-words/") 7 | soup = BeautifulSoup(r.text, 'html.parser') 8 | 9 | trs = soup.find_all('tr') 10 | 11 | f = open("words.txt", "w") 12 | 13 | for tr in trs: 14 | tds = tr.find_all('td') 15 | native = tds[2].get_text() 16 | foreign = tds[1].get_text() 17 | 18 | f.write("{}\n".format(foreign)) 19 | f.write("{}\n".format(native)) 20 | -------------------------------------------------------------------------------- /flags/flags.json: -------------------------------------------------------------------------------- 1 | [{"name":"Ascension Island","code":"AC","emoji":"🇦🇨","unicode":"U+1F1E6 U+1F1E8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AC.svg"},{"name":"Andorra","code":"AD","emoji":"🇦🇩","unicode":"U+1F1E6 U+1F1E9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AD.svg"},{"name":"United Arab Emirates","code":"AE","emoji":"🇦🇪","unicode":"U+1F1E6 U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AE.svg"},{"name":"Afghanistan","code":"AF","emoji":"🇦🇫","unicode":"U+1F1E6 U+1F1EB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AF.svg"},{"name":"Antigua & Barbuda","code":"AG","emoji":"🇦🇬","unicode":"U+1F1E6 U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AG.svg"},{"name":"Anguilla","code":"AI","emoji":"🇦🇮","unicode":"U+1F1E6 U+1F1EE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AI.svg"},{"name":"Albania","code":"AL","emoji":"🇦🇱","unicode":"U+1F1E6 U+1F1F1","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AL.svg"},{"name":"Armenia","code":"AM","emoji":"🇦🇲","unicode":"U+1F1E6 U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AM.svg"},{"name":"Angola","code":"AO","emoji":"🇦🇴","unicode":"U+1F1E6 U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AO.svg"},{"name":"Antarctica","code":"AQ","emoji":"🇦🇶","unicode":"U+1F1E6 U+1F1F6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AQ.svg"},{"name":"Argentina","code":"AR","emoji":"🇦🇷","unicode":"U+1F1E6 U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AR.svg"},{"name":"American Samoa","code":"AS","emoji":"🇦🇸","unicode":"U+1F1E6 U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AS.svg"},{"name":"Austria","code":"AT","emoji":"🇦🇹","unicode":"U+1F1E6 U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AT.svg"},{"name":"Australia","code":"AU","emoji":"🇦🇺","unicode":"U+1F1E6 U+1F1FA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AU.svg"},{"name":"Aruba","code":"AW","emoji":"🇦🇼","unicode":"U+1F1E6 U+1F1FC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AW.svg"},{"name":"Åland Islands","code":"AX","emoji":"🇦🇽","unicode":"U+1F1E6 U+1F1FD","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AX.svg"},{"name":"Azerbaijan","code":"AZ","emoji":"🇦🇿","unicode":"U+1F1E6 U+1F1FF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/AZ.svg"},{"name":"Bosnia & Herzegovina","code":"BA","emoji":"🇧🇦","unicode":"U+1F1E7 U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BA.svg"},{"name":"Barbados","code":"BB","emoji":"🇧🇧","unicode":"U+1F1E7 U+1F1E7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BB.svg"},{"name":"Bangladesh","code":"BD","emoji":"🇧🇩","unicode":"U+1F1E7 U+1F1E9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BD.svg"},{"name":"Belgium","code":"BE","emoji":"🇧🇪","unicode":"U+1F1E7 U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BE.svg"},{"name":"Burkina Faso","code":"BF","emoji":"🇧🇫","unicode":"U+1F1E7 U+1F1EB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BF.svg"},{"name":"Bulgaria","code":"BG","emoji":"🇧🇬","unicode":"U+1F1E7 U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BG.svg"},{"name":"Bahrain","code":"BH","emoji":"🇧🇭","unicode":"U+1F1E7 U+1F1ED","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BH.svg"},{"name":"Burundi","code":"BI","emoji":"🇧🇮","unicode":"U+1F1E7 U+1F1EE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BI.svg"},{"name":"Benin","code":"BJ","emoji":"🇧🇯","unicode":"U+1F1E7 U+1F1EF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BJ.svg"},{"name":"St. Barthélemy","code":"BL","emoji":"🇧🇱","unicode":"U+1F1E7 U+1F1F1","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BL.svg"},{"name":"Bermuda","code":"BM","emoji":"🇧🇲","unicode":"U+1F1E7 U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BM.svg"},{"name":"Brunei","code":"BN","emoji":"🇧🇳","unicode":"U+1F1E7 U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BN.svg"},{"name":"Bolivia","code":"BO","emoji":"🇧🇴","unicode":"U+1F1E7 U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BO.svg"},{"name":"Caribbean Netherlands","code":"BQ","emoji":"🇧🇶","unicode":"U+1F1E7 U+1F1F6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BQ.svg"},{"name":"Brazil","code":"BR","emoji":"🇧🇷","unicode":"U+1F1E7 U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BR.svg"},{"name":"Bahamas","code":"BS","emoji":"🇧🇸","unicode":"U+1F1E7 U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BS.svg"},{"name":"Bhutan","code":"BT","emoji":"🇧🇹","unicode":"U+1F1E7 U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BT.svg"},{"name":"Bouvet Island","code":"BV","emoji":"🇧🇻","unicode":"U+1F1E7 U+1F1FB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BV.svg"},{"name":"Botswana","code":"BW","emoji":"🇧🇼","unicode":"U+1F1E7 U+1F1FC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BW.svg"},{"name":"Belarus","code":"BY","emoji":"🇧🇾","unicode":"U+1F1E7 U+1F1FE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BY.svg"},{"name":"Belize","code":"BZ","emoji":"🇧🇿","unicode":"U+1F1E7 U+1F1FF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/BZ.svg"},{"name":"Canada","code":"CA","emoji":"🇨🇦","unicode":"U+1F1E8 U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CA.svg"},{"name":"Cocos (Keeling) Islands","code":"CC","emoji":"🇨🇨","unicode":"U+1F1E8 U+1F1E8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CC.svg"},{"name":"Congo - Kinshasa","code":"CD","emoji":"🇨🇩","unicode":"U+1F1E8 U+1F1E9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CD.svg"},{"name":"Central African Republic","code":"CF","emoji":"🇨🇫","unicode":"U+1F1E8 U+1F1EB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CF.svg"},{"name":"Congo - Brazzaville","code":"CG","emoji":"🇨🇬","unicode":"U+1F1E8 U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CG.svg"},{"name":"Switzerland","code":"CH","emoji":"🇨🇭","unicode":"U+1F1E8 U+1F1ED","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CH.svg"},{"name":"Côte d’Ivoire","code":"CI","emoji":"🇨🇮","unicode":"U+1F1E8 U+1F1EE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CI.svg"},{"name":"Cook Islands","code":"CK","emoji":"🇨🇰","unicode":"U+1F1E8 U+1F1F0","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CK.svg"},{"name":"Chile","code":"CL","emoji":"🇨🇱","unicode":"U+1F1E8 U+1F1F1","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CL.svg"},{"name":"Cameroon","code":"CM","emoji":"🇨🇲","unicode":"U+1F1E8 U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CM.svg"},{"name":"China","code":"CN","emoji":"🇨🇳","unicode":"U+1F1E8 U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CN.svg"},{"name":"Colombia","code":"CO","emoji":"🇨🇴","unicode":"U+1F1E8 U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CO.svg"},{"name":"Clipperton Island","code":"CP","emoji":"🇨🇵","unicode":"U+1F1E8 U+1F1F5","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CP.svg"},{"name":"Costa Rica","code":"CR","emoji":"🇨🇷","unicode":"U+1F1E8 U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CR.svg"},{"name":"Cuba","code":"CU","emoji":"🇨🇺","unicode":"U+1F1E8 U+1F1FA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CU.svg"},{"name":"Cape Verde","code":"CV","emoji":"🇨🇻","unicode":"U+1F1E8 U+1F1FB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CV.svg"},{"name":"Curaçao","code":"CW","emoji":"🇨🇼","unicode":"U+1F1E8 U+1F1FC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CW.svg"},{"name":"Christmas Island","code":"CX","emoji":"🇨🇽","unicode":"U+1F1E8 U+1F1FD","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CX.svg"},{"name":"Cyprus","code":"CY","emoji":"🇨🇾","unicode":"U+1F1E8 U+1F1FE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CY.svg"},{"name":"Czechia","code":"CZ","emoji":"🇨🇿","unicode":"U+1F1E8 U+1F1FF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/CZ.svg"},{"name":"Germany","code":"DE","emoji":"🇩🇪","unicode":"U+1F1E9 U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/DE.svg"},{"name":"Diego Garcia","code":"DG","emoji":"🇩🇬","unicode":"U+1F1E9 U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/DG.svg"},{"name":"Djibouti","code":"DJ","emoji":"🇩🇯","unicode":"U+1F1E9 U+1F1EF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/DJ.svg"},{"name":"Denmark","code":"DK","emoji":"🇩🇰","unicode":"U+1F1E9 U+1F1F0","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/DK.svg"},{"name":"Dominica","code":"DM","emoji":"🇩🇲","unicode":"U+1F1E9 U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/DM.svg"},{"name":"Dominican Republic","code":"DO","emoji":"🇩🇴","unicode":"U+1F1E9 U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/DO.svg"},{"name":"Algeria","code":"DZ","emoji":"🇩🇿","unicode":"U+1F1E9 U+1F1FF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/DZ.svg"},{"name":"Ceuta & Melilla","code":"EA","emoji":"🇪🇦","unicode":"U+1F1EA U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/EA.svg"},{"name":"Ecuador","code":"EC","emoji":"🇪🇨","unicode":"U+1F1EA U+1F1E8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/EC.svg"},{"name":"Estonia","code":"EE","emoji":"🇪🇪","unicode":"U+1F1EA U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/EE.svg"},{"name":"Egypt","code":"EG","emoji":"🇪🇬","unicode":"U+1F1EA U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/EG.svg"},{"name":"Western Sahara","code":"EH","emoji":"🇪🇭","unicode":"U+1F1EA U+1F1ED","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/EH.svg"},{"name":"Eritrea","code":"ER","emoji":"🇪🇷","unicode":"U+1F1EA U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/ER.svg"},{"name":"Spain","code":"ES","emoji":"🇪🇸","unicode":"U+1F1EA U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/ES.svg"},{"name":"Ethiopia","code":"ET","emoji":"🇪🇹","unicode":"U+1F1EA U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/ET.svg"},{"name":"European Union","code":"EU","emoji":"🇪🇺","unicode":"U+1F1EA U+1F1FA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/EU.svg"},{"name":"Finland","code":"FI","emoji":"🇫🇮","unicode":"U+1F1EB U+1F1EE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/FI.svg"},{"name":"Fiji","code":"FJ","emoji":"🇫🇯","unicode":"U+1F1EB U+1F1EF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/FJ.svg"},{"name":"Falkland Islands","code":"FK","emoji":"🇫🇰","unicode":"U+1F1EB U+1F1F0","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/FK.svg"},{"name":"Micronesia","code":"FM","emoji":"🇫🇲","unicode":"U+1F1EB U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/FM.svg"},{"name":"Faroe Islands","code":"FO","emoji":"🇫🇴","unicode":"U+1F1EB U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/FO.svg"},{"name":"France","code":"FR","emoji":"🇫🇷","unicode":"U+1F1EB U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/FR.svg"},{"name":"Gabon","code":"GA","emoji":"🇬🇦","unicode":"U+1F1EC U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GA.svg"},{"name":"United Kingdom","code":"GB","emoji":"🇬🇧","unicode":"U+1F1EC U+1F1E7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GB.svg"},{"name":"Grenada","code":"GD","emoji":"🇬🇩","unicode":"U+1F1EC U+1F1E9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GD.svg"},{"name":"Georgia","code":"GE","emoji":"🇬🇪","unicode":"U+1F1EC U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GE.svg"},{"name":"French Guiana","code":"GF","emoji":"🇬🇫","unicode":"U+1F1EC U+1F1EB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GF.svg"},{"name":"Guernsey","code":"GG","emoji":"🇬🇬","unicode":"U+1F1EC U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GG.svg"},{"name":"Ghana","code":"GH","emoji":"🇬🇭","unicode":"U+1F1EC U+1F1ED","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GH.svg"},{"name":"Gibraltar","code":"GI","emoji":"🇬🇮","unicode":"U+1F1EC U+1F1EE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GI.svg"},{"name":"Greenland","code":"GL","emoji":"🇬🇱","unicode":"U+1F1EC U+1F1F1","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GL.svg"},{"name":"Gambia","code":"GM","emoji":"🇬🇲","unicode":"U+1F1EC U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GM.svg"},{"name":"Guinea","code":"GN","emoji":"🇬🇳","unicode":"U+1F1EC U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GN.svg"},{"name":"Guadeloupe","code":"GP","emoji":"🇬🇵","unicode":"U+1F1EC U+1F1F5","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GP.svg"},{"name":"Equatorial Guinea","code":"GQ","emoji":"🇬🇶","unicode":"U+1F1EC U+1F1F6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GQ.svg"},{"name":"Greece","code":"GR","emoji":"🇬🇷","unicode":"U+1F1EC U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GR.svg"},{"name":"South Georgia & South Sandwich Islands","code":"GS","emoji":"🇬🇸","unicode":"U+1F1EC U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GS.svg"},{"name":"Guatemala","code":"GT","emoji":"🇬🇹","unicode":"U+1F1EC U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GT.svg"},{"name":"Guam","code":"GU","emoji":"🇬🇺","unicode":"U+1F1EC U+1F1FA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GU.svg"},{"name":"Guinea-Bissau","code":"GW","emoji":"🇬🇼","unicode":"U+1F1EC U+1F1FC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GW.svg"},{"name":"Guyana","code":"GY","emoji":"🇬🇾","unicode":"U+1F1EC U+1F1FE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/GY.svg"},{"name":"Hong Kong SAR China","code":"HK","emoji":"🇭🇰","unicode":"U+1F1ED U+1F1F0","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/HK.svg"},{"name":"Heard & McDonald Islands","code":"HM","emoji":"🇭🇲","unicode":"U+1F1ED U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/HM.svg"},{"name":"Honduras","code":"HN","emoji":"🇭🇳","unicode":"U+1F1ED U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/HN.svg"},{"name":"Croatia","code":"HR","emoji":"🇭🇷","unicode":"U+1F1ED U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/HR.svg"},{"name":"Haiti","code":"HT","emoji":"🇭🇹","unicode":"U+1F1ED U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/HT.svg"},{"name":"Hungary","code":"HU","emoji":"🇭🇺","unicode":"U+1F1ED U+1F1FA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/HU.svg"},{"name":"Canary Islands","code":"IC","emoji":"🇮🇨","unicode":"U+1F1EE U+1F1E8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/IC.svg"},{"name":"Indonesia","code":"ID","emoji":"🇮🇩","unicode":"U+1F1EE U+1F1E9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/ID.svg"},{"name":"Ireland","code":"IE","emoji":"🇮🇪","unicode":"U+1F1EE U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/IE.svg"},{"name":"Israel","code":"IL","emoji":"🇮🇱","unicode":"U+1F1EE U+1F1F1","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/IL.svg"},{"name":"Isle of Man","code":"IM","emoji":"🇮🇲","unicode":"U+1F1EE U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/IM.svg"},{"name":"India","code":"IN","emoji":"🇮🇳","unicode":"U+1F1EE U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/IN.svg"},{"name":"British Indian Ocean Territory","code":"IO","emoji":"🇮🇴","unicode":"U+1F1EE U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/IO.svg"},{"name":"Iraq","code":"IQ","emoji":"🇮🇶","unicode":"U+1F1EE U+1F1F6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/IQ.svg"},{"name":"Iran","code":"IR","emoji":"🇮🇷","unicode":"U+1F1EE U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/IR.svg"},{"name":"Iceland","code":"IS","emoji":"🇮🇸","unicode":"U+1F1EE U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/IS.svg"},{"name":"Italy","code":"IT","emoji":"🇮🇹","unicode":"U+1F1EE U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/IT.svg"},{"name":"Jersey","code":"JE","emoji":"🇯🇪","unicode":"U+1F1EF U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/JE.svg"},{"name":"Jamaica","code":"JM","emoji":"🇯🇲","unicode":"U+1F1EF U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/JM.svg"},{"name":"Jordan","code":"JO","emoji":"🇯🇴","unicode":"U+1F1EF U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/JO.svg"},{"name":"Japan","code":"JP","emoji":"🇯🇵","unicode":"U+1F1EF U+1F1F5","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/JP.svg"},{"name":"Kenya","code":"KE","emoji":"🇰🇪","unicode":"U+1F1F0 U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/KE.svg"},{"name":"Kyrgyzstan","code":"KG","emoji":"🇰🇬","unicode":"U+1F1F0 U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/KG.svg"},{"name":"Cambodia","code":"KH","emoji":"🇰🇭","unicode":"U+1F1F0 U+1F1ED","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/KH.svg"},{"name":"Kiribati","code":"KI","emoji":"🇰🇮","unicode":"U+1F1F0 U+1F1EE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/KI.svg"},{"name":"Comoros","code":"KM","emoji":"🇰🇲","unicode":"U+1F1F0 U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/KM.svg"},{"name":"St. Kitts & Nevis","code":"KN","emoji":"🇰🇳","unicode":"U+1F1F0 U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/KN.svg"},{"name":"North Korea","code":"KP","emoji":"🇰🇵","unicode":"U+1F1F0 U+1F1F5","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/KP.svg"},{"name":"South Korea","code":"KR","emoji":"🇰🇷","unicode":"U+1F1F0 U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/KR.svg"},{"name":"Kuwait","code":"KW","emoji":"🇰🇼","unicode":"U+1F1F0 U+1F1FC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/KW.svg"},{"name":"Cayman Islands","code":"KY","emoji":"🇰🇾","unicode":"U+1F1F0 U+1F1FE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/KY.svg"},{"name":"Kazakhstan","code":"KZ","emoji":"🇰🇿","unicode":"U+1F1F0 U+1F1FF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/KZ.svg"},{"name":"Laos","code":"LA","emoji":"🇱🇦","unicode":"U+1F1F1 U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/LA.svg"},{"name":"Lebanon","code":"LB","emoji":"🇱🇧","unicode":"U+1F1F1 U+1F1E7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/LB.svg"},{"name":"St. Lucia","code":"LC","emoji":"🇱🇨","unicode":"U+1F1F1 U+1F1E8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/LC.svg"},{"name":"Liechtenstein","code":"LI","emoji":"🇱🇮","unicode":"U+1F1F1 U+1F1EE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/LI.svg"},{"name":"Sri Lanka","code":"LK","emoji":"🇱🇰","unicode":"U+1F1F1 U+1F1F0","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/LK.svg"},{"name":"Liberia","code":"LR","emoji":"🇱🇷","unicode":"U+1F1F1 U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/LR.svg"},{"name":"Lesotho","code":"LS","emoji":"🇱🇸","unicode":"U+1F1F1 U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/LS.svg"},{"name":"Lithuania","code":"LT","emoji":"🇱🇹","unicode":"U+1F1F1 U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/LT.svg"},{"name":"Luxembourg","code":"LU","emoji":"🇱🇺","unicode":"U+1F1F1 U+1F1FA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/LU.svg"},{"name":"Latvia","code":"LV","emoji":"🇱🇻","unicode":"U+1F1F1 U+1F1FB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/LV.svg"},{"name":"Libya","code":"LY","emoji":"🇱🇾","unicode":"U+1F1F1 U+1F1FE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/LY.svg"},{"name":"Morocco","code":"MA","emoji":"🇲🇦","unicode":"U+1F1F2 U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MA.svg"},{"name":"Monaco","code":"MC","emoji":"🇲🇨","unicode":"U+1F1F2 U+1F1E8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MC.svg"},{"name":"Moldova","code":"MD","emoji":"🇲🇩","unicode":"U+1F1F2 U+1F1E9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MD.svg"},{"name":"Montenegro","code":"ME","emoji":"🇲🇪","unicode":"U+1F1F2 U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/ME.svg"},{"name":"St. Martin","code":"MF","emoji":"🇲🇫","unicode":"U+1F1F2 U+1F1EB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MF.svg"},{"name":"Madagascar","code":"MG","emoji":"🇲🇬","unicode":"U+1F1F2 U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MG.svg"},{"name":"Marshall Islands","code":"MH","emoji":"🇲🇭","unicode":"U+1F1F2 U+1F1ED","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MH.svg"},{"name":"North Macedonia","code":"MK","emoji":"🇲🇰","unicode":"U+1F1F2 U+1F1F0","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MK.svg"},{"name":"Mali","code":"ML","emoji":"🇲🇱","unicode":"U+1F1F2 U+1F1F1","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/ML.svg"},{"name":"Myanmar (Burma)","code":"MM","emoji":"🇲🇲","unicode":"U+1F1F2 U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MM.svg"},{"name":"Mongolia","code":"MN","emoji":"🇲🇳","unicode":"U+1F1F2 U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MN.svg"},{"name":"Macao SAR China","code":"MO","emoji":"🇲🇴","unicode":"U+1F1F2 U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MO.svg"},{"name":"Northern Mariana Islands","code":"MP","emoji":"🇲🇵","unicode":"U+1F1F2 U+1F1F5","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MP.svg"},{"name":"Martinique","code":"MQ","emoji":"🇲🇶","unicode":"U+1F1F2 U+1F1F6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MQ.svg"},{"name":"Mauritania","code":"MR","emoji":"🇲🇷","unicode":"U+1F1F2 U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MR.svg"},{"name":"Montserrat","code":"MS","emoji":"🇲🇸","unicode":"U+1F1F2 U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MS.svg"},{"name":"Malta","code":"MT","emoji":"🇲🇹","unicode":"U+1F1F2 U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MT.svg"},{"name":"Mauritius","code":"MU","emoji":"🇲🇺","unicode":"U+1F1F2 U+1F1FA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MU.svg"},{"name":"Maldives","code":"MV","emoji":"🇲🇻","unicode":"U+1F1F2 U+1F1FB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MV.svg"},{"name":"Malawi","code":"MW","emoji":"🇲🇼","unicode":"U+1F1F2 U+1F1FC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MW.svg"},{"name":"Mexico","code":"MX","emoji":"🇲🇽","unicode":"U+1F1F2 U+1F1FD","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MX.svg"},{"name":"Malaysia","code":"MY","emoji":"🇲🇾","unicode":"U+1F1F2 U+1F1FE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MY.svg"},{"name":"Mozambique","code":"MZ","emoji":"🇲🇿","unicode":"U+1F1F2 U+1F1FF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/MZ.svg"},{"name":"Namibia","code":"NA","emoji":"🇳🇦","unicode":"U+1F1F3 U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NA.svg"},{"name":"New Caledonia","code":"NC","emoji":"🇳🇨","unicode":"U+1F1F3 U+1F1E8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NC.svg"},{"name":"Niger","code":"NE","emoji":"🇳🇪","unicode":"U+1F1F3 U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NE.svg"},{"name":"Norfolk Island","code":"NF","emoji":"🇳🇫","unicode":"U+1F1F3 U+1F1EB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NF.svg"},{"name":"Nigeria","code":"NG","emoji":"🇳🇬","unicode":"U+1F1F3 U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NG.svg"},{"name":"Nicaragua","code":"NI","emoji":"🇳🇮","unicode":"U+1F1F3 U+1F1EE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NI.svg"},{"name":"Netherlands","code":"NL","emoji":"🇳🇱","unicode":"U+1F1F3 U+1F1F1","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NL.svg"},{"name":"Norway","code":"NO","emoji":"🇳🇴","unicode":"U+1F1F3 U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NO.svg"},{"name":"Nepal","code":"NP","emoji":"🇳🇵","unicode":"U+1F1F3 U+1F1F5","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NP.svg"},{"name":"Nauru","code":"NR","emoji":"🇳🇷","unicode":"U+1F1F3 U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NR.svg"},{"name":"Niue","code":"NU","emoji":"🇳🇺","unicode":"U+1F1F3 U+1F1FA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NU.svg"},{"name":"New Zealand","code":"NZ","emoji":"🇳🇿","unicode":"U+1F1F3 U+1F1FF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/NZ.svg"},{"name":"Oman","code":"OM","emoji":"🇴🇲","unicode":"U+1F1F4 U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/OM.svg"},{"name":"Panama","code":"PA","emoji":"🇵🇦","unicode":"U+1F1F5 U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PA.svg"},{"name":"Peru","code":"PE","emoji":"🇵🇪","unicode":"U+1F1F5 U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PE.svg"},{"name":"French Polynesia","code":"PF","emoji":"🇵🇫","unicode":"U+1F1F5 U+1F1EB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PF.svg"},{"name":"Papua New Guinea","code":"PG","emoji":"🇵🇬","unicode":"U+1F1F5 U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PG.svg"},{"name":"Philippines","code":"PH","emoji":"🇵🇭","unicode":"U+1F1F5 U+1F1ED","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PH.svg"},{"name":"Pakistan","code":"PK","emoji":"🇵🇰","unicode":"U+1F1F5 U+1F1F0","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PK.svg"},{"name":"Poland","code":"PL","emoji":"🇵🇱","unicode":"U+1F1F5 U+1F1F1","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PL.svg"},{"name":"St. Pierre & Miquelon","code":"PM","emoji":"🇵🇲","unicode":"U+1F1F5 U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PM.svg"},{"name":"Pitcairn Islands","code":"PN","emoji":"🇵🇳","unicode":"U+1F1F5 U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PN.svg"},{"name":"Puerto Rico","code":"PR","emoji":"🇵🇷","unicode":"U+1F1F5 U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PR.svg"},{"name":"Palestinian Territories","code":"PS","emoji":"🇵🇸","unicode":"U+1F1F5 U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PS.svg"},{"name":"Portugal","code":"PT","emoji":"🇵🇹","unicode":"U+1F1F5 U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PT.svg"},{"name":"Palau","code":"PW","emoji":"🇵🇼","unicode":"U+1F1F5 U+1F1FC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PW.svg"},{"name":"Paraguay","code":"PY","emoji":"🇵🇾","unicode":"U+1F1F5 U+1F1FE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/PY.svg"},{"name":"Qatar","code":"QA","emoji":"🇶🇦","unicode":"U+1F1F6 U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/QA.svg"},{"name":"Réunion","code":"RE","emoji":"🇷🇪","unicode":"U+1F1F7 U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/RE.svg"},{"name":"Romania","code":"RO","emoji":"🇷🇴","unicode":"U+1F1F7 U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/RO.svg"},{"name":"Serbia","code":"RS","emoji":"🇷🇸","unicode":"U+1F1F7 U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/RS.svg"},{"name":"Russia","code":"RU","emoji":"🇷🇺","unicode":"U+1F1F7 U+1F1FA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/RU.svg"},{"name":"Rwanda","code":"RW","emoji":"🇷🇼","unicode":"U+1F1F7 U+1F1FC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/RW.svg"},{"name":"Saudi Arabia","code":"SA","emoji":"🇸🇦","unicode":"U+1F1F8 U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SA.svg"},{"name":"Solomon Islands","code":"SB","emoji":"🇸🇧","unicode":"U+1F1F8 U+1F1E7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SB.svg"},{"name":"Seychelles","code":"SC","emoji":"🇸🇨","unicode":"U+1F1F8 U+1F1E8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SC.svg"},{"name":"Sudan","code":"SD","emoji":"🇸🇩","unicode":"U+1F1F8 U+1F1E9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SD.svg"},{"name":"Sweden","code":"SE","emoji":"🇸🇪","unicode":"U+1F1F8 U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SE.svg"},{"name":"Singapore","code":"SG","emoji":"🇸🇬","unicode":"U+1F1F8 U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SG.svg"},{"name":"St. Helena","code":"SH","emoji":"🇸🇭","unicode":"U+1F1F8 U+1F1ED","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SH.svg"},{"name":"Slovenia","code":"SI","emoji":"🇸🇮","unicode":"U+1F1F8 U+1F1EE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SI.svg"},{"name":"Svalbard & Jan Mayen","code":"SJ","emoji":"🇸🇯","unicode":"U+1F1F8 U+1F1EF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SJ.svg"},{"name":"Slovakia","code":"SK","emoji":"🇸🇰","unicode":"U+1F1F8 U+1F1F0","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SK.svg"},{"name":"Sierra Leone","code":"SL","emoji":"🇸🇱","unicode":"U+1F1F8 U+1F1F1","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SL.svg"},{"name":"San Marino","code":"SM","emoji":"🇸🇲","unicode":"U+1F1F8 U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SM.svg"},{"name":"Senegal","code":"SN","emoji":"🇸🇳","unicode":"U+1F1F8 U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SN.svg"},{"name":"Somalia","code":"SO","emoji":"🇸🇴","unicode":"U+1F1F8 U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SO.svg"},{"name":"Suriname","code":"SR","emoji":"🇸🇷","unicode":"U+1F1F8 U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SR.svg"},{"name":"South Sudan","code":"SS","emoji":"🇸🇸","unicode":"U+1F1F8 U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SS.svg"},{"name":"São Tomé & Príncipe","code":"ST","emoji":"🇸🇹","unicode":"U+1F1F8 U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/ST.svg"},{"name":"El Salvador","code":"SV","emoji":"🇸🇻","unicode":"U+1F1F8 U+1F1FB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SV.svg"},{"name":"Sint Maarten","code":"SX","emoji":"🇸🇽","unicode":"U+1F1F8 U+1F1FD","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SX.svg"},{"name":"Syria","code":"SY","emoji":"🇸🇾","unicode":"U+1F1F8 U+1F1FE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SY.svg"},{"name":"Eswatini","code":"SZ","emoji":"🇸🇿","unicode":"U+1F1F8 U+1F1FF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SZ.svg"},{"name":"Tristan da Cunha","code":"TA","emoji":"🇹🇦","unicode":"U+1F1F9 U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TA.svg"},{"name":"Turks & Caicos Islands","code":"TC","emoji":"🇹🇨","unicode":"U+1F1F9 U+1F1E8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TC.svg"},{"name":"Chad","code":"TD","emoji":"🇹🇩","unicode":"U+1F1F9 U+1F1E9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TD.svg"},{"name":"French Southern Territories","code":"TF","emoji":"🇹🇫","unicode":"U+1F1F9 U+1F1EB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TF.svg"},{"name":"Togo","code":"TG","emoji":"🇹🇬","unicode":"U+1F1F9 U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TG.svg"},{"name":"Thailand","code":"TH","emoji":"🇹🇭","unicode":"U+1F1F9 U+1F1ED","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TH.svg"},{"name":"Tajikistan","code":"TJ","emoji":"🇹🇯","unicode":"U+1F1F9 U+1F1EF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TJ.svg"},{"name":"Tokelau","code":"TK","emoji":"🇹🇰","unicode":"U+1F1F9 U+1F1F0","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TK.svg"},{"name":"Timor-Leste","code":"TL","emoji":"🇹🇱","unicode":"U+1F1F9 U+1F1F1","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TL.svg"},{"name":"Turkmenistan","code":"TM","emoji":"🇹🇲","unicode":"U+1F1F9 U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TM.svg"},{"name":"Tunisia","code":"TN","emoji":"🇹🇳","unicode":"U+1F1F9 U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TN.svg"},{"name":"Tonga","code":"TO","emoji":"🇹🇴","unicode":"U+1F1F9 U+1F1F4","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TO.svg"},{"name":"Turkey","code":"TR","emoji":"🇹🇷","unicode":"U+1F1F9 U+1F1F7","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TR.svg"},{"name":"Trinidad & Tobago","code":"TT","emoji":"🇹🇹","unicode":"U+1F1F9 U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TT.svg"},{"name":"Tuvalu","code":"TV","emoji":"🇹🇻","unicode":"U+1F1F9 U+1F1FB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TV.svg"},{"name":"Taiwan","code":"TW","emoji":"🇹🇼","unicode":"U+1F1F9 U+1F1FC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TW.svg"},{"name":"Tanzania","code":"TZ","emoji":"🇹🇿","unicode":"U+1F1F9 U+1F1FF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/TZ.svg"},{"name":"Ukraine","code":"UA","emoji":"🇺🇦","unicode":"U+1F1FA U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/UA.svg"},{"name":"Uganda","code":"UG","emoji":"🇺🇬","unicode":"U+1F1FA U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/UG.svg"},{"name":"U.S. Outlying Islands","code":"UM","emoji":"🇺🇲","unicode":"U+1F1FA U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/UM.svg"},{"name":"United Nations","code":"UN","emoji":"🇺🇳","unicode":"U+1F1FA U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/UN.svg"},{"name":"United States","code":"US","emoji":"🇺🇸","unicode":"U+1F1FA U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/US.svg"},{"name":"Uruguay","code":"UY","emoji":"🇺🇾","unicode":"U+1F1FA U+1F1FE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/UY.svg"},{"name":"Uzbekistan","code":"UZ","emoji":"🇺🇿","unicode":"U+1F1FA U+1F1FF","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/UZ.svg"},{"name":"Vatican City","code":"VA","emoji":"🇻🇦","unicode":"U+1F1FB U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/VA.svg"},{"name":"St. Vincent & Grenadines","code":"VC","emoji":"🇻🇨","unicode":"U+1F1FB U+1F1E8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/VC.svg"},{"name":"Venezuela","code":"VE","emoji":"🇻🇪","unicode":"U+1F1FB U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/VE.svg"},{"name":"British Virgin Islands","code":"VG","emoji":"🇻🇬","unicode":"U+1F1FB U+1F1EC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/VG.svg"},{"name":"U.S. Virgin Islands","code":"VI","emoji":"🇻🇮","unicode":"U+1F1FB U+1F1EE","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/VI.svg"},{"name":"Vietnam","code":"VN","emoji":"🇻🇳","unicode":"U+1F1FB U+1F1F3","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/VN.svg"},{"name":"Vanuatu","code":"VU","emoji":"🇻🇺","unicode":"U+1F1FB U+1F1FA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/VU.svg"},{"name":"Wallis & Futuna","code":"WF","emoji":"🇼🇫","unicode":"U+1F1FC U+1F1EB","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/WF.svg"},{"name":"Samoa","code":"WS","emoji":"🇼🇸","unicode":"U+1F1FC U+1F1F8","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/WS.svg"},{"name":"Kosovo","code":"XK","emoji":"🇽🇰","unicode":"U+1F1FD U+1F1F0","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/XK.svg"},{"name":"Yemen","code":"YE","emoji":"🇾🇪","unicode":"U+1F1FE U+1F1EA","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/YE.svg"},{"name":"Mayotte","code":"YT","emoji":"🇾🇹","unicode":"U+1F1FE U+1F1F9","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/YT.svg"},{"name":"South Africa","code":"ZA","emoji":"🇿🇦","unicode":"U+1F1FF U+1F1E6","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/ZA.svg"},{"name":"Zambia","code":"ZM","emoji":"🇿🇲","unicode":"U+1F1FF U+1F1F2","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/ZM.svg"},{"name":"Zimbabwe","code":"ZW","emoji":"🇿🇼","unicode":"U+1F1FF U+1F1FC","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/ZW.svg"},{"name":"England","code":"ENGLAND","emoji":"🏴󠁧󠁢󠁥󠁮󠁧󠁿","unicode":"U+1F3F4 U+E0067 U+E0062 U+E0065 U+E006E U+E0067 U+E007F","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/ENGLAND.svg"},{"name":"Scotland","code":"SCOTLAND","emoji":"🏴󠁧󠁢󠁳󠁣󠁴󠁿","unicode":"U+1F3F4 U+E0067 U+E0062 U+E0073 U+E0063 U+E0074 U+E007F","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/SCOTLAND.svg"},{"name":"Wales","code":"WALES","emoji":"🏴󠁧󠁢󠁷󠁬󠁳󠁿","unicode":"U+1F3F4 U+E0067 U+E0062 U+E0077 U+E006C U+E0073 U+E007F","image":"https://cdn.jsdelivr.net/npm/country-flag-emoji-json@2.0.0/dist/images/WALES.svg"}] 2 | -------------------------------------------------------------------------------- /flags/parse.js: -------------------------------------------------------------------------------- 1 | 2 | const fs = require('fs') 3 | 4 | function mapFunc(item) { 5 | const emoji = item['emoji']; 6 | const word = item['name']; 7 | return `Word(native: "${word}", foreign: "${emoji}"),`; 8 | } 9 | 10 | fs.readFile('flags.json', (err, data) => { 11 | if (err) throw err; 12 | 13 | const parsed = JSON.parse(data); 14 | const output = parsed.map(mapFunc).join('\n'); 15 | process.stdout.write(output); 16 | 17 | }) 18 | -------------------------------------------------------------------------------- /img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshspicer/widgetkit-daily-language/6440df98bbc6efdd3262a5d0366d84b43aa24607/img.png -------------------------------------------------------------------------------- /privacy.md: -------------------------------------------------------------------------------- 1 | This app does not collect any personal information. All information created and stored by this app (your language preference) is stored on the device, and never leaves the device. 2 | --------------------------------------------------------------------------------