Welcome to the Netflix Partner Help Center. Have a question or need help with an issue? Send us a ticket and we'll help you to a resolution.

Japanese IMSC 1.1 Creation Guide


Objective  

The document's purpose is to highlight the specific IMSC 1.1/TTML attributes & values needed to achieve the requirements outlined in our Japanese Timed Text Style Guide (Japanese TTSG). Adherence to this document will help to ensure seamless ingest and encoding in the Netflix media pipeline. 

Japanese IMSC 1.1 Header

The following attributes/values must be expressed in the document's <tt> element/header: 

  • xml:lang="ja"
  • ttp:contentProfiles must include: "http://www.w3.org/ns/ttml/profile/imsc1.1/text" 

General Font Characteristics

I.1. Font

Item of effect IMSC1.1 Features Netflix Values
Font
tts:fontFamily "proportionalSansSerif"
tts:fontSize "100%"
tts:color white

*Note: Please be advised that font characteristics are stripped upon ingest.  We recommend sizing the region such that the layout of the text is not impacted by variations in font type. 

I.2. Italicization

Item of effect IMSC1.1 Features Netflix Values
Italics
tts:shear 16.67%*

*Note: This value of tts:shear corresponds to a rotation by nearly 15°.  


Positioning/Alignment

I.3. Horizontal Positioning

Our Japanese Timed Text Style Guide requires horizontal subtitles to be center-aligned and left-justified (Figure 1).

centeralign_left_justified.png
Figure 1

In order to maintain left line justification when there are multiple horizontal lines within one paragraph <p>, please use the appropriate combination of tts:textAlign and ebutts:multiRowAlign, (highlighted in the table below), which will allow for the proper alignment of multiple ‘rows’ of inline areas within a containing block area.  

Item of effect

IMSC1.1 Features

Netflix Values

Horizontal Positioning
tts:textAlign "center"
ebutts:multiRowAlign "start"
tts:displayAlign* "after"
tts:writingMode "lrtb"


I.4. Vertical Positioning

Our Japanese TTSG requires vertical subtitles to be top-aligned and positioned to the left or right of the screen (illustrated in Figure 2, below):

24.png
Figure 2

The appropriate attributes and values to achieve this style guide requirement are as follows:   

Item of effect IMSC1.1 Features Netflix Values
Vertical Positioning
tts:textAlign "start"
tts:displayAlign* "before" | "after"
tts:writingMode "tbrl"

 
*Note: tts:displayAlign: "after" is used to define a region for the placement of left-positioned vertical subtitles in "tbrl" writing mode. Left vertical positioning should only be used when a vertically positioned subtitle would otherwise obstruct text or action occurring on the right side of the screen. Otherwise, default placement for vertical subtitles should always be on the right (tts:displayAlign: "before").  

 I.4.2 "Kumi-moji"/"Tatechuyoko"

When including numbers in vertical subtitle events, double-digit numbers should be written using half-width characters and positioned horizontally using the “kumi-moji/tatechuyoko” feature. In IMSC 1.1, this is realized by using tts:textCombine="all" (shown below in Figure 3):

tatechuyoko.png
Figure 3

However, as expressed in our Japanese TTSG, three-digit and higher numbers should be written using full-width characters and positioned vertically.  This type of display will occur by default in vertically-positioned subtitles, and therefore, does not require the use of the tts:textCombine attribute (shown below in Figure 4):

2020-01-21_17-06-05.png
Figure 4

 

Japanese Styling Attributes

I.5. Rubies(ルビ)

Rubies should never be placed between two lines as it is difficult to discern which base character they should be associated with. The best way to avoid this issue while adhering to all Ruby requirements outlined in our Japanese TTSG  is to use the following attributes and values:  

Item of effect IMSC1.1 Features Netflix
<annotation-position>
Rubies tts:rubyPosition "outside"
tts:rubyAlign "center"
tts:rubyReserve "outside"

*Note: the only allowable tts:ruby values are: "container | base | text"  

Figure 5 shows the proper placement for rubies with two-line subtitles:

properrubyplacement.png
Figure 5


I.5.1 Ruby Reserve

Figure 6 illustrates how tts:rubyReserve should be employed to maintain temporal consistency in placement of the base text as we move from subtitles with only base text to those with base texts that are annotated with rubies (and vice versa): 

rubyReserve1.pngrubyReserve2.png
Figure 6 (Correct)

As illustrated in Figure 6, when tts:rubyReserve is enabled, there is no vertical movement of subtitles between events. In contrast, Figure 7 illustrates these same two events without tts:rubyReserve invoked:

norubyReserve1.pngnoRubyReserve2.png 
Figure 7 (Incorrect)


Pay careful attention to ensure that tts:rubyReserve does not introduce an extraneous space between two-line events, as illustrated in Figure 8.  This can be introduced by splitting two-line events into individual paragraphs whilst using tts:rubyReserve="outside"  

100.png
Figure 8 (Incorrect)

 


I.6. Boutens(傍点)

tts:textEmphasis is used to render boutens. Boutens should never be placed between two lines as it is difficult to discern which glyph they should be associated with. The best way to avoid this issue while adhering to all Bouten requirements outlined in our Japanese TTSG is to use the appropriate attributes and values described in the table below (tts:textEmphasis="circle outside").

Item of effect IMSC1.1 Features Netflix
<emphasis-style>
Netflix
<annotation-position>
Boutens   
tts:textEmphasis  

"filled circle"*

"outside"

*Note: "filled circle" is equivalent to U+25CF.  This is the "auto" <emphasis-style> value for horizontal writing modes. 

Figure 15 shows the proper placement for boutens within two-line subtitle events:  

2020-02-21_14-47-37.png
Figure 9

 

Was this article helpful?
9 out of 11 found this helpful