Merhaba Arkadaşlar,
Bir konuda yardımlarınıza ihtiyacım var. Sorum şu idi: Bir tane uygulamam var ‘Küyösis’ adında bu uygulamamı .deb ile paketleyip yükledikten sonra (opt dizinine kuruluyor) uygulama çalıştırıldığında uygulama ismindeki Türkçe karakterler görünmüyor. Acaba bu problemi nasıl çözebilirim.
.desktop dosyasının içeriği:
[Desktop Entry]
Name=Küyösis
Comment=Kütüphane Yönetim Sistemi
GenericName=Kütüphane Yönetim Sistemi
Exec=/opt/kuyosis/küyösis
Icon=/opt/kuyosis/assets/icon/kuyosis.png
Type=Application
StartupNotify=false
Terminal=false
Categories=Office
Selamunaleyküm hocam
isim kısmı genellikle ingilizce oluyor
sornasında dillere göre eklemeler yapılıyor. örneğin Pardus mağazada Name[tr]=Pardus Yazılım Merkezi yapılmış
[Desktop Entry]
Name=Pardus Software Center
Name[pt]=Centro de Software Pardus
Name[tr]=Pardus Yazılım Merkezi
GenericName=Software Center
GenericName[pt]=Centro de Software
GenericName[tr]=Yazılım Merkezi
Comment[tr]=Uygulamaları yükleyin, kaldırın, güncelleyin
Comment=Install, remove, update applications
Comment[pt]=Instalar, remover, atualizar aplicações
Exec=pardus-software
Icon=pardus-software
Terminal=false
Type=Application
Categories=GTK;System;PackageManager;X-Pardus-Apps;
StartupNotify=true
Keywords=install;uninstall;package;application;update;upgrade;software;store;
Keywords[pt]=instalar;desinstalar;pacote;aplicação;atualizar;software;loja;
Keywords[tr]=yükle;kaldır;paket;uygulama;güncelleştirme;yükseltme;yazılım;mağaza;
/usr/share/applications/ burdan başka uygulama .destop örneklerine bakabilirsiniz
Bilgisayarımdaki bazı Pardus uygulamalarının .dekstop dosyalarını ve .mo çeviri dosyalarını inceledim. ‘.desktop’ dosyasında ‘Name[tr]’ bir isimlendirme var ve /usr/share/local/tr/LC_MESSAGES klasoründe de uygulamanın isminde uygulama_ismi.mo çeviri dosyası mevcut. Ben de bu dosyalardaki gibi kendi uygulamamda gerekli değişiklikleri yaptım.
kuyosis.desktop dosyamın içeriği:
[Desktop Entry]
Name=kuyosis
Name[tr]=küyösis
Comment=Kütüphane Yönetim Sistemi
GenericName=Kütüphane Yönetim Sistemi
Exec=sh /opt/kuyosis/kuyosis
Icon=/opt/kuyosis/assets/icon/kuyosis.png
Type=Application
StartupNotify=false
Terminal=true
Categories=Office
kuyosis.po (kuyosis.mo şeklinde derlendi.) dosyamın içeriği:
Bunları yapmama rağmen başarılı olamadım. Bunların haricinde yapılması gereken başka bir işlem var mı? Ben tam olarak neyi eksik yapıyorum anlamış değilim? Acaba uygulamanın içinde de bir işlem yapıyor muyuz? (Uygulamam PyQt6 ile oluşturuldu.)
Bu akşam Python3 + GTK4’te tam olarak bu “yerelleştirme (localization)” konusunu ve .po dosyalarıyla çeviri özelliğini uygulamamıza nasıl ekleyebiliriz bunu Pardus Resmi Discord kanalımızda canlı ders olarak anlatacağım, bekleriz
Öncelikle binary adında türkçe karakter kullanmayın. Çok doğru değil.
İkinci olarak yazdığınız kodun gettext ile mo dosyasını okuyup içindeki değerleri kullanabiliyor olması gerekiyor. Yani kodunuzda gettext desteklemiyorsa ve doğru şekilde yapılandırılmamışsa bu değerleri görmeyecektir.
Üçüncü olarak uygulamanın hangi yollarda hangi adla çeviriyi aradığı önemli.
Bir de uygulamanın adı zaten Türkçe karakter içerecekse direk Türkçe karakterli olarak kaynak kodunda kullanabilirsiniz. Çoklu dil desteği gibi bir amacınız yoksa koda takla attırmaya gerek yok.