Merge branch 'dev-separate-duration'
This commit is contained in:
commit
38081cdfe4
12
README.md
12
README.md
@ -19,7 +19,7 @@ Example usage
|
||||
-------------
|
||||
|
||||
```sh
|
||||
./danmaku2ass -o foo.ass -s 1920x1080 -fn "MS PGothic" -fs 48 -a 0.8 -l 5 foo.xml
|
||||
./danmaku2ass -o foo.ass -s 1920x1080 -fn "MS PGothic" -fs 48 -a 0.8 -dm 5 -ds 5 foo.xml
|
||||
```
|
||||
|
||||
Name the output file with same basename but different extension (.ass) as the video. Put them into the same directory and most media players will automatically load them. For MPlayer, you will have to specify `-ass` option.
|
||||
@ -42,7 +42,7 @@ Command line reference
|
||||
|
||||
```
|
||||
usage: danmaku2ass.py [-h] [-o OUTPUT] -s WIDTHxHEIGHT [-fn FONT] [-fs SIZE]
|
||||
[-a ALPHA] [-l SECONDS] [-p HEIGHT] [-r]
|
||||
[-a ALPHA] [-dm SECONDS] [-ds SECONDS] [-p HEIGHT] [-r]
|
||||
FILE [FILE ...]
|
||||
|
||||
positional arguments:
|
||||
@ -55,13 +55,15 @@ optional arguments:
|
||||
-s WIDTHxHEIGHT, --size WIDTHxHEIGHT
|
||||
Stage size in pixels
|
||||
-fn FONT, --font FONT
|
||||
Specify font face [default: sans-serif]
|
||||
Specify font face [default: Helvetica]
|
||||
-fs SIZE, --fontsize SIZE
|
||||
Default font size [default: 25]
|
||||
-a ALPHA, --alpha ALPHA
|
||||
Text opacity
|
||||
-l SECONDS, --lifetime SECONDS
|
||||
Duration of comment display [default: 5]
|
||||
-dm SECONDS, --duration-marquee SECONDS
|
||||
Duration of scrolling comment display [default: 5]
|
||||
-ds SECONDS, --duration-still SECONDS
|
||||
Duration of still comment display [default: 5]
|
||||
-p HEIGHT, --protect HEIGHT
|
||||
Reserve blank on the bottom of the stage
|
||||
-r, --reduce Reduce the amount of comments if stage is full
|
||||
|
@ -552,7 +552,7 @@ def ConvertFlashRotation(rotY, rotZ, X, Y, width, height):
|
||||
return (trX, trY, WrapAngle(outX), WrapAngle(outY), WrapAngle(outZ), scaleXY*100, scaleXY*100)
|
||||
|
||||
|
||||
def ProcessComments(comments, f, width, height, bottomReserved, fontface, fontsize, alpha, lifetime, reduced, progress_callback):
|
||||
def ProcessComments(comments, f, width, height, bottomReserved, fontface, fontsize, alpha, duration_marquee, duration_still, reduced, progress_callback):
|
||||
styleid = 'Danmaku2ASS_%04x' % random.randint(0, 0xffff)
|
||||
WriteASSHead(f, width, height, fontface, fontsize, alpha, styleid)
|
||||
rows = [[None]*(height-bottomReserved+1) for i in range(4)]
|
||||
@ -563,10 +563,10 @@ def ProcessComments(comments, f, width, height, bottomReserved, fontface, fontsi
|
||||
row = 0
|
||||
rowmax = height-bottomReserved-i[7]
|
||||
while row <= rowmax:
|
||||
freerows = TestFreeRows(rows, i, row, width, height, bottomReserved, lifetime)
|
||||
freerows = TestFreeRows(rows, i, row, width, height, bottomReserved, duration_marquee, duration_still)
|
||||
if freerows >= i[7]:
|
||||
MarkCommentRow(rows, i, row)
|
||||
WriteComment(f, i, row, width, height, bottomReserved, fontsize, lifetime, styleid)
|
||||
WriteComment(f, i, row, width, height, bottomReserved, fontsize, duration_marquee, duration_still, styleid)
|
||||
break
|
||||
else:
|
||||
row += freerows or 1
|
||||
@ -574,7 +574,7 @@ def ProcessComments(comments, f, width, height, bottomReserved, fontface, fontsi
|
||||
if not reduced:
|
||||
row = FindAlternativeRow(rows, i, height, bottomReserved)
|
||||
MarkCommentRow(rows, i, row)
|
||||
WriteComment(f, i, row, width, height, bottomReserved, fontsize, lifetime, styleid)
|
||||
WriteComment(f, i, row, width, height, bottomReserved, fontsize, duration_marquee, duration_still, styleid)
|
||||
elif i[4] == 'bilipos':
|
||||
WriteCommentBilibiliPositioned(f, i, width, height, styleid)
|
||||
elif i[4] == 'acfunpos':
|
||||
@ -587,7 +587,7 @@ def ProcessComments(comments, f, width, height, bottomReserved, fontface, fontsi
|
||||
progress_callback(len(comments), len(comments))
|
||||
|
||||
|
||||
def TestFreeRows(rows, c, row, width, height, bottomReserved, lifetime):
|
||||
def TestFreeRows(rows, c, row, width, height, bottomReserved, duration_marquee, duration_still):
|
||||
res = 0
|
||||
rowmax = height-bottomReserved
|
||||
targetRow = None
|
||||
@ -595,20 +595,20 @@ def TestFreeRows(rows, c, row, width, height, bottomReserved, lifetime):
|
||||
while row < rowmax and res < c[7]:
|
||||
if targetRow != rows[c[4]][row]:
|
||||
targetRow = rows[c[4]][row]
|
||||
if targetRow and targetRow[0]+lifetime > c[0]:
|
||||
if targetRow and targetRow[0]+duration_still > c[0]:
|
||||
break
|
||||
row += 1
|
||||
res += 1
|
||||
else:
|
||||
try:
|
||||
thresholdTime = c[0]-lifetime*(1-width/(c[8]+width))
|
||||
thresholdTime = c[0]-duration_marquee*(1-width/(c[8]+width))
|
||||
except ZeroDivisionError:
|
||||
thresholdTime = c[0]-lifetime
|
||||
thresholdTime = c[0]-duration_marquee
|
||||
while row < rowmax and res < c[7]:
|
||||
if targetRow != rows[c[4]][row]:
|
||||
targetRow = rows[c[4]][row]
|
||||
try:
|
||||
if targetRow and (targetRow[0] > thresholdTime or targetRow[0]+targetRow[8]*lifetime/(targetRow[8]+width) > c[0]):
|
||||
if targetRow and (targetRow[0] > thresholdTime or targetRow[0]+targetRow[8]*duration_marquee/(targetRow[8]+width) > c[0]):
|
||||
break
|
||||
except ZeroDivisionError:
|
||||
pass
|
||||
@ -661,24 +661,28 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
|
||||
)
|
||||
|
||||
|
||||
def WriteComment(f, c, row, width, height, bottomReserved, fontsize, lifetime, styleid):
|
||||
def WriteComment(f, c, row, width, height, bottomReserved, fontsize, duration_marquee, duration_still, styleid):
|
||||
text = ASSEscape(c[3])
|
||||
styles = []
|
||||
if c[4] == 1:
|
||||
styles.append('\\an8\\pos(%(halfwidth)d, %(row)d)' % {'halfwidth': width/2, 'row': row})
|
||||
duration = duration_still
|
||||
elif c[4] == 2:
|
||||
styles.append('\\an2\\pos(%(halfwidth)d, %(row)d)' % {'halfwidth': width/2, 'row': ConvertType2(row, height, bottomReserved)})
|
||||
duration = duration_still
|
||||
elif c[4] == 3:
|
||||
styles.append('\\move(%(neglen)d, %(row)d, %(width)d, %(row)d)' % {'width': width, 'row': row, 'neglen': -math.ceil(c[8])})
|
||||
duration = duration_marquee
|
||||
else:
|
||||
styles.append('\\move(%(width)d, %(row)d, %(neglen)d, %(row)d)' % {'width': width, 'row': row, 'neglen': -math.ceil(c[8])})
|
||||
duration = duration_marquee
|
||||
if not (-1 < c[6]-fontsize < 1):
|
||||
styles.append('\\fs%.0f' % c[6])
|
||||
if c[5] != 0xffffff:
|
||||
styles.append('\\c&H%s&' % ConvertColor(c[5]))
|
||||
if c[5] == 0x000000:
|
||||
styles.append('\\3c&HFFFFFF&')
|
||||
f.write('Dialogue: 2,%(start)s,%(end)s,%(styleid)s,,0000,0000,0000,,{%(styles)s}%(text)s\n' % {'start': ConvertTimestamp(c[0]), 'end': ConvertTimestamp(c[0]+lifetime), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})
|
||||
f.write('Dialogue: 2,%(start)s,%(end)s,%(styleid)s,,0000,0000,0000,,{%(styles)s}%(text)s\n' % {'start': ConvertTimestamp(c[0]), 'end': ConvertTimestamp(c[0]+duration), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})
|
||||
|
||||
|
||||
def ASSEscape(s):
|
||||
@ -762,7 +766,7 @@ def export(func):
|
||||
|
||||
|
||||
@export
|
||||
def Danmaku2ASS(input_files, output_file, stage_width, stage_height, reserve_blank=0, font_face=_('(FONT) sans-serif')[7:], font_size=25.0, text_opacity=1.0, comment_duration=5.0, is_reduce_comments=False, progress_callback=None):
|
||||
def Danmaku2ASS(input_files, output_file, stage_width, stage_height, reserve_blank=0, font_face=_('(FONT) sans-serif')[7:], font_size=25.0, text_opacity=1.0, duration_marquee=5.0, duration_still=5.0, is_reduce_comments=False, progress_callback=None):
|
||||
fo = None
|
||||
comments = ReadComments(input_files, font_size)
|
||||
try:
|
||||
@ -770,7 +774,7 @@ def Danmaku2ASS(input_files, output_file, stage_width, stage_height, reserve_bla
|
||||
fo = ConvertToFile(output_file, 'w', encoding='utf-8-sig', errors='replace', newline='\r\n')
|
||||
else:
|
||||
fo = sys.stdout
|
||||
ProcessComments(comments, fo, stage_width, stage_height, reserve_blank, font_face, font_size, text_opacity, comment_duration, is_reduce_comments, progress_callback)
|
||||
ProcessComments(comments, fo, stage_width, stage_height, reserve_blank, font_face, font_size, text_opacity, duration_marquee, duration_still, is_reduce_comments, progress_callback)
|
||||
finally:
|
||||
if output_file and fo != output_file:
|
||||
fo.close()
|
||||
@ -814,7 +818,8 @@ def main():
|
||||
parser.add_argument('-fn', '--font', metavar=_('FONT'), help=_('Specify font face [default: %s]') % _('(FONT) sans-serif')[7:], default=_('(FONT) sans-serif')[7:])
|
||||
parser.add_argument('-fs', '--fontsize', metavar=_('SIZE'), help=(_('Default font size [default: %s]') % 25), type=float, default=25.0)
|
||||
parser.add_argument('-a', '--alpha', metavar=_('ALPHA'), help=_('Text opacity'), type=float, default=1.0)
|
||||
parser.add_argument('-l', '--lifetime', metavar=_('SECONDS'), help=_('Duration of comment display [default: %s]') % 5, type=float, default=5.0)
|
||||
parser.add_argument('-dm', '--duration-marquee', metavar=_('SECONDS'), help=_('Duration of scrolling comment display [default: %s]') % 5, type=float, default=5.0)
|
||||
parser.add_argument('-ds', '--duration-still', metavar=_('SECONDS'), help=_('Duration of still comment display [default: %s]') % 5, type=float, default=5.0)
|
||||
parser.add_argument('-p', '--protect', metavar=_('HEIGHT'), help=_('Reserve blank on the bottom of the stage'), type=int, default=0)
|
||||
parser.add_argument('-r', '--reduce', action='store_true', help=_('Reduce the amount of comments if stage is full'))
|
||||
parser.add_argument('file', metavar=_('FILE'), nargs='+', help=_('Comment file to be processed'))
|
||||
@ -825,7 +830,7 @@ def main():
|
||||
height = int(height)
|
||||
except ValueError:
|
||||
raise ValueError(_('Invalid stage size: %r') % args.size)
|
||||
Danmaku2ASS(args.file, args.output, width, height, args.protect, args.font, args.fontsize, args.alpha, args.lifetime, args.reduce)
|
||||
Danmaku2ASS(args.file, args.output, width, height, args.protect, args.font, args.fontsize, args.alpha, args.duration_marquee, args.duration_still, args.reduce)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
Binary file not shown.
@ -2,105 +2,110 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Danmaku2ASS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-02-03 16:50+0800\n"
|
||||
"POT-Creation-Date: 2014-12-21 00:44+0800\n"
|
||||
"Last-Translator: Star Brilliant <m13253@hotmail.com>\n"
|
||||
"Language: en\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: danmaku2ass.py:139 danmaku2ass.py:178 danmaku2ass.py:208
|
||||
#: danmaku2ass.py:143 danmaku2ass.py:182 danmaku2ass.py:212
|
||||
#, python-format
|
||||
msgid "Invalid comment: %s"
|
||||
msgstr "Invalid comment: %s"
|
||||
|
||||
#: danmaku2ass.py:158 danmaku2ass.py:192 danmaku2ass.py:235 danmaku2ass.py:317
|
||||
#: danmaku2ass.py:319 danmaku2ass.py:437 danmaku2ass.py:480 danmaku2ass.py:538
|
||||
#: danmaku2ass.py:162 danmaku2ass.py:196 danmaku2ass.py:239 danmaku2ass.py:323
|
||||
#: danmaku2ass.py:325 danmaku2ass.py:439 danmaku2ass.py:483 danmaku2ass.py:585
|
||||
#, python-format
|
||||
msgid "Invalid comment: %r"
|
||||
msgstr "Invalid comment: %r"
|
||||
|
||||
#: danmaku2ass.py:688 danmaku2ass.py:736
|
||||
#: danmaku2ass.py:769 danmaku2ass.py:818
|
||||
msgid "(FONT) sans-serif"
|
||||
msgstr "(FONT) Helvetica"
|
||||
|
||||
#: danmaku2ass.py:717
|
||||
#: danmaku2ass.py:798
|
||||
#, python-format
|
||||
msgid "Unknown comment file format: %s"
|
||||
msgstr "Unknown comment file format: %s"
|
||||
|
||||
#: danmaku2ass.py:734
|
||||
#: danmaku2ass.py:816
|
||||
msgid "OUTPUT"
|
||||
msgstr "OUTPUT"
|
||||
|
||||
#: danmaku2ass.py:734
|
||||
#: danmaku2ass.py:816
|
||||
msgid "Output file"
|
||||
msgstr "Output file"
|
||||
|
||||
#: danmaku2ass.py:735
|
||||
#: danmaku2ass.py:817
|
||||
msgid "WIDTHxHEIGHT"
|
||||
msgstr "WIDTHxHEIGHT"
|
||||
|
||||
#: danmaku2ass.py:735
|
||||
#: danmaku2ass.py:817
|
||||
msgid "Stage size in pixels"
|
||||
msgstr "Stage size in pixels"
|
||||
|
||||
#: danmaku2ass.py:736
|
||||
#: danmaku2ass.py:818
|
||||
msgid "FONT"
|
||||
msgstr "FONT"
|
||||
|
||||
#: danmaku2ass.py:736
|
||||
#: danmaku2ass.py:818
|
||||
#, python-format
|
||||
msgid "Specify font face [default: %s]"
|
||||
msgstr "Specify font face [default: %s]"
|
||||
|
||||
#: danmaku2ass.py:737
|
||||
#: danmaku2ass.py:819
|
||||
msgid "SIZE"
|
||||
msgstr "SIZE"
|
||||
|
||||
#: danmaku2ass.py:737
|
||||
#: danmaku2ass.py:819
|
||||
#, python-format
|
||||
msgid "Default font size [default: %s]"
|
||||
msgstr "Default font size [default: %s]"
|
||||
|
||||
#: danmaku2ass.py:738
|
||||
#: danmaku2ass.py:820
|
||||
msgid "ALPHA"
|
||||
msgstr "ALPHA"
|
||||
|
||||
#: danmaku2ass.py:738
|
||||
#: danmaku2ass.py:820
|
||||
msgid "Text opacity"
|
||||
msgstr "Text opacity"
|
||||
|
||||
#: danmaku2ass.py:739
|
||||
#: danmaku2ass.py:821 danmaku2ass.py:822
|
||||
msgid "SECONDS"
|
||||
msgstr "SECONDS"
|
||||
|
||||
#: danmaku2ass.py:739
|
||||
#: danmaku2ass.py:821
|
||||
#, python-format
|
||||
msgid "Duration of comment display [default: %s]"
|
||||
msgstr "Duration of comment display [default: %s]"
|
||||
msgid "Duration of scrolling comment display [default: %s]"
|
||||
msgstr "Duration of scrolling comment display [default: %s]"
|
||||
|
||||
#: danmaku2ass.py:740
|
||||
#: danmaku2ass.py:822
|
||||
#, python-format
|
||||
msgid "Duration of still comment display [default: %s]"
|
||||
msgstr "Duration of still comment display [default: %s]"
|
||||
|
||||
#: danmaku2ass.py:823
|
||||
msgid "HEIGHT"
|
||||
msgstr "HEIGHT"
|
||||
|
||||
#: danmaku2ass.py:740
|
||||
#: danmaku2ass.py:823
|
||||
msgid "Reserve blank on the bottom of the stage"
|
||||
msgstr "Reserve blank on the bottom of the stage"
|
||||
|
||||
#: danmaku2ass.py:741
|
||||
#: danmaku2ass.py:824
|
||||
msgid "Reduce the amount of comments if stage is full"
|
||||
msgstr "Reduce the amount of comments if stage is full"
|
||||
|
||||
#: danmaku2ass.py:742
|
||||
#: danmaku2ass.py:825
|
||||
msgid "FILE"
|
||||
msgstr "FILE"
|
||||
|
||||
#: danmaku2ass.py:742
|
||||
#: danmaku2ass.py:825
|
||||
msgid "Comment file to be processed"
|
||||
msgstr "Comment file to be processed"
|
||||
|
||||
#: danmaku2ass.py:749
|
||||
#: danmaku2ass.py:832
|
||||
#, python-format
|
||||
msgid "Invalid stage size: %r"
|
||||
msgstr "Invalid stage size: %r"
|
||||
|
Binary file not shown.
@ -2,105 +2,110 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Danmaku2ASS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-02-03 16:50+0800\n"
|
||||
"POT-Creation-Date: 2014-12-21 00:47+0800\n"
|
||||
"Last-Translator: Star Brilliant <m13253@hotmail.com>\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: danmaku2ass.py:139 danmaku2ass.py:178 danmaku2ass.py:208
|
||||
#: danmaku2ass.py:143 danmaku2ass.py:182 danmaku2ass.py:212
|
||||
#, python-format
|
||||
msgid "Invalid comment: %s"
|
||||
msgstr "無効なコメント:%s"
|
||||
|
||||
#: danmaku2ass.py:158 danmaku2ass.py:192 danmaku2ass.py:235 danmaku2ass.py:317
|
||||
#: danmaku2ass.py:319 danmaku2ass.py:437 danmaku2ass.py:480 danmaku2ass.py:538
|
||||
#: danmaku2ass.py:162 danmaku2ass.py:196 danmaku2ass.py:239 danmaku2ass.py:323
|
||||
#: danmaku2ass.py:325 danmaku2ass.py:439 danmaku2ass.py:483 danmaku2ass.py:585
|
||||
#, python-format
|
||||
msgid "Invalid comment: %r"
|
||||
msgstr "無効なコメント:%r"
|
||||
|
||||
#: danmaku2ass.py:688 danmaku2ass.py:736
|
||||
#: danmaku2ass.py:769 danmaku2ass.py:818
|
||||
msgid "(FONT) sans-serif"
|
||||
msgstr "(FONT) MS PGothic"
|
||||
|
||||
#: danmaku2ass.py:717
|
||||
#: danmaku2ass.py:798
|
||||
#, python-format
|
||||
msgid "Unknown comment file format: %s"
|
||||
msgstr "未知のコメントファイル形式:%s"
|
||||
|
||||
#: danmaku2ass.py:734
|
||||
#: danmaku2ass.py:816
|
||||
msgid "OUTPUT"
|
||||
msgstr "出力"
|
||||
|
||||
#: danmaku2ass.py:734
|
||||
#: danmaku2ass.py:816
|
||||
msgid "Output file"
|
||||
msgstr "出力ファイル"
|
||||
|
||||
#: danmaku2ass.py:735
|
||||
msgid "WIDTHxHEIGHT"
|
||||
msgstr "幅x高"
|
||||
|
||||
#: danmaku2ass.py:735
|
||||
#: danmaku2ass.py:817
|
||||
msgid "Stage size in pixels"
|
||||
msgstr "ピクセル単位でステージのサイズ"
|
||||
|
||||
#: danmaku2ass.py:736
|
||||
#: danmaku2ass.py:817
|
||||
msgid "WIDTHxHEIGHT"
|
||||
msgstr "幅x高"
|
||||
|
||||
#: danmaku2ass.py:818
|
||||
msgid "FONT"
|
||||
msgstr "フォント"
|
||||
|
||||
#: danmaku2ass.py:736
|
||||
#: danmaku2ass.py:818
|
||||
#, python-format
|
||||
msgid "Specify font face [default: %s]"
|
||||
msgstr "フォントを指定する [デフォルト: %s]"
|
||||
|
||||
#: danmaku2ass.py:737
|
||||
msgid "SIZE"
|
||||
msgstr "サイズ"
|
||||
|
||||
#: danmaku2ass.py:737
|
||||
#: danmaku2ass.py:819
|
||||
#, python-format
|
||||
msgid "Default font size [default: %s]"
|
||||
msgstr "デフォルトのフォントサイズ [デフォルト: %s]"
|
||||
|
||||
#: danmaku2ass.py:738
|
||||
#: danmaku2ass.py:819
|
||||
msgid "SIZE"
|
||||
msgstr "サイズ"
|
||||
|
||||
#: danmaku2ass.py:820
|
||||
msgid "ALPHA"
|
||||
msgstr "アルファ"
|
||||
|
||||
#: danmaku2ass.py:738
|
||||
#: danmaku2ass.py:820
|
||||
msgid "Text opacity"
|
||||
msgstr "テキストの不透明度"
|
||||
|
||||
#: danmaku2ass.py:739
|
||||
#: danmaku2ass.py:821
|
||||
#, python-format
|
||||
msgid "Duration of scrolling comment display [default: %s]"
|
||||
msgstr "運動コメント表示の時間 [デフォルト: %s]"
|
||||
|
||||
#: danmaku2ass.py:821 danmaku2ass.py:822
|
||||
msgid "SECONDS"
|
||||
msgstr "秒数"
|
||||
|
||||
#: danmaku2ass.py:739
|
||||
#: danmaku2ass.py:822
|
||||
#, python-format
|
||||
msgid "Duration of comment display [default: %s]"
|
||||
msgstr "コメント表示の時間 [デフォルト: %s]"
|
||||
msgid "Duration of still comment display [default: %s]"
|
||||
msgstr "静止コメント表示の時間 [デフォルト: %s]"
|
||||
|
||||
#: danmaku2ass.py:740
|
||||
#: danmaku2ass.py:823
|
||||
msgid "HEIGHT"
|
||||
msgstr "高度"
|
||||
|
||||
#: danmaku2ass.py:740
|
||||
#: danmaku2ass.py:823
|
||||
msgid "Reserve blank on the bottom of the stage"
|
||||
msgstr "ステージの下にブランクを予備する"
|
||||
|
||||
#: danmaku2ass.py:741
|
||||
#: danmaku2ass.py:824
|
||||
msgid "Reduce the amount of comments if stage is full"
|
||||
msgstr "ステージがいっぱいになったのときにコメントの量を減らす"
|
||||
|
||||
#: danmaku2ass.py:742
|
||||
msgid "FILE"
|
||||
msgstr "ファイル"
|
||||
|
||||
#: danmaku2ass.py:742
|
||||
#: danmaku2ass.py:825
|
||||
msgid "Comment file to be processed"
|
||||
msgstr "ファイルが処理されるコメント"
|
||||
|
||||
#: danmaku2ass.py:749
|
||||
#: danmaku2ass.py:825
|
||||
msgid "FILE"
|
||||
msgstr "ファイル"
|
||||
|
||||
#: danmaku2ass.py:832
|
||||
#, python-format
|
||||
msgid "Invalid stage size: %r"
|
||||
msgstr "無効なステージサイズ:%r"
|
||||
|
Binary file not shown.
@ -2,105 +2,110 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Danmaku2ASS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-02-03 16:50+0800\n"
|
||||
"POT-Creation-Date: 2014-12-21 00:47+0800\n"
|
||||
"Last-Translator: Star Brilliant <m13253@hotmail.com>\n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: danmaku2ass.py:139 danmaku2ass.py:178 danmaku2ass.py:208
|
||||
#: danmaku2ass.py:143 danmaku2ass.py:182 danmaku2ass.py:212
|
||||
#, python-format
|
||||
msgid "Invalid comment: %s"
|
||||
msgstr "无效弹幕:%s"
|
||||
|
||||
#: danmaku2ass.py:158 danmaku2ass.py:192 danmaku2ass.py:235 danmaku2ass.py:317
|
||||
#: danmaku2ass.py:319 danmaku2ass.py:437 danmaku2ass.py:480 danmaku2ass.py:538
|
||||
#: danmaku2ass.py:162 danmaku2ass.py:196 danmaku2ass.py:239 danmaku2ass.py:323
|
||||
#: danmaku2ass.py:325 danmaku2ass.py:439 danmaku2ass.py:483 danmaku2ass.py:585
|
||||
#, python-format
|
||||
msgid "Invalid comment: %r"
|
||||
msgstr "无效弹幕:%r"
|
||||
|
||||
#: danmaku2ass.py:688 danmaku2ass.py:736
|
||||
#: danmaku2ass.py:769 danmaku2ass.py:818
|
||||
msgid "(FONT) sans-serif"
|
||||
msgstr "(FONT) SimHei"
|
||||
|
||||
#: danmaku2ass.py:717
|
||||
#: danmaku2ass.py:798
|
||||
#, python-format
|
||||
msgid "Unknown comment file format: %s"
|
||||
msgstr "未知的弹幕文件格式:%s"
|
||||
|
||||
#: danmaku2ass.py:734
|
||||
#: danmaku2ass.py:816
|
||||
msgid "OUTPUT"
|
||||
msgstr "输出"
|
||||
|
||||
#: danmaku2ass.py:734
|
||||
#: danmaku2ass.py:816
|
||||
msgid "Output file"
|
||||
msgstr "输出文件"
|
||||
|
||||
#: danmaku2ass.py:735
|
||||
msgid "WIDTHxHEIGHT"
|
||||
msgstr "宽x高"
|
||||
|
||||
#: danmaku2ass.py:735
|
||||
#: danmaku2ass.py:817
|
||||
msgid "Stage size in pixels"
|
||||
msgstr "舞台尺寸的像素数目"
|
||||
|
||||
#: danmaku2ass.py:736
|
||||
#: danmaku2ass.py:817
|
||||
msgid "WIDTHxHEIGHT"
|
||||
msgstr "宽x高"
|
||||
|
||||
#: danmaku2ass.py:818
|
||||
msgid "FONT"
|
||||
msgstr "字体"
|
||||
|
||||
#: danmaku2ass.py:736
|
||||
#: danmaku2ass.py:818
|
||||
#, python-format
|
||||
msgid "Specify font face [default: %s]"
|
||||
msgstr "指定字体名称 [默认: %s]"
|
||||
|
||||
#: danmaku2ass.py:737
|
||||
msgid "SIZE"
|
||||
msgstr "尺寸"
|
||||
|
||||
#: danmaku2ass.py:737
|
||||
#: danmaku2ass.py:819
|
||||
#, python-format
|
||||
msgid "Default font size [default: %s]"
|
||||
msgstr "默认字号 [默认: %s]"
|
||||
|
||||
#: danmaku2ass.py:738
|
||||
#: danmaku2ass.py:819
|
||||
msgid "SIZE"
|
||||
msgstr "尺寸"
|
||||
|
||||
#: danmaku2ass.py:820
|
||||
msgid "ALPHA"
|
||||
msgstr "ALPHA"
|
||||
|
||||
#: danmaku2ass.py:738
|
||||
#: danmaku2ass.py:820
|
||||
msgid "Text opacity"
|
||||
msgstr "文字不透明度"
|
||||
|
||||
#: danmaku2ass.py:739
|
||||
#: danmaku2ass.py:821
|
||||
#, python-format
|
||||
msgid "Duration of scrolling comment display [default: %s]"
|
||||
msgstr "滚动弹幕显示时长 [默认: %s]"
|
||||
|
||||
#: danmaku2ass.py:821 danmaku2ass.py:822
|
||||
msgid "SECONDS"
|
||||
msgstr "秒数"
|
||||
|
||||
#: danmaku2ass.py:739
|
||||
#: danmaku2ass.py:822
|
||||
#, python-format
|
||||
msgid "Duration of comment display [default: %s]"
|
||||
msgstr "弹幕显示时长 [默认: %s]"
|
||||
msgid "Duration of still comment display [default: %s]"
|
||||
msgstr "静止弹幕显示时长 [默认: %s]"
|
||||
|
||||
#: danmaku2ass.py:740
|
||||
#: danmaku2ass.py:823
|
||||
msgid "HEIGHT"
|
||||
msgstr "高度"
|
||||
|
||||
#: danmaku2ass.py:740
|
||||
#: danmaku2ass.py:823
|
||||
msgid "Reserve blank on the bottom of the stage"
|
||||
msgstr "在舞台底部预留空位"
|
||||
|
||||
#: danmaku2ass.py:741
|
||||
#: danmaku2ass.py:824
|
||||
msgid "Reduce the amount of comments if stage is full"
|
||||
msgstr "在舞台满时减少弹幕数量"
|
||||
|
||||
#: danmaku2ass.py:742
|
||||
msgid "FILE"
|
||||
msgstr "文件"
|
||||
|
||||
#: danmaku2ass.py:742
|
||||
#: danmaku2ass.py:825
|
||||
msgid "Comment file to be processed"
|
||||
msgstr "将要处理的弹幕文件"
|
||||
|
||||
#: danmaku2ass.py:749
|
||||
#: danmaku2ass.py:825
|
||||
msgid "FILE"
|
||||
msgstr "文件"
|
||||
|
||||
#: danmaku2ass.py:832
|
||||
#, python-format
|
||||
msgid "Invalid stage size: %r"
|
||||
msgstr "无效舞台尺寸:%r"
|
||||
|
Binary file not shown.
@ -2,105 +2,110 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Danmaku2ASS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-02-03 16:50+0800\n"
|
||||
"POT-Creation-Date: 2014-12-21 00:47+0800\n"
|
||||
"Last-Translator: Star Brilliant <m13253@hotmail.com>\n"
|
||||
"Language: zh_TW\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: danmaku2ass.py:139 danmaku2ass.py:178 danmaku2ass.py:208
|
||||
#: danmaku2ass.py:143 danmaku2ass.py:182 danmaku2ass.py:212
|
||||
#, python-format
|
||||
msgid "Invalid comment: %s"
|
||||
msgstr "無效彈幕:%s"
|
||||
|
||||
#: danmaku2ass.py:158 danmaku2ass.py:192 danmaku2ass.py:235 danmaku2ass.py:317
|
||||
#: danmaku2ass.py:319 danmaku2ass.py:437 danmaku2ass.py:480 danmaku2ass.py:538
|
||||
#: danmaku2ass.py:162 danmaku2ass.py:196 danmaku2ass.py:239 danmaku2ass.py:323
|
||||
#: danmaku2ass.py:325 danmaku2ass.py:439 danmaku2ass.py:483 danmaku2ass.py:585
|
||||
#, python-format
|
||||
msgid "Invalid comment: %r"
|
||||
msgstr "無效彈幕:%r"
|
||||
|
||||
#: danmaku2ass.py:688 danmaku2ass.py:736
|
||||
#: danmaku2ass.py:769 danmaku2ass.py:818
|
||||
msgid "(FONT) sans-serif"
|
||||
msgstr "(FONT) Microsoft JhengHei"
|
||||
|
||||
#: danmaku2ass.py:717
|
||||
#: danmaku2ass.py:798
|
||||
#, python-format
|
||||
msgid "Unknown comment file format: %s"
|
||||
msgstr "未知的彈幕檔案格式:%s"
|
||||
|
||||
#: danmaku2ass.py:734
|
||||
#: danmaku2ass.py:816
|
||||
msgid "OUTPUT"
|
||||
msgstr "輸出"
|
||||
|
||||
#: danmaku2ass.py:734
|
||||
#: danmaku2ass.py:816
|
||||
msgid "Output file"
|
||||
msgstr "輸出檔案"
|
||||
|
||||
#: danmaku2ass.py:735
|
||||
msgid "WIDTHxHEIGHT"
|
||||
msgstr "寬x高"
|
||||
|
||||
#: danmaku2ass.py:735
|
||||
#: danmaku2ass.py:817
|
||||
msgid "Stage size in pixels"
|
||||
msgstr "舞臺尺寸的畫素數目"
|
||||
|
||||
#: danmaku2ass.py:736
|
||||
#: danmaku2ass.py:817
|
||||
msgid "WIDTHxHEIGHT"
|
||||
msgstr "寬x高"
|
||||
|
||||
#: danmaku2ass.py:818
|
||||
msgid "FONT"
|
||||
msgstr "字型"
|
||||
|
||||
#: danmaku2ass.py:736
|
||||
#: danmaku2ass.py:818
|
||||
#, python-format
|
||||
msgid "Specify font face [default: %s]"
|
||||
msgstr "指定字型名稱 [默認: %s]"
|
||||
|
||||
#: danmaku2ass.py:737
|
||||
msgid "SIZE"
|
||||
msgstr "尺寸"
|
||||
|
||||
#: danmaku2ass.py:737
|
||||
#: danmaku2ass.py:819
|
||||
#, python-format
|
||||
msgid "Default font size [default: %s]"
|
||||
msgstr "默認字型大小 [默認: %s]"
|
||||
|
||||
#: danmaku2ass.py:738
|
||||
#: danmaku2ass.py:819
|
||||
msgid "SIZE"
|
||||
msgstr "尺寸"
|
||||
|
||||
#: danmaku2ass.py:820
|
||||
msgid "ALPHA"
|
||||
msgstr "ALPHA"
|
||||
|
||||
#: danmaku2ass.py:738
|
||||
#: danmaku2ass.py:820
|
||||
msgid "Text opacity"
|
||||
msgstr "文字不透明度"
|
||||
|
||||
#: danmaku2ass.py:739
|
||||
#: danmaku2ass.py:821
|
||||
#, python-format
|
||||
msgid "Duration of scrolling comment display [default: %s]"
|
||||
msgstr "滾動彈幕顯示時長 [默認: %s]"
|
||||
|
||||
#: danmaku2ass.py:821 danmaku2ass.py:822
|
||||
msgid "SECONDS"
|
||||
msgstr "秒數"
|
||||
|
||||
#: danmaku2ass.py:739
|
||||
#: danmaku2ass.py:822
|
||||
#, python-format
|
||||
msgid "Duration of comment display [default: %s]"
|
||||
msgstr "彈幕顯示時長 [默認: %s]"
|
||||
msgid "Duration of still comment display [default: %s]"
|
||||
msgstr "靜止彈幕顯示時長 [默認: %s]"
|
||||
|
||||
#: danmaku2ass.py:740
|
||||
#: danmaku2ass.py:823
|
||||
msgid "HEIGHT"
|
||||
msgstr "高度"
|
||||
|
||||
#: danmaku2ass.py:740
|
||||
#: danmaku2ass.py:823
|
||||
msgid "Reserve blank on the bottom of the stage"
|
||||
msgstr "在舞臺底部預留空位"
|
||||
|
||||
#: danmaku2ass.py:741
|
||||
#: danmaku2ass.py:824
|
||||
msgid "Reduce the amount of comments if stage is full"
|
||||
msgstr "在舞臺滿時減少彈幕數量"
|
||||
|
||||
#: danmaku2ass.py:742
|
||||
msgid "FILE"
|
||||
msgstr "檔案"
|
||||
|
||||
#: danmaku2ass.py:742
|
||||
#: danmaku2ass.py:825
|
||||
msgid "Comment file to be processed"
|
||||
msgstr "將要處理的彈幕檔案"
|
||||
|
||||
#: danmaku2ass.py:749
|
||||
#: danmaku2ass.py:825
|
||||
msgid "FILE"
|
||||
msgstr "檔案"
|
||||
|
||||
#: danmaku2ass.py:832
|
||||
#, python-format
|
||||
msgid "Invalid stage size: %r"
|
||||
msgstr "無效舞臺尺寸:%r"
|
||||
|
Loading…
Reference in New Issue
Block a user