This shows you the differences between two versions of the page.
Previous revisionLast revision | |||
— | blog:case-for-furigana [2021/11/08 15:38] – admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== The Case for Furigana ====== | ||
+ | |||
+ | This is largely a rewriting of the original case I lifted for the use of ruby / [[wp> | ||
+ | |||
+ | The idea is, English is good at taking stuff from other languages. Why not take then from East Asian languages the concept of annotations to enhance pronunciation, | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== FYC: Support Furigana Annotations ===== | ||
+ | |||
+ | Hello everyone. For your consideration: | ||
+ | |||
+ | It would be of interest to count in ${COMMUNITY_NAME} with support for < | ||
+ | |||
+ | This feature request, as well as its submission to a number of forums and communities, | ||
+ | |||
+ | ==== Furiwhat? ==== | ||
+ | |||
+ | How furigana annotations work in HTML is by introducing a tag, < ruby >, that marks a set of text to be annotated plus the annotation itself; sub-tags < rp > and < rt > denote the base text, the parenthesization delimiter for the annotation, and the annotation text itself respectively. Unlike with other HTML elements such as <span title=" | ||
+ | |||
+ | For examples of how ruby can be used in English [[https:// | ||
+ | |||
+ | ==== Implementation ==== | ||
+ | |||
+ | The implementation of ruby in forums or mediums that use HTML directly or use an intermediate dialect or subset, such as [[wp> | ||
+ | |||
+ | The absolute minimum set of required elements is as follows: | ||
+ | |||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | The implementation of ruby in BBCode compatible forums is also quite simple and could be done in one of at least two alternatives that hereby I introduce: | ||
+ | |||
+ | 1.- A dedicated [ ruby ] tag alone with the annotation as attribute: using here phpBB definition language for the tag, it would look like this: | ||
+ | |||
+ | <code html> | ||
+ | [ruby={TEXT1}]{TEXT2}[/ | ||
+ | <ruby class=" | ||
+ | </ | ||
+ | |||
+ | (note here that the parenthesis element is not provided by the user and instead we generate it directly; this is mostly useful to keep the BBCode tag simple) | ||
+ | |||
+ | 2.- Mapping the [ ruby ], [ rb ] and [ rt ] tags (as well as optionally a tag for the [ rp ] element) to their HTML equivalents: | ||
+ | |||
+ | <code html> | ||
+ | [ruby]{TEXT}[/ | ||
+ | <ruby class=" | ||
+ | </ | ||
+ | <code html> | ||
+ | [rt]{TEXT}[/ | ||
+ | < | ||
+ | </ | ||
+ | <code html> | ||
+ | [rp]{SIMPLETEXT}[/ | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | (note here that the rp element uses '' | ||
+ | |||
+ | Here's what the implementation would look like on a web renderer: | ||
+ | |||
+ | > [size=larger] This weird animal is a {{ruby|ñandú|nyan·DOO}} [/size] | ||
+ | |||
+ | And here is a saved picture in case you can't see it: | ||
+ | |||
+ | {{https:// | ||
+ | |||
+ | A browser that can't render inter-line (for example a print-preview or a text reader for accessibility) will render the annotation in-line by the side of the word, using the parentheses in <rp> tags as delimiters, for example: | ||
+ | |||
+ | > [size=larger]ñandú (nyan·DOO)[/ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== What is this useful for ==== | ||
+ | |||
+ | For fanfic writers mostly, a ruby annotation tag can be useful in any of four ways. Most of them relate to one aspect of writing and worldbuilding that is not often given much consideration: | ||
+ | |||
+ | But fear not! Ruby annotations make this so much easier: | ||
+ | |||
+ | **1.- Pronunciation** | ||
+ | |||
+ | Not much to say here; the example I've posted above mostly speaks (heh) for itself. This means a reader gets information of how to pronounce a new term (such as a character' | ||
+ | |||
+ | For a further example observe here: | ||
+ | |||
+ | [img]https:// | ||
+ | |||
+ | **2.- Translation** | ||
+ | |||
+ | Similar to the above, for those authors who like to introduce elements with basis from different languages, it is possible to introduce these definitions as early as they are used. Consider for example the following: | ||
+ | |||
+ | [img]https:// | ||
+ | |||
+ | **3.- Semantic Meaning** | ||
+ | |||
+ | As we all know, things like sarcasm don' | ||
+ | |||
+ | [img]https:// | ||
+ | |||
+ | 4.- Reminders | ||
+ | |||
+ | In written medium it tends to be the case that we need to refer to events in previous chapters, or even in different stories altogether. For example in comics, when Spiderman is fighting Magneto he comments, with an asterisk, that the last time they fought at least he had some help (and down the panel, a text box with the asterisks explains that this happened in [i]Spiderman and the Fantastic Four Crossover Adventures IV, page 36[/i]). In comics this works because there' | ||
+ | |||
+ | [img]https:// | ||
+ | |||
+ | This particular form is notoriously less useful than the others, since if the commentary is long enough an aside note next paragraph or at the end of page (for paged works) is more readable, but once again, those methods don't really work well in the continuous paging, page-below-thread model that stories on web forums follow. I placed it here mostly for completeness. | ||
+ | |||
+ | ==== Comparison to other techniques ==== | ||
+ | |||
+ | Now, it is true that some forums may or may not, on their own, have different mechanisms to provide such asides. For example, the [ spoiler ] tag and the [ title ] tag are implemented in PokéCommunity, | ||
+ | |||
+ | [list] | ||
+ | [*] ruby is a HTML standard: once implemented, | ||
+ | [*] ruby is more accessible than [ title ] tags, that are not visible or accessible on mobile and do not survive a print mode or reader mode either | ||
+ | [*] ruby is more accessible than [ spoiler ] tags, as those need to be explicitly opened and they are not otherwise operable in an offline dump without Javascript; they also break content flow and don't survive print or reader mode renders. | ||
+ | [*] ruby renders client-side within the viewer' | ||
+ | [*] Because of a number of points above, ruby works in " | ||
+ | |||
+ | [/list] | ||
+ | |||
+ | ==== To close ==== | ||
+ | |||
+ | But hey, this is mostly it! I hope this makes a good case for adding this feature to a number of communities, | ||
+ | |||
+ | At the time of last edition of this document I'm still waiting for a response from AO3, but I will be reporting over at Fandom.ink on the results and advances on implementation. | ||
Hosting provided by the tropi.us community.