如何本地化nsmutableattributedstring字符串?(代码片段)

author author     2023-05-13     793

关键词:

你是训练师吗?是普通文本,这里登录是彩色文本。

//下面是我的代码

let string = "Are you a Trainer? Login here"
let plainText: NSRange?     = (string as NSString).range(of: "Are you a Trainer? ")
let plainText1: NSRange?    = (string as NSString).range(of: "Login here")

let attText = NSMutableAttributedString(string: string)

let font: UIFont? = UIFont(name: Fonts.MontserratRegular, size: 14)
let font1: UIFont? = UIFont(name: Fonts.MontserratMedium, size: 16)

attText.setAttributes([NSAttributedString.Key.font: font!, NSAttributedString.Key.foregroundColor: Colors.textFieldPlaceholderColor], range: plainText ?? NSRange())
attText.setAttributes([NSAttributedString.Key.font: font1!, NSAttributedString.Key.foregroundColor: Colors.themeColor], range: plainText1 ?? NSRange())

self.btnLoginAsTrainer.setAttributedTitle(attText, for: .normal)

上面的字符串是NSAttributedString(),现在我想将这个NSAttributedString()本地化为西班牙语。

我怎样才能做到这一点?因此,西班牙字符串显示与英文文本相同的2种文本颜色。

答案

您可以为一个主字符串创建本地化

"main_string" = "Are you a Trainer? Login here";

然后你可以为子串创建本地化

"substring1" =  "Are you a Trainer?";
"substring2" = " Login here";

然后在substring1找到main_string的范围并设置你的属性。


这是您找到范围并将其应用于属性字符串的方法

            let stringFinal = NSLocalizedString("main_string", comment: "")
            let substringOne = NSLocalizedString("substring1", comment: "")

            let range = stringFinal.range(of: substringOne)
            let substringRange = NSRange.init(range!, in: stringFinal)
            let attribute = NSMutableAttributedString.init(string: stringFinal)
            attribute.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.gray , range: substringRange)

如何在 Swift 中本地化 tableView 单元格?

】如何在Swift中本地化tableView单元格?【英文标题】:HowtolocalizetableViewcellsinSwift?【发布时间】:2018-01-2119:31:47【问题描述】:如何在Swift中本地化TableView单元格?对于一个字符串变量,它是:letalertTitle=NSLocalizedString("a",comment:"")... 查看详情

iOS 辅助功能 - 如何本地化 VoiceOver 语言

】iOS辅助功能-如何本地化VoiceOver语言【英文标题】:iOSaccessibility-HowtolocalizeVoiceOverlanguage【发布时间】:2015-03-3014:27:22【问题描述】:我的应用正在针对一些语言和地区进行本地化。如何本地化配音(它是盲人的辅助功能)。我... 查看详情

如何在 App Store Connect 中添加本地化?

】如何在AppStoreConnect中添加本地化?【英文标题】:HowtoaddlocalizationinAppStoreConnect?【发布时间】:2018-06-2521:39:58【问题描述】:根据iTunesConnect不久前更改为AppStoreConnect,我在AppStoreConnect中找不到如何添加本地化语言,现在我看到... 查看详情

如何本地化 iMessage 贴纸?

】如何本地化iMessage贴纸?【英文标题】:HowtolocalizeiMessagestickers?【发布时间】:2016-12-0714:31:43【问题描述】:我正在创建一个iMessage贴纸包扩展,其中包含包含文本的贴纸。我在Xcode中没有看到任何用于本地化贴纸的选项?可以... 查看详情

如何分配模板文件的本地化名称?

】如何分配模板文件的本地化名称?【英文标题】:HowdoIassignatemplatefile\'slocalizedname?【发布时间】:2018-07-1301:03:23【问题描述】:我的iOS应用程序允许用户从选择模板文档开始。例如,在Pages中,您可以选择从“论文”模板开始... 查看详情

如何本地化 BottomNavigationBarItem 标签

】如何本地化BottomNavigationBarItem标签【英文标题】:howtolocalizeBottomNavigationBarItemlabels【发布时间】:2021-02-1713:20:42【问题描述】:是否有任何解决方法可以将BottomNavigationBarItem翻译成不同的语言?我使用Lang.getString(context,key)访问... 查看详情

如何本地化系统警报

