termclock 0.6.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/termclock +2 -2
- data/lib/termclock/center_puts.rb +8 -0
- data/lib/termclock/start.rb +28 -9
- data/lib/termclock/string.rb +4 -0
- data/lib/termclock/system_info.rb +43 -26
- data/lib/termclock/translate.rb +61 -0
- data/lib/termclock/version.rb +1 -1
- data/lib/termclock.rb +58 -0
- data/lib/translations/bn.json +78 -0
- data/lib/translations/es.json +61 -0
- data/lib/translations/fr.json +61 -0
- data/lib/translations/hi.json +77 -0
- data/lib/translations/it.json +60 -0
- data/lib/translations/ru.json +63 -0
- metadata +13 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3d9f317dc409da47554e00d3522def8011e66923ce1f7b437994bef30975008
|
4
|
+
data.tar.gz: e6f12e38d1410a46a7b5009480593ec341017e45c2b806cc53e1fab2a7ccef52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80d16665fbbfbde6765c382379849c029533649c7f10aed6bdc2c25a21c96131f49da2464ad3225a78759662feb6129e43197f57f0f73f7f37db012b2e8f5945
|
7
|
+
data.tar.gz: a8dbe4be51d37ff3fd964ee729bc92ee414026bec1ac4ee711b547dfa5d6ae083997ad277525e6bb805db208a79a43c386b944a59e1f46e48e28043ce7a5e76d
|
data/exe/termclock
CHANGED
@@ -150,8 +150,8 @@ begin
|
|
150
150
|
)
|
151
151
|
rescue Interrupt, SignalException
|
152
152
|
print "\e[H\e[2J\e[3J"
|
153
|
-
|
154
|
-
|
153
|
+
rescue Errno::ENOTTY
|
154
|
+
abort "This should be run on a TTY! Also please don't pipe or redirect the output!"
|
155
155
|
ensure
|
156
156
|
print "\e[?25h"
|
157
157
|
end
|
data/lib/termclock/start.rb
CHANGED
@@ -79,17 +79,23 @@ module Termclock
|
|
79
79
|
|
80
80
|
case Time.now.hour
|
81
81
|
when 5...12
|
82
|
-
|
82
|
+
_m = translate('Good Morning')
|
83
|
+
"\u{1F304} #{braille_0} #{_m} #{braille_0} \u{1F304}"
|
83
84
|
when 12...16
|
84
|
-
|
85
|
+
_m = translate('Good Afternoon')
|
86
|
+
"\u26C5 #{braille_0} #{_m} #{braille_0} \u26C5"
|
85
87
|
when 16...18
|
86
|
-
|
88
|
+
_m = translate('Good Evening')
|
89
|
+
"\u{1F307} #{braille_0} #{_m} #{braille_0} \u{1F307}"
|
87
90
|
when 18...20
|
88
|
-
|
91
|
+
_m = translate('Good Evening')
|
92
|
+
"\u{1F31F} #{braille_0} #{_m} #{braille_0} \u{1F31F}"
|
89
93
|
when 20...24
|
90
|
-
|
94
|
+
_m = translate('Good Night')
|
95
|
+
"\u{1F303} #{braille_0} #{_m} #{braille_0} \u{1F303}"
|
91
96
|
else
|
92
|
-
|
97
|
+
_m = translate('Good Night')
|
98
|
+
"\u{2728} #{braille_0} #{_m} #{braille_0} \u{2728}"
|
93
99
|
end
|
94
100
|
}
|
95
101
|
|
@@ -143,7 +149,9 @@ module Termclock
|
|
143
149
|
chop_message += 1
|
144
150
|
message_counter -= 1
|
145
151
|
message_align -= 1
|
146
|
-
|
152
|
+
|
153
|
+
_chopped = message_temp[chop_message..-1]
|
154
|
+
message.replace(_chopped) if _chopped
|
147
155
|
end
|
148
156
|
else
|
149
157
|
chop_message = 0 unless chop_message == 0
|
@@ -159,7 +167,7 @@ module Termclock
|
|
159
167
|
end
|
160
168
|
end
|
161
169
|
|
162
|
-
message_final =
|
170
|
+
message_final = message.rjust(message_align).gradient(
|
163
171
|
tc1, tc2, exclude_spaces: true, bold: bold, italic: italic
|
164
172
|
)
|
165
173
|
end
|
@@ -167,7 +175,18 @@ module Termclock
|
|
167
175
|
info = system_info(width, tc1, tc2, bold, italic) if print_info
|
168
176
|
|
169
177
|
if print_date
|
170
|
-
|
178
|
+
_date = time_now.strftime(date_format)
|
179
|
+
|
180
|
+
unless LANG == :en
|
181
|
+
_date = _date.split(/(\W)/).map { |x|
|
182
|
+
translate(
|
183
|
+
x,
|
184
|
+
breakword: !x[/[^0-9]/]
|
185
|
+
)
|
186
|
+
}.join
|
187
|
+
end
|
188
|
+
|
189
|
+
date = _date.center(width)
|
171
190
|
.gradient(tc1, tc2, bold: bold, italic: italic, exclude_spaces: true)
|
172
191
|
end
|
173
192
|
|
data/lib/termclock/string.rb
CHANGED
@@ -10,7 +10,8 @@ module Termclock
|
|
10
10
|
@@cpu_usage = 0
|
11
11
|
@@cpu_usage_t = Thread.new { }.join
|
12
12
|
|
13
|
-
|
13
|
+
_tr = translate('Curr. DL/UL')
|
14
|
+
@@current_net_usage = "\u{1F4CA} #{_tr}:"
|
14
15
|
@@current_net_usage_t = Thread.new { }.join
|
15
16
|
|
16
17
|
class << self
|
@@ -30,10 +31,11 @@ module Termclock
|
|
30
31
|
_ul = _m[:transmitted]
|
31
32
|
|
32
33
|
@@current_net_usage = if _dl && _ul
|
34
|
+
_tr = translate('Curr. DL/UL')
|
33
35
|
dl = LS::PrettifyBytes.convert_short_decimal(_dl)
|
34
36
|
ul = LS::PrettifyBytes.convert_short_decimal(_ul)
|
35
37
|
|
36
|
-
"\u{1F4CA}
|
38
|
+
"\u{1F4CA} #{_tr}: #{t!("%-9s" % dl)} | #{t!("%9s" % ul)}"
|
37
39
|
else
|
38
40
|
EMPTY
|
39
41
|
end
|
@@ -41,7 +43,8 @@ module Termclock
|
|
41
43
|
end
|
42
44
|
|
43
45
|
cpu = if @@cpu_usage
|
44
|
-
|
46
|
+
_tr = translate('CPU')
|
47
|
+
"\u{1F9E0} #{_tr}: #{t!("%6s" % @@cpu_usage)}% (#{t!(LS::CPU.count_online)}/#{t!(LS::CPU.count)})"
|
45
48
|
else
|
46
49
|
EMPTY
|
47
50
|
end
|
@@ -58,22 +61,28 @@ module Termclock
|
|
58
61
|
|
59
62
|
lives = "\u2665 ".freeze.*(charge.fdiv(20).ceil).chop
|
60
63
|
|
61
|
-
|
64
|
+
_tr = translate('Battery')
|
65
|
+
"#{emoji} #{_tr}: #{t!(charge.to_s)}% #{lives} (#{plug}#{stat[:status]})"
|
62
66
|
else
|
63
67
|
EMPTY
|
64
68
|
end
|
65
69
|
|
66
|
-
|
67
|
-
|
70
|
+
_tr = translate('User')
|
71
|
+
user = "\u{1F481} #{_tr}: #{LS::User.get_current_user.capitalize}"
|
68
72
|
|
73
|
+
_tr = translate('Hostname')
|
74
|
+
hostname = "\u{1F4BB} #{_tr}: #{LS::OS.hostname}"
|
75
|
+
|
76
|
+
_tr = translate('IP Addr')
|
69
77
|
_m = LS::Net.total_bytes
|
70
|
-
ip = "\u{1F30F}
|
78
|
+
ip = "\u{1F30F} #{_tr}: #{translate(LS::Net.ipv4_private, b: true)}"
|
71
79
|
|
72
80
|
_received = _m[:received]
|
73
81
|
_transmitted = _m[:transmitted]
|
74
82
|
|
75
|
-
|
76
|
-
|
83
|
+
_tr = translate('Totl. DL/UL')
|
84
|
+
tot_received = _received ? "\u{1F4C8} #{_tr}: #{t!('%-9s'.freeze % LS::PrettifyBytes.convert_short_decimal(_m[:received]))}" : nil
|
85
|
+
tot_transmitted = _transmitted ? " | #{t!('%9s'.freeze % LS::PrettifyBytes.convert_short_decimal(_transmitted))}" : nil
|
77
86
|
|
78
87
|
net_usage = if tot_received && tot_transmitted
|
79
88
|
tot_received + tot_transmitted
|
@@ -84,31 +93,36 @@ module Termclock
|
|
84
93
|
_m = LS::Memory.stat
|
85
94
|
_m.default = 0
|
86
95
|
|
87
|
-
|
88
|
-
"
|
89
|
-
"
|
96
|
+
_tr = translate('Mem')
|
97
|
+
memory = "\u{1F3B0} #{_tr}: #{t!(LS::PrettifyBytes.convert_short_decimal(_m[:used] * 1000))}"\
|
98
|
+
" / #{t!(LS::PrettifyBytes.convert_short_decimal(_m[:total] * 1000))}"\
|
99
|
+
" (#{t!("%.2f" % _m[:percent_used])}%)"
|
90
100
|
|
91
101
|
_m = LS::Swap.stat
|
92
102
|
_m.default = 0
|
93
103
|
|
94
|
-
|
95
|
-
"
|
96
|
-
"
|
104
|
+
_tr = translate('Swap')
|
105
|
+
swap = "\u{1F300} #{_tr}: #{t!(LS::PrettifyBytes.convert_short_decimal(_m[:used] * 1000))}"\
|
106
|
+
" / #{t!(LS::PrettifyBytes.convert_short_decimal(_m[:total] * 1000))}"\
|
107
|
+
" (#{t!("%.2f" % _m[:percent_used])}%)"
|
97
108
|
|
98
109
|
_m = LS::Filesystem.stat(FILESYSTEM)
|
99
110
|
_m.default = 0
|
100
111
|
|
101
|
-
|
102
|
-
"
|
103
|
-
"
|
112
|
+
_tr = translate('FS')
|
113
|
+
fs = "\u{1F4BD} #{_tr} (#{FILESYSTEM_LABEL}): #{t!(LS::PrettifyBytes.convert_short_decimal(_m[:used]))}"\
|
114
|
+
" / #{t!(LS::PrettifyBytes.convert_short_decimal(_m[:total]))}"\
|
115
|
+
" (#{t!("%.2f" % _m[:used].*(100).fdiv(_m[:total]).round(2))}%)"
|
104
116
|
|
105
117
|
pt = LS::Process.types.values
|
106
118
|
|
107
119
|
process = if pt.length > 0
|
108
|
-
|
109
|
-
|
110
|
-
"
|
111
|
-
"
|
120
|
+
_tr = translate('Process')
|
121
|
+
|
122
|
+
"\u{1F3ED} #{_tr}: T:#{t!("%4s" % pt.length)}|"\
|
123
|
+
"R:#{"%3s" % t!(pt.count(:running))}|"\
|
124
|
+
"S:#{"%3s" % t!(pt.count(:sleeping))}|"\
|
125
|
+
"I:#{"%3s" % t!(pt.count(:idle))}"
|
112
126
|
else
|
113
127
|
EMPTY
|
114
128
|
end
|
@@ -119,7 +133,8 @@ module Termclock
|
|
119
133
|
EMPTY
|
120
134
|
end
|
121
135
|
|
122
|
-
|
136
|
+
_tr = translate('Distrib')
|
137
|
+
@@os ||= "\u{1F427} #{_tr}: #{LS::OS.distribution} #{LS::OS.machine}#{@@os_v}"
|
123
138
|
|
124
139
|
_temp_uptime = LS::OS.uptime
|
125
140
|
|
@@ -143,10 +158,12 @@ module Termclock
|
|
143
158
|
second = "%02d" % _uptime[:second]
|
144
159
|
jiffy = "%02d" % _uptime[:jiffy]
|
145
160
|
|
146
|
-
|
161
|
+
_tr = translate('Uptime')
|
162
|
+
uptime = "\u{1F3A1} #{_tr}: #{t! hour}:#{t! minute}:#{t! second}:#{t! jiffy} (#{t! LS::OS.uptime_i}s)"
|
147
163
|
|
164
|
+
_tr = translate('LoadAvg')
|
148
165
|
_loadavg = LS::Sysinfo.loads.map! { |x| "%.2f" % x }
|
149
|
-
loadavg = "\u{1F525}
|
166
|
+
loadavg = "\u{1F525} #{_tr}: 1m #{translate(_loadavg[0], b: true)}|5m #{translate(_loadavg[1], b: true)}|15m #{translate(_loadavg[2], b: true)}"
|
150
167
|
|
151
168
|
all_info = []
|
152
169
|
max_l = 0
|
@@ -186,7 +203,7 @@ module Termclock
|
|
186
203
|
padding +
|
187
204
|
y_to_s.gradient(tc1, tc2, bold: bold, italic: italic)
|
188
205
|
|
189
|
-
len = str.
|
206
|
+
len = str.grapheme_clusters.map { |x|
|
190
207
|
_x = x.bytesize./(2)
|
191
208
|
_x == 0 ? 1 : _x
|
192
209
|
}.sum
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Termclock
|
2
|
+
def self.translate(keyword, breakword: nil, b: nil)
|
3
|
+
return keyword if LANG == :en
|
4
|
+
characters = keyword.grapheme_clusters
|
5
|
+
|
6
|
+
b = breakword if breakword && !b
|
7
|
+
breakword = b if b && !breakword
|
8
|
+
|
9
|
+
upcased = characters.all? { |x| x.ord.between?(65, 90) }
|
10
|
+
downcased = upcased ? false : characters.all? { |x| x.ord.between?(97, 122) }
|
11
|
+
capitalized = if (upcased || downcased)
|
12
|
+
false
|
13
|
+
else
|
14
|
+
characters[0].ord.between?(65, 90) &&
|
15
|
+
characters.drop(1).all? { |x| x.ord.between?(97, 122) }
|
16
|
+
end
|
17
|
+
|
18
|
+
camelized = if (upcased || downcased || capitalized)
|
19
|
+
false
|
20
|
+
else
|
21
|
+
keyword.split(?\s.freeze).all? { |x|
|
22
|
+
x[0].ord.between?(65, 90) && x.chars.drop(1).all? { |y| y.ord.between?(97, 122) }
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
if breakword
|
27
|
+
return characters.map { |x|
|
28
|
+
tr = TRANSLATIONS[x]
|
29
|
+
|
30
|
+
if !tr
|
31
|
+
tr = TRANSLATIONS[x.downcase]
|
32
|
+
end
|
33
|
+
|
34
|
+
tr.upcase! if tr && upcased
|
35
|
+
tr.downcase! if tr && downcased
|
36
|
+
tr.capitalize! if tr && capitalized
|
37
|
+
tr.camelize! if tr && camelized
|
38
|
+
|
39
|
+
tr ? tr : x
|
40
|
+
}.join
|
41
|
+
end
|
42
|
+
|
43
|
+
tr = TRANSLATIONS[keyword]
|
44
|
+
|
45
|
+
if !tr
|
46
|
+
tr = TRANSLATIONS[keyword.downcase]
|
47
|
+
|
48
|
+
tr.upcase! if tr && upcased
|
49
|
+
tr.downcase! if tr && downcased
|
50
|
+
tr.capitalize! if tr && capitalized
|
51
|
+
tr.camelize! if tr && camelized
|
52
|
+
end
|
53
|
+
|
54
|
+
tr ? tr : keyword
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.t!(keyword, breakword: true, b: true)
|
58
|
+
return keyword if LANG == :en
|
59
|
+
translate(keyword.to_s, breakword: true)
|
60
|
+
end
|
61
|
+
end
|
data/lib/termclock/version.rb
CHANGED
data/lib/termclock.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'linux_stat'
|
2
2
|
require 'io/console'
|
3
|
+
require 'json'
|
4
|
+
|
3
5
|
require_relative "termclock/version"
|
6
|
+
require_relative "termclock/center_puts"
|
4
7
|
|
5
8
|
module Termclock
|
6
9
|
GC_COMPACT_TIME = 7200
|
@@ -11,8 +14,63 @@ module Termclock
|
|
11
14
|
TAB = ?\t.freeze
|
12
15
|
EMPTY = ''.freeze
|
13
16
|
EPSILON = 5.0e-07
|
17
|
+
|
18
|
+
# All languages
|
19
|
+
LANGS = %i(
|
20
|
+
bn en es fr hi it ru
|
21
|
+
)
|
22
|
+
|
23
|
+
# LANGUAGES
|
24
|
+
env_lc_all = ENV['LC_ALL'] && !ENV['LC_ALL'].empty? && ENV['LC_ALL'].downcase.split(?_)[0].to_sym
|
25
|
+
|
26
|
+
_lang = nil
|
27
|
+
_lang = env_lc_all if LANGS.include?(env_lc_all)
|
28
|
+
|
29
|
+
unless _lang
|
30
|
+
env_language = ENV['LANGUAGE'] && !ENV['LANGUAGE'].empty? && ENV['LANGUAGE'].downcase.split(?_)[0].to_sym
|
31
|
+
_lang = env_language if LANGS.include?(env_language)
|
32
|
+
end
|
33
|
+
|
34
|
+
unless _lang
|
35
|
+
env_lang = ENV['LANG'] && !ENV['LANG'].empty? && ENV['LANG'].downcase.split(?_)[0].to_sym
|
36
|
+
_lang = env_lang if LANGS.include?(env_lang)
|
37
|
+
end
|
38
|
+
|
39
|
+
unless _lang
|
40
|
+
_lang = :en
|
41
|
+
end
|
42
|
+
|
43
|
+
LANG = _lang.freeze
|
44
|
+
|
45
|
+
# Load translations
|
46
|
+
TRANSLATION_FILES = {}
|
47
|
+
|
48
|
+
Dir.glob(File.join(__dir__, 'translations', '*.json')).each { |x|
|
49
|
+
next if x == '..'.freeze || x == ?..freeze || !File.readable?(x)
|
50
|
+
|
51
|
+
TRANSLATION_FILES.merge!(
|
52
|
+
File.basename(x).split(?..freeze).tap(&:pop).join(?..freeze) => x
|
53
|
+
)
|
54
|
+
}
|
55
|
+
|
56
|
+
translation_file = TRANSLATION_FILES[LANG.to_s]
|
57
|
+
|
58
|
+
TRANSLATIONS = if translation_file && File.readable?(translation_file)
|
59
|
+
begin
|
60
|
+
JSON.parse(IO.read(translation_file))
|
61
|
+
rescue StandardError
|
62
|
+
center_puts "Can't Parse Translation File!"
|
63
|
+
sleep 0.5
|
64
|
+
{}
|
65
|
+
end
|
66
|
+
else
|
67
|
+
{}
|
68
|
+
end
|
14
69
|
end
|
15
70
|
|
71
|
+
# Translation engine
|
72
|
+
require_relative 'termclock/translate.rb'
|
73
|
+
|
16
74
|
require_relative "termclock/string"
|
17
75
|
require_relative "termclock/parse_characters"
|
18
76
|
require_relative "termclock/system_info"
|
@@ -0,0 +1,78 @@
|
|
1
|
+
{
|
2
|
+
// Numerals
|
3
|
+
"0": "০",
|
4
|
+
"1": "১",
|
5
|
+
"2": "২",
|
6
|
+
"3": "৩",
|
7
|
+
"4": "৪",
|
8
|
+
"5": "৫",
|
9
|
+
"6": "৬",
|
10
|
+
"7": "৭",
|
11
|
+
"8": "৮",
|
12
|
+
"9": "৯",
|
13
|
+
|
14
|
+
// Days
|
15
|
+
"monday": "সোমবার",
|
16
|
+
"tuesday": "মঙ্গলবার",
|
17
|
+
"wednesday": "বুধবার",
|
18
|
+
"thursday": "বৃহস্পতিবার",
|
19
|
+
"friday": "শুক্রবার",
|
20
|
+
"saturday": "শনিবার",
|
21
|
+
"sunday": "রবিবার",
|
22
|
+
|
23
|
+
"mon": "সোমবার",
|
24
|
+
"tue": "মঙ্গলবার",
|
25
|
+
"wed": "বুধবার",
|
26
|
+
"thu": "বৃহস্পতিবার",
|
27
|
+
"fri": "শুক্রবার",
|
28
|
+
"sat": "শনিবার",
|
29
|
+
"sun": "রবিবার",
|
30
|
+
|
31
|
+
// Months
|
32
|
+
"jan": "জানুয়ারী",
|
33
|
+
"feb": "ফেব্রুয়ারী",
|
34
|
+
"mar": "মার্চ",
|
35
|
+
"apr": "এপ্রিল",
|
36
|
+
"may": "মে",
|
37
|
+
"jun": "জুন",
|
38
|
+
"jul": "জুলাই",
|
39
|
+
"aug": "আগস্ট",
|
40
|
+
"sep": "সেপ্টেম্বর",
|
41
|
+
"oct": "অক্টোবর",
|
42
|
+
"nov": "নভেম্বর",
|
43
|
+
"dec": "ডিসেম্বর",
|
44
|
+
|
45
|
+
"january": "জানুয়ারী",
|
46
|
+
"february": "ফেব্রুয়ারী",
|
47
|
+
"march": "মার্চ",
|
48
|
+
"april": "এপ্রিল",
|
49
|
+
"june": "জুন",
|
50
|
+
"july": "জুলাই",
|
51
|
+
"august": "আগস্ট",
|
52
|
+
"september": "সেপ্টেম্বর",
|
53
|
+
"october": "অক্টোবর",
|
54
|
+
"november": "নভেম্বর",
|
55
|
+
"december": "ডিসেম্বর",
|
56
|
+
|
57
|
+
// Messages
|
58
|
+
"good morning": "সুপ্রভাত",
|
59
|
+
"good afternoon": "শুভ অপরাহ্ন",
|
60
|
+
"good evening": "শুভ সন্ধ্যা",
|
61
|
+
"good night": "শুভ রাত্রি",
|
62
|
+
|
63
|
+
// System info
|
64
|
+
"User": "ব্যবহারকারী",
|
65
|
+
"Distrib": "বিতরণ",
|
66
|
+
"Swap": "সোয়াপ",
|
67
|
+
"CPU": "সিপিইউ",
|
68
|
+
"Mem": "মেম",
|
69
|
+
"FS": "ফাইল সিস.",
|
70
|
+
"Uptime": "আপটাইম",
|
71
|
+
"Hostname": "হোস্টনেম",
|
72
|
+
"Battery": "ব্যাটারী",
|
73
|
+
"Ip Addr": "আইপি",
|
74
|
+
"Curr. DL/UL": "বর্তমান DL/UL",
|
75
|
+
"Totl. DL/UL": "মোট DL/UL",
|
76
|
+
"Process": "প্রসেস",
|
77
|
+
"LoadAvg": "গড় লোড"
|
78
|
+
}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
{
|
2
|
+
// Days
|
3
|
+
"monday": "lunes",
|
4
|
+
"tuesday": "martes",
|
5
|
+
"wednesday": "miércoles",
|
6
|
+
"thursday": "jueves",
|
7
|
+
"friday": "viernes",
|
8
|
+
"saturday": "sábado",
|
9
|
+
"sunday": "dimanche",
|
10
|
+
|
11
|
+
"mon": "lunes",
|
12
|
+
"tue": "martes",
|
13
|
+
"wed": "miércoles",
|
14
|
+
"thu": "jueves",
|
15
|
+
"fri": "viernes",
|
16
|
+
"sat": "sábado",
|
17
|
+
"sun": "dimanche",
|
18
|
+
|
19
|
+
// Months
|
20
|
+
"jan": "janvier",
|
21
|
+
"feb": "février",
|
22
|
+
"mar": "mars",
|
23
|
+
"apr": "avril",
|
24
|
+
"jun": "juin",
|
25
|
+
"jul": "juillet",
|
26
|
+
"aug": "août",
|
27
|
+
"sep": "septembre",
|
28
|
+
"oct": "octobre",
|
29
|
+
"nov": "novembre",
|
30
|
+
"dec": "décembre",
|
31
|
+
|
32
|
+
"january": "janvier",
|
33
|
+
"february": "février",
|
34
|
+
"march": "mars",
|
35
|
+
"april": "avril",
|
36
|
+
"may": "mai",
|
37
|
+
"june": "juin",
|
38
|
+
"july": "juillet",
|
39
|
+
"august": "août",
|
40
|
+
"september": "septembre",
|
41
|
+
"october": "octobre",
|
42
|
+
"november": "novembre",
|
43
|
+
"december": "décembre",
|
44
|
+
|
45
|
+
// Messages
|
46
|
+
"good morning": "buenos días",
|
47
|
+
"good afternoon": "buenas tardes",
|
48
|
+
"good evening": "buenas noches",
|
49
|
+
"good night": "buenas noches",
|
50
|
+
|
51
|
+
// System info
|
52
|
+
"User": "Usuario",
|
53
|
+
"Distrib": "Distribución",
|
54
|
+
"Uptime": "Tiempo de actividad",
|
55
|
+
"Hostname": "Nombre de host",
|
56
|
+
"Battery": "Batería",
|
57
|
+
"Curr. DL/UL": "Actual. DL/UL",
|
58
|
+
"Totl. DL/UL": "Total DL/UL",
|
59
|
+
"Process": "Proceso",
|
60
|
+
"LoadAvg": "Carga promedio"
|
61
|
+
}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
{
|
2
|
+
// Days
|
3
|
+
"monday": "lundi",
|
4
|
+
"tuesday": "mardi",
|
5
|
+
"wednesday": "mercredi",
|
6
|
+
"thursday": "jeudi",
|
7
|
+
"friday": "vendredi",
|
8
|
+
"saturday": "samedi",
|
9
|
+
"sunday": "dimanche",
|
10
|
+
|
11
|
+
"mon": "lun",
|
12
|
+
"tue": "mar",
|
13
|
+
"wed": "mer",
|
14
|
+
"thu": "jeu",
|
15
|
+
"fri": "ven",
|
16
|
+
"sat": "sam",
|
17
|
+
"sun": "dim",
|
18
|
+
|
19
|
+
// Months
|
20
|
+
"jan": "jav",
|
21
|
+
"feb": "fev",
|
22
|
+
"mar": "mars",
|
23
|
+
"apr": "avr",
|
24
|
+
"may": "mai",
|
25
|
+
"jun": "juin",
|
26
|
+
"jul": "juil",
|
27
|
+
"aug": "août",
|
28
|
+
"sep": "sep",
|
29
|
+
"oct": "oct",
|
30
|
+
"nov": "nov",
|
31
|
+
"dec": "dec",
|
32
|
+
|
33
|
+
"january": "janvier",
|
34
|
+
"february": "février",
|
35
|
+
"march": "mars",
|
36
|
+
"april": "avril",
|
37
|
+
"june": "juin",
|
38
|
+
"july": "juillet",
|
39
|
+
"august": "août",
|
40
|
+
"september": "septembre",
|
41
|
+
"october": "octobre",
|
42
|
+
"november": "novembre",
|
43
|
+
"december": "décembre",
|
44
|
+
|
45
|
+
// Messages
|
46
|
+
"good morning": "bonjour",
|
47
|
+
"good afternoon": "bonne après-midi",
|
48
|
+
"good evening": "bonne soirée",
|
49
|
+
"good night": "bonne nuit",
|
50
|
+
|
51
|
+
// System info
|
52
|
+
"User": "Utilisateur·ice",
|
53
|
+
// Utilisateur : male, Utilisatrice : female, Utilisateur·ice : a mesh of both to say it could be either
|
54
|
+
"Uptime": "Temps de fonctionnement",
|
55
|
+
"Hostname": "Hôte",
|
56
|
+
"Battery": "Batterie",
|
57
|
+
"Curr. DL/UL": "DL/UL Actuel",
|
58
|
+
"Totl. DL/UL": "DL/UL Total ",
|
59
|
+
"Process": "Processus",
|
60
|
+
"LoadAvg": "Charge Moyenne"
|
61
|
+
}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
{
|
2
|
+
// Numerals
|
3
|
+
"0": "०",
|
4
|
+
"1": "१",
|
5
|
+
"2": "२",
|
6
|
+
"3": "३",
|
7
|
+
"4": "४",
|
8
|
+
"5": "५",
|
9
|
+
"6": "६",
|
10
|
+
"7": "७",
|
11
|
+
"8": "८",
|
12
|
+
"9": "९",
|
13
|
+
|
14
|
+
// Days
|
15
|
+
"monday": "सोमवार",
|
16
|
+
"tuesday": "मंगलवार",
|
17
|
+
"wednesday": "बुधवार",
|
18
|
+
"thursday": "गुरूवार",
|
19
|
+
"friday": "शुक्रवार",
|
20
|
+
"saturday": "शनिवार",
|
21
|
+
"sunday": "रविवार",
|
22
|
+
|
23
|
+
"mon": "सोमवार",
|
24
|
+
"tue": "मंगलवार",
|
25
|
+
"wed": "बुधवार",
|
26
|
+
"thu": "गुरूवार",
|
27
|
+
"fri": "शुक्रवार",
|
28
|
+
"sat": "शनिवार",
|
29
|
+
"sun": "रविवार",
|
30
|
+
|
31
|
+
// Months
|
32
|
+
"jan": "जनवरी",
|
33
|
+
"feb": "फ़रवरी",
|
34
|
+
"mar": "मार्च",
|
35
|
+
"apr": "अप्रैल",
|
36
|
+
"jun": "जून",
|
37
|
+
"jul": "जुलाई",
|
38
|
+
"aug": "अगस्त",
|
39
|
+
"sep": "सितंबर",
|
40
|
+
"oct": "अक्टूबर",
|
41
|
+
"nov": "नवंबर",
|
42
|
+
"dec": "दिसंबर",
|
43
|
+
|
44
|
+
"january": "जनवरी",
|
45
|
+
"february": "फ़रवरी",
|
46
|
+
"march": "मार्च",
|
47
|
+
"april": "अप्रैल",
|
48
|
+
"may": "मई",
|
49
|
+
"june": "जून",
|
50
|
+
"july": "जुलाई",
|
51
|
+
"august": "अगस्त",
|
52
|
+
"september": "सितंबर",
|
53
|
+
"october": "अक्टूबर",
|
54
|
+
"november": "नवंबर",
|
55
|
+
"december": "दिसंबर",
|
56
|
+
|
57
|
+
// Messages
|
58
|
+
"good morning": "शुभ प्रभात",
|
59
|
+
"good afternoon": "शुभ दोपहर",
|
60
|
+
"good evening": "सुसंध्या",
|
61
|
+
"good night": "शुभ रात्रि",
|
62
|
+
|
63
|
+
// System info
|
64
|
+
"User": "उपयोगकर्ता",
|
65
|
+
"Distrib": "वितरण",
|
66
|
+
"Swap": "स्वैप",
|
67
|
+
"CPU": "सी पी यू",
|
68
|
+
"Mem": "मेम",
|
69
|
+
"FS": "फाइल सीस ",
|
70
|
+
"Uptime": "अपटाइम",
|
71
|
+
"Hostname": "होस्टनाम",
|
72
|
+
"Battery": "बैटरी ",
|
73
|
+
"Curr. DL/UL": "वर्तमान DL/UL",
|
74
|
+
"Totl. DL/UL": "समस्त DL/UL",
|
75
|
+
"Process": "प्रोसेस",
|
76
|
+
"LoadAvg": "औसत लोड"
|
77
|
+
}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
{
|
2
|
+
// Days
|
3
|
+
"monday": "lunedi",
|
4
|
+
"tuesday": "martedì",
|
5
|
+
"wednesday": "mercoledì",
|
6
|
+
"thursday": "giovedì",
|
7
|
+
"friday": "venerdì",
|
8
|
+
"saturday": "sabato",
|
9
|
+
"sunday": "domenica",
|
10
|
+
|
11
|
+
"mon": "lun",
|
12
|
+
"tue": "mar",
|
13
|
+
"wed": "mer",
|
14
|
+
"thu": "gio",
|
15
|
+
"fri": "ven",
|
16
|
+
"sat": "sab",
|
17
|
+
"sun": "do",
|
18
|
+
|
19
|
+
// Months
|
20
|
+
"jan": "gennaio",
|
21
|
+
"feb": "febbraio",
|
22
|
+
"mar": "marzo",
|
23
|
+
"apr": "aprile",
|
24
|
+
"may": "maggio",
|
25
|
+
"jun": "giugno",
|
26
|
+
"jul": "luglio",
|
27
|
+
"aug": "agosto",
|
28
|
+
"sep": "settembre",
|
29
|
+
"oct": "ottobre",
|
30
|
+
"nov": "novembre",
|
31
|
+
"dec": "dicembre",
|
32
|
+
|
33
|
+
"january": "gennaio",
|
34
|
+
"february": "febbraio",
|
35
|
+
"march": "marzo",
|
36
|
+
"april": "aprile",
|
37
|
+
"june": "giugno",
|
38
|
+
"july": "luglio",
|
39
|
+
"august": "agosto",
|
40
|
+
"september": "settembre",
|
41
|
+
"october": "ottobre",
|
42
|
+
"november": "novembre",
|
43
|
+
"december": "dicembre",
|
44
|
+
|
45
|
+
// Messages
|
46
|
+
"good morning": "buongiorno",
|
47
|
+
"good afternoon": "buon pomeriggio",
|
48
|
+
"good evening": "buonasera",
|
49
|
+
"good night": "buona Notte",
|
50
|
+
|
51
|
+
// System info
|
52
|
+
"User": "Utente",
|
53
|
+
"Distrib": "Distribuzione",
|
54
|
+
"Hostname": "Nome host",
|
55
|
+
"Battery": "batteria",
|
56
|
+
"Curr. DL/UL": "Attuale DL/UL",
|
57
|
+
"Totl. DL/UL": "Totale DL/UL",
|
58
|
+
"Process": "Processi",
|
59
|
+
"LoadAvg": "Carico Medio"
|
60
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
{
|
2
|
+
// Days
|
3
|
+
"monday": "Понедельник",
|
4
|
+
"tuesday": "Вторник",
|
5
|
+
"wednesday": "Среда",
|
6
|
+
"thursday": "Четверг",
|
7
|
+
"friday": "Пятница",
|
8
|
+
"saturday": "Суббота",
|
9
|
+
"sunday": "Воскресенье",
|
10
|
+
|
11
|
+
"mon": "Понедельник",
|
12
|
+
"tue": "Вторник",
|
13
|
+
"wed": "Среда",
|
14
|
+
"thu": "Четверг",
|
15
|
+
"fri": "Пятница",
|
16
|
+
"sat": "Суббота",
|
17
|
+
"sun": "Воскресенье",
|
18
|
+
|
19
|
+
// Months
|
20
|
+
"jan": "Январь",
|
21
|
+
"feb": "Февраль",
|
22
|
+
"mar": "Март",
|
23
|
+
"apr": "Апрель",
|
24
|
+
"may": "Май",
|
25
|
+
"jun": "Июнь",
|
26
|
+
"jul": "Июль",
|
27
|
+
"aug": "Август",
|
28
|
+
"sep": "Сентябрь",
|
29
|
+
"oct": "Октябрь",
|
30
|
+
"nov": "Ноябрь",
|
31
|
+
"dec": "Декабрь",
|
32
|
+
|
33
|
+
"january": "Январь",
|
34
|
+
"february": "Февраль",
|
35
|
+
"march": "Март",
|
36
|
+
"april": "Апрель",
|
37
|
+
"june": "Июнь",
|
38
|
+
"july": "Июль",
|
39
|
+
"august": "Август",
|
40
|
+
"september": "Сентябрь",
|
41
|
+
"october": "Октябрь",
|
42
|
+
"november": "Ноябрь",
|
43
|
+
"december": "Декабрь",
|
44
|
+
|
45
|
+
// Messages
|
46
|
+
"good morning": "доброе утро",
|
47
|
+
"good afternoon": "Добрый день",
|
48
|
+
"good evening": "Добрый вечер",
|
49
|
+
"good night": "спокойной ночи",
|
50
|
+
|
51
|
+
// System info
|
52
|
+
"User": "Пользователь",
|
53
|
+
"Distrib": "распределение",
|
54
|
+
"Swap": "свап",
|
55
|
+
"CPU": "Процессор",
|
56
|
+
"Mem": "мем",
|
57
|
+
"Hostname": "имя хоста",
|
58
|
+
"Battery": "аккумулятор",
|
59
|
+
"Curr. DL/UL": "теперешний дл/ул",
|
60
|
+
"Totl. DL/UL": "общее дл/ул",
|
61
|
+
"Process": "Процесс",
|
62
|
+
"LoadAvg": "средняя нагрузка"
|
63
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: termclock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sourav Goswami
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: linux_stat
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: 2.3.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: 2.3.0
|
27
27
|
description: A clock for Linux VTE
|
28
28
|
email:
|
29
29
|
- souravgoswami@protonmail.com
|
@@ -34,12 +34,20 @@ extra_rdoc_files: []
|
|
34
34
|
files:
|
35
35
|
- exe/termclock
|
36
36
|
- lib/termclock.rb
|
37
|
+
- lib/termclock/center_puts.rb
|
37
38
|
- lib/termclock/hex2rgb.rb
|
38
39
|
- lib/termclock/parse_characters.rb
|
39
40
|
- lib/termclock/start.rb
|
40
41
|
- lib/termclock/string.rb
|
41
42
|
- lib/termclock/system_info.rb
|
43
|
+
- lib/termclock/translate.rb
|
42
44
|
- lib/termclock/version.rb
|
45
|
+
- lib/translations/bn.json
|
46
|
+
- lib/translations/es.json
|
47
|
+
- lib/translations/fr.json
|
48
|
+
- lib/translations/hi.json
|
49
|
+
- lib/translations/it.json
|
50
|
+
- lib/translations/ru.json
|
43
51
|
homepage: https://github.com/souravgoswami/termclock
|
44
52
|
licenses:
|
45
53
|
- MIT
|
@@ -59,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
59
67
|
- !ruby/object:Gem::Version
|
60
68
|
version: '0'
|
61
69
|
requirements: []
|
62
|
-
rubygems_version: 3.2.
|
70
|
+
rubygems_version: 3.2.21
|
63
71
|
signing_key:
|
64
72
|
specification_version: 4
|
65
73
|
summary: A clock for Linux VTE
|