
約1.5〜2年前、 ID_Daemonとの会話の中で、彼は本当に翻訳したいシリーズをローカライズする方法を尋ねました。 いつものようにsrt字幕をするなら、それは読みやすいテキストの山ではありません。AEのようなビデオエディタでそれをするなら、少なくとも私たちにとっては長すぎて時間がかかります。 したがって、私の選択はテキストのお尻の字幕にかかっていました-何が起こったのか、すでに見たかったすべての人、そして今ではそれがどのように行われたのか:
ほとんどの場合、お尻のサブタイトルはテキストの配置とラベルの翻訳に使用されます。 たとえば、お尻の字幕を使用する方法は次のとおりです。
非表示のテキスト
すべての翻訳者が字幕が見栄えよく見えるように気を配っていないのは残念です。



すべての翻訳者が字幕が見栄えよく見えるように気を配っていないのは残念です。
私たちの場合、もう少し先に進んで、ビデオシリーズのほぼ全体を一緒に翻訳することにしました。
私の目標は、お尻タグやaegisubプログラム(お尻の字幕用の「ネイティブ」プログラム)によってよくある質問を再評価することではないことに注意してください。
不明な点がある場合は、 subs.com.ru / page.php?al = ssa_description (ass形式)およびdocs.aegisub.org (aegisub)でfaqを見つけてください。
これまでのところ、これらの事実の大きなマイナス点は、それらの例が非常に少ないか、まったくないことです。 一方では、{b}タグが太字のテキストを強調表示するのは明らかです。他方では、この字幕の行が何をするのか:
Dialogue: 0,0:04:31.75,0:04:32.25,white,,0000,0000,0000,,{\p1\pos(0,0)\clip(173,440,426,461)}m 0 0 l 800 0 l 800 600 l 0 600{\p0}
すぐには理解できません。
だから。
次に、作業に直接進みます。翻訳する必要がある元のフレームは次のようになります。

まず、いくつかのスタイルが作成されました。このテキストは、対応するメッセンジャーのテキストに視覚的にほぼ対応しています。

白いスタイルは、元のテキストを塗りつぶすために使用されました。
ロシア語のテキストを元のテキストと一致するように置き換えてみましょう。これは、「手」、つまり aegisabの対応する要素ですが、\ posタグを使用してキーボード上の位置を入力する方が簡単です。 ピクセル精度が必要:

そのような混乱が判明しますが、ロシア語のテキストはどこにあるべきかを理解しています。 範囲外にならないようにトリムする必要があります。グラフィックエディタに精通している人にとっては、これは「ベクターエリアごとの字幕を切り取る」(\クリップタグ)と呼ばれるAegisabのツールを使用すると便利です。

また、ドットがピクセルごとに移動するためには、フレームサイズを200%または画面の解像度で表示される最大値に増やす価値があります。
次に、メッセンジャーの元のテキストを削除します。

これはいくつかの段階で、さまざまな方法で行われました。フレーム全体のサイズの長方形を描画します(何かを「塗りつぶす」必要がある場所で使用できるように)。
Dialogue: 0,0:03:48.64,0:03:48.71,white,,0000,0000,0000,,{\p1}m 0 0 l 800 0 l 800 600 l 0 600{\p0}
その後、この長方形は切り取られました。
すべてのように、モザイクのすべての部分を一緒に入れて...乾杯! このフレームセットをローカライズできました。

最終的なサブタイトルは次のようになります。
非表示のテキスト
Dialogue: 0,0:03:48.64,0:03:48.71,white,,0000,0000,0000,,{\p1\pos(0,0)\clip(m 297 358 l 540 358 540 339 779 339 778 543 297 543)}m 0 0 l 800 0 l 800 600 l 0 600{\p0} Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,351)\clip(m 297 358 l 540 358 540 339 779 339 778 543 297 543)}<coda> , Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,367)}<gryffin> , , Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(315,383)} - Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,399)}<coda> , Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,415)}<coda> dust Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,431)}<gryffin> ? Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,447)}<coda> , Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,463)}<gryffin> , , Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,479)}<gryffin> - , Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(315,495)} Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,511)}<coda> Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,527)}<gryffin> Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,543)}<coda> brb Dialogue: 0,0:03:48.64,0:03:48.71,white,,0000,0000,0000,,{\p1\pos(0,0)\clip(282,120,510,201)}m 0 0 l 800 0 l 800 600 l 0 600{\p0} Dialogue: 0,0:03:48.64,0:03:48.71,agent,,0000,0000,0000,,{\pos(164,134)\clip(282,119,513,201)}{\b1\c&HA00000&}alanmeans06: {\b0\c&H000404&} Dialogue: 0,0:03:48.64,0:03:48.71,agent,,0000,0000,0000,,{\pos(164,154)\clip(282,119,513,201)}{\b1\c&H0000A0&}brenner2604: {\b0\c&H000404&} Dialogue: 0,0:03:48.64,0:03:48.71,agent,,0000,0000,0000,,{\pos(164,174)\clip(282,119,513,201)}, Dialogue: 0,0:03:48.64,0:03:48.71,agent,,0000,0000,0000,,{\pos(164,194)\clip(282,119,513,201)}{\b1\c&HA00000&}alanmeans06: {\b0\c&H000404&}
最初は最大1時間かかりましたが、主な問題は、1秒後にフレーム全体が変更され、ほとんどすべてをやり直さなければならないことでした。たとえば、新しい字幕を作成しない場合、これはたった90ミリ秒で起こります:

