iOS本地化字符串指定参数顺序(应用场景:app内的多语言切换)

简介: iOS本地化字符串指定参数顺序(应用场景:app内的多语言切换)

文章目录

  • 前言
  • I 、 例子

  • 1.1 效果
  • see also


前言

对于在中英文语法的区别,在本地化字符串的时候,我们常常需要调整stringWithFormat的参数顺序

  • 原理:在%和@中间加上数值$(1$,2$),数字代表参数的顺序

I 、 例子

    self.FORMATLab.text =   [NSString stringWithFormat:KNLocal(@"FORMAT", nil), @"csdn", @"https://kunnan.blog.csdn.net/article/details/103733872"];
  • en.lproj/Localizable.strings
"FORMAT" = "I am %2$@ from '%1$@'";
  • zh-Hans.lproj/Localizable.strings
"FORMAT" = "我是来自“%1$@”的%2$@";

1.1 效果

image.png

image.png

see also

  • 【iOS APP 内的国际化切换】1、字符串的本地化、2、自定义解析本地化字符串的工具类LanguageManager、3、例子:登录界面切换中英文。



@interface ViewController ()
/**
 中英文lab,用于切换语言:处理切换中英文语言的动作事件
 */
@property (weak, nonatomic) UILabel *languageLab;
/**
 用于测试指定参数顺序: 在%和@中间加上1$,2$等等就可以啦,数字代表参数的顺序。
 */
@property (weak, nonatomic) UILabel *FORMATLab;
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    [self languageLab];
    self.view.backgroundColor = UIColor.whiteColor;
    self.FORMATLab.text =   [NSString stringWithFormat:KNLocal(@"FORMAT", nil), @"csdn", @"https://kunnan.blog.csdn.net/article/details/103733872"];
    if (@available(iOS 13.0, *)) {
    [self testUIPageControl];
    }
}
- (UILabel *)FORMATLab{
    if (!_FORMATLab) {
        UILabel *tmp = [[UILabel alloc]init];
        _FORMATLab = tmp;
        tmp.textColor = rgb(51,51,51);
        tmp.font = kBoldFont(15);
        tmp.numberOfLines = 0;
        tmp.textAlignment = NSTextAlignmentCenter;
        [self.view addSubview:tmp];
        __weak __typeof__(self) weakSelf = self;
        [tmp mas_makeConstraints:^(MASConstraintMaker *make) {
            make.centerY.equalTo(weakSelf.view).offset(kAdjustRatio(-80));
            make.centerX.equalTo(weakSelf.view).offset(-kAdjustRatio(0));
            make.left.equalTo(weakSelf.view).offset(-kAdjustRatio(10));
            make.right.equalTo(weakSelf.view).offset(-kAdjustRatio(10));
//            make.size.mas_equalTo(CGSizeMake(kAdjustRatio(100), kAdjustRatio(40)));
        }];
    }
    return _FORMATLab;
}


目录
相关文章
|
11月前
|
运维 iOS开发 Windows
windows电脑备案ios APP获取公钥和证书指纹Sha-1值的方法
在阿里云进行APP备案、在备案IOS端的环节的时候,发现需要我们将p12证书安装在电脑上,再用xcode或或钥匙串访问来获取这个证书的公钥和sha-1值。 但是大部分开发uniapp应用的同学们,或者进行发布的运维人员的电脑都是windows,无法按照阿里云的教程来获取ios的公钥和sha-1。备案就被卡主了。 这里介绍下另一个方法,就是使用香蕉云编来在线上传证书获取。如下图所示,打开香蕉云编后,找到下图这个功能
1402 0
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
802 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
人工智能 IDE 前端开发
写给尊贵的 Tare Pro 用户的喂饭级 IOS APP 开发指南
本文介绍了如何利用 AI IDE Trae,从零开始快速开发一个 iOS 应用《回声》。通过 AI 辅助完成需求梳理、原型设计、编码与调试,展示了 AI 在整个开发流程中的强大助力。
2659 0
|
Swift iOS开发 开发者
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
3316 13
苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
|
存储 数据安全/隐私保护 开发者
苹果app上架app store 之苹果开发者账户在mac电脑上如何使用钥匙串访问-发行-APP发布证书ios_distribution.cer-优雅草卓伊凡
苹果app上架app store 之苹果开发者账户在mac电脑上如何使用钥匙串访问-发行-APP发布证书ios_distribution.cer-优雅草卓伊凡
1041 8
苹果app上架app store 之苹果开发者账户在mac电脑上如何使用钥匙串访问-发行-APP发布证书ios_distribution.cer-优雅草卓伊凡
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
711 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
736 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
人工智能 程序员 API
iOS|记一名 iOS 开发新手的前两次 App 审核经历
啥,这玩意也有新手保护期?
552 0
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
1042 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决