@oxymoron.13/tizentube-s95b 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +42 -49
  2. package/S95B-CHANGES.txt +3 -9
  3. package/dist/userScript.js +2 -2
  4. package/package.json +5 -11
  5. package/UPSTREAM-README.md +0 -42
  6. package/mods/config.js +0 -117
  7. package/mods/domrect-polyfill.js +0 -104
  8. package/mods/features/adblock.js +0 -584
  9. package/mods/features/autoFrameRate.js +0 -42
  10. package/mods/features/enableFeatures.js +0 -19
  11. package/mods/features/moreSubtitles.js +0 -378
  12. package/mods/features/pictureInPicture.js +0 -198
  13. package/mods/features/preferredVideoQuality.js +0 -101
  14. package/mods/features/s95bCodec.js +0 -45
  15. package/mods/features/s95bI18n.js +0 -34
  16. package/mods/features/s95bMenu.js +0 -223
  17. package/mods/features/sponsorblock.js +0 -437
  18. package/mods/features/standaloneUserscript.js +0 -107
  19. package/mods/features/updater.js +0 -119
  20. package/mods/features/userAgentSpoofing.js +0 -73
  21. package/mods/features/videoQueuing.js +0 -64
  22. package/mods/package-lock.json +0 -2321
  23. package/mods/package.json +0 -33
  24. package/mods/resolveCommand.js +0 -376
  25. package/mods/rollup.config.js +0 -41
  26. package/mods/spatial-navigation-polyfill.js +0 -1756
  27. package/mods/tiny-sha256.js +0 -99
  28. package/mods/translations/i18nResources.js +0 -11
  29. package/mods/translations/index.js +0 -18
  30. package/mods/translations/language-names.js +0 -981
  31. package/mods/translations/resources/ar.json +0 -308
  32. package/mods/translations/resources/az.json +0 -308
  33. package/mods/translations/resources/bs.json +0 -308
  34. package/mods/translations/resources/cs.json +0 -308
  35. package/mods/translations/resources/de.json +0 -308
  36. package/mods/translations/resources/dk.json +0 -308
  37. package/mods/translations/resources/el.json +0 -308
  38. package/mods/translations/resources/en.json +0 -308
  39. package/mods/translations/resources/es-419.json +0 -308
  40. package/mods/translations/resources/es.json +0 -308
  41. package/mods/translations/resources/fi-FI.json +0 -308
  42. package/mods/translations/resources/fr.json +0 -311
  43. package/mods/translations/resources/hr.json +0 -308
  44. package/mods/translations/resources/hu.json +0 -308
  45. package/mods/translations/resources/id.json +0 -308
  46. package/mods/translations/resources/it.json +0 -308
  47. package/mods/translations/resources/ja.json +0 -308
  48. package/mods/translations/resources/lt.json +0 -308
  49. package/mods/translations/resources/lv.json +0 -308
  50. package/mods/translations/resources/pl.json +0 -308
  51. package/mods/translations/resources/pt-BR.json +0 -308
  52. package/mods/translations/resources/pt-PT.json +0 -308
  53. package/mods/translations/resources/ro.json +0 -310
  54. package/mods/translations/resources/ru.json +0 -308
  55. package/mods/translations/resources/sr-Cyrl.json +0 -308
  56. package/mods/translations/resources/sr-Latn.json +0 -308
  57. package/mods/translations/resources/tlh.json +0 -308
  58. package/mods/translations/resources/tr.json +0 -308
  59. package/mods/translations/resources/uk.json +0 -308
  60. package/mods/translations/resources/vi.json +0 -309
  61. package/mods/translations/resources/zh-CN.json +0 -308
  62. package/mods/translations/resources/zh-TW.json +0 -308
  63. package/mods/translations/update-translations.js +0 -55
  64. package/mods/ui/chapters.js +0 -137
  65. package/mods/ui/clock.js +0 -71
  66. package/mods/ui/customCommandExecution.js +0 -49
  67. package/mods/ui/customGuideAction.js +0 -119
  68. package/mods/ui/customUI.js +0 -192
  69. package/mods/ui/customYTSettings.js +0 -29
  70. package/mods/ui/disableWhosWatching.js +0 -48
  71. package/mods/ui/settings.js +0 -1024
  72. package/mods/ui/sidebarModification.js +0 -179
  73. package/mods/ui/speedUI.js +0 -119
  74. package/mods/ui/theme.js +0 -26
  75. package/mods/ui/ui.css +0 -157
  76. package/mods/ui/ui.js +0 -261
  77. package/mods/ui/ytUI.js +0 -510
  78. package/mods/userScript.js +0 -28
  79. package/mods/utils/ASTParser.js +0 -67
  80. package/mods/utils/innerTubeCalls.js +0 -138
  81. package/service/package-lock.json +0 -4193
  82. package/service/package.json +0 -29
  83. package/service/rollup.config.js +0 -47
  84. package/service/service.js +0 -118
