titlekit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/.travis.yml +3 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE +22 -0
  6. data/README.md +335 -0
  7. data/Rakefile +8 -0
  8. data/lib/titlekit/have.rb +90 -0
  9. data/lib/titlekit/job.rb +446 -0
  10. data/lib/titlekit/parsers/ass.rb +175 -0
  11. data/lib/titlekit/parsers/ass.treetop +72 -0
  12. data/lib/titlekit/parsers/srt.rb +139 -0
  13. data/lib/titlekit/parsers/srt.treetop +73 -0
  14. data/lib/titlekit/parsers/ssa.rb +201 -0
  15. data/lib/titlekit/parsers/ssa.treetop +72 -0
  16. data/lib/titlekit/specification.rb +131 -0
  17. data/lib/titlekit/utilities.rb +3 -0
  18. data/lib/titlekit/version.rb +3 -0
  19. data/lib/titlekit/want.rb +24 -0
  20. data/lib/titlekit.rb +9 -0
  21. data/spec/ass_spec.rb +113 -0
  22. data/spec/automatic_grouping/automatic_grouping_spec.rb +55 -0
  23. data/spec/automatic_grouping/dual_tracks/expected.srt +15 -0
  24. data/spec/automatic_grouping/dual_tracks/one.srt +11 -0
  25. data/spec/automatic_grouping/dual_tracks/out.srt +15 -0
  26. data/spec/automatic_grouping/dual_tracks/two.srt +11 -0
  27. data/spec/automatic_grouping/single_track/expected.srt +24 -0
  28. data/spec/automatic_grouping/single_track/one.srt +11 -0
  29. data/spec/automatic_grouping/single_track/out.srt +24 -0
  30. data/spec/automatic_grouping/single_track/two.srt +11 -0
  31. data/spec/encoding_detection/a/in.ass +0 -0
  32. data/spec/encoding_detection/b/in.srt +2389 -0
  33. data/spec/encoding_detection/b/out.srt +2389 -0
  34. data/spec/encoding_detection/c/in.srt +5320 -0
  35. data/spec/encoding_detection/c/out.srt +5320 -0
  36. data/spec/encoding_detection/encoding_detection_spec.rb +81 -0
  37. data/spec/files/ass/authentic.ass +0 -0
  38. data/spec/files/ass/hard.ass +37 -0
  39. data/spec/files/ass/simple.ass +28 -0
  40. data/spec/files/srt/authentic.srt +2708 -0
  41. data/spec/files/srt/coordinates.srt +13 -0
  42. data/spec/files/srt/simple.srt +12 -0
  43. data/spec/files/ssa/simple.ssa +26 -0
  44. data/spec/files/try/unsupported-output.try +0 -0
  45. data/spec/files/try/unsupported.try +7 -0
  46. data/spec/format_conversion/ass_srt/expected.srt +2327 -0
  47. data/spec/format_conversion/ass_srt/in.ass +485 -0
  48. data/spec/format_conversion/ass_srt/out.srt +2327 -0
  49. data/spec/format_conversion/format_conversion_spec.rb +112 -0
  50. data/spec/format_conversion/srt_ass/expected.ass +19 -0
  51. data/spec/format_conversion/srt_ass/in.srt +12 -0
  52. data/spec/format_conversion/srt_ass/out.ass +19 -0
  53. data/spec/format_conversion/srt_ssa/expected.ssa +19 -0
  54. data/spec/format_conversion/srt_ssa/in.srt +12 -0
  55. data/spec/format_conversion/srt_ssa/out.ssa +19 -0
  56. data/spec/format_conversion/ssa_srt/expected.srt +9 -0
  57. data/spec/format_conversion/ssa_srt/in.ssa +26 -0
  58. data/spec/format_conversion/ssa_srt/out.srt +9 -0
  59. data/spec/job_spec.rb +162 -0
  60. data/spec/simultaneous_subtitles/dual/ass/expected.ass +22 -0
  61. data/spec/simultaneous_subtitles/dual/ass/out.ass +22 -0
  62. data/spec/simultaneous_subtitles/dual/one.srt +11 -0
  63. data/spec/simultaneous_subtitles/dual/srt/expected.srt +27 -0
  64. data/spec/simultaneous_subtitles/dual/srt/out.srt +27 -0
  65. data/spec/simultaneous_subtitles/dual/ssa/expected.ssa +22 -0
  66. data/spec/simultaneous_subtitles/dual/ssa/out.ssa +22 -0
  67. data/spec/simultaneous_subtitles/dual/two.srt +11 -0
  68. data/spec/simultaneous_subtitles/simultaneous_subtitles_spec.rb +220 -0
  69. data/spec/simultaneous_subtitles/triple/ass/expected.ass +25 -0
  70. data/spec/simultaneous_subtitles/triple/ass/out.ass +25 -0
  71. data/spec/simultaneous_subtitles/triple/one.srt +11 -0
  72. data/spec/simultaneous_subtitles/triple/srt/expected.srt +55 -0
  73. data/spec/simultaneous_subtitles/triple/srt/out.srt +55 -0
  74. data/spec/simultaneous_subtitles/triple/ssa/expected.ssa +25 -0
  75. data/spec/simultaneous_subtitles/triple/ssa/out.ssa +25 -0
  76. data/spec/simultaneous_subtitles/triple/three.srt +11 -0
  77. data/spec/simultaneous_subtitles/triple/two.srt +11 -0
  78. data/spec/simultaneous_subtitles/triple_plus/ass/expected.ass +93 -0
  79. data/spec/simultaneous_subtitles/triple_plus/ass/out.ass +93 -0
  80. data/spec/simultaneous_subtitles/triple_plus/five.srt +11 -0
  81. data/spec/simultaneous_subtitles/triple_plus/four.srt +11 -0
  82. data/spec/simultaneous_subtitles/triple_plus/one.srt +11 -0
  83. data/spec/simultaneous_subtitles/triple_plus/six.srt +11 -0
  84. data/spec/simultaneous_subtitles/triple_plus/srt/expected.srt +149 -0
  85. data/spec/simultaneous_subtitles/triple_plus/srt/out.srt +149 -0
  86. data/spec/simultaneous_subtitles/triple_plus/ssa/expected.ssa +93 -0
  87. data/spec/simultaneous_subtitles/triple_plus/ssa/out.ssa +93 -0
  88. data/spec/simultaneous_subtitles/triple_plus/three.srt +11 -0
  89. data/spec/simultaneous_subtitles/triple_plus/two.srt +11 -0
  90. data/spec/spec_helper.rb +7 -0
  91. data/spec/specifications_spec.rb +138 -0
  92. data/spec/srt_spec.rb +134 -0
  93. data/spec/ssa_spec.rb +90 -0
  94. data/spec/timecode_correction/double_reference/expected.srt +13 -0
  95. data/spec/timecode_correction/double_reference/in.srt +12 -0
  96. data/spec/timecode_correction/double_reference/out.srt +13 -0
  97. data/spec/timecode_correction/framerate/expected.srt +5 -0
  98. data/spec/timecode_correction/framerate/in.srt +4 -0
  99. data/spec/timecode_correction/framerate/out.srt +5 -0
  100. data/spec/timecode_correction/framerate_plus_reference/expected.srt +13 -0
  101. data/spec/timecode_correction/framerate_plus_reference/in.srt +12 -0
  102. data/spec/timecode_correction/framerate_plus_reference/out.srt +13 -0
  103. data/spec/timecode_correction/single_reference/expected.srt +13 -0
  104. data/spec/timecode_correction/single_reference/in.srt +12 -0
  105. data/spec/timecode_correction/single_reference/out.srt +13 -0
  106. data/spec/timecode_correction/timecode_correction_spec.rb +124 -0
  107. data/spec/transcoding/gb2312-ascii/in.srt +12 -0
  108. data/spec/transcoding/iso-8859-1_utf-8/expected.srt +12 -0
  109. data/spec/transcoding/iso-8859-1_utf-8/in.srt +11 -0
  110. data/spec/transcoding/iso-8859-1_utf-8/out.srt +12 -0
  111. data/spec/transcoding/transcoding_spec.rb +116 -0
  112. data/spec/transcoding/utf-8_gbk/expected.srt +12 -0
  113. data/spec/transcoding/utf-8_gbk/in.srt +11 -0
  114. data/spec/transcoding/utf-8_gbk/out.srt +12 -0
  115. data/spec/transcoding/windows-1252_utf-8/expected.srt +12 -0
  116. data/spec/transcoding/windows-1252_utf-8/in.srt +11 -0
  117. data/spec/transcoding/windows-1252_utf-8/out.srt +12 -0
  118. data/titlekit.gemspec +28 -0
  119. metadata +313 -0
