public mutating func appendLiteral(_ literal: String)
's documentation says:
Don't call this method directly; it's used by the compiler when interpreting string interpolations.
Is it just a clarification that the compiler uses it when type is ExpressibleByStringInterpolation
or are we forbidden from using it?
My case is that I have this localized string in a localization table with "foo.case.a.label" key.
var case = "a"
Text("foo.case.\(case).label")
Now, this LocalizedStringKey.StringInterpolation
would build the localization key with %@ specifier with "a" parameter - as expected, not what I need though. I'm curious if I could go ahead and extend it like
extension LocalizedStringKey.StringInterpolation {
mutating func appendInterpolation(asLiteral string: String) {
self.appendLiteral(string)
}
}
so Text("foo.case.\(asLiteral: case).label")
would translate with "foo.case.a.label"
key. It works, but I'm concerned that I'm violating something and it might backfire on me in the future. If so, is there a solution for this - to build a literal key without format specifiers with interpolated non-literal values (of LocalizedStringKey
)?