Ders 4
This commit is contained in:
parent
e84de621c2
commit
08619b2ef2
7 changed files with 175 additions and 30 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -54,7 +54,7 @@ cover/
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
*.mo
|
*.mo
|
||||||
*.pot
|
# *.pot
|
||||||
|
|
||||||
# Django stuff:
|
# Django stuff:
|
||||||
*.log
|
*.log
|
||||||
|
|
1
po/compile_translations.sh
Executable file
1
po/compile_translations.sh
Executable file
|
@ -0,0 +1 @@
|
||||||
|
msgfmt en_US.po -o en_US.mo
|
68
po/en_US.po
Normal file
68
po/en_US.po
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
# FULL NAME <EMAIL@ADDRESS>, 2024.
|
||||||
|
# rstrstrstrst <rstrstr@arstarst.rstrst>, 2024.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: 1.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2024-06-21 19:25+0300\n"
|
||||||
|
"PO-Revision-Date: 2024-06-21 19:33+0300\n"
|
||||||
|
"Last-Translator: rstrstrstrst <rstrstr@arstarst.rstrst>\n"
|
||||||
|
"Language-Team: LANGUAGE <a@aaaaaa.carstrtarstarstarst>\n"
|
||||||
|
"Language: en_US\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Gtranslator 46.1\n"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:54
|
||||||
|
msgid "Metin Editörü"
|
||||||
|
msgstr "Text Editor"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:61
|
||||||
|
msgid "Yeni Doküman"
|
||||||
|
msgstr "New Document"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:67 ../src/MainWindow.py:135
|
||||||
|
msgid "Dosya Aç"
|
||||||
|
msgstr "Open File"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:73
|
||||||
|
msgid "Kaydet"
|
||||||
|
msgstr "Save"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:79
|
||||||
|
msgid "Farklı Kaydet"
|
||||||
|
msgstr "Save As"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:94
|
||||||
|
msgid "Seçenekler"
|
||||||
|
msgstr "Preferences"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:130
|
||||||
|
msgid "Yeni Dosya"
|
||||||
|
msgstr "New File"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:138
|
||||||
|
msgid "_Aç"
|
||||||
|
msgstr "_Open"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:139
|
||||||
|
msgid "_İptal"
|
||||||
|
msgstr "_Cancel"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:172
|
||||||
|
msgid "Dosyayı Kaydet"
|
||||||
|
msgstr "Save File"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:175
|
||||||
|
msgid "_Save"
|
||||||
|
msgstr "_Save"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:176
|
||||||
|
msgid "_Cancel"
|
||||||
|
msgstr "_Cancels"
|
1
po/files
Normal file
1
po/files
Normal file
|
@ -0,0 +1 @@
|
||||||
|
../src/MainWindow.py
|
2
po/generate_pot_file.sh
Executable file
2
po/generate_pot_file.sh
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
cd $(dirname "$0")
|
||||||
|
xgettext --files-from=files --language=Python -o gtk4py.pot
|
66
po/gtk4py.pot
Normal file
66
po/gtk4py.pot
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2024-06-21 19:25+0300\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:54
|
||||||
|
msgid "Metin Editörü"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:61
|
||||||
|
msgid "Yeni Doküman"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:67 ../src/MainWindow.py:135
|
||||||
|
msgid "Dosya Aç"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:73
|
||||||
|
msgid "Kaydet"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:79
|
||||||
|
msgid "Farklı Kaydet"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:94
|
||||||
|
msgid "Seçenekler"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:130
|
||||||
|
msgid "Yeni Dosya"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:138
|
||||||
|
msgid "_Aç"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:139
|
||||||
|
msgid "_İptal"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:172
|
||||||
|
msgid "Dosyayı Kaydet"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:175
|
||||||
|
msgid "_Save"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/MainWindow.py:176
|
||||||
|
msgid "_Cancel"
|
||||||
|
msgstr ""
|
|
@ -1,9 +1,19 @@
|
||||||
import gi, sys
|
import gi, sys
|
||||||
gi.require_version('Gtk', '4.0')
|
|
||||||
|
gi.require_version("Gtk", "4.0")
|
||||||
from gi.repository import Gtk, Gio
|
from gi.repository import Gtk, Gio
|
||||||
|
|
||||||
import FileOperations
|
import FileOperations
|
||||||
|
|
||||||
|
import locale
|
||||||
|
from locale import gettext as _
|
||||||
|
|
||||||
|
APPNAME = "gtk4py"
|
||||||
|
TRANSLATIONS_PATH = "/usr/share/locale"
|
||||||
|
locale.bindtextdomain(APPNAME, TRANSLATIONS_PATH)
|
||||||
|
locale.textdomain(APPNAME)
|
||||||
|
|
||||||
|
|
||||||
class MainWindow(Gtk.ApplicationWindow):
|
class MainWindow(Gtk.ApplicationWindow):
|
||||||
def __init__(self, app):
|
def __init__(self, app):
|
||||||
super().__init__(application=app)
|
super().__init__(application=app)
|
||||||
|
@ -22,7 +32,6 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||||
def setup_variables(self):
|
def setup_variables(self):
|
||||||
self._current_working_file = None
|
self._current_working_file = None
|
||||||
|
|
||||||
|
|
||||||
def setup_actions(self):
|
def setup_actions(self):
|
||||||
new_action = Gio.SimpleAction(name="new")
|
new_action = Gio.SimpleAction(name="new")
|
||||||
new_action.connect("activate", self.on_action_win_new_activated)
|
new_action.connect("activate", self.on_action_win_new_activated)
|
||||||
|
@ -33,43 +42,41 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||||
self.add_action(open_action)
|
self.add_action(open_action)
|
||||||
|
|
||||||
save_action = Gio.SimpleAction(name="save")
|
save_action = Gio.SimpleAction(name="save")
|
||||||
save_action.connect("activate" , self.on_action_win_save_activated)
|
save_action.connect("activate", self.on_action_win_save_activated)
|
||||||
self.add_action(save_action)
|
self.add_action(save_action)
|
||||||
|
|
||||||
save_as_action = Gio.SimpleAction(name="save-as")
|
save_as_action = Gio.SimpleAction(name="save-as")
|
||||||
save_as_action.connect("activate", self.on_action_win_save_as_activated)
|
save_as_action.connect("activate", self.on_action_win_save_as_activated)
|
||||||
self.add_action(save_as_action)
|
self.add_action(save_as_action)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def setup_window(self):
|
def setup_window(self):
|
||||||
self.set_default_size(600, 400)
|
self.set_default_size(600, 400)
|
||||||
self.set_title("Metin Editörü")
|
self.set_title(_("Metin Editörü"))
|
||||||
|
|
||||||
def setup_headerbar(self):
|
def setup_headerbar(self):
|
||||||
btn_new = Gtk.Button(
|
btn_new = Gtk.Button(
|
||||||
label="New",
|
label="New",
|
||||||
action_name="win.new",
|
action_name="win.new",
|
||||||
icon_name="document-new-symbolic",
|
icon_name="document-new-symbolic",
|
||||||
tooltip_text="Yeni Doküman"
|
tooltip_text=_("Yeni Doküman"),
|
||||||
)
|
)
|
||||||
btn_open = Gtk.Button(
|
btn_open = Gtk.Button(
|
||||||
label="Open",
|
label="Open",
|
||||||
action_name="win.open",
|
action_name="win.open",
|
||||||
icon_name="document-open-symbolic",
|
icon_name="document-open-symbolic",
|
||||||
tooltip_text="Dosya Aç"
|
tooltip_text=_("Dosya Aç"),
|
||||||
)
|
)
|
||||||
btn_save = Gtk.Button(
|
btn_save = Gtk.Button(
|
||||||
label="Save",
|
label="Save",
|
||||||
action_name="win.save",
|
action_name="win.save",
|
||||||
icon_name="document-save-symbolic",
|
icon_name="document-save-symbolic",
|
||||||
tooltip_text="Kaydet"
|
tooltip_text=_("Kaydet"),
|
||||||
)
|
)
|
||||||
btn_save_as = Gtk.Button(
|
btn_save_as = Gtk.Button(
|
||||||
label="Save As",
|
label="Save As",
|
||||||
action_name="win.save-as",
|
action_name="win.save-as",
|
||||||
icon_name="document-save-as-symbolic",
|
icon_name="document-save-as-symbolic",
|
||||||
tooltip_text="Farklı Kaydet"
|
tooltip_text=_("Farklı Kaydet"),
|
||||||
)
|
)
|
||||||
|
|
||||||
box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
|
box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
|
||||||
|
@ -81,7 +88,11 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||||
headerbar = Gtk.HeaderBar()
|
headerbar = Gtk.HeaderBar()
|
||||||
headerbar.pack_start(box)
|
headerbar.pack_start(box)
|
||||||
|
|
||||||
btn_preferences = Gtk.Button(label="Preferences", icon_name="open-menu-symbolic", tooltip_text="Seçenekler")
|
btn_preferences = Gtk.Button(
|
||||||
|
label="Preferences",
|
||||||
|
icon_name="open-menu-symbolic",
|
||||||
|
tooltip_text=_("Seçenekler"),
|
||||||
|
)
|
||||||
box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
|
box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
|
||||||
box.append(btn_preferences)
|
box.append(btn_preferences)
|
||||||
headerbar.pack_end(box)
|
headerbar.pack_end(box)
|
||||||
|
@ -89,11 +100,8 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||||
self.set_titlebar(headerbar)
|
self.set_titlebar(headerbar)
|
||||||
|
|
||||||
def setup_ui(self):
|
def setup_ui(self):
|
||||||
self.text_view = Gtk.TextView (
|
self.text_view = Gtk.TextView(
|
||||||
monospace=True,
|
monospace=True, left_margin=5, right_margin=5, top_margin=5
|
||||||
left_margin=5,
|
|
||||||
right_margin=5,
|
|
||||||
top_margin=5
|
|
||||||
)
|
)
|
||||||
scrolled_window = Gtk.ScrolledWindow(child=self.text_view)
|
scrolled_window = Gtk.ScrolledWindow(child=self.text_view)
|
||||||
|
|
||||||
|
@ -116,20 +124,19 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||||
start = buffer.get_start_iter()
|
start = buffer.get_start_iter()
|
||||||
buffer.place_cursor(start)
|
buffer.place_cursor(start)
|
||||||
|
|
||||||
|
|
||||||
# == CALLBACKS ==
|
# == CALLBACKS ==
|
||||||
def on_action_win_new_activated(self, action, params):
|
def on_action_win_new_activated(self, action, params):
|
||||||
self.set_textview_text("")
|
self.set_textview_text("")
|
||||||
self.set_title("New File")
|
self.set_title(_("Yeni Dosya"))
|
||||||
self._current_working_file = None
|
self._current_working_file = None
|
||||||
|
|
||||||
def on_action_win_open_activated(self, action, params):
|
def on_action_win_open_activated(self, action, params):
|
||||||
self._open_file_chooser = Gtk.FileChooserNative (
|
self._open_file_chooser = Gtk.FileChooserNative(
|
||||||
title="Open File",
|
title=_("Dosya Aç"),
|
||||||
transient_for=self,
|
transient_for=self,
|
||||||
action=Gtk.FileChooserAction.OPEN,
|
action=Gtk.FileChooserAction.OPEN,
|
||||||
accept_label="_Open",
|
accept_label=_("_Aç"),
|
||||||
cancel_label="_Cancel"
|
cancel_label=_("_İptal"),
|
||||||
)
|
)
|
||||||
|
|
||||||
self._open_file_chooser.connect("response", self.on_open_dialog_response)
|
self._open_file_chooser.connect("response", self.on_open_dialog_response)
|
||||||
|
@ -154,17 +161,19 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||||
def on_action_win_save_activated(self, action, params):
|
def on_action_win_save_activated(self, action, params):
|
||||||
if self._current_working_file:
|
if self._current_working_file:
|
||||||
text = self.get_textview_text()
|
text = self.get_textview_text()
|
||||||
FileOperations.save_file(self._current_working_file, text, self.on_file_saved)
|
FileOperations.save_file(
|
||||||
|
self._current_working_file, text, self.on_file_saved
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
self.activate_action("win.save-as")
|
self.activate_action("win.save-as")
|
||||||
|
|
||||||
def on_action_win_save_as_activated(self, action, params):
|
def on_action_win_save_as_activated(self, action, params):
|
||||||
self._save_file_chooser = Gtk.FileChooserNative (
|
self._save_file_chooser = Gtk.FileChooserNative(
|
||||||
title="Save File",
|
title=_("Dosyayı Kaydet"),
|
||||||
transient_for=self,
|
transient_for=self,
|
||||||
action=Gtk.FileChooserAction.SAVE,
|
action=Gtk.FileChooserAction.SAVE,
|
||||||
accept_label="_Save",
|
accept_label=_("_Save"),
|
||||||
cancel_label="_Cancel"
|
cancel_label=_("_Cancel"),
|
||||||
)
|
)
|
||||||
|
|
||||||
self._save_file_chooser.connect("response", self.on_save_dialog_response)
|
self._save_file_chooser.connect("response", self.on_save_dialog_response)
|
||||||
|
@ -183,5 +192,3 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||||
filename = FileOperations.get_name(file)
|
filename = FileOperations.get_name(file)
|
||||||
self.set_title(filename)
|
self.set_title(filename)
|
||||||
self._current_working_file = file
|
self._current_working_file = file
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue