Локализуемые строки в диспетчере пакетов Swift - PullRequest
1 голос
/ 03 марта 2020

Я недавно перенес свои библиотеки в SPM. Мои библиотеки также содержат пользовательский интерфейс и предварительно определяют локализованные строки например:

titleLabel.text = NSLoclaizedString("onboarding.page1.title", comment: "Blah blah blah")

Я использую BartyCrouch для автоматизации локализации, которая игнорирует мои библиотеки (ожидается). Реальная проблема для меня заключается в том, что когда я помещаю их в Localizable.strings вручную, они тоже игнорируются

Мой вопрос: есть ли способ их локализации?

То, что я попробовал, не повезло:

Внутри моего пакета Swift:

public class LocalizableBridge {
    public static let shared = LocalizableBridge()
    public var bundle: Bundle = .main
}

final class MyViewController: UIViewController {

   // some code...

   private func setupLayout() {
        loadingLabel.text = NSLocalizedString("plugin.loading-state.title", tableName: "Localizable", bundle: LocalizableBridge.shared.bundle, value: "plugin.loading-state.title", comment: "LOADING")
        loadingLabel.textColor = .lightGray
        activityIndicator.startAnimating()
    }

    // some code...
}

Внутри моего проекта:

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var appCoordinator: AppCoordinator?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        // some code...

        LocalizableBridge.shared.bundle = Bundle(identifier: "my.projects.bundle.id")!

        // some code...

        return true
    }
}

Заранее спасибо, ребята

...