From 8dfd2bdd2a332a8bc6a5c7dd2d31622deb17d634 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 8 Dec 2023 05:50:00 +0000 Subject: [PATCH] feat: popup with locales and tailwind --- assets/locales/en/messages.json | 152 ++++++++++++++++++++++++++++++++ assets/locales/zh/messages.json | 152 ++++++++++++++++++++++++++++++++ package.json | 5 +- pnpm-lock.yaml | 21 +++++ src/popup.tsx | 29 +++--- src/style.css | 10 ++- tailwind.config.js | 6 +- 7 files changed, 358 insertions(+), 17 deletions(-) create mode 100644 assets/locales/en/messages.json create mode 100644 assets/locales/zh/messages.json diff --git a/assets/locales/en/messages.json b/assets/locales/en/messages.json new file mode 100644 index 0000000..9eecb9a --- /dev/null +++ b/assets/locales/en/messages.json @@ -0,0 +1,152 @@ +{ + "extensionDescription": { + "message": "Easily find and subscribe to RSS and RSSHub." + }, + "accessKey": { + "message": "Access key" + }, + "about": { + "message": "About" + }, + "clickToSet": { + "message": "Click to set" + }, + "configurationRequiredIfAccessKeysEnabled": { + "message": "Configuration is only required if the instance has access keys enabled, keep it off if you don't know the situation" + }, + "copied": { + "message": "Copied" + }, + "copy": { + "message": "Copy" + }, + "currentPageRSS": { + "message": "RSS on the current site" + }, + "currentPageRSSHub": { + "message": "RSSHub for the current page" + }, + "customRSSHubDomain": { + "message": "Custom RSSHub domain name" + }, + "currentSiteRSSHub": { + "message": "RSSHub for the current site" + }, + "documentation": { + "message": "Info" + }, + "enable": { + "message": "Enable" + }, + "iWillUpdateAutomaticallyAndYouCan": { + "message": "I will update automatically, and you can" + }, + "updating": { + "message": "Updating" + }, + "updateNow": { + "message": "Update Now" + }, + "beforeUpdate": { + "message": "before update" + }, + "afterAutomaticUpdate": { + "message": "after automatic update" + }, + "fullRemoteUpdatesAreDisabledDueToBrowserLimitations": { + "message": "Full remote updates are disabled due to browser limitations" + }, + "enterRSSHubDomain": { + "message": "Please enter your RSSHub domain name, leave it blank to use the official domain name" + }, + "forMoreRulesJoinUs": { + "message": "For more rules support, join us!" + }, + "general": { + "message": "General" + }, + "generateAccessCode": { + "message": "Generate access code" + }, + "hotKey": { + "message": "Hot key" + }, + "joinRSSHub": { + "message": "Join RSSHub to make everything RSSible!" + }, + "listOfRules": { + "message": "List of rules" + }, + "localReader": { + "message": "Local reader" + }, + "oneclickSubscription": { + "message": "One-click subscription" + }, + "notificationsAndReminders": { + "message": "Notifications and reminders" + }, + "requiredAccessKey": { + "message": "Required, please enter the correct access key" + }, + "requiredAddress": { + "message": "Required. Please enter you %{service} address" + }, + "requiredExtensionBaseURI": { + "message": "Required. Please enter the %{service} extension URL after installation" + }, + "requiresReaderSupport": { + "message": "Requires reader support, such as Reeder, etc." + }, + "RSSNotFound": { + "message": "No RSS found" + }, + "RSSHubRadarOptions": { + "message": "RSSHub Radar Options" + }, + "rules": { + "message": "Rules" + }, + "rulesUpdate": { + "message": "Rules update" + }, + "settings": { + "message": "Settings" + }, + "showCornerBadge": { + "message": "Show corner badge" + }, + "subscribeTo": { + "message": "Subscribe to" + }, + "subscribeToLocalReader": { + "message": "Subscribe to local reader" + }, + "successfullySaved": { + "message": "Successfully saved" + }, + "updatedTimeAgo": { + "message": "%{hours}h %{minutes}m since last update" + }, + "version": { + "message": "Version" + }, + "RSSHubRadarInfo": { + "message": "RSSHub Radar is a spin-off of RSSHub that helps you quickly discover and subscribe to RSS and RSSHub for your current site, and the project is open source under the MIT license and is completely free to use, but as the project grows in size, it also needs to be funded to sustain its maintenance and development" + }, + "sponsoredDevelopment": { + "message": "Sponsored development of RSSHub Radar: https://docs.rsshub.app/en/support/" + }, + "updateLog": { + "message": "Update log" + }, + "questionFeedback": { + "message": "Question Feedback" + }, + "RSSHubDocumentation": { + "message": "RSSHub Documentation: https://docs.rsshub.app/en/" + }, + "everythingIsPossibleWithRSS": { + "message": "Everything is possible with RSS" + } +} \ No newline at end of file diff --git a/assets/locales/zh/messages.json b/assets/locales/zh/messages.json new file mode 100644 index 0000000..8b26bf1 --- /dev/null +++ b/assets/locales/zh/messages.json @@ -0,0 +1,152 @@ +{ + "extensionDescription": { + "message": "轻松查找和订阅 RSS 和 RSSHub。" + }, + "about": { + "message": "关于" + }, + "accessKey": { + "message": "访问密钥" + }, + "clickToSet": { + "message": "点此设置" + }, + "configurationRequiredIfAccessKeysEnabled": { + "message": "只有实例启用了访问密钥,才需要配置,如果你不清楚情况,请保持关闭" + }, + "copied": { + "message": "已复制" + }, + "copy": { + "message": "复制" + }, + "currentPageRSS": { + "message": "当前页面上的 RSS" + }, + "currentPageRSSHub": { + "message": "适用于当前页面的 RSSHub" + }, + "customRSSHubDomain": { + "message": "自定义 RSSHub 域名" + }, + "currentSiteRSSHub": { + "message": "适用于当前网站的 RSSHub" + }, + "documentation": { + "message": "文档" + }, + "enable": { + "message": "开启" + }, + "iWillUpdateAutomaticallyAndYouCan": { + "message": "我会自动更新,你也可以" + }, + "updating": { + "message": "更新中" + }, + "updateNow": { + "message": "立即更新" + }, + "beforeUpdate": { + "message": "前更新" + }, + "afterAutomaticUpdate": { + "message": "后自动更新" + }, + "fullRemoteUpdatesAreDisabledDueToBrowserLimitations": { + "message": "由于浏览器限制,完整的远程更新被禁用" + }, + "enterRSSHubDomain": { + "message": "请输入你的 RSSHub 域名,留空使用官方域名" + }, + "forMoreRulesJoinUs": { + "message": "更多规则支持中,快来参与我们吧!" + }, + "general": { + "message": "常规" + }, + "generateAccessCode": { + "message": "生成访问码" + }, + "hotKey": { + "message": "快捷键" + }, + "joinRSSHub": { + "message": "参与到 RSSHub 让万物皆可 RSS 吧!" + }, + "listOfRules": { + "message": "规则列表" + }, + "localReader": { + "message": "本地阅读器" + }, + "notificationsAndReminders": { + "message": "通知与提醒" + }, + "oneclickSubscription": { + "message": "一键订阅" + }, + "requiredAddress": { + "message": "必填,请输入你的 %{service} 地址" + }, + "requiredExtensionBaseURI": { + "message": "必填,请输入你安装完成后的%{service}插件地址" + }, + "requiredAccessKey": { + "message": "必填,请输入正确的访问密钥" + }, + "requiresReaderSupport": { + "message": "需要阅读器支持,如 Reeder 等" + }, + "RSSNotFound": { + "message": "当前页面没有检测到 RSS" + }, + "RSSHubRadarOptions": { + "message": "RSSHub Radar 选项" + }, + "rules": { + "message": "规则列表" + }, + "rulesUpdate": { + "message": "规则更新" + }, + "settings": { + "message": "设置" + }, + "showCornerBadge": { + "message": "角标提醒" + }, + "subscribeTo": { + "message": "订阅到" + }, + "subscribeToLocalReader": { + "message": "订阅到本地阅读器" + }, + "successfullySaved": { + "message": "保存成功" + }, + "updatedTimeAgo": { + "message": "%{hours}小时 %{minutes}分钟 前更新" + }, + "version": { + "message": "版本" + }, + "RSSHubRadarInfo": { + "message": "RSSHub Radar 是 RSSHub 的衍生项目,她可以帮助你快速发现和订阅当前网站的 RSS 和 RSSHub,项目采用 MIT 许可开源,使用完全免费,但是随着项目规模的增长,也需要有相应的资金支持才能持续项目的维护与开发" + }, + "sponsoredDevelopment": { + "message": "赞助 RSSHub Radar 的开发: https://docs.rsshub.app/support/" + }, + "updateLog": { + "message": "更新日志" + }, + "questionFeedback": { + "message": "问题反馈" + }, + "RSSHubDocumentation": { + "message": "RSSHub 文档: https://docs.rsshub.app" + }, + "everythingIsPossibleWithRSS": { + "message": "万物皆可 RSS" + } +} \ No newline at end of file diff --git a/package.json b/package.json index e2d2b6c..250828a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "rsshub-radar", "displayName": "RSSHub Radar", "version": "2.0.0", - "description": "Browser extension that simplifies finding and subscribing RSS and RSSHub", + "description": "__MSG_extensionDescription__", "author": "DIYgod ", "scripts": { "dev": "plasmo dev", @@ -10,6 +10,7 @@ "package": "plasmo package" }, "dependencies": { + "@iconify-json/mingcute": "^1.1.13", "@plasmohq/messaging": "^0.6.1", "plasmo": "0.84.0", "react": "18.2.0", @@ -17,6 +18,7 @@ }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "4.1.1", + "@iconify/tailwind": "^0.1.4", "@types/chrome": "0.0.251", "@types/node": "20.9.0", "@types/react": "18.2.37", @@ -28,6 +30,7 @@ "typescript": "5.2.2" }, "manifest": { + "default_locale": "en", "host_permissions": [ "https://*/*" ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d19cd8..94af145 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,9 @@ settings: excludeLinksFromLockfile: false dependencies: + '@iconify-json/mingcute': + specifier: ^1.1.13 + version: 1.1.13 '@plasmohq/messaging': specifier: ^0.6.1 version: 0.6.1(react@18.2.0) @@ -22,6 +25,9 @@ devDependencies: '@ianvs/prettier-plugin-sort-imports': specifier: 4.1.1 version: 4.1.1(prettier@3.0.3) + '@iconify/tailwind': + specifier: ^0.1.4 + version: 0.1.4 '@types/chrome': specifier: 0.0.251 version: 0.0.251 @@ -466,6 +472,21 @@ packages: - supports-color dev: true + /@iconify-json/mingcute@1.1.13: + resolution: {integrity: sha512-RMXKbxBPeMMH3J3YHaqKvMg/XDPYKRcBhQnmGL2SoHzarA/2KSFS94Hq9N2/wyuqTxEB7IaOghUk3L73DmJK9g==} + dependencies: + '@iconify/types': 2.0.0 + dev: false + + /@iconify/tailwind@0.1.4: + resolution: {integrity: sha512-U7RzcU2fkwOfMDsGQ3mtpLIaApSnqb+vgcJJknPPbg8/NF5s7tI1o5otEMfcpnLGk4PbYB8bxmKTz7IJVUlU2Q==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} diff --git a/src/popup.tsx b/src/popup.tsx index ccf71f1..846c382 100644 --- a/src/popup.tsx +++ b/src/popup.tsx @@ -5,25 +5,26 @@ function IndexPopup() { const [data, setData] = useState("") return ( -
-
- - +
+ + + +
+

( ´・・)ノ(._.`) {chrome.i18n.getMessage("RSSNotFound")}

+

-
-

( ´・・)ノ(._.`) rss not found

-

join rsshub

-
-
-

current page rss

+
+

{chrome.i18n.getMessage("currentPageRSS")}

    -
    -

    current page RSSHub

    +
    +

    {chrome.i18n.getMessage("currentPageRSSHub")}

      -
      -

      current site RSSHub

      +
      +

      {chrome.i18n.getMessage("currentSiteRSSHub")}

        diff --git a/src/style.css b/src/style.css index bd6213e..cc7ac4c 100644 --- a/src/style.css +++ b/src/style.css @@ -1,3 +1,11 @@ @tailwind base; @tailwind components; -@tailwind utilities; \ No newline at end of file +@tailwind utilities; + +body { + font-size: 14px; +} + +a { + color: #f5712c; +} \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js index f6d1d1c..00d492d 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,7 +1,11 @@ +import { addDynamicIconSelectors } from "@iconify/tailwind" + /** @type {import('tailwindcss').Config} */ module.exports = { mode: "jit", darkMode: "class", content: ["./**/*.tsx"], - plugins: [] + plugins: [ + addDynamicIconSelectors(), + ] } \ No newline at end of file