swift-libs/Sources/Core/Extensions/Bundle+LocalisationBundle.swift

39 lines
1011 B
Swift

//===----------------------------------------------------------------------===//
//
// This source file is part of the SwiftLibs open source project
//
// Copyright (c) 2023 Röck+Cöde VoF. and the SwiftLibs project authors
// Licensed under the EUPL 1.2 or later.
//
// See LICENSE.txt for license information
// See CONTRIBUTORS.txt for the list of SwiftLibs project authors
//
//===----------------------------------------------------------------------===//
import Foundation
public extension Bundle {
// MARK: Functions
func localisation(for languageCode: String) throws -> Bundle {
guard
let path = path(forResource: languageCode, ofType: .ResourceType.localisationBundle),
let bundle = Bundle(path: path)
else {
throw BundleError.bundleNotFound
}
return bundle
}
}
// MARK: - String+Constants
private extension String {
enum ResourceType {
static let localisationBundle = "lproj"
}
}