- Mesaj
- 1.586
- Çözümler
- 57
- Beğeni
- 3.171
- Puan
- 1.839
- Ticaret Puanı
- 0
Dikkat! Tamamen AI slop'tur. AI kodudur. Hatta tembellikten konuyu da AI'a yazdırdım.
[PY] Tüm Korece yorum satırlarını İngilizceye çevirin
Kaynak koddaki (.cpp / .h / .hpp) tüm Korece yorum satırlarını tarayıp Google Translate ile İngilizceye çeviren bir Python script'i paylaşıyorum. Metin2 tabanlı projelerde sık karşılaşılan CP949 (Korece ANSI) encoding'i doğru okuyup doğru yazıyor, yani "?" karakter bozulması yaşamıyorsunuz.
Neler yapıyor:
- Sadece yorumları değiştirir. String/char literal'ların (örn. MessageBox içindeki Korece metinler) içine dokunmaz — kaynak kodu satır satır tarayıp string/char literal'ları comment parser'ından hariç tutuyor.
- Dosyaları doğru codec (CP949) ile açıp aynı codec ile geri yazıyor, böylece dokunulmayan Korece string'ler bozulmadan kalıyor.
- Çeviri sonucu hala Korece karakter içeriyorsa (API çeviremediyse) o yorumu olduğu gibi bırakıyor, riske girmiyor.
- Fonksiyon/değişken isimleri gibi kod-benzeri token'ları (örn. CEffectData, m_pLZObj, 0x9E3779B9) çeviriye göndermeden önce maskeliyor, çeviri bitince geri koyuyor — yani identifier'lar çevrilmiyor.
- Çeviriler translate_cache.json içinde önbelleğe alınıyor. Script yarıda kesilse bile (Ctrl+C, terminal kapanması vs.) hiçbir şey kaybolmuyor, tekrar çalıştırınca kaldığı yerden devam ediyor.
Kullanım:
Script'i proje kök dizinine koyup çalıştırmanız yeterli:
Kod:
python translate_korean_comments.py
Varsayılan olarak script'in bulunduğu dizinin altındaki tüm .cpp/.h/.hpp/.inl dosyalarını tarar (Extern/, .git, build klasörleri gibi yerler hariç tutulur).
Önce test etmek isterseniz (dry-run):
Dosyalara hiçbir şey yazmadan, çevirilerin nasıl görüneceğini önizlemek için:
Kod:
python translate_korean_comments.py --dry-run --report report.txt
Bu, report.txt içine her değişecek yorumun eski/yeni halini yazar, kaynak dosyalara dokunmaz. Not: dry-run yine de API'ye çeviri isteği atar ve cache'i doldurur — yani asıl çalıştırmayı yaptığınızda o kısımlar anında (cache'den) gelir, tekrar bekletmez.
Satır sayısını korumak isterseniz (--no-merge):
Script varsayılan olarak art arda gelen yorum satırlarını tek paragrafta birleştirip yeniden satır kaydırması yapar (daha akıcı İngilizce olur ama satır numaraları kayabilir). Orijinal repo ile diff alacaksanız veya satır numaralarının değişmemesi gerekiyorsa:
Kod:
python translate_korean_comments.py --no-merge
Bu modda her yorum satırı ayrı ayrı çevrilir, dosyadaki toplam satır sayısı birebir aynı kalır.
Diğer kullanışlı parametreler:
Kod:
--root Client/UserInterface : sadece belirli bir klasörü tara
--backup : her dosyanın yanına .bak yedeği bırak
--limit 5 : sadece ilk 5 dosyada dene
--jobs 8 : eşzamanlı çeviri isteği sayısı (varsayılan 4)
--api-key <KEY> : ücretsiz endpoint yerine resmi Google Translate v2 API kullan
--skip "Extern,.git,build,..." : taranmayacak klasörler
Önerim: Direkt main branch üzerinde çalıştırmayın, önce yeni bir branch açın:
Kod:
git checkout -b translate-comments
python translate_korean_comments.py --no-merge
Sonra diff'e bakıp beğenirseniz merge edersiniz.
Script (translate_korean_comments.py):
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
Sonuç:
Son düzenleme:

Burada önemli olan benim için "AI yazdı mı?"dan ziyade, ortaya çıkan şeyin gerçekten işe yarayıp yaramadığı. Bu araç da en azından belirli bir problemi çözmeye çalışıyor.