{"id":15429878,"url":"https://github.com/joshspicer/widgetkit-daily-language","last_synced_at":"2026-03-01T02:33:55.215Z","repository":{"id":42431346,"uuid":"302928917","full_name":"joshspicer/widgetkit-daily-language","owner":"joshspicer","description":"Learn a new language with a new word-a-day!","archived":false,"fork":false,"pushed_at":"2023-08-09T21:55:40.000Z","size":627,"stargazers_count":12,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-08T13:04:06.913Z","etag":null,"topics":["flags","french","geoguessr","ios-14","italian","japanese","language","morse-code","swiftui","widget","widgetkit"],"latest_commit_sha":null,"homepage":"https://apps.apple.com/us/app/daily-word-language-widget/id1535573526","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joshspicer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-10T15:14:11.000Z","updated_at":"2025-04-14T17:52:11.000Z","dependencies_parsed_at":"2024-10-20T11:11:07.414Z","dependency_job_id":null,"html_url":"https://github.com/joshspicer/widgetkit-daily-language","commit_stats":{"total_commits":37,"total_committers":5,"mean_commits":7.4,"dds":0.2702702702702703,"last_synced_commit":"6440df98bbc6efdd3262a5d0366d84b43aa24607"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/joshspicer/widgetkit-daily-language","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshspicer%2Fwidgetkit-daily-language","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshspicer%2Fwidgetkit-daily-language/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshspicer%2Fwidgetkit-daily-language/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshspicer%2Fwidgetkit-daily-language/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshspicer","download_url":"https://codeload.github.com/joshspicer/widgetkit-daily-language/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshspicer%2Fwidgetkit-daily-language/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29959153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T01:47:18.291Z","status":"online","status_checked_at":"2026-03-01T02:00:07.437Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flags","french","geoguessr","ios-14","italian","japanese","language","morse-code","swiftui","widget","widgetkit"],"created_at":"2024-10-01T18:13:16.393Z","updated_at":"2026-03-01T02:33:55.157Z","avatar_url":"https://github.com/joshspicer.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# widgetkit-daily-language\n\n\u003e Download for iOS/iPad OS/MacOS here: https://apps.apple.com/us/app/daily-word-language-widget/id1535573526\n\nThis simple SwiftUI project utilizes iOS 14's WidgetKit to display a simple, at-a-glance widget with a randomly selected `{{Foreign Word}} \u003c-\u003e {{Native Word}}` pair.\n\nLearn a new language with a new word a day from a language you'd like to learn.  \n\nCurrent Languages include:\n* `Italian \u003c-\u003e English`\n* `French \u003c-\u003e English` \n* `Japanese \u003c-\u003e English`\n\nAs well as some 'non-language' language sets:\n* `Morse Code \u003c-\u003e English`\n* `National Flag \u003c-\u003e Country Name`\n\n...with wordlists [extracted](https://github.com/joshspicer/widgetkit-daily-italian/blob/main/extract.py) using a quick BeautifulSoup script from 1000mostcommonwords.com .\n\n\n\u003cimg width=350px src=\"./img.png\"/\u003e\n\n## Add a language\n\nWordlists are embedded into the widget and can be added easily.\n\n1. Add a unique enum for your newly [Supported Language](https://github.com/joshspicer/widgetkit-daily-italian/blob/main/DailyItalianWord/SupportedLanguages.swift).\n2. Create a new `.swift` file to [/Lanaguages](https://github.com/joshspicer/widgetkit-daily-italian/tree/main/DailyItalianWord/Languages) that conforms to the `LanguageBase` protocol.\n\n### Example {{language}}.swift\n\n```swift\nclass {{language}} : LanguageBase {\n\n    var words: [Word] = [\n        Word(native: \"war\", foreign: \"guerra\"),\n        Word(native: \"thing\", foreign: \"cosa\"),\n        Word(native: \"street\", foreign: \"strada\")\n        ...\n        ...\n    ]       \n        \n    func getAll() -\u003e [Word] {\n        return words\n    }\n    \n    func getRandom() -\u003e Word {\n        let number = Int.random(in: 0..\u003cwords.count)\n        return words[number]\n    }\n    \n    func getFlag() -\u003e String {\n        return \"🇮🇹\"\n    }\n}\n```\n\n3. Add your new class here in the [LanguageFactory.swift](https://github.com/joshspicer/widgetkit-daily-italian/blob/main/DailyItalianWord/Languages/LanguageFactory.swift).\n\nYour language will be available in the picker! \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshspicer%2Fwidgetkit-daily-language","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshspicer%2Fwidgetkit-daily-language","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshspicer%2Fwidgetkit-daily-language/lists"}