(Untitled)

(Untitled)

Gue bikin tool Python sederhana buat translate subtitle SRT dari bahasa apapun ke Indo gaul ala drama Korea/series. Pake Google Translate API (gratis via googletrans), jadi natural & kekinian.

Cara pake:

from googletrans import Translator
import pysrt
import sys
import re

def translate_to_gaul(text):
    translator = Translator()
    
    # Skip kalau udah Indo atau kosong
    if not text.strip() or re.match(r'^[a-zA-Z\s]+$', text.strip()):
        return text
    
    # Translate ke Indo dulu
    try:
        translated = translator.translate(text, src='auto', dest='id').text
    except:
        return text
    
    # Gaul-ify: tambahin slang Indo kekinian
    gaul_map = {
        'saya': 'gue',
        'kamu': 'lu',
        'dia': 'dia',
        'aku': 'gue',
        'anda': 'lu',
        'mau': 'mau',
        'ingin': 'pengen',
        'tidak': 'gak',
        'sangat': 'banget',
        'sedang': 'lagi',
        'akan': 'mau',
        'sudah': 'udah',
        'belum': 'blm',
        'mengapa': 'kenapa',
        'bagaimana': 'gimana',
        'di mana': 'dimana',
        'kapan': 'kapan',
        'siapa': 'siapa',
        'apa': 'apa',
        'cinta': 'sayang',
        'kasih sayang': 'cinta',
        'terima kasih': 'thx',
        'maaf': 'sori',
        'oke': 'ok',
        'baik': 'oke',
        'mantap': 'mantul',
        'keren': 'kece',
        'cantik': 'cakep',
        'ganteng': 'ganteng',
        'teman': 'temen',
        'rumah': 'kontrakan' if 'lu' in translated else 'rumah',
        'mari': 'ayo',
        'ayo': 'yuk',
        'yuk': 'yuk'
    }
    
    # Replace kata-kata gaul
    for formal, gaul in gaul_map.items():
        translated = re.sub(rf'\b{formal}\b', gaul, translated, flags=re.IGNORECASE)
    
    # Tambah ekspresi drama
    if any(word in translated.lower() for word in ['cinta', 'sayang', 'sakit', 'bahagia']):
        extras = ['banget', 'nih', 'lo', 'bang', 'sih']
        if len(translated.split()) < 5:
            translated += f" {random.choice(extras)}"
    
    # Fix tanda baca
    translated = re.sub(r'\s([.,!?])', r'\1', translated)
    return translated.strip()

import random

# Main
if len(sys.argv) != 3:
    print("Cara pake: python srt_translator.py input.srt output.srt")
    sys.exit(1)

input_file = sys.argv[1]
output_file = sys.argv[2]

subs = pysrt.open(input_file)
translator = Translator()

print(f"🔥 Translating {len(subs)} subtitles...")

for i, sub in enumerate(subs):
    print(f"Progress: {i+1}/{len(subs)}")
    
    # Translate content
    sub.text = translate_to_gaul(sub.text)
    
subs.save(output_file, encoding='utf-8')
print(f"✅ Done! Check {output_file}")

Contoh hasil:

[Original] I love you so much!
[Translated] Gue sayang banget lu! 😍

Fitur gaul:

  • ✅ Auto detect bahasa
  • ✅ Indo kekinian (gue/lu/gak/banget/yuk)
  • ✅ Tetap natural buat drama
  • ✅ Keep timing SRT
  • ✅ Handle dialog panjang

Upgrade tips:

  • Buat lebih gaul: tambah gaul_map sesuai selera
  • Offline: ganti pake transformers (HuggingFace)
  • Batch: drag-drop via GUI pake tkinter

Test yuk, bro! Kirim SRT lu, gue cek hasilnya. Mantul! 🚀