|
206 | 206 |
|
207 | 207 | var s = new AnonymousSpan(); |
208 | 208 |
|
209 | | - s.initFromText(doc, estack[0], str, xmlspacestack[0], errorHandler); |
| 209 | + s.initFromText(doc, estack[0], str, xmllangstack[0], xmlspacestack[0], errorHandler); |
210 | 210 |
|
211 | 211 | estack[0].contents.push(s); |
212 | 212 |
|
|
286 | 286 |
|
287 | 287 | doc = new TT(); |
288 | 288 |
|
289 | | - doc.initFromNode(node, errorHandler); |
| 289 | + doc.initFromNode(node, xmllangstack[0], errorHandler); |
290 | 290 |
|
291 | 291 | estack.unshift(doc); |
292 | 292 |
|
|
393 | 393 |
|
394 | 394 | var r = new Region(); |
395 | 395 |
|
396 | | - r.initFromNode(doc, node, errorHandler); |
| 396 | + r.initFromNode(doc, node, xmllangstack[0], errorHandler); |
397 | 397 |
|
398 | 398 | if (!r.id || r.id in doc.head.layout.regions) { |
399 | 399 |
|
|
423 | 423 |
|
424 | 424 | var b = new Body(); |
425 | 425 |
|
426 | | - b.initFromNode(doc, node, errorHandler); |
| 426 | + b.initFromNode(doc, node, xmllangstack[0], errorHandler); |
427 | 427 |
|
428 | 428 | doc.body = b; |
429 | 429 |
|
|
439 | 439 |
|
440 | 440 | var d = new Div(); |
441 | 441 |
|
442 | | - d.initFromNode(doc, estack[0], node, errorHandler); |
| 442 | + d.initFromNode(doc, estack[0], node, xmllangstack[0], errorHandler); |
443 | 443 |
|
444 | 444 | /* transform smpte:backgroundImage to TTML2 image element */ |
445 | 445 |
|
|
464 | 464 |
|
465 | 465 | var img = new Image(); |
466 | 466 |
|
467 | | - img.initFromNode(doc, estack[0], node, errorHandler); |
| 467 | + img.initFromNode(doc, estack[0], node, xmllangstack[0], errorHandler); |
468 | 468 |
|
469 | 469 | estack[0].contents.push(img); |
470 | 470 |
|
|
480 | 480 |
|
481 | 481 | var p = new P(); |
482 | 482 |
|
483 | | - p.initFromNode(doc, estack[0], node, errorHandler); |
| 483 | + p.initFromNode(doc, estack[0], node, xmllangstack[0], errorHandler); |
484 | 484 |
|
485 | 485 | estack[0].contents.push(p); |
486 | 486 |
|
|
496 | 496 |
|
497 | 497 | var ns = new Span(); |
498 | 498 |
|
499 | | - ns.initFromNode(doc, estack[0], node, xmlspacestack[0], errorHandler); |
| 499 | + ns.initFromNode(doc, estack[0], node, xmllangstack[0], xmlspacestack[0], errorHandler); |
500 | 500 |
|
501 | 501 | estack[0].contents.push(ns); |
502 | 502 |
|
|
512 | 512 |
|
513 | 513 | var nb = new Br(); |
514 | 514 |
|
515 | | - nb.initFromNode(doc, estack[0], node, errorHandler); |
| 515 | + nb.initFromNode(doc, estack[0], node, xmllangstack[0], errorHandler); |
516 | 516 |
|
517 | 517 | estack[0].contents.push(nb); |
518 | 518 |
|
|
618 | 618 |
|
619 | 619 | /* create default region */ |
620 | 620 |
|
621 | | - var dr = Region.prototype.createDefaultRegion(); |
| 621 | + var dr = Region.prototype.createDefaultRegion(doc.lang); |
622 | 622 |
|
623 | 623 | doc.head.layout.regions[dr.id] = dr; |
624 | 624 |
|
|
809 | 809 | this.body = null; |
810 | 810 | } |
811 | 811 |
|
812 | | - TT.prototype.initFromNode = function (node, errorHandler) { |
| 812 | + TT.prototype.initFromNode = function (node, xmllang, errorHandler) { |
813 | 813 |
|
814 | 814 | /* compute cell resolution */ |
815 | 815 |
|
|
872 | 872 | this.dimensions = { |
873 | 873 | 'h': new imscUtils.ComputedLength(0, 1), |
874 | 874 | 'w': new imscUtils.ComputedLength(1, 0) |
875 | | - }; |
| 875 | + |
| 876 | + }; |
| 877 | + |
| 878 | + /* xml:lang */ |
| 879 | + |
| 880 | + this.lang = xmllang; |
876 | 881 |
|
877 | 882 | }; |
878 | 883 |
|
|
1008 | 1013 | this.type = type; |
1009 | 1014 | } |
1010 | 1015 |
|
1011 | | - Image.prototype.initFromNode = function (doc, parent, node, errorHandler) { |
| 1016 | + Image.prototype.initFromNode = function (doc, parent, node, xmllang, errorHandler) { |
1012 | 1017 | this.src = 'src' in node.attributes ? node.attributes.src.value : null; |
1013 | 1018 |
|
1014 | 1019 | if (! this.src) { |
|
1025 | 1030 | TimedElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1026 | 1031 | AnimatedElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1027 | 1032 | LayoutElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
| 1033 | + |
| 1034 | + this.lang = xmllang; |
1028 | 1035 | }; |
1029 | 1036 |
|
1030 | 1037 | /* |
|
1109 | 1116 | } |
1110 | 1117 |
|
1111 | 1118 |
|
1112 | | - Body.prototype.initFromNode = function (doc, node, errorHandler) { |
| 1119 | + Body.prototype.initFromNode = function (doc, node, xmllang, errorHandler) { |
1113 | 1120 | StyledElement.prototype.initFromNode.call(this, doc, null, node, errorHandler); |
1114 | 1121 | TimedElement.prototype.initFromNode.call(this, doc, null, node, errorHandler); |
1115 | 1122 | AnimatedElement.prototype.initFromNode.call(this, doc, null, node, errorHandler); |
1116 | 1123 | LayoutElement.prototype.initFromNode.call(this, doc, null, node, errorHandler); |
1117 | 1124 | ContainerElement.prototype.initFromNode.call(this, doc, null, node, errorHandler); |
| 1125 | + |
| 1126 | + this.lang = xmllang; |
1118 | 1127 | }; |
1119 | 1128 |
|
1120 | 1129 | /* |
|
1125 | 1134 | ContentElement.call(this, 'div'); |
1126 | 1135 | } |
1127 | 1136 |
|
1128 | | - Div.prototype.initFromNode = function (doc, parent, node, errorHandler) { |
| 1137 | + Div.prototype.initFromNode = function (doc, parent, node, xmllang, errorHandler) { |
1129 | 1138 | StyledElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1130 | 1139 | TimedElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1131 | 1140 | AnimatedElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1132 | 1141 | LayoutElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1133 | 1142 | ContainerElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
| 1143 | + |
| 1144 | + this.lang = xmllang; |
1134 | 1145 | }; |
1135 | 1146 |
|
1136 | 1147 | /* |
|
1141 | 1152 | ContentElement.call(this, 'p'); |
1142 | 1153 | } |
1143 | 1154 |
|
1144 | | - P.prototype.initFromNode = function (doc, parent, node, errorHandler) { |
| 1155 | + P.prototype.initFromNode = function (doc, parent, node, xmllang, errorHandler) { |
1145 | 1156 | StyledElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1146 | 1157 | TimedElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1147 | 1158 | AnimatedElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1148 | 1159 | LayoutElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1149 | 1160 | ContainerElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
| 1161 | + |
| 1162 | + this.lang = xmllang; |
1150 | 1163 | }; |
1151 | 1164 |
|
1152 | 1165 | /* |
|
1157 | 1170 | ContentElement.call(this, 'span'); |
1158 | 1171 | } |
1159 | 1172 |
|
1160 | | - Span.prototype.initFromNode = function (doc, parent, node, xmlspace, errorHandler) { |
| 1173 | + Span.prototype.initFromNode = function (doc, parent, node, xmllang, xmlspace, errorHandler) { |
1161 | 1174 | StyledElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1162 | 1175 | TimedElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1163 | 1176 | AnimatedElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1164 | 1177 | LayoutElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1165 | 1178 | ContainerElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1166 | 1179 |
|
1167 | 1180 | this.space = xmlspace; |
| 1181 | + this.lang = xmllang; |
1168 | 1182 | }; |
1169 | 1183 |
|
1170 | 1184 | /* |
|
1175 | 1189 | ContentElement.call(this, 'span'); |
1176 | 1190 | } |
1177 | 1191 |
|
1178 | | - AnonymousSpan.prototype.initFromText = function (doc, parent, text, xmlspace, errorHandler) { |
| 1192 | + AnonymousSpan.prototype.initFromText = function (doc, parent, text, xmllang, xmlspace, errorHandler) { |
1179 | 1193 | TimedElement.prototype.initFromNode.call(this, doc, parent, null, errorHandler); |
1180 | 1194 |
|
1181 | 1195 | this.text = text; |
1182 | 1196 | this.space = xmlspace; |
| 1197 | + this.lang = xmllang; |
1183 | 1198 | }; |
1184 | 1199 |
|
1185 | 1200 | /* |
|
1190 | 1205 | ContentElement.call(this, 'br'); |
1191 | 1206 | } |
1192 | 1207 |
|
1193 | | - Br.prototype.initFromNode = function (doc, parent, node, errorHandler) { |
| 1208 | + Br.prototype.initFromNode = function (doc, parent, node, xmllang, errorHandler) { |
1194 | 1209 | LayoutElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
1195 | 1210 | TimedElement.prototype.initFromNode.call(this, doc, parent, node, errorHandler); |
| 1211 | + |
| 1212 | + this.lang = xmllang; |
1196 | 1213 | }; |
1197 | 1214 |
|
1198 | 1215 | /* |
|
1203 | 1220 | function Region() { |
1204 | 1221 | } |
1205 | 1222 |
|
1206 | | - Region.prototype.createDefaultRegion = function () { |
| 1223 | + Region.prototype.createDefaultRegion = function (xmllang) { |
1207 | 1224 | var r = new Region(); |
1208 | 1225 |
|
1209 | 1226 | IdentifiedElement.call(r, ''); |
1210 | 1227 | StyledElement.call(r, {}); |
1211 | 1228 | AnimatedElement.call(r, []); |
1212 | 1229 | TimedElement.call(r, 0, Number.POSITIVE_INFINITY, null); |
1213 | 1230 |
|
| 1231 | + this.lang = xmllang; |
| 1232 | + |
1214 | 1233 | return r; |
1215 | 1234 | }; |
1216 | 1235 |
|
1217 | | - Region.prototype.initFromNode = function (doc, node, errorHandler) { |
| 1236 | + Region.prototype.initFromNode = function (doc, node, xmllang, errorHandler) { |
1218 | 1237 | IdentifiedElement.prototype.initFromNode.call(this, doc, null, node, errorHandler); |
1219 | 1238 | TimedElement.prototype.initFromNode.call(this, doc, null, node, errorHandler); |
1220 | 1239 | AnimatedElement.prototype.initFromNode.call(this, doc, null, node, errorHandler); |
|
1226 | 1245 | /* remember referential styles for merging after nested styling is processed*/ |
1227 | 1246 |
|
1228 | 1247 | this.styleRefs = elementGetStyleRefs(node); |
| 1248 | + |
| 1249 | + /* xml:lang */ |
| 1250 | + |
| 1251 | + this.lang = xmllang; |
1229 | 1252 | }; |
1230 | 1253 |
|
1231 | 1254 | /* |
|
0 commit comments