From f6caa9d5038e18d0121abf269930b80bb0e6d990 Mon Sep 17 00:00:00 2001 From: Triyadi Date: Tue, 16 Sep 2025 05:32:09 +0700 Subject: [PATCH] updates-notifier@zamszowy: Add Traditional Chinese translation (#7750) --- show-my-ip@triyadi.my.id/README.md | 20 +++ .../files/show-my-ip@triyadi.my.id/README.md | 20 +++ .../files/show-my-ip@triyadi.my.id/applet.js | 59 +++++++ .../files/show-my-ip@triyadi.my.id/icon.png | Bin 0 -> 550 bytes .../show-my-ip@triyadi.my.id/metadata.json | 8 + show-my-ip@triyadi.my.id/info.json | 3 + show-my-ip@triyadi.my.id/screenshot.png | Bin 0 -> 8831 bytes .../updates-notifier@zamszowy/po/zh_TW.po | 164 ++++++++++++++++++ 8 files changed, 274 insertions(+) create mode 100644 show-my-ip@triyadi.my.id/README.md create mode 100644 show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/README.md create mode 100644 show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/applet.js create mode 100644 show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/icon.png create mode 100644 show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/metadata.json create mode 100644 show-my-ip@triyadi.my.id/info.json create mode 100644 show-my-ip@triyadi.my.id/screenshot.png create mode 100644 updates-notifier@zamszowy/files/updates-notifier@zamszowy/po/zh_TW.po diff --git a/show-my-ip@triyadi.my.id/README.md b/show-my-ip@triyadi.my.id/README.md new file mode 100644 index 00000000000..b8359f7bf20 --- /dev/null +++ b/show-my-ip@triyadi.my.id/README.md @@ -0,0 +1,20 @@ +# Show My IP + +A simple Cinnamon applet that displays your local IP address directly on the panel. + +## Features + +- Shows your primary IP (Ethernet or Wi-Fi) in the panel. +- Click to see all IP addresses (lo, eth, wlan, docker, etc). +- Clean aligned display. +- Refreshes every 10 seconds. + +## Author + +Triyadi + +## Installation + +1. Clone or download this applet folder. +2. Place it in `~/.local/share/cinnamon/applets/show-my-ip@triyadi.my.id/` +3. Enable it via System Settings → Applets. diff --git a/show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/README.md b/show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/README.md new file mode 100644 index 00000000000..b8359f7bf20 --- /dev/null +++ b/show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/README.md @@ -0,0 +1,20 @@ +# Show My IP + +A simple Cinnamon applet that displays your local IP address directly on the panel. + +## Features + +- Shows your primary IP (Ethernet or Wi-Fi) in the panel. +- Click to see all IP addresses (lo, eth, wlan, docker, etc). +- Clean aligned display. +- Refreshes every 10 seconds. + +## Author + +Triyadi + +## Installation + +1. Clone or download this applet folder. +2. Place it in `~/.local/share/cinnamon/applets/show-my-ip@triyadi.my.id/` +3. Enable it via System Settings → Applets. diff --git a/show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/applet.js b/show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/applet.js new file mode 100644 index 00000000000..d19e45e5e7f --- /dev/null +++ b/show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/applet.js @@ -0,0 +1,59 @@ +const Applet = imports.ui.applet; +const GLib = imports.gi.GLib; +const Lang = imports.lang; +const Mainloop = imports.mainloop; + +function MyApplet(orientation, panel_height, instance_id) { + this._init(orientation, panel_height, instance_id); +} + +MyApplet.prototype = { + __proto__: Applet.TextApplet.prototype, + + _init: function(orientation, panel_height, instance_id) { + Applet.TextApplet.prototype._init.call(this, orientation, panel_height, instance_id); + this.set_applet_label("IP: ..."); + this.set_applet_tooltip("Click to refresh"); + this.timeout = Mainloop.timeout_add_seconds(5, Lang.bind(this, this.update_ip)); + this.update_ip(); + }, + + update_ip: function() { + try { + let [res, out] = GLib.spawn_command_line_sync("ip -o -4 addr show | awk '{print $2 \" : \" $4}' | cut -d/ -f1"); + if (res) { + let output = String.fromCharCode.apply(null, out).trim(); + let lines = output.split("\n"); + let label = ""; + for (let i = 0; i < lines.length; i++) { + let parts = lines[i].split(" : "); + let iface = parts[0]; + let ip = parts[1]; + if (iface === "lo") iface = "lo"; + else if (iface.startsWith("eth")) iface = "eth0"; + else if (iface.startsWith("wlan") || iface.startsWith("wlp")) iface = "wifi"; + label += iface + " : " + ip + "\n"; + } + this.set_applet_label(label.trim()); + } + } catch (e) { + global.logError("ShowMyIP: " + e); + } + return true; // agar timeout terus berjalan + }, + + on_applet_clicked: function() { + this.update_ip(); + }, + + on_applet_removed_from_panel: function() { + if (this.timeout) { + Mainloop.source_remove(this.timeout); + this.timeout = null; + } + } +}; + +function main(metadata, orientation, panel_height, instance_id) { + return new MyApplet(orientation, panel_height, instance_id); +} diff --git a/show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/icon.png b/show-my-ip@triyadi.my.id/files/show-my-ip@triyadi.my.id/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ebbfb69a368a2391b2146199223c5d5b2e4ea7bf GIT binary patch literal 550 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\n" +"Language-Team: \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. applet.js:37 +msgid "missing dependencies" +msgstr "缺少相依套件" + +#. applet.js:106 +#, javascript-format +msgid "%s updates available" +msgstr "有 %s 個可用的更新" + +#. applet.js:107 +msgid "No updates available" +msgstr "沒有可用的更新" + +#. applet.js:133 +msgid "Check for new updates" +msgstr "檢查更新" + +#. applet.js:144 +#, javascript-format +msgid "View %s updates" +msgstr "檢視 %s 個更新" + +#. applet.js:144 +msgid "No updates to view" +msgstr "沒有可檢視的更新" + +#. applet.js:157 +#, javascript-format +msgid "Upgrade %s packages" +msgstr "升級 %s 個套件" + +#. applet.js:157 +msgid "No packages to upgrade" +msgstr "沒有要升級的套件" + +#. info-window.js:118 +msgid "Loading update details…" +msgstr "正在載入更新的詳細資訊…" + +#. info-window.js:170 +msgid "No details available." +msgstr "沒有可用的詳細資訊。" + +#. info-window.js:172 +msgid "" +"Error:\n" +"{0}" +msgstr "" +"錯誤:\n" +"{0}" + +#. info-window.js:181 +msgid "" +"Failed to run command:\n" +"{0}" +msgstr "" +"執行指令失敗:\n" +"{0}" + +#. info-window.js:191 +msgid "Updates" +msgstr "更新" + +#. info-window.js:206 +msgid "Search updates…" +msgstr "搜尋更新…" + +#. info-window.js:238 +msgid "{0} updates" +msgstr "{0} 個更新" + +#. metadata.json->name +msgid "Updates notifier" +msgstr "更新通知器" + +#. metadata.json->description +msgid "Shows icons for pending update packages" +msgstr "顯示待處理更新套件的圖示" + +#. settings-schema.json->section1->description +msgid "Settings" +msgstr "設定" + +#. settings-schema.json->update-refresh->description +msgid "Minutes to wait before refreshing applet" +msgstr "重新整理小程式前等待的分鐘數" + +#. settings-schema.json->hide-applet->description +msgid "Hide applet if there are no updates" +msgstr "沒有更新時隱藏小程式" + +#. settings-schema.json->different-levels->description +msgid "Show different applet icon for different updgradeable packages count" +msgstr "根據可升級套件數量顯示不同的小程式圖示" + +#. settings-schema.json->level-1->description +msgid "Show low level icon when updates count is between 0 and this value " +msgstr "當更新數量介於 0 與此數值之間時,顯示「低」等級圖示" + +#. settings-schema.json->level-2->description +msgid "" +"Show medium level icon when updates count is between low level value and " +"this value. Show high level icon if it's higher than this value." +msgstr "" +"當更新數量介於「低」等級數值與此數值之間時,顯示「中」等級圖示。" +"若高於此數值,則顯示「高」等級圖示。" + +#. settings-schema.json->section2->description +msgid "Commands to execute in popup menu" +msgstr "在彈出式選單中要執行的指令" + +#. settings-schema.json->commandUpdate-show->description +msgid "Show \"Check for new updates\" command" +msgstr "顯示 \"檢查更新\" 指令" + +#. settings-schema.json->commandUpdate->description +msgid "Check for new updates:" +msgstr "檢查更新:" + +#. settings-schema.json->commandUpgrade-show->description +msgid "Show \"Upgrade packages\" command" +msgstr "顯示 \"升級套件\" 指令" + +#. settings-schema.json->commandUpgrade->description +msgid "Upgrade packages:" +msgstr "升級套件:" + +#. settings-schema.json->section3->description +msgid "Theme" +msgstr "佈景主題" + +#. settings-schema.json->icon-style->description +msgid "Icon style" +msgstr "圖示樣式" + +#. settings-schema.json->icon-style->options +msgid "dark" +msgstr "深色" + +#. settings-schema.json->icon-style->options +msgid "light" +msgstr "淺色" + +#. settings-schema.json->icon-style->options +msgid "symbolic" +msgstr "符號式"