Skip to content
This repository was archived by the owner on Aug 3, 2019. It is now read-only.

Commit db6c057

Browse files
committed
Version 2.2: Added localization support
1 parent 6e005d1 commit db6c057

7 files changed

+272
-30
lines changed

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ This is a recording sample for DOTA 2 running on Wayland: [https://www.youtube.c
2222

2323
Please, consider supporting us on Patreon if you like the software. More features and new versions would be released with each goal we achieve there: https://www.patreon.com/greenproject
2424

25+
### Localization
26+
27+
Green Recorder supports localization. If you want to translate the program into your language, fork the repository on GitHub and create a new file under "po" folder with your language ISO code (like fr.po, de.po, cs.po..). And translate the strings from there.
28+
29+
Alternatively, you can open the green-recorder.pot file using programs like PoEdit and start translating.
30+
2531
## Download
2632

2733
### Ubuntu 16.04/16.10/17.04/17.10 or Linux Mint 18/18.1

debian/changelog

+8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
green-recorder (2.2) zesty; urgency=low
2+
3+
* Added localization support.
4+
* Added Arabic language.
5+
* Changed window opacity to 1.00
6+
7+
-- M.Hanny Sabbagh <[email protected]> Tue, 6 Jun 2017 00:33:33 +0200
8+
19
green-recorder (2.1.5) zesty; urgency=low
210

311
* Another try to fix #25.

green-recorder

+32-26
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,14 @@ gi.require_version('AppIndicator3', '0.1')
2121

2222
from gi.repository import Gtk, Gdk, GLib, AppIndicator3 as appindicator
2323
from pydbus import SessionBus
24-
import subprocess, signal, threading, datetime, urllib
24+
import subprocess, signal, threading, datetime, urllib, gettext, locale
25+
26+
# Localization.
27+
locale.setlocale(locale.LC_ALL, '')
28+
gettext.bindtextdomain('green-recorder', '/usr/share/locale')
29+
gettext.textdomain('green-recorder')
30+
_ = gettext.gettext
31+
gettext.install("green-recorder", "/usr/share/locale")
2532

2633
# Define a loop and connect to the session bus. This is for Wayland recording under GNOME Shell.
2734
loop = GLib.MainLoop()
@@ -169,7 +176,7 @@ def stoprecording(self):
169176

170177
# Import the glade file and its widgets.
171178
builder = Gtk.Builder()
172-
builder.add_from_file("ui/ui.glade")
179+
builder.add_from_file("/usr/share/green-recorder/ui.glade")
173180

174181
# Create pointers.
175182
window = builder.get_object("window1")
@@ -196,41 +203,40 @@ delayvalue = builder.get_object("spinbutton2")
196203
expander = builder.get_object("expandertext")
197204

198205
# Assign the texts to the interface
199-
# TODO: support internationalization using gettext.
200-
window.set_title("Green Recorder")
201-
areachooser.set_name('AreaChooser')
206+
window.set_title(_("Green Recorder"))
207+
areachooser.set_name(_('AreaChooser'))
202208
window.connect("delete-event", Gtk.main_quit,)
203209
folderchooser.set_uri("file://" + VideosFolder)
204-
filenameentry.set_placeholder_text("File Name (Will be overwritten)..")
205-
commandentry.set_placeholder_text("Enter your command here..")
206-
formatchooser.append("mkv", "MKV (Matroska multimedia container format)")
207-
formatchooser.append("avi", "AVI (Audio Video Interleaved)")
208-
formatchooser.append("mp4", "MP4 (MPEG-4 Part 14)")
209-
formatchooser.append("wmv", "WMV (Windows Media Video)")
210-
formatchooser.append("nut", "NUT (NUT Recording Format)")
210+
filenameentry.set_placeholder_text(_("File Name (Will be overwritten).."))
211+
commandentry.set_placeholder_text(_("Enter your command here.."))
212+
formatchooser.append("mkv", _("MKV (Matroska multimedia container format)"))
213+
formatchooser.append("avi", _("AVI (Audio Video Interleaved)"))
214+
formatchooser.append("mp4", _("MP4 (MPEG-4 Part 14)"))
215+
formatchooser.append("wmv", _("WMV (Windows Media Video)"))
216+
formatchooser.append("nut", _("NUT (NUT Recording Format)"))
211217
formatchooser.set_active(0)
212-
videocheck.set_label("Record Video")
213-
microphonecheck.set_label("Record Microphone")
214-
mousecheck.set_label("Show Mouse")
215-
followmousecheck.set_label("Follow Mouse")
218+
videocheck.set_label(_("Record Video"))
219+
microphonecheck.set_label(_("Record Microphone"))
220+
mousecheck.set_label(_("Show Mouse"))
221+
followmousecheck.set_label(_("Follow Mouse"))
216222
aboutdialog.set_transient_for(window)
217-
aboutdialog.set_program_name("Green Recorder")
218-
aboutdialog.set_version("2.1")
223+
aboutdialog.set_program_name(_("Green Recorder"))
224+
aboutdialog.set_version("2.2")
219225
aboutdialog.set_copyright("© 2017 Green Project")
220226
aboutdialog.set_wrap_license(True)
221227
aboutdialog.set_license("Green Recorder is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nGreen Recorder is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\nSee the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Green Recorder. If not, see <http://www.gnu.org/licenses/>.")
222-
aboutdialog.set_comments("An easy to use yet strong desktop recorder.")
228+
aboutdialog.set_comments(_("An easy to use desktop recorder for Xorg and Wayland."))
223229
aboutdialog.set_authors(['M.Hanny Sabbagh <[email protected]>'])
224230
aboutdialog.set_artists(['Mustapha Assabar'])
225231
aboutdialog.set_website("https://github.com/green-project/green-recorder")
226232
aboutdialog.set_logo_icon_name("green-recorder")
227-
windowgrabbutton.set_label("Select a Window")
228-
areagrabbutton.set_label("Select an Area")
229-
expander.set_label("Advanced:")
230-
frametext.set_label("Frames:")
231-
delaytext.set_label("Delay:")
232-
audioservertext.set_label("Audio Input:")
233-
commandtext.set_label("Run Command After Recording:")
233+
windowgrabbutton.set_label(_("Select a Window"))
234+
areagrabbutton.set_label(_("Select an Area"))
235+
expander.set_label(_("Advanced:"))
236+
frametext.set_label(_("Frames:"))
237+
delaytext.set_label(_("Delay:"))
238+
audioservertext.set_label(_("Audio Input:"))
239+
commandtext.set_label(_("Run Command After Recording:"))
234240
# Make default checkboxes True.
235241
videocheck.set_active(True)
236242
microphonecheck.set_active(True)

green-recorder.spec

+7-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Name: green-recorder
44
Summary: A simple yet functional desktop recorder for Linux systems. Supports both Xorg server and Wayland (GNOME).
55
URL: https://green-project.github.io
6-
Version: 2.1.5
6+
Version: 2.2
77
Release: 1%{?dist}
88
Source: https://github.com/%{owner}/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
99
License: GPLv3
@@ -15,10 +15,9 @@ Requires: ffmpeg
1515
Requires: gawk
1616
Requires: libappindicator-gtk3
1717
Requires: python2-urllib3
18-
Requires: rpmfusion-free-release
1918

2019
%description
21-
A simple yet functional desktop recorder for Linux systems. Supports both Xorg server and Wayland (GNOME).
20+
A simple desktop recorder for Linux systems. Supports both Xorg server and Wayland (GNOME).
2221

2322
%prep
2423
%autosetup -n %{name}-%{version}
@@ -37,6 +36,11 @@ python setup.py install -O1 --root=$RPM_BUILD_ROOT
3736
%{_datadir}/pixmaps/%{name}.png
3837

3938
%changelog
39+
* Tue Jun 6 2017 M.Hanny Sabbagh <[email protected]> 2.2
40+
- Added localization support.
41+
- Added Arabic language.
42+
- Changed window opacity to 1.00
43+
4044
* Thu Apr 27 2017 M.Hanny Sabbagh <[email protected]> 2.1.5
4145
- Fix bug #25.
4246

po/ar.po

+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# Green Recorder
2+
# Copyright (C) 2017, Green Project
3+
# This file is distributed under the same license as the green-recorder package.
4+
# M.Hanny Sabbagh <[email protected]>, 2017.
5+
#
6+
msgid ""
7+
msgstr ""
8+
"Project-Id-Version: \n"
9+
"Report-Msgid-Bugs-To: \n"
10+
"POT-Creation-Date: 2017-06-06 00:29+0300\n"
11+
"PO-Revision-Date: 2017-06-06 00:31+0300\n"
12+
"Language-Team: \n"
13+
"MIME-Version: 1.0\n"
14+
"Content-Type: text/plain; charset=UTF-8\n"
15+
"Content-Transfer-Encoding: 8bit\n"
16+
"X-Generator: Poedit 2.0.1\n"
17+
"Last-Translator: \n"
18+
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
19+
"Language: ar\n"
20+
21+
#: green-recorder:206 green-recorder:223
22+
msgid "Green Recorder"
23+
msgstr "المسجّل الأخضر"
24+
25+
#: green-recorder:207
26+
msgid "AreaChooser"
27+
msgstr "محدد المنطقة"
28+
29+
#: green-recorder:210
30+
msgid "File Name (Will be overwritten).."
31+
msgstr "اسم الملف (سيتم الكتابة فوقه)"
32+
33+
#: green-recorder:211
34+
msgid "Enter your command here.."
35+
msgstr "قم بإدخال الأمر هنا"
36+
37+
#: green-recorder:212
38+
msgid "MKV (Matroska multimedia container format)"
39+
msgstr "MKV (Matroska multimedia container format)"
40+
41+
#: green-recorder:213
42+
msgid "AVI (Audio Video Interleaved)"
43+
msgstr "AVI (Audio Video Interleaved)"
44+
45+
#: green-recorder:214
46+
msgid "MP4 (MPEG-4 Part 14)"
47+
msgstr "MP4 (MPEG-4 Part 14)"
48+
49+
#: green-recorder:215
50+
msgid "WMV (Windows Media Video)"
51+
msgstr "WMV (Windows Media Video)"
52+
53+
#: green-recorder:216
54+
msgid "NUT (NUT Recording Format)"
55+
msgstr "NUT (NUT Recording Format)"
56+
57+
#: green-recorder:218
58+
msgid "Record Video"
59+
msgstr "تسجيل الفيديو"
60+
61+
#: green-recorder:219
62+
msgid "Record Microphone"
63+
msgstr "تسجيل الميكروفون"
64+
65+
#: green-recorder:220
66+
msgid "Show Mouse"
67+
msgstr "إظهار الفأرة"
68+
69+
#: green-recorder:221
70+
msgid "Follow Mouse"
71+
msgstr "اتّباع الفأرة"
72+
73+
#: green-recorder:228
74+
msgid "An easy to use desktop recorder for Xorg and Wayland."
75+
msgstr "مسجل سطح مكتب سهل لـXorg وWayland."
76+
77+
#: green-recorder:233
78+
msgid "Select a Window"
79+
msgstr "اختيار نافذة"
80+
81+
#: green-recorder:234
82+
msgid "Select an Area"
83+
msgstr "تحديد منطقة"
84+
85+
#: green-recorder:235
86+
msgid "Advanced:"
87+
msgstr "متقدّم:"
88+
89+
#: green-recorder:236
90+
msgid "Frames:"
91+
msgstr "الإطارات"
92+
93+
#: green-recorder:237
94+
msgid "Delay:"
95+
msgstr "التأخير:"
96+
97+
#: green-recorder:238
98+
msgid "Audio Input:"
99+
msgstr "مدخل الصوت:"
100+
101+
#: green-recorder:239
102+
msgid "Run Command After Recording:"
103+
msgstr "تشغيل أمر عند الانتهاء:"

po/green-recorder.pot

+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# Green Recorder
2+
# Copyright (C) 2017, Green Project
3+
# This file is distributed under the same license as the green-recorder package.
4+
5+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
6+
#
7+
#, fuzzy
8+
msgid ""
9+
msgstr ""
10+
"Project-Id-Version: PACKAGE VERSION\n"
11+
"Report-Msgid-Bugs-To: \n"
12+
"POT-Creation-Date: 2017-06-06 00:23+0300\n"
13+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15+
"Language-Team: LANGUAGE <[email protected]>\n"
16+
"Language: \n"
17+
"MIME-Version: 1.0\n"
18+
"Content-Type: text/plain; charset=CHARSET\n"
19+
"Content-Transfer-Encoding: 8bit\n"
20+
21+
#: green-recorder:206 green-recorder:223
22+
msgid "Green Recorder"
23+
msgstr ""
24+
25+
#: green-recorder:207
26+
msgid "AreaChooser"
27+
msgstr ""
28+
29+
#: green-recorder:210
30+
msgid "File Name (Will be overwritten).."
31+
msgstr ""
32+
33+
#: green-recorder:211
34+
msgid "Enter your command here.."
35+
msgstr ""
36+
37+
#: green-recorder:212
38+
msgid "MKV (Matroska multimedia container format)"
39+
msgstr ""
40+
41+
#: green-recorder:213
42+
msgid "AVI (Audio Video Interleaved)"
43+
msgstr ""
44+
45+
#: green-recorder:214
46+
msgid "MP4 (MPEG-4 Part 14)"
47+
msgstr ""
48+
49+
#: green-recorder:215
50+
msgid "WMV (Windows Media Video)"
51+
msgstr ""
52+
53+
#: green-recorder:216
54+
msgid "NUT (NUT Recording Format)"
55+
msgstr ""
56+
57+
#: green-recorder:218
58+
msgid "Record Video"
59+
msgstr ""
60+
61+
#: green-recorder:219
62+
msgid "Record Microphone"
63+
msgstr ""
64+
65+
#: green-recorder:220
66+
msgid "Show Mouse"
67+
msgstr ""
68+
69+
#: green-recorder:221
70+
msgid "Follow Mouse"
71+
msgstr ""
72+
73+
#: green-recorder:228
74+
msgid "An easy to use desktop recorder for Xorg and Wayland."
75+
msgstr ""
76+
77+
#: green-recorder:233
78+
msgid "Select a Window"
79+
msgstr ""
80+
81+
#: green-recorder:234
82+
msgid "Select an Area"
83+
msgstr ""
84+
85+
#: green-recorder:235
86+
msgid "Advanced:"
87+
msgstr ""
88+
89+
#: green-recorder:236
90+
msgid "Frames:"
91+
msgstr ""
92+
93+
#: green-recorder:237
94+
msgid "Delay:"
95+
msgstr ""
96+
97+
#: green-recorder:238
98+
msgid "Audio Input:"
99+
msgstr ""
100+
101+
#: green-recorder:239
102+
msgid "Run Command After Recording:"
103+
msgstr ""

setup.py

+13-1
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,25 @@
11
#!/usr/bin/python
22
from distutils.core import setup
33
from subprocess import call
4+
from glob import glob
5+
from os.path import splitext, split
46

57
data_files = [ ("share/green-recorder", ["ui/ui.glade"]),
68
("share/pixmaps", ["data/green-recorder.png"]),
79
("share/applications", ["data/green-recorder.desktop"]) ]
810

11+
po_files = glob("po/*.po")
12+
for po_file in po_files:
13+
lang = splitext(split(po_file)[1])[0]
14+
mo_path = "locale/{}/LC_MESSAGES/green-recorder.mo".format(lang)
15+
call("mkdir -p locale/{}/LC_MESSAGES/".format(lang), shell=True)
16+
call("msgfmt {} -o {}".format(po_file, mo_path), shell=True)
17+
locales = map(lambda i: ('share/'+i, [i+'/green-recorder.mo', ]), glob('locale/*/LC_MESSAGES'))
18+
19+
data_files.extend(locales)
20+
921
setup(name = "green-recorder",
10-
version = "2.1.5",
22+
version = "2.2",
1123
description = "Record your desktop easily using a simple GUI",
1224
author = "Green Project",
1325
author_email = "[email protected]",

0 commit comments

Comments
 (0)