】如何本地化系统警报【英文标题】:howtolocalizesystemalerts【发布时间】:2014-03-1219:28:35【问题描述】:我已将我的应用程序从英语转换为土耳其语+英语。我已经本地化了应用程序,但系统警报没有改变。任何帮助将不胜感激。... 查看详情

如何使用 defineMessages 方法定义本地化?

】如何使用defineMessages方法定义本地化?【英文标题】:HowtodefinelocalizationwithdefineMessagesmethod?【发布时间】:2016-09-1001:42:25【问题描述】:我想本地化我的组件。我使用yahoo/react-intl库。我定义了一些消息constmessages=defineMessages(gree... 查看详情

bootstrap 4 datetimepicker如何本地化

】bootstrap4datetimepicker如何本地化【英文标题】:bootstrap4datetimepickerhowtolocalize【发布时间】:2021-03-0611:12:51【问题描述】:我在***上找到了datetimepicker的解决方案。但是,我无法找到如何将其本地化为我的语言的解决方案。我的脚... 查看详情

iOS本地化如何添加带有本地化文件的现有文件夹

】iOS本地化如何添加带有本地化文件的现有文件夹【英文标题】:iOSLocalizationhowtoaddanexistedfolderwithlocalizationfiles【发布时间】:2012-06-2809:27:18【问题描述】:如何添加包含本地化文件的现有文件夹。我有一个以英语为基础的现有... 查看详情

如何对 Razor 页面进行本地化

】如何对Razor页面进行本地化【英文标题】:HowtodoLocalizationofRazorPages【发布时间】:2020-11-2815:38:35【问题描述】:我浪费了很多时间来筛选关于如何本地化RazorPages的不完整解释,经常发现答案是关于MVC。因此,让我为您节省所... 查看详情

如何使用 CultureInfo 生成本地化日期字符串

】如何使用CultureInfo生成本地化日期字符串【英文标题】:HowtoproducelocalizeddatestringwithCultureInfo【发布时间】:2011-08-1312:33:59【问题描述】:我有以下代码可以生成en-us格式的日期字符串。我想传入LCID(或本地化语言的等效值)来... 查看详情

如何本地化 Images.xcassets 中的图像?

】如何本地化Images.xcassets中的图像?【英文标题】:HowtolocalizetheimagesinImages.xcassets?【发布时间】:2014-01-2314:22:40【问题描述】:我们可以像这样使用Localize...定位FileInspector中的图像:那么我们可以得到这个:但是现在,我在iOS... 查看详情

如何在 Blade 标签模板中使用本地化?

】如何在Blade标签模板中使用本地化?【英文标题】:HowtouselocalizationinBladetagtemplates?【发布时间】:2013-08-1518:10:58【问题描述】:第一个问题:我已经在许多类型的文本和事物中插入了本地化,但我不知道如何将其导入以下形式... 查看详情

如何使用格式化占位符本地化字符串?

】如何使用格式化占位符本地化字符串?【英文标题】:HowdoIlocalizeastringwithformattingplaceholders?【发布时间】:2011-02-0300:45:10【问题描述】:如何使用NSLocalizedString本地化包含占位符的字符串?例如:[NSStringstringWithFormat:@"Youcanafford... 查看详情

如何 NSException 获取本地化的 NSLocalizedDescription

】如何NSException获取本地化的NSLocalizedDescription【英文标题】:howtoNSExceptiongetlocalizedNSLocalizedDescription【发布时间】:2013-03-2503:37:09【问题描述】:我遇到了异常ErrorDomain=NSURLErrorDomainCode=-1001"请求超时。"UserInfo=0x1fd68a20NSErrorFailingURL... 查看详情

如何本地化核心数据实体中属性的默认值

】如何本地化核心数据实体中属性的默认值【英文标题】:HowdoIlocalisethedefaultvalueofattributeinaCoreDataEntity【发布时间】:2009-06-1004:02:14【问题描述】:如果我要创建一个具有非可选字符串属性的实体,例如“name”,我会将“Untitled... 查看详情

如何将本地化添加到项目

】如何将本地化添加到项目【英文标题】:HowtoaddlocalizationtoProject【发布时间】:2013-06-0606:23:41【问题描述】:我尝试将本地化添加到我的项目中,但它不起作用。这是我要做的步骤。新建项目后,我在信息文件(LangDemo-Info.plist)... 查看详情