引用Localizable.strings中另一个字符串中的一个字符串

时间:2016-04-14 09:30:31

标签: ios xcode

我想在我的Localizable.strings文件中引用另一个字符串中的字符串,就像我们在android的strings.xml文件中一样,如下所示

<string name="app_name">My App</string>   
<string name="activity_title">@string/app_name</string>

任何帮助将不胜感激。我试着寻找文档和stackoverflow,但是无法从中获取任何东西。

2 个答案:

答案 0 :(得分:2)

iOS Localizable.strings 不如Android的 strings.xml 灵活。你不能用plist,只能从代码中做到这一点。

答案 1 :(得分:0)

您可以创建一个这样的辅助类:

Lang.h文件

#import <Foundation/Foundation.h>

@interface Lang : NSObject
+(NSString *)getString : (NSString *)key;
@end

Lang.m文件

#import "Lang.h"

@implementation Lang

+(NSString *)getString : (NSString *)key
{
    @try {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];

        NSBundle* languageBundle = [NSBundle bundleWithPath:path];
        //find and return the desired string
        NSString* str = [languageBundle localizedStringForKey:key value:@"" table:nil];
        return str;
    }
    @catch (NSException *exception) {
        return @"";
    }
}

@end

创建一个.string文件,并将您的键值作为附加图像添加到此文件中:

enter image description here

现在您可以像这样获取密钥的值:

NSString *value = [Lang getString:@"YOUR_KEY"];