回答:
字幕の編集/翻訳(テキストベースの字幕、つまり)については、Gaupolを強くお勧めします。
sudo apt-get install gaupol
のほかにgaupol
、Subtitle Editorと Gnome Subtitles。
しかし、スクリーンショットから、あなたのことは明らかである.srt
ファイルがありません Unicodeでエンコードされて。
結局のところ、iconv
変化する UTF-8へのファイルのエンコーディングを、しかし、変換されたファイルはまだGeditの中で開いたときに表示同じ文字を持っています。
私が見つけた解決策はこれです:
開いているウィンドウの下部に、[ 文字エンコーディング]というタイトルの選択メニューがあります。その他...(最後のオプション)をクリックします。
ギリシャ語のISO-8859-7など、ファイルに適切なエンコードを選択し、ボタンAcceptをクリックします。
.srt
ファイルを開き、すべての文字が正しくレンダリングされていることを確認してください。それ以外の場合は、別のエンコードで上記の手順を繰り返します。コマンドを実行できますfile -bi yourfile.srt
を、ファイルの正しいエンコードを決定ます(ただし、結果は必ずしも正確ではありませんが)。
コードページを追加するこの同じ手順は、Geditでも機能します。しかし、この質問は字幕ファイルに関するものなので、私はGaupolに指示を残します。
幸運を。
iconv
文字エンコードは変更されますが、プログラムはUTF-8として開かれたときに表示される文字を置き換えません。更新された回答を確認してください。乾杯。
iconv -f ISO-8859-7 -t UTF-8 Input_file.srt > Output_file.srt
Kateエディターから開くと、適切なテキストが表示されます。Geditから開く必要がある場合は、上記のターミナルコマンドを実行してコードを永続的に変更します。
お勧めしenca
ます。gaupolとは異なり、字幕ファイルだけでなく、任意のテキストファイルを処理できます。
encaをインストールします。
sudo apt-get install enca
ファイルのエンコードを把握するには、encaが推測できるかどうかを確認します。
enca <file>
または、失敗し、テキストファイルの言語がわかっている場合は、たとえば
enca -L ru <file>
そしてそれがあなたに与えるものを見てください。サポートされている言語のリストをから入手してくださいman enca
。
UTF-8に変換することをお勧めします。実行すると実行できます
enconv -x utf8 <file>
または、enca
言語を推測できない場合
enconv -L ru -x utf8 <file>
これでうまくいくはずです。
問題は、Gedit(および他の多くのLinuxアプリ)がテキストのエンコードを正しく認識しないことです。一方、VLCはおそらく([字幕設定]タブを使用して)正しく認識されるように設定されているため、そこで問題が発生することはありません。解決策は簡単です。
ファイルをダブルクリックして開くのではなく、Geditの[開く]ダイアログを使用して開きます。そこでは、左下にを見つけることができdrop-down for Encoding
ます。デフォルトでは、「自動検出」が選択されています。「Windows-1253」または「ISO-8859-7」に設定すると、ファイルを正しく開くことができます(その後、将来の問題を回避するためにUTF-8に保存できます)。
一般的な情報については、subtitle-index.orgがあります。、多数の字幕を集中させ、複数の基準(期間、スペルチェック、リスビリティ、エンコード)に沿ってランク付けし、UTF-8として直接ダウンロードするのに最適なものを提供します。
かなりうまく機能し、かなり一般的で迷惑なエンコードの問題を回避します。
これは、字幕を含むすべてのテキストファイルをUTF-8エンコーディングのテキストファイルに変換するためのPython3関数です。
def correctSubtitleEncoding(filename, newFilename, encoding_from='ISO-8859-7', encoding_to='UTF-8'):
with open(filename, 'r', encoding=encoding_from) as fr:
with open(newFilename, 'w', encoding=encoding_to) as fw:
for line in fr:
fw.write(line[:-1]+'\r\n')