つまり この場合、ICQウィンドウは単純に移動しました。 そして、新しいメッセージが世界に追加された場合、古いメッセージのすべての位置をやり直す必要があります。 確かに、多くの人がすでに気づいているように、ここでは少しのトリックを行いました。多くの場合、自動化できる作業を行う必要があります。 個人的な理由でaegisabが理解できるスクリプトをluaで書き始めていませんでした:)が、Cで起こったことは次のとおりです。

「フレームごと」のチャットを形成し、行をシフトして新しい行を追加する単純なプログラムは、出力のタイミングを決めるためだけに残ります。
非表示のテキスト
Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,{\p1\pos(0,0)\clip(297,340,778,543)}m 0 0 l 800 0 l 800 600 l 0 600{\p0} Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,{\p1\pos(0,0)}m 297 340 l 778 340 l 778 543 l 297 543{\p0} Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,{\pos(297,543)}<tefl0n> NFO Dialogue: 0,0:00:00.01,0:00:00.01,Default,,0000,0000,0000,,{\pos(297,527)}<tefl0n> NFO Dialogue: 0,0:00:00.01,0:00:00.01,Default,,0000,0000,0000,,{\pos(297,543)}<pyr0> Dialogue: 0,0:00:00.02,0:00:00.02,Default,,0000,0000,0000,,{\pos(297,511)}<tefl0n> NFO Dialogue: 0,0:00:00.02,0:00:00.02,Default,,0000,0000,0000,,{\pos(297,527)}<pyr0> Dialogue: 0,0:00:00.02,0:00:00.02,Default,,0000,0000,0000,,{\pos(297,543)}<slipknot> coda ? Dialogue: 0,0:00:00.03,0:00:00.03,Default,,0000,0000,0000,,{\pos(297,495)}<tefl0n> NFO Dialogue: 0,0:00:00.03,0:00:00.03,Default,,0000,0000,0000,,{\pos(297,511)}<pyr0> Dialogue: 0,0:00:00.03,0:00:00.03,Default,,0000,0000,0000,,{\pos(297,527)}<slipknot> coda ? Dialogue: 0,0:00:00.03,0:00:00.03,Default,,0000,0000,0000,,{\pos(297,543)}<c0da> ....
メッセンジャーの入力は、非常に適切なkaraoke- \ koタグを使用して行われ、次のようになりました。

入力の同期に問題がないかどうかを確認するために、最初に入力したテキストを以下では省略してから、適切な場所に配置しました。 セットのサブタイトルは次のとおりです。
Dialogue: 0,0:21:02.27,0:21:07.41,mirc,,0000,0000,0000,,{\pos(298,593)}{\ko10}{\ko7} {\ko7}{\ko8} {\ko7}{\ko10}{\ko10}{\ko8}{\ko10}{\ko8}{\ko10}{\ko8}{\ko10}{\ko10} {\ko10}{\ko7}{\ko10}{\ko10}{\ko10}{\ko10}{\ko10}{\ko10}{\ko7}{\ko10} {\ko10}{\ko7}{\ko10}{\ko10}{\ko10}{\ko7} {\ko10}{\ko10}{\ko10}{\ko10}{\ko9}{\ko9}{\ko9}{\ko9} {\ko9}{\ko9} {\ko9}{\ko9}{\ko9}{\ko9} {\ko9}{\ko9}{\ko9}{\ko9}{\ko9} {\ko9}{\ko9}{\ko9}{\ko9}{\ko9}
シリーズの最初と最後に、テキストが表示または非表示になります。 この部分を次のように行いました。背景を黒から白にオーバーフローさせました(しかし、ほとんどの場合、これらは他の色のグラデーションでした)
ダイアログ:0,0:00:52.76,0:02:02.43、white2 ,, 0000,0000,0000 ,, {\ t(0,1900、\ c&FFFFFF&)\ p1 \ clip(365,264,685,517)} m 0 0 l 800 0 l 800 600 l 0 600 {\ p0}
テキスト自体はfadタグで「ぼやけ」ていました。
非表示のテキスト

合計で多くの時間、460キロバイトのサブとシリーズが翻訳されます! :)一方で、これを行うことは非常に退屈であり、他方では、読みやすい素晴らしいサブタイトルを取得します。 残りはビデオの小さな「埋め込み」字幕までであるため、すべて意図したとおりに見えます。