iOS,如何通过编号将应用程序本地化为中文?

时间:2017-08-18 05:56:57

标签: ios cocoa-touch localization

我的应用程序显示按钮数量,数字符号。

iOS是否可以根据语言选择生成数字符号的本地化,如果是这样的话?

我正在输出字符串,我想我需要某种区域格式化功能?

1 个答案:

答案 0 :(得分:1)

首先,让您的项目支持中文:

enter image description here

第二次,添加带有翻译文本的Localizable.strings文件,如: enter image description here

第三次,将文件本地化为中文:

enter image description here enter image description here

最后,您可以使用以下翻译:

self.helloLabel.text = NSLocalizedString(@"Hello!", @"A text for saying hello label");

“你好!”如果您的iPhone语言是中文,则会显示。

对于号码转换:

NSString *localizedString = [NSNumberFormatter localizedStringFromNumber: @(1314) 
        numberStyle: NSNumberFormatterSpellOutStyle]; 

NSLog(@"Formatted string:%@",localizedString); 
//Formatted string:一千三百一十四  (if system region is China)

如果您想直接转换数字符号:

- (NSString *)getNumberSymbols:(NSInteger)number {
    NSArray *symbols = @[@"零",@"一",@"二",@"三",@"四",@"五",@"六",@"七",@"八",@"九"];
    NSMutableString *result = [NSMutableString stringWithFormat:@"%ld",(long)number];

    for (int i = 0;i<symbols.count;i++) {

        [result replaceOccurrencesOfString:
         [NSMutableString stringWithFormat: @"%ld",(long)i] 
                               withString: symbols[i] 
                                  options: NSCaseInsensitiveSearch 
                                    range: NSMakeRange(0, result.length)];
    }
    return result;
}

或者:

- (NSString *)getNumberSymbols:(NSInteger)number {
    NSMutableString *result = [NSMutableString stringWithFormat:@"%ld",(long)number];
    for (int i = 0;i<=9;i++) {

        NSString *localizedNumber = [NSNumberFormatter localizedStringFromNumber:@(i) 
          numberStyle:NSNumberFormatterSpellOutStyle];

        [result replaceOccurrencesOfString:
               [NSMutableString stringWithFormat:@"%ld",(long)i] 
                   withString: localizedNumber 
                      options: NSCaseInsensitiveSearch 
                        range: NSMakeRange(0, result.length)];
    }
    return result;
}

使用它:

NSString *result = [self getNumberSymbols:134]; //Output: 一三四