I'm guessing Yuri meant IaC - Infrastructure as Code.
One note here, $$Quote^%qcr will represent control characters with $c(decimalAsciiCode) syntax - like the newlines in this case. I think there's some more official classmethod that's equivalent, but I don't recall where it is off the top of my head.
$$$Text generates content into the message globals at compile time. Here's one way to solve the problem:
Parameter DOMAIN = "Demo";
XData LocalizedEmail [ MimeType = text/html ]
Text to be translated into another language
ClassMethod GetLocalizedContent(xDataName As %String) As %String [ CodeMode = objectgenerator ]
do %code.WriteLine(" Quit $Case(xDataName,")
set key = ""
set xdata = %class.XDatas.GetNext(.key)
set data = xdata.Data.Read() // Assumptions about length here...
do %code.WriteLine(" "_$$$QUOTE(xdata.Name)_":$$$Text("_$$Quote^%qcr(data)_"),")
do %code.WriteLine(" :"""")")
After compilation you'll have:
^IRIS.Msg("Demo","en",3630108798)="<body>"_$c(13,10)_"<p>"_$c(13,10)_"Text to be translated into another language"_$c(13,10)_"</p>"_$c(13,10)_"</body>"_$c(13,10)
If you want to localize individual strings in the XData block independent of the HTML markup that gets a little more complicated. I'd think it's simpler/possibly better to localize the entire block at once though.
Log in or create a new account to continue