Localization of strings in static lib

前端 未结 3 1181
生来不讨喜
生来不讨喜 2021-02-02 02:12

I have a project that uses a static library (SL). In that SL, there are a couple of strings I\'d like to localize and the project includes all of the localization files. The loc

相关标签:
3条回答
  • 2021-02-02 02:28

    It is not possible to bundle it in a static lib, but you can create new bundle like "MyStaticLibraryName.bundle", put inside all localizations and use the code below instead "NSLocalizedString()". All you need to do: add a static library and resource bundle.

    NSString *MyLocalizedString(NSString* key, NSString* comment) {
    static NSBundle* bundle = nil;
    if (!bundle) {
        NSString* path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MyStaticLibraryName.bundle"];
        bundle = [[NSBundle bundleWithPath:path] retain];
    }
    
    return [bundle localizedStringForKey:key value:key table:nil];
    }
    
    0 讨论(0)
  • 2021-02-02 02:41

    Make the localizable string for the static library, then place that string file in a folder "YourLibraryResource". Rename the folder "YourLibraryResource.bundle".

    Now you include this bundle also in the project along with the library. Then use the code given by abuharsky.

    0 讨论(0)
  • 2021-02-02 02:42

    Putting files with the same name intro one project never works, because in the resulting app they end up all in the same location. (Xcode doesn't preserve your directory structure.)

    But you can put part of your localization into Localizable2.strings and then use:

    NSLocalizedStringFromTable(@"key", @"Localizable2", @"")

    0 讨论(0)
提交回复
热议问题