@@ -1,308 +0,0 @@
1
- {
2
- "__contributors": [
3
- "LiuYi0526"
4
- ],
5
- "settings": {
6
- "options": {
7
- "socialMedia": {
8
- "title": "社交媒体链接",
9
- "qrCodeScanMessage": "您可以扫描下方二维码访问 {{name}} 页面。",
10
- "announcements": "公告",
11
- "group": "群组",
12
- "website": "网站",
13
- "githubSponsors": "GitHub Sponsors"
14
- },
15
- "adBlock": "广告拦截",
16
- "sponsorblock": {
17
- "title": "SponsorBlock 设置",
18
- "options": {
19
- "enableSB": "启用 SponsorBlock",
20
- "manualSkip": "手动跳过 SponsorBlock 片段",
21
- "segments": "片段类型",
22
- "categories": {
23
- "sponsor": "跳过赞助广告片段",
24
- "intro": "跳过片头",
25
- "outro": "跳过片尾",
26
- "interaction": "跳过互动提醒片段",
27
- "selfpromo": "跳过自我推广片段",
28
- "preview": "跳过预览 / 回顾片段",
29
- "filler": "跳过离题 / 笑话片段",
30
- "music_offtopic": "跳过音乐视频中的非音乐片段",
31
- "highlights": "启用精彩片段"
32
- },
33
- "showSBToasts": "显示 SponsorBlock 提示"
34
- }
35
- },
36
- "dearrow": {
37
- "title": "DeArrow 设置",
38
- "options": {
39
- "enableDA": "启用 DeArrow",
40
- "enableDAThumbnails": "启用 DeArrow 缩略图"
41
- }
42
- },
43
- "misc": {
44
- "title": "其他设置",
45
- "options": {
46
- "endScreenCards": "隐藏片尾卡片",
47
- "youThereRenderer": "启用“您还在观看吗?”提示",
48
- "paidPromoOverlay": "启用“包含付费推广”提示",
49
- "whosWatching": {
50
- "title": "“谁在观看”菜单",
51
- "options": {
52
- "enableWW": "启用“谁在观看”菜单",
53
- "permaEnableWW": "永久启用“谁在观看”菜单",
54
- "enableWWOnExit": "退出应用时启用“谁在观看”菜单"
55
- }
56
- },
57
- "fixUI": "修复界面",
58
- "hqThumbnails": "启用高清缩略图",
59
- "longPress": "启用长按操作",
60
- "shorts": "启用 Shorts",
61
- "videoPreviews": "启用视频预览",
62
- "ttWelcomeMsg": "显示 TizenTube 欢迎消息",
63
- "guestSignInReminder": "显示访客登录提醒",
64
- "reloadHomeOnStartup": "启动时重新加载首页"
65
- }
66
- },
67
- "subtitles": {
68
- "title": "字幕设置",
69
- "options": {
70
- "showLocalSubtitle": "显示本地字幕",
71
- "showHiddenSubtitles": "显示隐藏字幕"
72
- }
73
- },
74
- "videoPlayer": {
75
- "title": "视频播放器设置",
76
- "subtitle": "自定义视频播放器功能",
77
- "options": {
78
- "patching": {
79
- "title": "视频播放器界面修补",
80
- "options": {
81
- "enableVPUIPatching": "启用视频播放器界面修补",
82
- "previousNextBtns": "启用上一个和下一个按钮",
83
- "showSuperThxBtn": "显示超级感谢按钮",
84
- "showAIAskBtn": "显示提问按钮",
85
- "showSpeedCtrlBtn": "显示速度按钮",
86
- "addMPBtn": "显示迷你播放器按钮",
87
- "swapMPWithPIP": "将迷你播放器按钮替换为画中画按钮"
88
- }
89
- },
90
- "preferredVideoQuality": {
91
- "title": "首选视频画质",
92
- "subtitle": "选择开始播放时使用的首选画质,不可用时使用次佳画质"
93
- },
94
- "speedSettings": {
95
- "title": "播放速度调节步长",
96
- "subtitle": "设置每次调整视频播放速度的幅度"
97
- },
98
- "preferredVideoCodec": {
99
- "title": "首选视频编码格式",
100
- "subtitle": "选择播放时优先使用的视频编码格式"
101
- },
102
- "afr": "自动帧率",
103
- "afrPauseDuration": {
104
- "title": "自动帧率暂停时长",
105
- "subtitle": "设置调整帧率时暂停视频播放的时长(秒)"
106
- },
107
- "codecAny": "不限",
108
- "qualityAuto": "自动",
109
- "hideRelatedVideosPlayer": "隐藏相关视频"
110
- }
111
- },
112
- "time": {
113
- "second": "{{count}} 秒",
114
- "seconds": "{{count}} 秒",
115
- "minute": "{{count}} 分钟",
116
- "minutes": "{{count}} 分钟"
117
- },
118
- "uiSettings": {
119
- "title": "界面设置",
120
- "subtitle": "按您的喜好自定义界面",
121
- "options": {
122
- "hideWatchedVideos": {
123
- "title": "隐藏已观看的视频",
124
- "options": {
125
- "enableHideWatchedVideos": "启用隐藏已观看的视频",
126
- "watchedVideosThreshold": {
127
- "title": "已观看视频判定阈值",
128
- "subtitle": "设置隐藏视频所需达到的观看进度百分比"
129
- },
130
- "setPagesToHideWatchedVideos": "设置隐藏已观看视频的页面"
131
- }
132
- },
133
- "screenDimming": {
134
- "title": "屏幕调暗",
135
- "options": {
136
- "enableScreenDimming": "启用屏幕调暗",
137
- "dimmingTimeout": {
138
- "title": "调暗等待时间",
139
- "subtitle": "设置无操作多久后调暗屏幕(秒)"
140
- },
141
- "dimmingOpacity": {
142
- "title": "调暗遮罩不透明度",
143
- "subtitle": "设置屏幕调暗遮罩的不透明度"
144
- }
145
- }
146
- },
147
- "disableSidebarContents": {
148
- "title": "禁用侧边栏内容",
149
- "subtitle": "选择要禁用的侧边栏内容"
150
- },
151
- "sortSidebarContents": {
152
- "title": "侧边栏内容排序",
153
- "subtitle": "按您的喜好调整侧边栏内容的顺序",
154
- "moveUp": {
155
- "title": "上移",
156
- "subtitle": "将此项在侧边栏中向上移动"
157
- },
158
- "moveDown": {
159
- "title": "下移",
160
- "subtitle": "将此项在侧边栏中向下移动"
161
- },
162
- "addToSidebar": "将频道添加到侧边栏",
163
- "removeFromSidebar": "从侧边栏移除频道"
164
- },
165
- "launchToOnStartup": {
166
- "title": "启动页面",
167
- "subtitle": "选择 TizenTube 启动时默认打开的页面"
168
- },
169
- "categories": {
170
- "search": "搜索",
171
- "home": "首页",
172
- "sports": "体育",
173
- "news": "新闻",
174
- "music": "音乐",
175
- "podcasts": "播客",
176
- "moviesAndTv": "影视",
177
- "live": "直播",
178
- "gaming": "游戏",
179
- "subscriptions": "订阅",
180
- "library": "媒体库",
181
- "more": "更多",
182
- "shorts": "Shorts",
183
- "searchResults": "搜索结果"
184
- },
185
- "sortSubscriptionsByAlphabet": "按字母顺序排列订阅",
186
- "disableChannelsOnSidebar": "禁用侧边栏频道",
187
- "clock": {
188
- "title": "时钟",
189
- "subtitle": "在屏幕上显示时钟",
190
- "options": {
191
- "enableClock": "启用时钟",
192
- "isClock12HourFormat": "使用 12 小时制",
193
- "clockShowSeconds": "显示秒数",
194
- "clockHideWhenVideoPlaying": "播放视频时隐藏时钟"
195
- }
196
- },
197
- "disableEnlargingThumbnails": "禁用缩略图放大",
198
- "enableShrinkingThumbnails": "启用缩略图缩小"
199
- }
200
- },
201
- "updater": {
202
- "title": "TizenTube Cobalt 更新工具",
203
- "menuSubtitle": "管理 TizenTube Cobalt 更新",
204
- "versionSubtitle": "当前版本:{{version}}",
205
- "options": {
206
- "checkForUpdates": "检查更新",
207
- "checkForUpdatesOnStartup": "启动时检查更新"
208
- },
209
- "updateAvailable": {
210
- "title": "有可用更新",
211
- "subtitle": "TizenTube Cobalt 有新版本:{{latestVersion}},当前版本:{{currentVersion}}"
212
- },
213
- "releaseDate": "发布日期:{{date}}",
214
- "updateNow": {
215
- "title": "立即更新",
216
- "subtitle": "点击下载最新版本。"
217
- },
218
- "remindLater": {
219
- "title": "稍后提醒我",
220
- "subtitle": "稍后检查更新。"
221
- },
222
- "upToDate": {
223
- "title": "TizenTube 已是最新版本",
224
- "subtitle": "您正在使用最新版本的 TizenTube Cobalt({{version}})。"
225
- },
226
- "checkFailed": {
227
- "title": "TizenTube 检查更新失败",
228
- "subtitle": "无法检查更新。"
229
- },
230
- "downloading": {
231
- "title": "TizenTube 更新",
232
- "subtitle": "正在下载更新,请稍候……"
233
- }
234
- }
235
- },
236
- "ttSettings": {
237
- "title": "TizenTube 设置",
238
- "madeByText": "由 Reis Can(reisxd)用 ❤️ 制作",
239
- "summary": "打开 TizenTube 设置"
240
- },
241
- "supportTT": {
242
- "title": "支持 TizenTube",
243
- "subtitle": "❤️ 支持 TizenTube 及其开发",
244
- "content": {
245
- "1": "如果您喜欢使用 TizenTube 并希望支持其开发,可以考虑以下方式:",
246
- "2": "1. 为 GitHub 仓库点亮星标,帮助更多人发现它。",
247
- "3": "2. 将 TizenTube 分享给其他人。",
248
- "4": "如果您愿意提供资金支持,可以考虑捐赠:",
249
- "5": "- Buy Me A Coffee: https://www.buymeacoffee.com/reisxd (首选)",
250
- "6": "- GitHub Sponsors: https://github.com/sponsors/reisxd"
251
- }
252
- }
253
- },
254
- "welcomeMsg": {
255
- "title": "欢迎使用 TizenTube",
256
- "subtitle": "请前往设置,点击“TizenTube 设置”进行配置。"
257
- },
258
- "sponsorblock": {
259
- "segments": {
260
- "sponsor": "赞助广告片段",
261
- "intro": "片头",
262
- "outro": "片尾",
263
- "interaction": "互动提醒片段",
264
- "selfpromo": "自我推广片段",
265
- "preview": "回顾 / 预览片段",
266
- "filler": "离题片段",
267
- "music_offtopic": "非音乐片段",
268
- "poi_highlight": "精彩片段"
269
- },
270
- "toasts": {
271
- "skipping": "正在跳过{{segment}}",
272
- "notSkipping": "不再跳过{{segment}}(已跳过 {{count}} 次)",
273
- "skip": "跳过{{segment}}",
274
- "skipToHighlight": "跳转到精彩片段"
275
- }
276
- },
277
- "player": {
278
- "playbackSpeed": {
279
- "title": "播放速度",
280
- "button": "速度",
281
- "fixStuttering": "修复卡顿(1.0001 倍速)"
282
- },
283
- "miniPlayer": "迷你播放器",
284
- "pictureInPicture": "画中画",
285
- "previous": "上一个",
286
- "next": "下一个",
287
- "withTizenTube": "使用 TizenTube",
288
- "share": {
289
- "title": "分享",
290
- "button": "分享",
291
- "qrCodeScanMessage": "扫描下方二维码分享此视频。"
292
- },
293
- "screenOff": "关闭屏幕"
294
- },
295
- "toasts": {
296
- "videoAddedToQueue": "视频已添加到播放队列。",
297
- "videoQueueCleared": "播放队列已清空。",
298
- "sidebarContentsUpdated": {
299
- "title": "侧边栏内容已更新",
300
- "subtitle": "侧边栏内容已完成更新。"
301
- },
302
- "feedbackSent": "Feedback sent."
303
- },
304
- "videoMenu": {
305
- "notInterested": "Not interested",
306
- "dontRecommendChannel": "Don't recommend channel"
307
- }
308
- }
@@ -1,308 +0,0 @@
1
- {
2
- "__contributors": [
3
- "Kerry"
4
- ],
5
- "settings": {
6
- "options": {
7
- "socialMedia": {
8
- "title": "社群連結",
9
- "qrCodeScanMessage": "您可以掃描下方 QR Code 前往 {{name}} 頁面",
10
- "announcements": "Announcements",
11
- "group": "Group",
12
- "website": "Website",
13
- "githubSponsors": "GitHub Sponsors"
14
- },
15
- "adBlock": "廣告攔截器",
16
- "sponsorblock": {
17
- "title": "SponsorBlock(贊助商阻擋) 設定",
18
- "options": {
19
- "enableSB": "啟用 SponsorBlock",
20
- "manualSkip": "手動略過 SponsorBlock 區段",
21
- "segments": "區段類型",
22
- "categories": {
23
- "sponsor": "略過贊助片段",
24
- "intro": "略過片頭",
25
- "outro": "略過片尾",
26
- "interaction": "略過互動提醒片段",
27
- "selfpromo": "略過自我宣傳片段",
28
- "preview": "略過預覽/回顧片段",
29
- "filler": "略過閒聊/玩笑的段落",
30
- "music_offtopic": "跳過無關的音樂片段",
31
- "highlights": "啟用精華片段"
32
- },
33
- "showSBToasts": "顯示 SponsorBlock 提示通知"
34
- }
35
- },
36
- "dearrow": {
37
- "title": "DeArrow(標題去誤導) 設定",
38
- "options": {
39
- "enableDA": "啟用 DeArrow",
40
- "enableDAThumbnails": "啟用 DeArrow 縮圖"
41
- }
42
- },
43
- "misc": {
44
- "title": "其他設定",
45
- "options": {
46
- "endScreenCards": "隱藏片尾小卡",
47
- "youThereRenderer": "啟用'是否繼續觀看'提醒",
48
- "paidPromoOverlay": "啟用'包含付費推廣'標示",
49
- "whosWatching": {
50
- "title": "誰在觀看選單",
51
- "options": {
52
- "enableWW": "啟用誰在觀看選單",
53
- "permaEnableWW": "永久啟用",
54
- "enableWWOnExit": "程式離開時顯示"
55
- }
56
- },
57
- "fixUI": "修復介面",
58
- "hqThumbnails": "啟用高畫質縮圖",
59
- "longPress": "啟用長按操作",
60
- "shorts": "啟用 Shorts(短影音)",
61
- "videoPreviews": "啟用影片預覽",
62
- "ttWelcomeMsg": "顯示 TT(TizenTube)歡迎訊息",
63
- "guestSignInReminder": "顯示訪客登入提醒",
64
- "reloadHomeOnStartup": "啟動時重新載入首頁"
65
- }
66
- },
67
- "subtitles": {
68
- "title": "字幕設定",
69
- "options": {
70
- "showLocalSubtitle": "顯示本地字幕",
71
- "showHiddenSubtitles": "顯示隱藏字幕"
72
- }
73
- },
74
- "videoPlayer": {
75
- "title": "影片播放器設定",
76
- "subtitle": "自訂播放器功能",
77
- "options": {
78
- "patching": {
79
- "title": "Patch(修正)影片播放器介面",
80
- "options": {
81
- "enableVPUIPatching": "啟用影片播放器介面修正",
82
- "previousNextBtns": "啟用上一個/下一個按鈕",
83
- "showSuperThxBtn": "顯示超級感謝按鈕",
84
- "showSpeedCtrlBtn": "顯示速度控制按鈕",
85
- "showAIAskBtn": "Show Ask Button",
86
- "addMPBtn": "Show Mini Player Button",
87
- "swapMPWithPIP": "Swap Mini Player Button with PiP Button"
88
- }
89
- },
90
- "preferredVideoQuality": {
91
- "title": "影片畫質偏好設定",
92
- "subtitle": "選擇影片開始播放時要使用的畫質,若無法套用則改用次佳畫質"
93
- },
94
- "speedSettings": {
95
- "title": "倍速間隔設定",
96
- "subtitle": "調整倍速間隔的大小"
97
- },
98
- "preferredVideoCodec": {
99
- "title": "影片編碼偏好設定",
100
- "subtitle": "選擇播放時偏好的影片編碼格式"
101
- },
102
- "afr": "自動幀率",
103
- "afrPauseDuration": {
104
- "title": "調整幀率時的暫停時間",
105
- "subtitle": "設定調整幀率時,影片暫停的秒數"
106
- },
107
- "codecAny": "Any",
108
- "qualityAuto": "Auto",
109
- "hideRelatedVideosPlayer": "Hide Related Videos"
110
- }
111
- },
112
- "uiSettings": {
113
- "title": "使用者介面設定",
114
- "subtitle": "打造您喜歡的介面風格",
115
- "options": {
116
- "hideWatchedVideos": {
117
- "title": "隱藏已觀看影片",
118
- "options": {
119
- "enableHideWatchedVideos": "啟用隱藏已觀看影片",
120
- "watchedVideosThreshold": {
121
- "title": "已觀看影片進度條門檻",
122
- "subtitle": "設定進度條達到百分之幾時候,將影片視為已觀看並隱藏"
123
- },
124
- "setPagesToHideWatchedVideos": "設定隱藏已觀看影片的頁面"
125
- }
126
- },
127
- "screenDimming": {
128
- "title": "螢幕調暗",
129
- "options": {
130
- "enableScreenDimming": "啟用螢幕調暗功能",
131
- "dimmingTimeout": {
132
- "title": "調暗等待時間",
133
- "subtitle": "設定在沒操作幾(秒)後,調暗螢幕"
134
- },
135
- "dimmingOpacity": {
136
- "title": "調暗透明度",
137
- "subtitle": "設定調暗螢幕時的透明"
138
- }
139
- }
140
- },
141
- "disableSidebarContents": {
142
- "title": "停用側邊欄內容",
143
- "subtitle": "選擇要停用的側邊欄項目"
144
- },
145
- "launchToOnStartup": {
146
- "title": "啟動時預設頁面",
147
- "subtitle": "選擇 TizenTube 啟動時預設開啟的頁面"
148
- },
149
- "sortSubscriptionsByAlphabet": "訂閱依字母排序",
150
- "categories": {
151
- "search": "Search",
152
- "home": "Home",
153
- "sports": "Sports",
154
- "news": "News",
155
- "music": "Music",
156
- "podcasts": "Podcasts",
157
- "moviesAndTv": "Movies & TV",
158
- "live": "Live",
159
- "gaming": "Gaming",
160
- "subscriptions": "Subscriptions",
161
- "library": "Library",
162
- "more": "More",
163
- "shorts": "Shorts",
164
- "searchResults": "Search Results"
165
- },
166
- "disableChannelsOnSidebar": "Disable Channels on Sidebar",
167
- "clock": {
168
- "title": "Clock",
169
- "subtitle": "Display a clock on the screen",
170
- "options": {
171
- "enableClock": "Enable Clock",
172
- "isClock12HourFormat": "Use 12-Hour Format for Clock",
173
- "clockShowSeconds": "Show Seconds on Clock",
174
- "clockHideWhenVideoPlaying": "Hide Clock While Video is Playing"
175
- }
176
- },
177
- "disableEnlargingThumbnails": "Disable Enlarged Thumbnails",
178
- "enableShrinkingThumbnails": "Enable Shrinked Thumbnails",
179
- "sortSidebarContents": {
180
- "title": "Sort Sidebar Contents",
181
- "subtitle": "Reorder sidebar contents to your preference",
182
- "moveUp": {
183
- "title": "Move Up",
184
- "subtitle": "Move this item up in the sidebar"
185
- },
186
- "moveDown": {
187
- "title": "Move Down",
188
- "subtitle": "Move this item down in the sidebar"
189
- },
190
- "addToSidebar": "Add Channel to Sidebar",
191
- "removeFromSidebar": "Remove Channel from Sidebar"
192
- }
193
- }
194
- },
195
- "updater": {
196
- "title": "TizenTube Cobalt 更新工具",
197
- "menuSubtitle": "管理 TizenTube Cobalt 更新",
198
- "versionSubtitle": "目前版本:{{version}}",
199
- "options": {
200
- "checkForUpdates": "檢查更新",
201
- "checkForUpdatesOnStartup": "啟動時檢查更新"
202
- },
203
- "updateAvailable": {
204
- "title": "Update Available",
205
- "subtitle": "A new version of TizenTube Cobalt is available: {{latestVersion}}, current: {{currentVersion}}"
206
- },
207
- "releaseDate": "Release Date: {{date}}",
208
- "updateNow": {
209
- "title": "Update Now",
210
- "subtitle": "Click to download the latest version."
211
- },
212
- "remindLater": {
213
- "title": "Remind Me Later",
214
- "subtitle": "Check for updates later."
215
- },
216
- "upToDate": {
217
- "title": "TizenTube is up to date",
218
- "subtitle": "You are using the latest version ({{version}}) of TizenTube Cobalt."
219
- },
220
- "checkFailed": {
221
- "title": "TizenTube update check failed",
222
- "subtitle": "Could not check for updates."
223
- },
224
- "downloading": {
225
- "title": "TizenTube Update",
226
- "subtitle": "Downloading update, please wait..."
227
- }
228
- },
229
- "time": {
230
- "second": "{{count}} second",
231
- "seconds": "{{count}} seconds",
232
- "minute": "{{count}} minute",
233
- "minutes": "{{count}} minutes"
234
- }
235
- },
236
- "ttSettings": {
237
- "title": "TizenTube 設定",
238
- "madeByText": "由 Reis Can (reisxd) 製作❤️",
239
- "summary": "開啟 TizenTube 設定"
240
- },
241
- "supportTT": {
242
- "title": "支持TizenTube",
243
- "subtitle": "❤️ 支持 TizenTube 與其開發",
244
- "content": {
245
- "1": "如果你喜歡使用 TizenTube,並想支持它的開發,可以參考以下方式:",
246
- "2": "1. 在 GitHub 專案點星標(Star),幫助提升曝光度。",
247
- "3": "2. 分享 TizenTube 給其他人。",
248
- "4": "如果你想提供金錢上的支持,可以考慮斗內(捐款):",
249
- "5": "- Buy Me A Coffee: https://www.buymeacoffee.com/reisxd (建議優先)",
250
- "6": "- GitHub Sponsors: https://github.com/sponsors/reisxd"
251
- }
252
- }
253
- },
254
- "welcomeMsg": {
255
- "title": "歡迎使用 TizenTube",
256
- "subtitle": "請前往設定,點選 TizenTube 設定以進行相關設定"
257
- },
258
- "sponsorblock": {
259
- "segments": {
260
- "sponsor": "贊助片段",
261
- "intro": "片頭",
262
- "outro": "片尾",
263
- "interaction": "互動提醒",
264
- "selfpromo": "自我宣傳",
265
- "preview": "預告/回顧",
266
- "filler": "無關內容",
267
- "music_offtopic": "無關音樂片段",
268
- "poi_highlight": "精華片段"
269
- },
270
- "toasts": {
271
- "skipping": "正在略過 {{segment}}",
272
- "notSkipping": "未成功略過 {{segment}} (已略過{{count}}次)",
273
- "skip": "略過{{segment}}",
274
- "skipToHighlight": "跳至精華片段"
275
- }
276
- },
277
- "player": {
278
- "playbackSpeed": {
279
- "title": "Playback Speed",
280
- "button": "Speed Controls",
281
- "fixStuttering": "Fix stuttering (1.0001x)"
282
- },
283
- "miniPlayer": "Mini Player",
284
- "pictureInPicture": "Picture in Picture",
285
- "previous": "Previous",
286
- "next": "Next",
287
- "withTizenTube": "with TizenTube",
288
- "share": {
289
- "title": "Share",
290
- "button": "Share",
291
- "qrCodeScanMessage": "Scan the QR code below to share this video."
292
- },
293
- "screenOff": "Turn off screen"
294
- },
295
- "toasts": {
296
- "videoAddedToQueue": "Video added to queue.",
297
- "videoQueueCleared": "Video queue cleared.",
298
- "sidebarContentsUpdated": {
299
- "title": "Sidebar Contents Updated",
300
- "subtitle": "The sidebar contents have been updated."
301
- },
302
- "feedbackSent": "Feedback sent."
303
- },
304
- "videoMenu": {
305
- "notInterested": "Not interested",
306
- "dontRecommendChannel": "Don't recommend channel"
307
- }
308
- }
@@ -1,55 +0,0 @@
1
- // This must be ran every time a new key is added to the
2
- // English translation file. It'll add the missing keys to
3
- // all other translation files.
4
-
5
- // Note: must be ran from the /mods folder
6
-
7
- import { readFileSync, readdirSync, writeFileSync } from 'node:fs';
8
-
9
- const files = readdirSync('translations/resources');
10
-
11
- const enFile = readFileSync('translations/resources/en.json', 'utf-8');
12
- const enData = JSON.parse(enFile);
13
-
14
-
15
- function addMissingKeys(enObj, translationObj) {
16
- for (const key in enObj) {
17
- if (typeof enObj[key] === 'object' && !Array.isArray(enObj[key])) {
18
- if (!translationObj[key]) {
19
- translationObj[key] = enObj[key];
20
- }
21
-
22
- addMissingKeys(enObj[key], translationObj[key]);
23
- }
24
- else if (!translationObj[key]) {
25
- translationObj[key] = enObj[key];
26
- }
27
- }
28
- }
29
-
30
- function removeUnknownKeys(enObj, translationObj) {
31
- for (const key in translationObj) {
32
- if (!(key in enObj)) {
33
- delete translationObj[key];
34
- }
35
- else if (typeof enObj[key] === 'object' && !Array.isArray(enObj[key])
36
- && typeof translationObj[key] === 'object' && !Array.isArray(translationObj[key])) {
37
- removeUnknownKeys(enObj[key], translationObj[key]);
38
- }
39
- }
40
- }
41
-
42
- files.forEach(file => {
43
- if (file === 'en.json') return;
44
-
45
- const translationFile = readFileSync(`translations/resources/${file}`, 'utf-8');
46
- const translationData = JSON.parse(translationFile);
47
-
48
- removeUnknownKeys(enData, translationData);
49
- addMissingKeys(enData, translationData);
50
-
51
- const updatedTranslationFile = JSON.stringify(translationData, null, 4);
52
- writeFileSync(`translations/resources/${file}`, updatedTranslationFile);
53
- console.log(`Updated ${file} with missing keys.`);
54
- });
55
-