Использование локализации в модуле - PullRequest
0 голосов
/ 07 декабря 2018

Я не нашел подобной темы здесь.Я разрабатываю модуль, который требует многоязыковой поддержки.

Я добавляю Localizable.string :

Этот вариант предназначен для английской версии:

"No Preview Available" = "Preview is not available for this file";
"No Network Available" = "An error has occurred, please check your network connection or try again later.";

и класс для обработки локализации строки

private class Localizator {

    static let sharedInstance = Localizator()

    lazy var localizableDictionary: NSDictionary! = {
        if let path = Bundle.main.path(forResource: "Localizable", ofType: "strings") {
            return NSDictionary(contentsOfFile: path)
        }
        fatalError("Localizable file NOT found")
    }()

    func localize(string: String) -> String {
        guard let localizedString = localizableDictionary.value(forKey: string) as? String else {
            assertionFailure("Missing translation for: \(string)")
            return ""
        }
        return localizedString
    }
}

extension String {
    var localized: String {
        return Localizator.sharedInstance.localize(string: self)
    }
}

Я получаю следующую ошибку, когда запускаю пример проекта с моим (здесь) модулем в качестве зависимости.

невозможно найти локализуемый файл

файл локализуемого не найден.

Как сделать файл строк доступным в моемМодуль разработки? Есть подсказка?

1 Ответ

0 голосов
/ 02 мая 2019

Добавьте это к своему подспеку:

s.resource_bundles = {
            'YourBundleName' => ['path_to_resource/Internationalization/*.lproj']
        }

и обратитесь к этому имени пакета.

...