@@ -0,0 +1,220 @@
1
+ require File.join(File.expand_path(__dir__), '../spec_helper')
2
+
3
+ describe Titlekit::Job do
4
+
5
+ describe 'Simultaneous Subtitles' do
6
+
7
+ context 'with dual subtitles' do
8
+ let(:ins) do
9
+ %w{one two}.map do |file|
10
+ File.join(__dir__, 'dual', "#{file}.srt")
11
+ end
12
+ end
13
+
14
+ context 'exporting to SRT' do
15
+ before(:all) do
16
+ @out = File.join(__dir__, 'dual', 'srt', 'out.srt')
17
+ @expected = File.join(__dir__, 'dual', 'srt', 'expected.srt')
18
+
19
+ File.delete(@out) if File.exist?(@out)
20
+ end
21
+
22
+ it 'runs the job' do
23
+ job = Titlekit::Job.new
24
+ ins.each { |file| job.have.file(file).encoding('UTF-8') }
25
+ job.want.file(@out)
26
+
27
+ expect(job.run).to be_true
28
+ end
29
+
30
+ it 'delivers the expected output' do
31
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
32
+ end
33
+ end
34
+
35
+ context 'exporting to SSA' do
36
+ before(:all) do
37
+ @out = File.join(__dir__, 'dual', 'ssa', 'out.ssa')
38
+ @expected = File.join(__dir__, 'dual', 'ssa', 'expected.ssa')
39
+
40
+ File.delete(@out) if File.exist?(@out)
41
+ end
42
+
43
+ it 'runs the job' do
44
+ job = Titlekit::Job.new
45
+ ins.each { |file| job.have.file(file).encoding('UTF-8') }
46
+ job.want.file(@out)
47
+
48
+ expect(job.run).to be_true
49
+ end
50
+
51
+ it 'delivers the expected output' do
52
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
53
+ end
54
+ end
55
+
56
+ context 'exporting to ASS' do
57
+ before(:all) do
58
+ @out = File.join(__dir__, 'dual', 'ass', 'out.ass')
59
+ @expected = File.join(__dir__, 'dual', 'ass', 'expected.ass')
60
+
61
+ File.delete(@out) if File.exist?(@out)
62
+ end
63
+
64
+ it 'runs the job' do
65
+ job = Titlekit::Job.new
66
+ ins.each { |file| job.have.file(file).encoding('UTF-8') }
67
+ job.want.file(@out)
68
+
69
+ expect(job.run).to be_true
70
+ end
71
+
72
+ it 'delivers the expected output' do
73
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
74
+ end
75
+ end
76
+ end
77
+
78
+ context 'with triple subtitles' do
79
+ let(:ins) do
80
+ %w{one two three}.map do |file|
81
+ File.join(__dir__, 'triple', "#{file}.srt")
82
+ end
83
+ end
84
+
85
+ context 'exporting to SRT' do
86
+ before(:all) do
87
+ @out = File.join(__dir__, 'triple', 'srt', 'out.srt')
88
+ @expected = File.join(__dir__, 'triple', 'srt', 'expected.srt')
89
+
90
+ File.delete(@out) if File.exist?(@out)
91
+ end
92
+
93
+ it 'runs the job' do
94
+ job = Titlekit::Job.new
95
+ ins.each { |file| job.have.file(file).encoding('UTF-8') }
96
+ job.want.file(@out)
97
+
98
+ expect(job.run).to be_true
99
+ end
100
+
101
+ it 'delivers the expected output' do
102
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
103
+ end
104
+ end
105
+
106
+ context 'exporting to SSA' do
107
+ before(:all) do
108
+ @out = File.join(__dir__, 'triple', 'ssa', 'out.ssa')
109
+ @expected = File.join(__dir__, 'triple', 'ssa', 'expected.ssa')
110
+
111
+ File.delete(@out) if File.exist?(@out)
112
+ end
113
+
114
+ it 'runs the job' do
115
+ job = Titlekit::Job.new
116
+ ins.each { |file| job.have.file(file).encoding('UTF-8') }
117
+ job.want.file(@out)
118
+
119
+ expect(job.run).to be_true
120
+ end
121
+
122
+ it 'delivers the expected output' do
123
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
124
+ end
125
+ end
126
+
127
+ context 'exporting to ASS' do
128
+ before(:all) do
129
+ @out = File.join(__dir__, 'triple', 'ass', 'out.ass')
130
+ @expected = File.join(__dir__, 'triple', 'ass', 'expected.ass')
131
+
132
+ File.delete(@out) if File.exist?(@out)
133
+ end
134
+
135
+ it 'runs the job' do
136
+ job = Titlekit::Job.new
137
+ ins.each { |file| job.have.file(file).encoding('UTF-8') }
138
+ job.want.file(@out)
139
+
140
+ expect(job.run).to be_true
141
+ end
142
+
143
+ it 'delivers the expected output' do
144
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
145
+ end
146
+ end
147
+ end
148
+
149
+ context 'with three+ simultaneous subtitles' do
150
+ let(:ins) do
151
+ %w{one two three four five six}.map do |file|
152
+ File.join(__dir__, 'triple_plus', "#{file}.srt")
153
+ end
154
+ end
155
+
156
+ context 'exporting to SRT' do
157
+ before(:all) do
158
+ @out = File.join(__dir__, 'triple_plus', 'srt', 'out.srt')
159
+ @expected = File.join(__dir__, 'triple_plus', 'srt', 'expected.srt')
160
+
161
+ File.delete(@out) if File.exist?(@out)
162
+ end
163
+
164
+ it 'runs the job' do
165
+ job = Titlekit::Job.new
166
+ ins.each { |file| job.have.file(file).encoding('UTF-8') }
167
+ job.want.file(@out)
168
+
169
+ expect(job.run).to be_true
170
+ end
171
+
172
+ it 'delivers the expected output' do
173
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
174
+ end
175
+ end
176
+
177
+ context 'exporting to SSA' do
178
+ before(:all) do
179
+ @out = File.join(__dir__, 'triple_plus', 'ssa', 'out.ssa')
180
+ @expected = File.join(__dir__, 'triple_plus', 'ssa', 'expected.ssa')
181
+
182
+ File.delete(@out) if File.exist?(@out)
183
+ end
184
+
185
+ it 'runs the job' do
186
+ job = Titlekit::Job.new
187
+ ins.each { |file| job.have.file(file).encoding('UTF-8') }
188
+ job.want.file(@out)
189
+
190
+ expect(job.run).to be_true
191
+ end
192
+
193
+ it 'delivers the expected output' do
194
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
195
+ end
196
+ end
197
+
198
+ context 'exporting to ASS' do
199
+ before(:all) do
200
+ @out = File.join(__dir__, 'triple_plus', 'ass', 'out.ass')
201
+ @expected = File.join(__dir__, 'triple_plus', 'ass', 'expected.ass')
202
+
203
+ File.delete(@out) if File.exist?(@out)
204
+ end
205
+
206
+ it 'runs the job' do
207
+ job = Titlekit::Job.new
208
+ ins.each { |file| job.have.file(file).encoding('UTF-8') }
209
+ job.want.file(@out)
210
+
211
+ expect(job.run).to be_true
212
+ end
213
+
214
+ it 'delivers the expected output' do
215
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
216
+ end
217
+ end
218
+ end
219
+ end
220
+ end
@@ -0,0 +1,25 @@
1
+ [Script Info]
2
+ ScriptType: v4.00+
3
+
4
+ [V4+ Styles]
5
+ Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
6
+ Style: Default,Arial,16,&H00FFFFFF,&H00FFFFFF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
7
+ Style: Top,Arial,16,&H00FFFFFF,&H00FFFFFF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,8,20,20,20,1
8
+ Style: Middle,Arial,16,&H00FFFFFF,&H00FFFFFF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,5,20,20,20,1
9
+ Style: EDF393,Arial,16,&H0093F3ED,&H0093F3ED,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
10
+ Style: F5E665,Arial,16,&H0065E6F5,&H0065E6F5,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
11
+ Style: FFC472,Arial,16,&H0072C4FF,&H0072C4FF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
12
+ Style: FFA891,Arial,16,&H0091A8FF,&H0091A8FF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
13
+ Style: 89BABE,Arial,16,&H00BEBA89,&H00BEBA89,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
14
+
15
+ [Events]
16
+ Format: Layer, Start, End, Style, Actor, MarginL, MarginR, MarginV, Effect, Text
17
+ Dialogue: 0,0:00:02.00,0:00:10.00,Default,,0000,0000,0000,,We are using three subtitles simultaneously
18
+ Dialogue: 0,0:00:02.00,0:00:10.00,Top,,0000,0000,0000,,Somos utilizando tres subtítulos simultáneamente
19
+ Dialogue: 0,0:00:02.50,0:00:10.00,Middle,,0000,0000,0000,,Wir verwenden drei Untertitel zur gleichen Zeit
20
+ Dialogue: 0,0:00:12.00,0:00:20.00,Default,,0000,0000,0000,,That is correct
21
+ Dialogue: 0,0:00:12.00,0:00:20.50,Top,,0000,0000,0000,,Esto es correcto
22
+ Dialogue: 0,0:00:12.50,0:00:21.00,Middle,,0000,0000,0000,,Das stimmt
23
+ Dialogue: 0,0:00:22.00,0:00:30.00,Middle,,0000,0000,0000,,Sie sind jedoch nicht ganz synchron
24
+ Dialogue: 0,0:00:22.50,0:00:30.50,Default,,0000,0000,0000,,They are not fully aligned, though
25
+ Dialogue: 0,0:00:23.00,0:00:31.00,Top,,0000,0000,0000,,No son alineado sin embargo
@@ -0,0 +1,25 @@
1
+ [Script Info]
2
+ ScriptType: v4.00+
3
+
4
+ [V4+ Styles]
5
+ Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
6
+ Style: Default,Arial,16,&H00FFFFFF,&H00FFFFFF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
7
+ Style: Top,Arial,16,&H00FFFFFF,&H00FFFFFF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,8,20,20,20,1
8
+ Style: Middle,Arial,16,&H00FFFFFF,&H00FFFFFF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,5,20,20,20,1
9
+ Style: EDF393,Arial,16,&H0093F3ED,&H0093F3ED,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
10
+ Style: F5E665,Arial,16,&H0065E6F5,&H0065E6F5,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
11
+ Style: FFC472,Arial,16,&H0072C4FF,&H0072C4FF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
12
+ Style: FFA891,Arial,16,&H0091A8FF,&H0091A8FF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
13
+ Style: 89BABE,Arial,16,&H00BEBA89,&H00BEBA89,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
14
+
15
+ [Events]
16
+ Format: Layer, Start, End, Style, Actor, MarginL, MarginR, MarginV, Effect, Text
17
+ Dialogue: 0,0:00:02.00,0:00:10.00,Default,,0000,0000,0000,,We are using three subtitles simultaneously
18
+ Dialogue: 0,0:00:02.00,0:00:10.00,Top,,0000,0000,0000,,Somos utilizando tres subtítulos simultáneamente
19
+ Dialogue: 0,0:00:02.50,0:00:10.00,Middle,,0000,0000,0000,,Wir verwenden drei Untertitel zur gleichen Zeit
20
+ Dialogue: 0,0:00:12.00,0:00:20.00,Default,,0000,0000,0000,,That is correct
21
+ Dialogue: 0,0:00:12.00,0:00:20.50,Top,,0000,0000,0000,,Esto es correcto
22
+ Dialogue: 0,0:00:12.50,0:00:21.00,Middle,,0000,0000,0000,,Das stimmt
23
+ Dialogue: 0,0:00:22.00,0:00:30.00,Middle,,0000,0000,0000,,Sie sind jedoch nicht ganz synchron
24
+ Dialogue: 0,0:00:22.50,0:00:30.50,Default,,0000,0000,0000,,They are not fully aligned, though
25
+ Dialogue: 0,0:00:23.00,0:00:31.00,Top,,0000,0000,0000,,No son alineado sin embargo
@@ -0,0 +1,11 @@
1
+ 1
2
+ 00:00:02,000 --> 00:00:10,000
3
+ We are using three subtitles simultaneously
4
+
5
+ 2
6
+ 00:00:12,000 --> 00:00:20,000
7
+ That is correct
8
+
9
+ 3
10
+ 00:00:22,500 --> 00:00:30,500
11
+ They are not fully aligned, though
@@ -0,0 +1,55 @@
1
+ 1
2
+ 00:00:02,000 --> 00:00:02,500
3
+ <font color="#EDF393">We are using three subtitles simultaneously</font>
4
+ <font color="#F5E665">Somos utilizando tres subtítulos simultáneamente</font>
5
+
6
+ 2
7
+ 00:00:02,500 --> 00:00:10,000
8
+ <font color="#EDF393">We are using three subtitles simultaneously</font>
9
+ <font color="#F5E665">Somos utilizando tres subtítulos simultáneamente</font>
10
+ <font color="#FFC472">Wir verwenden drei Untertitel zur gleichen Zeit</font>
11
+
12
+ 3
13
+ 00:00:12,000 --> 00:00:12,500
14
+ <font color="#EDF393">That is correct</font>
15
+ <font color="#F5E665">Esto es correcto</font>
16
+
17
+ 4
18
+ 00:00:12,500 --> 00:00:20,000
19
+ <font color="#EDF393">That is correct</font>
20
+ <font color="#F5E665">Esto es correcto</font>
21
+ <font color="#FFC472">Das stimmt</font>
22
+
23
+ 5
24
+ 00:00:20,000 --> 00:00:20,500
25
+ <font color="#F5E665">Esto es correcto</font>
26
+ <font color="#FFC472">Das stimmt</font>
27
+
28
+ 6
29
+ 00:00:20,500 --> 00:00:21,000
30
+ <font color="#FFC472">Das stimmt</font>
31
+
32
+ 7
33
+ 00:00:22,000 --> 00:00:22,500
34
+ <font color="#FFC472">Sie sind jedoch nicht ganz synchron</font>
35
+
36
+ 8
37
+ 00:00:22,500 --> 00:00:23,000
38
+ <font color="#EDF393">They are not fully aligned, though</font>
39
+ <font color="#FFC472">Sie sind jedoch nicht ganz synchron</font>
40
+
41
+ 9
42
+ 00:00:23,000 --> 00:00:30,000
43
+ <font color="#EDF393">They are not fully aligned, though</font>
44
+ <font color="#F5E665">No son alineado sin embargo</font>
45
+ <font color="#FFC472">Sie sind jedoch nicht ganz synchron</font>
46
+
47
+ 10
48
+ 00:00:30,000 --> 00:00:30,500
49
+ <font color="#EDF393">They are not fully aligned, though</font>
50
+ <font color="#F5E665">No son alineado sin embargo</font>
51
+
52
+ 11
53
+ 00:00:30,500 --> 00:00:31,000
54
+ <font color="#F5E665">No son alineado sin embargo</font>
55
+
@@ -0,0 +1,55 @@
1
+ 1
2
+ 00:00:02,000 --> 00:00:02,500
3
+ <font color="#EDF393">We are using three subtitles simultaneously</font>
4
+ <font color="#F5E665">Somos utilizando tres subtítulos simultáneamente</font>
5
+
6
+ 2
7
+ 00:00:02,500 --> 00:00:10,000
8
+ <font color="#EDF393">We are using three subtitles simultaneously</font>
9
+ <font color="#F5E665">Somos utilizando tres subtítulos simultáneamente</font>
10
+ <font color="#FFC472">Wir verwenden drei Untertitel zur gleichen Zeit</font>
11
+
12
+ 3
13
+ 00:00:12,000 --> 00:00:12,500
14
+ <font color="#EDF393">That is correct</font>
15
+ <font color="#F5E665">Esto es correcto</font>
16
+
17
+ 4
18
+ 00:00:12,500 --> 00:00:20,000
19
+ <font color="#EDF393">That is correct</font>
20
+ <font color="#F5E665">Esto es correcto</font>
21
+ <font color="#FFC472">Das stimmt</font>
22
+
23
+ 5
24
+ 00:00:20,000 --> 00:00:20,500
25
+ <font color="#F5E665">Esto es correcto</font>
26
+ <font color="#FFC472">Das stimmt</font>
27
+
28
+ 6
29
+ 00:00:20,500 --> 00:00:21,000
30
+ <font color="#FFC472">Das stimmt</font>
31
+
32
+ 7
33
+ 00:00:22,000 --> 00:00:22,500
34
+ <font color="#FFC472">Sie sind jedoch nicht ganz synchron</font>
35
+
36
+ 8
37
+ 00:00:22,500 --> 00:00:23,000
38
+ <font color="#EDF393">They are not fully aligned, though</font>
39
+ <font color="#FFC472">Sie sind jedoch nicht ganz synchron</font>
40
+
41
+ 9
42
+ 00:00:23,000 --> 00:00:30,000
43
+ <font color="#EDF393">They are not fully aligned, though</font>
44
+ <font color="#F5E665">No son alineado sin embargo</font>
45
+ <font color="#FFC472">Sie sind jedoch nicht ganz synchron</font>
46
+
47
+ 10
48
+ 00:00:30,000 --> 00:00:30,500
49
+ <font color="#EDF393">They are not fully aligned, though</font>
50
+ <font color="#F5E665">No son alineado sin embargo</font>
51
+
52
+ 11
53
+ 00:00:30,500 --> 00:00:31,000
54
+ <font color="#F5E665">No son alineado sin embargo</font>
55
+
@@ -0,0 +1,25 @@
1
+ [Script Info]
2
+ ScriptType: v4.00
3
+
4
+ [V4 Styles]
5
+ Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
6
+ Style: Default,Arial,16,16777215,16777215,16777215,-2147483640,0,0,1,3,0,2,70,70,40,0,0
7
+ Style: Middle,Arial,16,16777215,16777215,16777215,-2147483640,0,0,1,3,0,10,70,70,40,0,0
8
+ Style: Top,Arial,16,16777215,16777215,16777215,-2147483640,0,0,1,3,0,6,70,70,40,0,0
9
+ Style: EDF393,Arial,16,9696237,9696237,9696237,-2147483640,0,0,1,3,0,2,70,70,40,0,0
10
+ Style: F5E665,Arial,16,6678261,6678261,6678261,-2147483640,0,0,1,3,0,2,70,70,40,0,0
11
+ Style: FFC472,Arial,16,7521535,7521535,7521535,-2147483640,0,0,1,3,0,2,70,70,40,0,0
12
+ Style: FFA891,Arial,16,9545983,9545983,9545983,-2147483640,0,0,1,3,0,2,70,70,40,0,0
13
+ Style: 89BABE,Arial,16,12499593,12499593,12499593,-2147483640,0,0,1,3,0,2,70,70,40,0,0
14
+
15
+ [Events]
16
+ Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
17
+ Dialogue: 0,0:00:02.00,0:00:10.00,Default,,0000,0000,0000,,We are using three subtitles simultaneously
18
+ Dialogue: 0,0:00:02.00,0:00:10.00,Top,,0000,0000,0000,,Somos utilizando tres subtítulos simultáneamente
19
+ Dialogue: 0,0:00:02.50,0:00:10.00,Middle,,0000,0000,0000,,Wir verwenden drei Untertitel zur gleichen Zeit
20
+ Dialogue: 0,0:00:12.00,0:00:20.00,Default,,0000,0000,0000,,That is correct
21
+ Dialogue: 0,0:00:12.00,0:00:20.50,Top,,0000,0000,0000,,Esto es correcto
22
+ Dialogue: 0,0:00:12.50,0:00:21.00,Middle,,0000,0000,0000,,Das stimmt
23
+ Dialogue: 0,0:00:22.00,0:00:30.00,Middle,,0000,0000,0000,,Sie sind jedoch nicht ganz synchron
24
+ Dialogue: 0,0:00:22.50,0:00:30.50,Default,,0000,0000,0000,,They are not fully aligned, though
25
+ Dialogue: 0,0:00:23.00,0:00:31.00,Top,,0000,0000,0000,,No son alineado sin embargo
@@ -0,0 +1,25 @@
1
+ [Script Info]
2
+ ScriptType: v4.00
3
+
4
+ [V4 Styles]
5
+ Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
6
+ Style: Default,Arial,16,16777215,16777215,16777215,-2147483640,0,0,1,3,0,2,70,70,40,0,0
7
+ Style: Middle,Arial,16,16777215,16777215,16777215,-2147483640,0,0,1,3,0,10,70,70,40,0,0
8
+ Style: Top,Arial,16,16777215,16777215,16777215,-2147483640,0,0,1,3,0,6,70,70,40,0,0
9
+ Style: EDF393,Arial,16,9696237,9696237,9696237,-2147483640,0,0,1,3,0,2,70,70,40,0,0
10
+ Style: F5E665,Arial,16,6678261,6678261,6678261,-2147483640,0,0,1,3,0,2,70,70,40,0,0
11
+ Style: FFC472,Arial,16,7521535,7521535,7521535,-2147483640,0,0,1,3,0,2,70,70,40,0,0
12
+ Style: FFA891,Arial,16,9545983,9545983,9545983,-2147483640,0,0,1,3,0,2,70,70,40,0,0
13
+ Style: 89BABE,Arial,16,12499593,12499593,12499593,-2147483640,0,0,1,3,0,2,70,70,40,0,0
14
+
15
+ [Events]
16
+ Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
17
+ Dialogue: 0,0:00:02.00,0:00:10.00,Default,,0000,0000,0000,,We are using three subtitles simultaneously
18
+ Dialogue: 0,0:00:02.00,0:00:10.00,Top,,0000,0000,0000,,Somos utilizando tres subtítulos simultáneamente
19
+ Dialogue: 0,0:00:02.50,0:00:10.00,Middle,,0000,0000,0000,,Wir verwenden drei Untertitel zur gleichen Zeit
20
+ Dialogue: 0,0:00:12.00,0:00:20.00,Default,,0000,0000,0000,,That is correct
21
+ Dialogue: 0,0:00:12.00,0:00:20.50,Top,,0000,0000,0000,,Esto es correcto
22
+ Dialogue: 0,0:00:12.50,0:00:21.00,Middle,,0000,0000,0000,,Das stimmt
23
+ Dialogue: 0,0:00:22.00,0:00:30.00,Middle,,0000,0000,0000,,Sie sind jedoch nicht ganz synchron
24
+ Dialogue: 0,0:00:22.50,0:00:30.50,Default,,0000,0000,0000,,They are not fully aligned, though
25
+ Dialogue: 0,0:00:23.00,0:00:31.00,Top,,0000,0000,0000,,No son alineado sin embargo
@@ -0,0 +1,11 @@
1
+ 1
2
+ 00:00:02,500 --> 00:00:10,000
3
+ Wir verwenden drei Untertitel zur gleichen Zeit
4
+
5
+ 2
6
+ 00:00:12,500 --> 00:00:21,000
7
+ Das stimmt
8
+
9
+ 3
10
+ 00:00:22,000 --> 00:00:30,000
11
+ Sie sind jedoch nicht ganz synchron
@@ -0,0 +1,11 @@
1
+ 1
2
+ 00:00:02,000 --> 00:00:10,000
3
+ Somos utilizando tres subtítulos simultáneamente
4
+
5
+ 2
6
+ 00:00:12,000 --> 00:00:20,500
7
+ Esto es correcto
8
+
9
+ 3
10
+ 00:00:23,000 --> 00:00:31,000
11
+ No son alineado sin embargo
@@ -0,0 +1,93 @@
1
+ [Script Info]
2
+ ScriptType: v4.00+
3
+
4
+ [V4+ Styles]
5
+ Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
6
+ Style: Default,Arial,16,&H00FFFFFF,&H00FFFFFF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
7
+ Style: Top,Arial,16,&H00FFFFFF,&H00FFFFFF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,8,20,20,20,1
8
+ Style: Middle,Arial,16,&H00FFFFFF,&H00FFFFFF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,5,20,20,20,1
9
+ Style: EDF393,Arial,16,&H0093F3ED,&H0093F3ED,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
10
+ Style: F5E665,Arial,16,&H0065E6F5,&H0065E6F5,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
11
+ Style: FFC472,Arial,16,&H0072C4FF,&H0072C4FF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
12
+ Style: FFA891,Arial,16,&H0091A8FF,&H0091A8FF,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
13
+ Style: 89BABE,Arial,16,&H00BEBA89,&H00BEBA89,&H40000000,&H40000000,0,0,0,0,100,100,0,0.00,1,3,0,2,20,20,20,1
14
+
15
+ [Events]
16
+ Format: Layer, Start, End, Style, Actor, MarginL, MarginR, MarginV, Effect, Text
17
+ Dialogue: 0,0:00:01.00,0:00:02.00,EDF393,,0000,0000,0000,,Wir verwenden zu viele Untertitel zur gleichen Zeit
18
+ Dialogue: 0,0:00:02.00,0:00:02.40,EDF393,,0000,0000,0000,,Wir verwenden sechs Untertitel zur gleichen Zeit
19
+ Dialogue: 0,0:00:02.00,0:00:02.40,F5E665,,0000,0000,0000,,We are using six subtitles simultaneously
20
+ Dialogue: 0,0:00:02.00,0:00:02.40,FFC472,,0000,0000,0000,,Somos utilizando seis subtítulos simultáneamente
21
+ Dialogue: 0,0:00:02.00,0:00:02.40,EDF393,,0000,0000,0000,,Wir verwenden zu viele Untertitel zur gleichen Zeit
22
+ Dialogue: 0,0:00:02.40,0:00:02.70,EDF393,,0000,0000,0000,,Wir verwenden sechs Untertitel zur gleichen Zeit
23
+ Dialogue: 0,0:00:02.40,0:00:02.70,F5E665,,0000,0000,0000,,We are using six subtitles simultaneously
24
+ Dialogue: 0,0:00:02.40,0:00:02.70,FFC472,,0000,0000,0000,,Somos utilizando seis subtítulos simultáneamente
25
+ Dialogue: 0,0:00:02.40,0:00:02.70,89BABE,,0000,0000,0000,,We are using way too many here
26
+ Dialogue: 0,0:00:02.40,0:00:02.70,EDF393,,0000,0000,0000,,Wir verwenden zu viele Untertitel zur gleichen Zeit
27
+ Dialogue: 0,0:00:02.70,0:00:10.00,EDF393,,0000,0000,0000,,Wir verwenden sechs Untertitel zur gleichen Zeit
28
+ Dialogue: 0,0:00:02.70,0:00:10.00,F5E665,,0000,0000,0000,,We are using six subtitles simultaneously
29
+ Dialogue: 0,0:00:02.70,0:00:10.00,FFC472,,0000,0000,0000,,Somos utilizando seis subtítulos simultáneamente
30
+ Dialogue: 0,0:00:02.70,0:00:10.00,FFA891,,0000,0000,0000,,¿Qué está pasando?
31
+ Dialogue: 0,0:00:02.70,0:00:10.00,89BABE,,0000,0000,0000,,We are using way too many here
32
+ Dialogue: 0,0:00:02.70,0:00:10.00,EDF393,,0000,0000,0000,,Wir verwenden zu viele Untertitel zur gleichen Zeit
33
+ Dialogue: 0,0:00:10.00,0:00:10.30,FFA891,,0000,0000,0000,,¿Qué está pasando?
34
+ Dialogue: 0,0:00:10.00,0:00:10.30,89BABE,,0000,0000,0000,,We are using way too many here
35
+ Dialogue: 0,0:00:10.00,0:00:10.30,EDF393,,0000,0000,0000,,Wir verwenden zu viele Untertitel zur gleichen Zeit
36
+ Dialogue: 0,0:00:10.30,0:00:10.40,89BABE,,0000,0000,0000,,We are using way too many here
37
+ Dialogue: 0,0:00:10.30,0:00:10.40,EDF393,,0000,0000,0000,,Wir verwenden zu viele Untertitel zur gleichen Zeit
38
+ Dialogue: 0,0:00:10.40,0:00:11.00,EDF393,,0000,0000,0000,,Wir verwenden zu viele Untertitel zur gleichen Zeit
39
+ Dialogue: 0,0:00:11.90,0:00:12.00,FFA891,,0000,0000,0000,,¡Dios mio!
40
+ Dialogue: 0,0:00:12.00,0:00:12.10,EDF393,,0000,0000,0000,,Das stimmt
41
+ Dialogue: 0,0:00:12.00,0:00:12.10,F5E665,,0000,0000,0000,,That is correct
42
+ Dialogue: 0,0:00:12.00,0:00:12.10,FFC472,,0000,0000,0000,,Esto es correcto
43
+ Dialogue: 0,0:00:12.00,0:00:12.10,FFA891,,0000,0000,0000,,¡Dios mio!
44
+ Dialogue: 0,0:00:12.10,0:00:12.20,EDF393,,0000,0000,0000,,Das stimmt
45
+ Dialogue: 0,0:00:12.10,0:00:12.20,F5E665,,0000,0000,0000,,That is correct
46
+ Dialogue: 0,0:00:12.10,0:00:12.20,FFC472,,0000,0000,0000,,Esto es correcto
47
+ Dialogue: 0,0:00:12.10,0:00:12.20,FFA891,,0000,0000,0000,,¡Dios mio!
48
+ Dialogue: 0,0:00:12.10,0:00:12.20,89BABE,,0000,0000,0000,,Man I feel sick
49
+ Dialogue: 0,0:00:12.20,0:00:20.00,EDF393,,0000,0000,0000,,Das stimmt
50
+ Dialogue: 0,0:00:12.20,0:00:20.00,F5E665,,0000,0000,0000,,That is correct
51
+ Dialogue: 0,0:00:12.20,0:00:20.00,FFC472,,0000,0000,0000,,Esto es correcto
52
+ Dialogue: 0,0:00:12.20,0:00:20.00,FFA891,,0000,0000,0000,,¡Dios mio!
53
+ Dialogue: 0,0:00:12.20,0:00:20.00,89BABE,,0000,0000,0000,,Man I feel sick
54
+ Dialogue: 0,0:00:12.20,0:00:20.00,EDF393,,0000,0000,0000,,Die Dinge geraten aus dem Ruder
55
+ Dialogue: 0,0:00:20.00,0:00:20.20,FFA891,,0000,0000,0000,,¡Dios mio!
56
+ Dialogue: 0,0:00:20.00,0:00:20.20,89BABE,,0000,0000,0000,,Man I feel sick
57
+ Dialogue: 0,0:00:20.00,0:00:20.20,EDF393,,0000,0000,0000,,Die Dinge geraten aus dem Ruder
58
+ Dialogue: 0,0:00:20.20,0:00:20.90,FFA891,,0000,0000,0000,,¡Dios mio!
59
+ Dialogue: 0,0:00:20.20,0:00:20.90,89BABE,,0000,0000,0000,,Man I feel sick
60
+ Dialogue: 0,0:00:20.90,0:00:21.40,FFA891,,0000,0000,0000,,¡Dios mio!
61
+ Dialogue: 0,0:00:22.00,0:00:22.40,F5E665,,0000,0000,0000,,They are not fully aligned, though
62
+ Dialogue: 0,0:00:22.40,0:00:22.50,F5E665,,0000,0000,0000,,They are not fully aligned, though
63
+ Dialogue: 0,0:00:22.40,0:00:22.50,FFA891,,0000,0000,0000,,Esta cosa esta totalmente loca
64
+ Dialogue: 0,0:00:22.50,0:00:22.80,EDF393,,0000,0000,0000,,Sie sind jedoch nicht ganz synchron
65
+ Dialogue: 0,0:00:22.50,0:00:22.80,F5E665,,0000,0000,0000,,They are not fully aligned, though
66
+ Dialogue: 0,0:00:22.50,0:00:22.80,FFA891,,0000,0000,0000,,Esta cosa esta totalmente loca
67
+ Dialogue: 0,0:00:22.80,0:00:23.00,EDF393,,0000,0000,0000,,Sie sind jedoch nicht ganz synchron
68
+ Dialogue: 0,0:00:22.80,0:00:23.00,F5E665,,0000,0000,0000,,They are not fully aligned, though
69
+ Dialogue: 0,0:00:22.80,0:00:23.00,FFA891,,0000,0000,0000,,Esta cosa esta totalmente loca
70
+ Dialogue: 0,0:00:22.80,0:00:23.00,EDF393,,0000,0000,0000,,Sie sind überhaupt nicht synchron aber wen interessiert das schon
71
+ Dialogue: 0,0:00:23.00,0:00:23.50,EDF393,,0000,0000,0000,,Sie sind jedoch nicht ganz synchron
72
+ Dialogue: 0,0:00:23.00,0:00:23.50,F5E665,,0000,0000,0000,,They are not fully aligned, though
73
+ Dialogue: 0,0:00:23.00,0:00:23.50,FFC472,,0000,0000,0000,,No son alineado sin embargo
74
+ Dialogue: 0,0:00:23.00,0:00:23.50,FFA891,,0000,0000,0000,,Esta cosa esta totalmente loca
75
+ Dialogue: 0,0:00:23.00,0:00:23.50,EDF393,,0000,0000,0000,,Sie sind überhaupt nicht synchron aber wen interessiert das schon
76
+ Dialogue: 0,0:00:23.50,0:00:30.00,EDF393,,0000,0000,0000,,Sie sind jedoch nicht ganz synchron
77
+ Dialogue: 0,0:00:23.50,0:00:30.00,F5E665,,0000,0000,0000,,They are not fully aligned, though
78
+ Dialogue: 0,0:00:23.50,0:00:30.00,FFC472,,0000,0000,0000,,No son alineado sin embargo
79
+ Dialogue: 0,0:00:23.50,0:00:30.00,FFA891,,0000,0000,0000,,Esta cosa esta totalmente loca
80
+ Dialogue: 0,0:00:23.50,0:00:30.00,89BABE,,0000,0000,0000,,This is getting way out of hand!
81
+ Dialogue: 0,0:00:23.50,0:00:30.00,EDF393,,0000,0000,0000,,Sie sind überhaupt nicht synchron aber wen interessiert das schon
82
+ Dialogue: 0,0:00:30.00,0:00:30.30,EDF393,,0000,0000,0000,,Sie sind jedoch nicht ganz synchron
83
+ Dialogue: 0,0:00:30.00,0:00:30.30,FFC472,,0000,0000,0000,,No son alineado sin embargo
84
+ Dialogue: 0,0:00:30.00,0:00:30.30,FFA891,,0000,0000,0000,,Esta cosa esta totalmente loca
85
+ Dialogue: 0,0:00:30.00,0:00:30.30,89BABE,,0000,0000,0000,,This is getting way out of hand!
86
+ Dialogue: 0,0:00:30.00,0:00:30.30,EDF393,,0000,0000,0000,,Sie sind überhaupt nicht synchron aber wen interessiert das schon
87
+ Dialogue: 0,0:00:30.30,0:00:30.50,EDF393,,0000,0000,0000,,Sie sind jedoch nicht ganz synchron
88
+ Dialogue: 0,0:00:30.30,0:00:30.50,FFC472,,0000,0000,0000,,No son alineado sin embargo
89
+ Dialogue: 0,0:00:30.30,0:00:30.50,89BABE,,0000,0000,0000,,This is getting way out of hand!
90
+ Dialogue: 0,0:00:30.30,0:00:30.50,EDF393,,0000,0000,0000,,Sie sind überhaupt nicht synchron aber wen interessiert das schon
91
+ Dialogue: 0,0:00:30.50,0:00:31.00,FFC472,,0000,0000,0000,,No son alineado sin embargo
92
+ Dialogue: 0,0:00:30.50,0:00:31.00,89BABE,,0000,0000,0000,,This is getting way out of hand!
93
+ Dialogue: 0,0:00:31.00,0:00:32.10,89BABE,,0000,0000,0000,,This is getting way out of hand!