├── .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 |
--------------------------------------------------------------------------------