在包含无效片段的插值字符串中传入了LocalizedStringResource
尝试使用Strings Catalog来本地化一个带插值的字符串。这里必须将字符串表示为LocalizedStringResource,没有其他选项。
// Error: 'LocalizedStringResource' is passed in an Interpolated String with an invalid segment.
static var title = LocalizedStringResource(
"OpenIntent.Title",
defaultValue: "Open \(LocalizedStringResource("AppName", table: "Shared"))",
table: "Shared"
)
Shared.xcstrings:
{
"sourceLanguage" : "en",
"strings" : {
"AppName" : {
"extractionState" : "pasted",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "HeartBLE"
}
}
}
},
"OpenIntent.Title" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Open %1$(appName)@ 🚀"
}
}
}
}
},
"version" : "1.2"
}
这里的 'invalid segment' 是什么意思?
解决方案
Check your .xcstrings file.
try replacing "value" : "Open %1$(appName)@ 🚀" with "value" : "Open %@ 🚀"
and pass the localized value
Text(
LocalizedStringResource("OpenIntent.Title", table: "Shared"),
String(localized: "AppName", table: "Shared")
)
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。