I am currently making a Corona app where I would like to include Japanese text. For those of you who do not know, it appears that Japanese has multiple languages to write in text (Kanji, Hiragana, etc.). Furigana is a way to have Kanji characters with Hiragana in what looks to be subtext (or Ruby characters). See the Ruby slide on this page for an example.
I am looking for a way to use Furigana in my app. I was hoping there was a way to do it using Unicode. Well, I stumbled upon the Interlinear Annotation characters and tested them out (using unicodeToUtf8 and the LastResort font) in Corona as follows: :
local iaAnchor = unicodeToUtf8(0xfff9)
local iaSep = unicodeToUtf8(0xfffa)
local iaTerm = unicodeToUtf8(0xfffb)
local options = {
parent = localGroup,
text = iaAnchor .. "漢" .. iaSep .. "かん" .. iaTerm .. iaAnchor .."字" .. iaSep .. "じ" .. iaTerm,
x = 285,
y = 195,
font = "LastResort",
fontSize = 24,
}
local testText = display.newText(options)
Unfortunately, I had no success and ended up getting something like this:
So, my question is, is it possible to get Furigana (and Ruby characters) to work using Unicode? Or is this not an actual usable feature in Unicode? I just want to make sure that I am not wasting my time trying to get this stuff to work.
I checked out the Interlinear Annotation Characters section in this Unicode report, but the jargon is a bit too thick for me to understand what they're trying to say. Are they implying at all that such characters should not be used in regular practice? If so, then the previous resources on Unicode Ruby Characters is a bit misleading.
Interlinear Annotation Characters are a generic tool for annotating text (like Furigana, Bopomofo, or other phonetic guides), but the Unicode Standard doesn't specify how they should be interpreted or rendered. That is, you will probably have to implement rendering support for them yourself because most libraries do not know what to do with them.
It might be easier to use a higher-level protocol that already supports rendering Ruby text. For example, if you have access to an API that can render HTML, you can use the <ruby>
/<rt>
tags—which have well-defined rendering semantics.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With