Dil değiştirme , dil seçenekleri ekleme nasıl yapılır?

Merhaba,

bir pyqt5 projem var buna dil seçenekleri eklemek istiyorum kullanıcın seçtiği dilide program kapatılıp açıldıktan sonra tekrar aynı dil olarak devam etsin istiyorum nasıl bir yol izliyebilirim şimdiden teşekkürler

PyQt kütüphanesi ile çalışmadım/kod yazmadım ama sorunu görünce çözüm için aklıma bir yöntem geldi,.
Örnek için internetten basit, sade bir kod bulup denedim ve istediğim sonucu aldım.
Mantığını anlatayım, sen benzer ya da daha güzel çözümler üretebilirsin.

Dil dosyalarını txt, csv, …vb biçimlerde kodun/uygulaman ile aynı konuma kaydet. (aynı klasörde olması zorunlu değil.)
Görsel arabirimde görüntülenmesini istediğin metinleri bu dosyalardan çağır/al. Bunu için Python’da Dosya İşlemleri hakkında bilgin olmalı.
Uygulama açıldığında varsaylan dil dosyasını oku / içeriğini al. (mesela olarak her satıra, uygulamanın bir metin değerini yaz)
Örneğin buton üzerinde yazmasını istediğin değeri buton.setText(“Tamam”) şeklinde değil, dosyadan okuyarak buton.setText(dil[0][:-1]) şeklinde kodla.
Uygulama her açıldığında metin değerlerini aynı dosyadan çeksin (örneğin gecerli_dil.txt)
Uygulama ayarlarında, dil seçeneği değiştirildiğinde, gecerli_dil.txt dosya içeriğini seçilen dosya içeriğine eşitle. Böylece uygulama her çalıştığında ayarlanan dil ile çalışır.

Bu yöntemden çok daha doğru yöntemler vardır. Deneyimli kullanıcılar yazarsa biz de bilgileniriz.

from PyQt5.QtWidgets import *
import sys

with open("gecerli_dil.txt", "r", encoding="utf-8") as file:
    dil = file.readlines()

class Pencere(QWidget):
    def __init__(self):
        super().__init__()
        self.layout = QVBoxLayout(self)

        self.buton1 = QPushButton(self)
        self.buton1.setText(dil[0][:-1])
        self.buton2 = QPushButton(self)
        self.buton2.setText(dil[1][:-1])
        self.buton3 = QPushButton(self)
        self.buton3.setText(dil[2][:-1])
        self.buton4 = QPushButton(self)
        self.buton4.setText(dil[3][:-1])

        self.layout.addWidget(self.buton1)
        self.layout.addWidget(self.buton2)
        self.layout.addWidget(self.buton3)
        self.layout.addWidget(self.buton4)

uygulama = QApplication(sys.argv)
pencere = Pencere()
pencere.show()
uygulama.exec_()


1 Beğeni

txt den okutmak aklıma geldi hocam fakat daha farklı birşey arıyorum diyebilirim kütüphanenin bir özelliği yada pythonun bir kütüphanesi varmı onun arayışındayım işlerimden dolayı sadece boş vaktilerimde ufak göz gezdirebiliyorum işte çok vaktim olmadığından burda sormak daha iyi oluyor 5-6 saat araştırma yerine direk arkadaşlar yönlendiriyor ve bu bana baya zaman kazandırıyor sağolsunlar

1 Beğeni