Yardım Çince yazılar

  • Konuyu açan Konuyu açan cacaa
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 6
  • Gösterim Gösterim 361
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

cacaa

Üye
Üye
Mesaj
88
Çözümler
7
Beğeni
50
Puan
709
Ticaret Puanı
0
Merhabalar, bazı bildirimlerde şu şekilde Çince yazılar çıkıyor karşıma. İngilizce locale ve ingilizce locale_string kullanıyorum fakat içeriğinde çince olan bir kısım göremedim. Bu olayı neden yaşıyor olabilirim?

1715186782579.png
 
Oyunun kaynak kodunda Çince yazı yok. Oyunun varsayılan dili Korece, locale_string.txt dosyanızın encoding'ini bozmuş olabilirsiniz. O zaman server aradığı Korece yazıyı locale_string'de bulamadığı için kaynak kodunda olduğu gibi gösterir. Veyahut Server Source'da olan bu yazı, locale_string'e eklenmemiş olabilir. locale_string.txt dosyanı Notepad++ ile açıp, üstteki menüden sırasıyla Encoding > Character Sets > Korean > EUC-KR'e tıklayıp, Korece yazıların düzgün görünüp görümediğine bakabilir misin? Yada bu işlemi yapıp buraya bir SS bırakabilirsin.
 
Oyunun kaynak kodunda Çince yazı yok. Oyunun varsayılan dili Korece, locale_string.txt dosyanızın encoding'ini bozmuş olabilirsiniz. O zaman server aradığı Korece yazıyı locale_string'de bulamadığı için kaynak kodunda olduğu gibi gösterir. Veyahut Server Source'da olan bu yazı, locale_string'e eklenmemiş olabilir. locale_string.txt dosyanı Notepad++ ile açıp, üstteki menüden sırasıyla Encoding > Character Sets > Korean > EUC-KR'e tıklayıp, Korece yazıların düzgün görünüp görümediğine bakabilir misin? Yada bu işlemi yapıp buraya bir SS bırakabilirsin.
1715189101136.png


Encode sorunlu görünmüyor ne yazık ki.
 
Ben server kaynak kodlarını Client locale_text'e geçirirken oyundaki simyayla ilgili çoğu yazının locale_text içinde olmadığını fark etmiştim. Oyundaki başka yazılar düzgün mü? Sadece bu yazı mı böyle? Oyundaki diğer (mesela karakter değiştire tıklayınca yazan "Karakter değiştiriliyor... Lütfen bekleyin") yazılar doğru gözüküyorsa, kesinlikle bu Korece yazı locale_text.txt'de yok demek.
 
LC_TEXT içinde kullanılmışsa, "Eksik locale stringleri için hata düzenlemesi" şeklinde google'da aratırsan başka bir forumda paylaştığım düzenleme ile hatanın kaynağını görebilirsin.

Direkt kullanılmışsada aşağıdaki script ile LC_TEXT kullanmayan mesajların başına LC_TEXT ekletebilirsin.
Kod:
Genişlet Daralt Kopyala
import os
import re
import chardet

def process_cpp_files(directory):
    for root, _, files in os.walk(directory):
        for file in files:
            if file.endswith('.cpp'):
                file_path = os.path.join(root, file)
                process_file(file_path)

def process_file(file_path):
    # Detect encoding
    with open(file_path, 'rb') as f:
        rawdata = f.read()
        encoding = chardet.detect(rawdata)['encoding']

    # Convert to UTF-8 if not already
    if encoding and encoding.lower() != 'utf-8':
        with open(file_path, 'r', encoding=encoding) as f:
            content = f.read()
        with open(file_path, 'w', encoding='utf-8') as f:
            f.write(content)

    modified_lines = []
    with open(file_path, 'r', encoding='utf-8') as f:
        lines = f.readlines()
        for line in lines:
            modified_line = process_line(line)
            modified_lines.append(modified_line)

    with open(file_path, 'w', encoding='utf-8') as f:
        f.writelines(modified_lines)

def process_line(line):
    if 'ChatPacket(CHAT_TYPE_INFO, "' in line:
        # Using regular expression to find and replace the second argument
        modified_line = re.sub(r'(ChatPacket\(CHAT_TYPE_INFO, )("[^"]+")', r'\1LC_TEXT(\2)', line)
        return modified_line
    else:
        return line

if __name__ == "__main__":
    process_cpp_files("...\\source\\server\\game\\src")
    print("Processing complete.")
 
Üst