import Elementary import Foundation import Localization /// The website's landing page, with its text localized to a given locale. struct IndexPage { // MARK: Properties /// The locale the page content is localized to. let locale: Locale /// Resolves the page's text from the bundled String Catalog for the page's ``locale``. private let localize: Localize // MARK: Initializers /// Creates a landing page localized to the given locale. /// - Parameter locale: the locale the page content is localized to. init( locale: Locale ) { self.locale = locale self.localize = .init(bundle: .module) } } // MARK: - Page extension IndexPage: Page { // MARK: Properties var content: some HTML { p { localize("index.greeting", locale: locale) } } var scripts: [StaticFile] { [.index, .shared] } var stylesheets: [StaticFile] { [.shared, .index] } var title: String { localize("index.title", locale: locale) } }