From 20a780693b14c1f13d39cd158ee4ddd394835f29 Mon Sep 17 00:00:00 2001 From: Dharmesh Date: Mon, 2 Oct 2023 10:40:13 +0530 Subject: [PATCH] Sort Actions Asc | Desc - sort action based on name and url within reorder modal config - removed console log from actions - updated push and tag pipeline --- .github/workflows/push-feature.yml | 13 +- .github/workflows/tags.yml | 6 +- apps/acf-i18n/src/locales/cn/web.json | 568 +++++++++--------- apps/acf-i18n/src/locales/en/web.json | 564 ++++++++--------- apps/acf-i18n/src/locales/fr/web.json | 528 ++++++++-------- apps/acf-i18n/src/locales/kr/web.json | 528 ++++++++-------- .../src/app/configs/action/action-table.tsx | 2 - .../src/modal/reorder-configs.modal.tsx | 22 +- apps/acf-options-page/src/util/svg.tsx | 2 + package.json | 2 +- 10 files changed, 1124 insertions(+), 1111 deletions(-) diff --git a/.github/workflows/push-feature.yml b/.github/workflows/push-feature.yml index 78fb8fde..aa862a1f 100644 --- a/.github/workflows/push-feature.yml +++ b/.github/workflows/push-feature.yml @@ -66,9 +66,8 @@ jobs: NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} NX_CLOUD_AUTH_TOKEN: ${{ secrets.NX_CLOUD_AUTH_TOKEN }} with: - # parallel-commands: | - # npx nx-cloud record -- npx nx format:check - artifacts-path: 'dist/apps/*' + parallel-commands: | + npx nx-cloud record -- npx nx format:check environment-variables: | NX_NAME=${{needs.EnvSetup.outputs.NX_NAME}} NX_VARIANT=${{needs.EnvSetup.outputs.NX_VARIANT}} @@ -84,12 +83,10 @@ jobs: DISCORD_CLIENT_ID=${{needs.EnvSetup.outputs.DISCORD_CLIENT_ID}} OAUTH_CLIENT_ID=${{needs.EnvSetup.outputs.OAUTH_CLIENT_ID}} PUBLIC_URL=${{needs.EnvSetup.outputs.PUBLIC_URL}} - init-commands: | - ls parallel-commands-on-agents: | - npx nx run-many --target=lint --parallel=3 - npx nx run-many --target=test --parallel=3 --exclude='tag:puppeteer' --ci --code-coverage - npx nx run-many --target=build --parallel=3 --exclude='tag:puppeteer' + npx nx affected --target=lint --parallel=3 + npx nx affected --target=test --parallel=3 --exclude='tag:puppeteer' --ci --code-coverage + npx nx affected --target=build --parallel=3 --exclude='tag:puppeteer' agents: needs: [EnvSetup] diff --git a/.github/workflows/tags.yml b/.github/workflows/tags.yml index 690ae35b..a3d26074 100644 --- a/.github/workflows/tags.yml +++ b/.github/workflows/tags.yml @@ -84,11 +84,7 @@ jobs: DISCORD_CLIENT_ID=${{needs.EnvSetup.outputs.DISCORD_CLIENT_ID}} OAUTH_CLIENT_ID=${{needs.EnvSetup.outputs.OAUTH_CLIENT_ID}} PUBLIC_URL=${{needs.EnvSetup.outputs.PUBLIC_URL}} - init-commands: | - ls parallel-commands-on-agents: | - npx nx run-many --target=lint --parallel=3 - npx nx run-many --target=test --parallel=3 --exclude='tag:puppeteer' --ci --code-coverage npx nx run-many --target=build --parallel=3 --exclude='tag:puppeteer' final-commands: | TARGET_FILE="./dist/apps/acf-extension/manifest.json" @@ -108,7 +104,7 @@ jobs: NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} NX_CLOUD_AUTH_TOKEN: ${{ secrets.NX_CLOUD_AUTH_TOKEN }} with: - number-of-agents: 3 + number-of-agents: 2 environment-variables: | NX_NAME=${{needs.EnvSetup.outputs.NX_NAME}} NX_VARIANT=${{needs.EnvSetup.outputs.NX_VARIANT}} diff --git a/apps/acf-i18n/src/locales/cn/web.json b/apps/acf-i18n/src/locales/cn/web.json index ae0014b0..1ee49798 100644 --- a/apps/acf-i18n/src/locales/cn/web.json +++ b/apps/acf-i18n/src/locales/cn/web.json @@ -1,284 +1,284 @@ -{ - "header": { - "theme": { - "light": "切换到浅色主题", - "dark": "切换到深色主题" - }, - "google-group": "Google群组", - "login": "登录", - "logout": "登出", - "settings": "全局设置", - "backup": { - "last-backup": "上次备份:", - "backup": "备份到云端", - "restore": "从云端恢复", - "now": "立即备份", - "auto-backup": "自动备份", - "daily": "每日", - "weekly": "每周", - "monthly": "每月", - "off": "关闭" - } - }, - "footer": { - "resources": "资源", - "docs": "文档", - "blog": "博客", - "configuration": "配置", - "issues": "问题", - "test": "练习表格", - "about": "关于", - "contact": "联系我们", - "chat": "聊天", - "privacy": "隐私和政策", - "social": "社交", - "discord": "Discord", - "youtube": "Youtube", - "instagram": "Instagram", - "twitter": "Twitter", - "github": "Github" - }, - "toast": { - "configuration": { - "add": { - "header": "配置", - "body": "{{name}} 添加成功" - }, - "remove": { - "header": "配置", - "body": "{{name}} 移除成功" - }, - "exportAll": { - "header": "批量导出" - }, - "importAll": { - "header": "批量导入" - }, - "importError": { - "header": "导入错误" - }, - "importSuccess": { - "header": "配置", - "body": "{{name}} 导入成功" - } - }, - "action": { - "save": { - "header": "动作", - "body": "动作保存成功!" - } - } - }, - "confirm": { - "configuration": { - "remove": { - "title": "移除配置", - "message": "确定移除 {{name}} 配置吗?" - } - }, - "backup": { - "restore": { - "title": "从云端恢复配置", - "message": "确定从云端恢复配置吗?这将替换所有的配置,且这个过程不可逆转。" - } - }, - "action": { - "remove": { - "title": "移除动作", - "message": "确定移除 {{name}} 动作吗?" - } - } - }, - "modal": { - "settings": { - "title": "全局设置", - "checkIFrames": "检查IFrames", - "checkIFramesHint": "这将检查IFrames中的元素", - "advance": "高级", - "advanceHint": "启用高级模式以获得更多功能", - "notification": { - "title": "显示通知", - "error": "发生错误时", - "action": "完成动作时", - "batch": "完成批处理时", - "config": "完成配置时", - "sound": "通知提示音", - "discord": { - "title": "在Discord上通知", - "hint": "您需要登录并加入我们的<1>Discord服务器才能在Discord上接收通知", - "info": "这目前还在开发中,未来版本中此功能可能会移动到动作特定的通知中" - } - }, - "retry": { - "title": "重试", - "interval": "重试间隔", - "stop": "停止", - "skip": "跳过未找到", - "refresh": "刷新", - "hint": "如果扩展在重试后未找到xpath,则可以执行以下操作" - }, - "saveMessage": "设置保存成功!" - }, - "configSettings": { - "title": "配置设置", - "start": "开始", - "auto": "自动", - "autoHint": "自动(默认)浏览器刷新或加载新页面时,扩展会自动加载", - "manual": "手动", - "manualHint": "手动浏览器加载后,用户可以使用快捷键手动唤醒扩展", - "extensionLoad": "扩展加载", - "window": "窗口", - "windowHint": "窗口(默认)浏览器加载全部内容后才加载扩展", - "document": "文档", - "hotkey": "快捷键", - "documentHint": "文档浏览器在加载脚本和图片之前加载扩展(更快)(不安全)", - "saveMessage": "配置设置保存成功!" - }, - "reorder": { - "title": "重新排序配置", - "hint": "请先保存所有配置后再重新排序" - }, - "extensionNotFound": { - "title": "未找到扩展", - "subTitle": "这是 {{REACT_APP_NAME}} 扩展的配置页面", - "hint": "您需要先下载扩展才能使用此功能" - }, - "actionSettings": { - "title": "动作设置", - "info": "动作设置将覆盖全局设置,适用于动作及其附加条件", - "iframeFirst": "先检查Iframe", - "iframeFirstHint": "首先检查Iframe中的元素,然后检查主页面", - "retry": { - "title": "重试", - "hint": "* 如果xpath在重试后仍未被扩展找到,可以执行以下操作", - "interval": "重试间隔", - "stop": "停止", - "skip": "跳过动作", - "refresh": "刷新" - }, - "saveMessage": "动作设置保存成功!" - }, - "actionCondition": { - "action": "动作", - "status": "状态", - "title": "动作条件", - "info": "动作条件用于添加与之前动作状态相关的条件", - "saveMessage": "动作条件保存成功!", - "skip": "跳过", - "goto": "跳转到", - "proceed": "继续" - }, - "ads": { - "title": "请允许我们网站上的广告", - "subTitle": "您安装了下列哪些扩展?" - }, - "addon": { - "title": "附加组件", - "info": "执行动作前会检查添加的条件", - "elementFinder": "元素查找器", - "condition": "条件", - "value": "值", - "valueExtractor": "值提取器", - "recheck": { - "title": "重新检查", - "hint": "* 如果重新检查与条件不匹配,可以执行以下操作", - "interval": "重新检查间隔", - "stop": "停止", - "skip": "跳过动作", - "refresh": "刷新" - }, - "saveMessage": "附加组件保存成功!" - } - }, - "configuration": { - "title": "配置", - "add": "添加配置", - "exportAll": "批量导出配置", - "importAll": "批量导入配置", - "remove": "移除配置", - "duplicate": "复制配置", - "reorder": "重新排序配置", - "removeConfigs": "批量移除配置", - "settings": "配置设置", - "enable": "启用", - "export": "导出配置", - "import": "导入配置", - "url": "URL", - "name": "名称", - "initWait": "初始化等待", - "startTime": "开始时间", - "saveMessage": "配置保存成功!" - }, - "batch": { - "title": "批处理", - "repeat": "重复", - "repeatInterval": "重复间隔", - "refresh": "刷新", - "saveMessage": "批处理保存成功!" - }, - "error": { - "number": "只允许有效数字", - "interval": "只允许有效数字", - "url": "需要 URL", - "initWait": "只允许有效数字", - "startTime": "开始时间应符合 HH:mm:ss:fff (12:12:12:000) 格式", - "json": "所选 Json 无效", - "hotKey": "单个字母加无 Ctrl/Command 无效", - "valueExtractor": "无效的正则表达式", - "value": "需要值", - "condition": "需要条件", - "elementFinder": "需要元素查找器" - }, - "action": { - "title": "动作", - "add": "添加动作", - "addon": "附加组件", - "remove": "移除动作", - "settings": "动作设置", - "initWait": "初始化等待", - "name": "名称", - "elementFinder": "元素查找器", - "value": "值", - "repeat": "重复", - "repeatInterval": "重复间隔", - "saveMessage": "动作保存成功!" - }, - "popover": { - "valueExtractor": { - "title": "例子" - }, - "startTime": { - "content": "试试我们的新浏览器扩展 <1>Schedule URL
可用于在特定时间调度网页/URL" - }, - "hotkey": { - "title": "快捷键", - "content": "按键盘快捷键自动输入字段", - "hint": "单个字母加无 Ctrl, AltShift 无效" - } - }, - "common": { - "settings": "设置", - "error": "错误", - "save": "保存", - "clear": "清除", - "close": "关闭", - "download": "下载", - "disabled": "已禁用", - "sec": "秒", - "no": "否", - "yes": "是", - "local": "本地", - "dev": "开发", - "stable": "稳定", - "examples": "例子", - "translate": "" - }, - "language": { - "en": "英语", - "fr": "法语", - "kr": "韩语", - "ca": "加拿大语", - "hi": "印地语", - "cn": "中文" - } -} \ No newline at end of file +{ + "header": { + "theme": { + "light": "切换到浅色主题", + "dark": "切换到深色主题" + }, + "google-group": "Google群组", + "login": "登录", + "logout": "登出", + "settings": "全局设置", + "backup": { + "last-backup": "上次备份:", + "backup": "备份到云端", + "restore": "从云端恢复", + "now": "立即备份", + "auto-backup": "自动备份", + "daily": "每日", + "weekly": "每周", + "monthly": "每月", + "off": "关闭" + } + }, + "footer": { + "resources": "资源", + "docs": "文档", + "blog": "博客", + "configuration": "配置", + "issues": "问题", + "test": "练习表格", + "about": "关于", + "contact": "联系我们", + "chat": "聊天", + "privacy": "隐私和政策", + "social": "社交", + "discord": "Discord", + "youtube": "Youtube", + "instagram": "Instagram", + "twitter": "Twitter", + "github": "Github" + }, + "toast": { + "configuration": { + "add": { + "header": "配置", + "body": "{{name}} 添加成功" + }, + "remove": { + "header": "配置", + "body": "{{name}} 移除成功" + }, + "exportAll": { + "header": "批量导出" + }, + "importAll": { + "header": "批量导入" + }, + "importError": { + "header": "导入错误" + }, + "importSuccess": { + "header": "配置", + "body": "{{name}} 导入成功" + } + }, + "action": { + "save": { + "header": "动作", + "body": "动作保存成功!" + } + } + }, + "confirm": { + "configuration": { + "remove": { + "title": "移除配置", + "message": "确定移除 {{name}} 配置吗?" + } + }, + "backup": { + "restore": { + "title": "从云端恢复配置", + "message": "确定从云端恢复配置吗?这将替换所有的配置,且这个过程不可逆转。" + } + }, + "action": { + "remove": { + "title": "移除动作", + "message": "确定移除 {{name}} 动作吗?" + } + } + }, + "modal": { + "settings": { + "title": "全局设置", + "checkIFrames": "检查IFrames", + "checkIFramesHint": "这将检查IFrames中的元素", + "advance": "高级", + "advanceHint": "启用高级模式以获得更多功能", + "notification": { + "title": "显示通知", + "error": "发生错误时", + "action": "完成动作时", + "batch": "完成批处理时", + "config": "完成配置时", + "sound": "通知提示音", + "discord": { + "title": "在Discord上通知", + "hint": "您需要登录并加入我们的<1>Discord服务器才能在Discord上接收通知", + "info": "这目前还在开发中,未来版本中此功能可能会移动到动作特定的通知中" + } + }, + "retry": { + "title": "重试", + "interval": "重试间隔", + "stop": "停止", + "skip": "跳过未找到", + "refresh": "刷新", + "hint": "如果扩展在重试后未找到xpath,则可以执行以下操作" + }, + "saveMessage": "设置保存成功!" + }, + "configSettings": { + "title": "配置设置", + "start": "开始", + "auto": "自动", + "autoHint": "自动(默认)浏览器刷新或加载新页面时,扩展会自动加载", + "manual": "手动", + "manualHint": "手动浏览器加载后,用户可以使用快捷键手动唤醒扩展", + "extensionLoad": "扩展加载", + "window": "窗口", + "windowHint": "窗口(默认)浏览器加载全部内容后才加载扩展", + "document": "文档", + "hotkey": "快捷键", + "documentHint": "文档浏览器在加载脚本和图片之前加载扩展(更快)(不安全)", + "saveMessage": "配置设置保存成功!" + }, + "reorder": { + "title": "重新排序配置", + "hint": "请先保存所有配置后再重新排序" + }, + "extensionNotFound": { + "title": "未找到扩展", + "subTitle": "这是 {{REACT_APP_NAME}} 扩展的配置页面", + "hint": "您需要先下载扩展才能使用此功能" + }, + "actionSettings": { + "title": "动作设置", + "info": "动作设置将覆盖全局设置,适用于动作及其附加条件", + "iframeFirst": "先检查Iframe", + "iframeFirstHint": "首先检查Iframe中的元素,然后检查主页面", + "retry": { + "title": "重试", + "hint": "* 如果xpath在重试后仍未被扩展找到,可以执行以下操作", + "interval": "重试间隔", + "stop": "停止", + "skip": "跳过动作", + "refresh": "刷新" + }, + "saveMessage": "动作设置保存成功!" + }, + "actionCondition": { + "action": "动作", + "status": "状态", + "title": "动作条件", + "info": "动作条件用于添加与之前动作状态相关的条件", + "saveMessage": "动作条件保存成功!", + "skip": "跳过", + "goto": "跳转到", + "proceed": "继续" + }, + "ads": { + "title": "请允许我们网站上的广告", + "subTitle": "您安装了下列哪些扩展?" + }, + "addon": { + "title": "附加组件", + "info": "执行动作前会检查添加的条件", + "elementFinder": "元素查找器", + "condition": "条件", + "value": "值", + "valueExtractor": "值提取器", + "recheck": { + "title": "重新检查", + "hint": "* 如果重新检查与条件不匹配,可以执行以下操作", + "interval": "重新检查间隔", + "stop": "停止", + "skip": "跳过动作", + "refresh": "刷新" + }, + "saveMessage": "附加组件保存成功!" + } + }, + "configuration": { + "title": "配置", + "add": "添加配置", + "exportAll": "批量导出配置", + "importAll": "批量导入配置", + "remove": "移除配置", + "duplicate": "复制配置", + "reorder": "重新排序配置", + "removeConfigs": "批量移除配置", + "settings": "配置设置", + "enable": "启用", + "export": "导出配置", + "import": "导入配置", + "url": "URL", + "name": "名称", + "initWait": "初始化等待", + "startTime": "开始时间", + "saveMessage": "配置保存成功!" + }, + "batch": { + "title": "批处理", + "repeat": "重复", + "repeatInterval": "重复间隔", + "refresh": "刷新", + "saveMessage": "批处理保存成功!" + }, + "error": { + "number": "只允许有效数字", + "interval": "只允许有效数字", + "url": "需要 URL", + "initWait": "只允许有效数字", + "startTime": "开始时间应符合 HH:mm:ss:fff (12:12:12:000) 格式", + "json": "所选 Json 无效", + "hotKey": "单个字母加无 Ctrl/Command 无效", + "valueExtractor": "无效的正则表达式", + "value": "需要值", + "condition": "需要条件", + "elementFinder": "需要元素查找器" + }, + "action": { + "title": "动作", + "add": "添加动作", + "addon": "附加组件", + "remove": "移除动作", + "settings": "动作设置", + "initWait": "初始化等待", + "name": "名称", + "elementFinder": "元素查找器", + "value": "值", + "repeat": "重复", + "repeatInterval": "重复间隔", + "saveMessage": "动作保存成功!" + }, + "popover": { + "valueExtractor": { + "title": "例子" + }, + "startTime": { + "content": "试试我们的新浏览器扩展 <1>Schedule URL
可用于在特定时间调度网页/URL" + }, + "hotkey": { + "title": "快捷键", + "content": "按键盘快捷键自动输入字段", + "hint": "单个字母加无 Ctrl, AltShift 无效" + } + }, + "common": { + "settings": "设置", + "error": "错误", + "save": "保存", + "clear": "清除", + "close": "关闭", + "download": "下载", + "disabled": "已禁用", + "sec": "秒", + "no": "否", + "yes": "是", + "local": "本地", + "dev": "开发", + "stable": "稳定", + "examples": "例子", + "translate": "" + }, + "language": { + "en": "英语", + "fr": "法语", + "kr": "韩语", + "ca": "加拿大语", + "hi": "印地语", + "cn": "中文" + } +} diff --git a/apps/acf-i18n/src/locales/en/web.json b/apps/acf-i18n/src/locales/en/web.json index c1f58c41..361c59e0 100644 --- a/apps/acf-i18n/src/locales/en/web.json +++ b/apps/acf-i18n/src/locales/en/web.json @@ -1,282 +1,282 @@ -{ - "header": { - "theme": { - "light": "Switch to the light theme", - "dark": "Switch to the dark theme" - }, - "google-group":"Google Group", - "login": "Login", - "logout": "Logout", - "settings": "Global Settings", - "backup": { - "last-backup":"Last Backup:", - "backup": "Backup to Cloud", - "restore": "Restore from Cloud", - "now": "Backup Now", - "auto-backup": "Auto Backup", - "daily": "Daily", - "weekly": "Weekly", - "monthly": "Monthly", - "off": "Off" - } - }, - "footer": { - "resources": "Resources", - "docs": "Docs", - "blog": "Blog", - "configuration": "Configuration", - "issues": "Issues", - "test": "Practice Form", - "about": "About", - "contact": "Contact", - "chat": "Chat", - "privacy": "Privacy & Policy", - "social": "Social", - "discord": "Discord", - "youtube": "Youtube", - "instagram": "Instagram", - "twitter": "Twitter", - "github": "Github" - }, - "toast": { - "configuration": { - "add": { - "header": "Configuration", - "body": "{{name}} added successfully" - }, - "remove": { - "header": "Configuration", - "body": "{{name}} removed successfully" - }, - "exportAll": { - "header": "Bulk Export" - }, - "importAll": { - "header": "Bulk Import" - }, - "importError": { - "header": "Import Error" - }, - "importSuccess": { - "header": "Configuration", - "body": "{{name}} imported successfully" - } - }, - "action": { - "save": { - "header": "Actions", - "body": "actions saved successfully !" - } - } - }, - "confirm": { - "configuration": { - "remove": { - "title": "Remove Configuration", - "message": "Are you sure to remove {{name}} Configuration?" - } - }, - "backup": { - "restore": { - "title": "Restore Configurations from cloud", - "message": "Are you sure to restore configurations from cloud. It will replace all your configurations and this process is not reversible." - } - }, - "action": { - "remove": { - "title": "Remove Action", - "message": "Are you sure to remove {{name}} Action?" - } - } - }, - "modal": { - "settings": { - "title": "Global Settings", - "checkIFrames": "Check IFrames", - "checkIFramesHint": "This checks element within iFrames", - "advance": "Advance", - "advanceHint": "Enable advance mode for more features", - "notification": { - "title": "Show Notification", - "error": "on Error occurred", - "action": "on Action completion", - "batch": "on Batch completion", - "config": "on Config completion", - "sound": "Notification Sound", - "discord": { - "title": "Notification on Discord", - "hint": "You need to login and join our <1>Discord server in order to receive notification on Discord", - "info": "Its currently under development and feature may move to action specific notification in upcoming release" - } - }, - "retry": { - "title": "Retry", - "interval": "Retry Interval", - "stop": "Stop", - "skip": "Skip Not Found", - "refresh": "Refresh", - "hint": "Below are action which can be performed if xpath is not found by extension after retry" - }, - "saveMessage": "Settings saved successfully!" - }, - "configSettings": { - "title": "Config Settings", - "start": "Start", - "auto": "Auto", - "autoHint": "Auto (default) once browser is refresh or new page is loaded extension auto loads with it", - "manual": "Manual", - "manualHint": "Manual once browser is loaded, user can manually invoke extension using hotkey", - "extensionLoad": "Extension Load", - "window": "Window", - "windowHint": "Window (default) browser loads extension once all its content is loaded", - "document": "Document", - "hotkey": "Hotkey", - "documentHint": "Document browser loads extension before scripts and images are loaded (faster)(unsafe)", - "saveMessage": "Config Setting saved successfully!" - }, - "reorder": { - "title": "Reorder Configuration's", - "hint": "Please save all configurations before reordering" - }, - "extensionNotFound": { - "title": "Extension Not Found", - "subTitle": "This is configuration page for {{REACT_APP_NAME}} extension", - "hint": "You need to download extension first in order to make use of this" - }, - "actionSettings": { - "title": "Action Settings", - "info": "Action settings will override global settings, and its applicable for both action and its addon condition", - "iframeFirst": "Iframe First", - "iframeFirstHint": "This checks element within iframe first and then on main page", - "retry": { - "title": "Retry", - "hint": "* Below are action which can be performed if xpath is not found by extension after retry", - "interval": "Retry Interval", - "stop": "Stop", - "skip": "Skip Not Found", - "refresh": "Refresh" - }, - "saveMessage": "Action Setting saved successfully!" - }, - "actionCondition": { - "action": "Action", - "status": "Status", - "title": "Action Condition", - "info": "Action condition are used to add condition with relates to previous action status", - "saveMessage": "Action Condition saved successfully!", - "skip": "Skip", - "proceed": "Proceed" - }, - "ads": { - "title": "Please allow ads on our site", - "subTitle": "Which of these extensions do you have?" - }, - "addon": { - "title": "Addon", - "info": "Add condition will be checked before executing Action", - "elementFinder": "Element Finder", - "condition": "Condition", - "value": "Value", - "valueExtractor": "Value Extractor", - "recheck": { - "title": "Recheck", - "hint": "* Below are action which can be performed if recheck is not matched by extension after recheck", - "interval": "Recheck Interval", - "stop": "Stop", - "skip": "Skip Action", - "refresh": "Refresh" - }, - "saveMessage": "Addon saved successfully!" - } - }, - "configuration": { - "title": "Configuration", - "add": "Add Configuration", - "exportAll": "Bulk Export Configuration", - "importAll": "Bulk Import Configuration", - "remove": "Remove Configuration", - "duplicate": "Duplicate Configuration", - "reorder": "Reorder Configuration's", - "removeConfigs": "Bulk Remove Configuration", - "settings": "Configuration Settings", - "enable": "Enable", - "export": "Export Configuration", - "import": "Import Configuration", - "url": "URL", - "name": "Name", - "initWait": "Init Wait", - "startTime": "Start Time", - "saveMessage": "Configuration saved successfully!" - }, - "batch": { - "title": "Batch", - "repeat": "Repeat", - "repeatInterval": "R-Interval", - "refresh": "Refresh", - "saveMessage": "Batch saved successfully!" - }, - "error": { - "number": "Only valid numbers are allowed", - "interval": "Only valid numbers are allowed", - "url": "URL is required", - "initWait": "Only valid numbers are allowed", - "startTime": "Start time should match HH:mm:ss:fff (12:12:12:000) format", - "json": "Selected Json is not valid", - "hotKey": "Single letter without Ctrl/Command is not valid", - "valueExtractor": "Not a valid regex", - "value": "Value is required", - "condition": "Condition is required", - "elementFinder": "Element Finder is required" - }, - "action": { - "title": "Action", - "add": "Add Action", - "addon": "Addon", - "remove": "Remove Action", - "settings": "Action Settings", - "initWait": "Init Wait", - "name": "Name", - "elementFinder": "Element Finder", - "value": "Value", - "repeat": "Repeat", - "repeatInterval": "R-Interval", - "saveMessage": "Action saved successfully!" - }, - "popover": { - "valueExtractor": { - "title": "Examples" - }, - "startTime": { - "content": "Try <1>Schedule URL our new browser extension.
it's used to schedule webpage / URL at particular day and time" - }, - "hotkey": { - "title": "Hotkey", - "content": "Press hotkey on keyboard to auto type in field", - "hint": "Single letter without Ctrl, Alt or Shift is not valid" - } - }, - "common": { - "settings": "Settings", - "error": "Error", - "save": "Save", - "clear": "Clear", - "close": "Close", - "download": "Download", - "disabled": "Disabled", - "sec": "sec", - "no": "No", - "yes": "Yes", - "local": "LOCAL", - "dev": "DEV", - "stable": "STABLE", - "examples": "Examples", - "translate": "" - }, - "language": { - "en": "English", - "fr": "French", - "kr": "Korean", - "ca": "Canada", - "hi": "Hindi" - } -} +{ + "header": { + "theme": { + "light": "Switch to the light theme", + "dark": "Switch to the dark theme" + }, + "google-group": "Google Group", + "login": "Login", + "logout": "Logout", + "settings": "Global Settings", + "backup": { + "last-backup": "Last Backup:", + "backup": "Backup to Cloud", + "restore": "Restore from Cloud", + "now": "Backup Now", + "auto-backup": "Auto Backup", + "daily": "Daily", + "weekly": "Weekly", + "monthly": "Monthly", + "off": "Off" + } + }, + "footer": { + "resources": "Resources", + "docs": "Docs", + "blog": "Blog", + "configuration": "Configuration", + "issues": "Issues", + "test": "Practice Form", + "about": "About", + "contact": "Contact", + "chat": "Chat", + "privacy": "Privacy & Policy", + "social": "Social", + "discord": "Discord", + "youtube": "Youtube", + "instagram": "Instagram", + "twitter": "Twitter", + "github": "Github" + }, + "toast": { + "configuration": { + "add": { + "header": "Configuration", + "body": "{{name}} added successfully" + }, + "remove": { + "header": "Configuration", + "body": "{{name}} removed successfully" + }, + "exportAll": { + "header": "Bulk Export" + }, + "importAll": { + "header": "Bulk Import" + }, + "importError": { + "header": "Import Error" + }, + "importSuccess": { + "header": "Configuration", + "body": "{{name}} imported successfully" + } + }, + "action": { + "save": { + "header": "Actions", + "body": "actions saved successfully !" + } + } + }, + "confirm": { + "configuration": { + "remove": { + "title": "Remove Configuration", + "message": "Are you sure to remove {{name}} Configuration?" + } + }, + "backup": { + "restore": { + "title": "Restore Configurations from cloud", + "message": "Are you sure to restore configurations from cloud. It will replace all your configurations and this process is not reversible." + } + }, + "action": { + "remove": { + "title": "Remove Action", + "message": "Are you sure to remove {{name}} Action?" + } + } + }, + "modal": { + "settings": { + "title": "Global Settings", + "checkIFrames": "Check IFrames", + "checkIFramesHint": "This checks element within iFrames", + "advance": "Advance", + "advanceHint": "Enable advance mode for more features", + "notification": { + "title": "Show Notification", + "error": "on Error occurred", + "action": "on Action completion", + "batch": "on Batch completion", + "config": "on Config completion", + "sound": "Notification Sound", + "discord": { + "title": "Notification on Discord", + "hint": "You need to login and join our <1>Discord server in order to receive notification on Discord", + "info": "Its currently under development and feature may move to action specific notification in upcoming release" + } + }, + "retry": { + "title": "Retry", + "interval": "Retry Interval", + "stop": "Stop", + "skip": "Skip Not Found", + "refresh": "Refresh", + "hint": "Below are action which can be performed if xpath is not found by extension after retry" + }, + "saveMessage": "Settings saved successfully!" + }, + "configSettings": { + "title": "Config Settings", + "start": "Start", + "auto": "Auto", + "autoHint": "Auto (default) once browser is refresh or new page is loaded extension auto loads with it", + "manual": "Manual", + "manualHint": "Manual once browser is loaded, user can manually invoke extension using hotkey", + "extensionLoad": "Extension Load", + "window": "Window", + "windowHint": "Window (default) browser loads extension once all its content is loaded", + "document": "Document", + "hotkey": "Hotkey", + "documentHint": "Document browser loads extension before scripts and images are loaded (faster)(unsafe)", + "saveMessage": "Config Setting saved successfully!" + }, + "reorder": { + "title": "Reorder Configuration's", + "hint": "Please save all configurations before reordering" + }, + "extensionNotFound": { + "title": "Extension Not Found", + "subTitle": "This is configuration page for {{REACT_APP_NAME}} extension", + "hint": "You need to download extension first in order to make use of this" + }, + "actionSettings": { + "title": "Action Settings", + "info": "Action settings will override global settings, and its applicable for both action and its addon condition", + "iframeFirst": "Iframe First", + "iframeFirstHint": "This checks element within iframe first and then on main page", + "retry": { + "title": "Retry", + "hint": "* Below are action which can be performed if xpath is not found by extension after retry", + "interval": "Retry Interval", + "stop": "Stop", + "skip": "Skip Not Found", + "refresh": "Refresh" + }, + "saveMessage": "Action Setting saved successfully!" + }, + "actionCondition": { + "action": "Action", + "status": "Status", + "title": "Action Condition", + "info": "Action condition are used to add condition with relates to previous action status", + "saveMessage": "Action Condition saved successfully!", + "skip": "Skip", + "proceed": "Proceed" + }, + "ads": { + "title": "Please allow ads on our site", + "subTitle": "Which of these extensions do you have?" + }, + "addon": { + "title": "Addon", + "info": "Add condition will be checked before executing Action", + "elementFinder": "Element Finder", + "condition": "Condition", + "value": "Value", + "valueExtractor": "Value Extractor", + "recheck": { + "title": "Recheck", + "hint": "* Below are action which can be performed if recheck is not matched by extension after recheck", + "interval": "Recheck Interval", + "stop": "Stop", + "skip": "Skip Action", + "refresh": "Refresh" + }, + "saveMessage": "Addon saved successfully!" + } + }, + "configuration": { + "title": "Configuration", + "add": "Add Configuration", + "exportAll": "Bulk Export Configuration", + "importAll": "Bulk Import Configuration", + "remove": "Remove Configuration", + "duplicate": "Duplicate Configuration", + "reorder": "Reorder Configuration's", + "removeConfigs": "Bulk Remove Configuration", + "settings": "Configuration Settings", + "enable": "Enable", + "export": "Export Configuration", + "import": "Import Configuration", + "url": "URL", + "name": "Name", + "initWait": "Init Wait", + "startTime": "Start Time", + "saveMessage": "Configuration saved successfully!" + }, + "batch": { + "title": "Batch", + "repeat": "Repeat", + "repeatInterval": "R-Interval", + "refresh": "Refresh", + "saveMessage": "Batch saved successfully!" + }, + "error": { + "number": "Only valid numbers are allowed", + "interval": "Only valid numbers are allowed", + "url": "URL is required", + "initWait": "Only valid numbers are allowed", + "startTime": "Start time should match HH:mm:ss:fff (12:12:12:000) format", + "json": "Selected Json is not valid", + "hotKey": "Single letter without Ctrl/Command is not valid", + "valueExtractor": "Not a valid regex", + "value": "Value is required", + "condition": "Condition is required", + "elementFinder": "Element Finder is required" + }, + "action": { + "title": "Action", + "add": "Add Action", + "addon": "Addon", + "remove": "Remove Action", + "settings": "Action Settings", + "initWait": "Init Wait", + "name": "Name", + "elementFinder": "Element Finder", + "value": "Value", + "repeat": "Repeat", + "repeatInterval": "R-Interval", + "saveMessage": "Action saved successfully!" + }, + "popover": { + "valueExtractor": { + "title": "Examples" + }, + "startTime": { + "content": "Try <1>Schedule URL our new browser extension.
it's used to schedule webpage / URL at particular day and time" + }, + "hotkey": { + "title": "Hotkey", + "content": "Press hotkey on keyboard to auto type in field", + "hint": "Single letter without Ctrl, Alt or Shift is not valid" + } + }, + "common": { + "settings": "Settings", + "error": "Error", + "save": "Save", + "clear": "Clear", + "close": "Close", + "download": "Download", + "disabled": "Disabled", + "sec": "sec", + "no": "No", + "yes": "Yes", + "local": "LOCAL", + "dev": "DEV", + "stable": "STABLE", + "examples": "Examples", + "translate": "" + }, + "language": { + "en": "English", + "fr": "French", + "kr": "Korean", + "ca": "Canada", + "hi": "Hindi" + } +} diff --git a/apps/acf-i18n/src/locales/fr/web.json b/apps/acf-i18n/src/locales/fr/web.json index e51b5950..1aaf749b 100644 --- a/apps/acf-i18n/src/locales/fr/web.json +++ b/apps/acf-i18n/src/locales/fr/web.json @@ -1,264 +1,264 @@ -{ - "header": { - "theme": { - "light": "Passer au thème de la lumière", - "dark": "Passer au thème sombre" - }, - "login": "Connexion", - "logout": "Se déconnecter", - "settings": "Paramètres globaux" - }, - "footer": { - "resources": "Ressources", - "docs": "Documents", - "blog": "Blog", - "configuration": "Configuration", - "issues": "Problèmes", - "test": "Formulaire de pratique", - "about": "Sur", - "contact": "Contact", - "chat": "Discuter", - "privacy": "Politique de confidentialité", - "social": "Sociale", - "discord": "Discord", - "instagram": "Instagram", - "twitter": "Twitter", - "github": "Github" - }, - "toast": { - "configuration": { - "add": { - "header": "Configuration", - "body": "{{name}} ajouté avec succès" - }, - "remove": { - "header": "Configuration", - "body": "{{name}} enlevé avec succès" - }, - "exportAll": { - "header": "Exportation en masse" - }, - "importAll": { - "header": "Importation en masse" - }, - "importError": { - "header": "Erreur d'importation" - }, - "importSuccess": { - "header": "Configuration", - "body":"{{name}} importé avec succès" - } - }, - "action": { - "save": { - "header": "Actions", - "body": "actions sauvé avec succès !" - } - } - }, - "confirm": { - "configuration": { - "remove": { - "title": "Supprimer Configuration", - "message": "Êtes-vous sûr de supprimer {{name}} Configuration?" - } - }, - "action": { - "remove": { - "title": "Supprimer Action", - "message": "Êtes-vous sûr de supprimer {{name}} Action?" - } - } - }, - "modal": { - "settings": { - "title": "Paramètres globaux", - "checkIFrames": "Vérifiez les iframes", - "checkIFramesHint": "Cet élément de contrôle dans les iframes", - "advance":"Avance", - "advanceHint": "Activer le mode avancé pour plus de fonctionnalités", - "notification": { - "title": "Montrer les notifications", - "error": "sur une erreur s'est produite", - "action": "sur l'achèvement de l'action", - "batch": "sur l'achèvement du lot", - "config": "Sur la configuration", - "sound": "Son de notification", - "discord": { - "title": "Notification sur la discorde", - "hint": "Vous devez vous connecter et rejoindre notre <1>Discord server Afin de recevoir une notification sur Discord", - "info": "Son actuellement en cours de développement et de fonctionnalité peut passer à action Notification spécifique dans la prochaine version" - } - }, - "retry": { - "title": "Réessayez", - "interval": "Intervalle de réessayer", - "stop": "Arrêter", - "skip": "Passer non trouvé", - "refresh": "Rafraîchir", - "hint": "Vous trouverez ci-dessous une action qui peut être effectuée si XPath n'est pas trouvé par extension après la réparation" - }, - "saveMessage": "Les paramètres enregistrés avec succès!" - }, - "configSettings": { - "title": "Paramètres de configuration", - "start": "Début", - "auto": "Auto", - "autoHint": "Auto (défaut) Une fois que le navigateur est actualisé ou une nouvelle page est chargé des charges automatiques d'extension avec elle", - "manual": "Manuel", - "manualHint": "Manuel Une fois que le navigateur est chargé, l'utilisateur peut appeler manuellement une extension avec une touche de raccourci automatique.", - "extensionLoad": "Charge d'extension", - "window": "Window", - "windowHint": "Window (défaut) Le navigateur charge l'extension une fois que tout son contenu est chargé", - "document": "Document", - "hotkey": "Gamper", - "documentHint": "Document Le navigateur charge l'extension avant que les scripts et les images soient chargés (plus rapides) (dangereux)", - "saveMessage": "Config enréglage enregistré avec succès !" - }, - "reorder": { - "title": "Réorganiser Configuration's", - "hint": "Veuillez enregistrer toutes les configurations avant la réorganisation" - }, - "extensionNotFound": { - "title": "Extension non trouvée", - "subTitle": "Ceci est la page de configuration pour{{REACT_APP_NAME}} {{REACT_APP_VARIANT}} extension", - "hint": "Vous devez télécharger d'abord une extension afin de l'utiliser" - }, - "actionSettings": { - "title": "Paramètres d'action", - "info": "Les paramètres d'action remplaceront les paramètres globaux et son application à la fois pour l'action et son état addon.", - "iframeFirst": "Iframe premier", - "iframeFirstHint": "Cet élément de contrôle dans l'iframe d'abord, puis sur la page principale", - "retry": { - "title": "Réessayez", - "hint": "* Vous trouverez ci-dessous une action qui peut être effectuée si XPath n'est pas trouvé par extension après la réparation", - "interval": "Intervalle de réessayer", - "stop": "Arrêter", - "skip": "Passer non trouvé", - "refresh": "Rafraîchir" - }, - "saveMessage": "Action enréglage enregistré avec succès !" - }, - "actionCondition": { - "action": "Action", - "status": "Status", - "title": "Action État", - "info": "La condition d'action est utilisée pour ajouter une condition liée à l'état de l'action précédente", - "saveMessage": "Condition d'action enregistrée avec succès !", - "skip": "Skip", - "proceed": "Proceed" - }, - "ads": { - "title": "S'il vous plaît permettre aux annonces sur notre site", - "subTitle": "Laquelle de ces extensions avez-vous?" - }, - "addon": { - "title": "Ajouter", - "info": "Ajouter une condition sera vérifié avant d'exécuter Action", - "elementFinder": "Element Finder", - "condition": "État", - "value": "Valeur", - "valueExtractor": "Extracteur de valeur", - "recheck": { - "title": "Revérifier", - "hint": "* Vous trouverez ci-dessous une action qui peut être effectuée si le revérificateur n'est pas assorti par extension après la revue.", - "interval": "Intervalle de revérificateur", - "stop": "Arrêter", - "skip": "Passer non trouvé", - "refresh": "Rafraîchir" - }, - "saveMessage": "Addon enregistré avec succès !" - } - }, - "configuration": { - "title": "Configuration", - "add": "Ajouter Configuration", - "exportAll": "Configuration de l'exportation en masse", - "importAll": "Configuration de l'importation en bloc", - "remove": "Supprimer Configuration", - "duplicate": "Dupliquer Configuration", - "reorder": "Réorganiser Configuration's", - "removeConfigs": "Configuration de suppression en bloc", - "settings": "Paramètres de configuration", - "enable": "Permettre", - "export": "Exportation Configuration", - "import": "Importer Configuration", - "url": "URL", - "name": "Nom", - "initWait": "Attendre", - "startTime": "Heure de début", - "saveMessage": "Configuration enregistré avec succès !" - }, - "batch": { - "title": "Grouper", - "repeat": "Répéter", - "repeatInterval": "R-intervalle", - "refresh": "Rafraîchir", - "saveMessage": "Batch enregistré avec succès !" - }, - "error": { - "number": "Seuls les nombres valides sont autorisés", - "interval": "Seuls les nombres valides sont autorisés", - "url": "URL est requis", - "initWait": "Seuls les nombres valides sont autorisés", - "startTime": "Le temps de début devrait correspondre à HH: MM: SS: FFF (12: 12: 12: 12: 000)", - "json": "JSON sélectionné n'est pas valide", - "hotKey": "Une seule lettre sans Ctrl/Command n'est pas valide", - "valueExtractor": "Pas une regex valide", - "value": "Valeur est requise", - "condition": "La condition est requise", - "elementFinder": "Element Finder est requis" - }, - "action": { - "title": "action", - "add": "Ajouter une action", - "addon": "Ajouter", - "remove": "Supprimer l'action", - "settings": "Paramètres d'action", - "initWait": "Initive attend", - "name": "Nom", - "elementFinder": "Élévateur", - "value": "Valeur", - "repeat": "Répéter", - "repeatInterval": "R-intervalle", - "saveMessage": "Action enregistré avec succès !" - }, - "popover": { - "valueExtractor": { - "title": "Exemples" - }, - "startTime": { - "content": "Essayer <1>Schedule URL notre nouvelle extension de navigateur.
Il est utilisé pour planifier la page Web / URL en particulier la journée et l'heure" - }, - "hotkey": { - "title": "Gamper", - "content": "Appuyez sur HotKey sur le clavier sur le champ de type automatique dans le champ", - "hint": "Une seule lettre sans Ctrl, Alt or Shift n'est pas valide" - } - }, - "common": { - "settings": "Paramètres", - "error": "Erreur", - "save": "sauvegarder", - "clear": "Dégager", - "close": "proche", - "download": "Télécharger", - "disabled":"Désactivé", - "sec": "seconde", - "no": "Non", - "yes": "Oui", - "local": "LOCALE", - "dev": "Faire devenir", - "stable": "stable", - "examples": "Exemples", - "translate": "Nous lançons l'effort de traduction officielle pour Auto Clicker. Veuillez consulter l'annonce pour savoir comment aider Auto Clicker en fournissant des traductions d'interface utilisateur pour votre langue.", - "clickHere": "Cliquez ici" - }, - "language": { - "en": "Anglaise", - "fr": "La France", - "kr": "Coréenne", - "ca": "canada", - "hi": "hindi" - } -} +{ + "header": { + "theme": { + "light": "Passer au thème de la lumière", + "dark": "Passer au thème sombre" + }, + "login": "Connexion", + "logout": "Se déconnecter", + "settings": "Paramètres globaux" + }, + "footer": { + "resources": "Ressources", + "docs": "Documents", + "blog": "Blog", + "configuration": "Configuration", + "issues": "Problèmes", + "test": "Formulaire de pratique", + "about": "Sur", + "contact": "Contact", + "chat": "Discuter", + "privacy": "Politique de confidentialité", + "social": "Sociale", + "discord": "Discord", + "instagram": "Instagram", + "twitter": "Twitter", + "github": "Github" + }, + "toast": { + "configuration": { + "add": { + "header": "Configuration", + "body": "{{name}} ajouté avec succès" + }, + "remove": { + "header": "Configuration", + "body": "{{name}} enlevé avec succès" + }, + "exportAll": { + "header": "Exportation en masse" + }, + "importAll": { + "header": "Importation en masse" + }, + "importError": { + "header": "Erreur d'importation" + }, + "importSuccess": { + "header": "Configuration", + "body": "{{name}} importé avec succès" + } + }, + "action": { + "save": { + "header": "Actions", + "body": "actions sauvé avec succès !" + } + } + }, + "confirm": { + "configuration": { + "remove": { + "title": "Supprimer Configuration", + "message": "Êtes-vous sûr de supprimer {{name}} Configuration?" + } + }, + "action": { + "remove": { + "title": "Supprimer Action", + "message": "Êtes-vous sûr de supprimer {{name}} Action?" + } + } + }, + "modal": { + "settings": { + "title": "Paramètres globaux", + "checkIFrames": "Vérifiez les iframes", + "checkIFramesHint": "Cet élément de contrôle dans les iframes", + "advance": "Avance", + "advanceHint": "Activer le mode avancé pour plus de fonctionnalités", + "notification": { + "title": "Montrer les notifications", + "error": "sur une erreur s'est produite", + "action": "sur l'achèvement de l'action", + "batch": "sur l'achèvement du lot", + "config": "Sur la configuration", + "sound": "Son de notification", + "discord": { + "title": "Notification sur la discorde", + "hint": "Vous devez vous connecter et rejoindre notre <1>Discord server Afin de recevoir une notification sur Discord", + "info": "Son actuellement en cours de développement et de fonctionnalité peut passer à action Notification spécifique dans la prochaine version" + } + }, + "retry": { + "title": "Réessayez", + "interval": "Intervalle de réessayer", + "stop": "Arrêter", + "skip": "Passer non trouvé", + "refresh": "Rafraîchir", + "hint": "Vous trouverez ci-dessous une action qui peut être effectuée si XPath n'est pas trouvé par extension après la réparation" + }, + "saveMessage": "Les paramètres enregistrés avec succès!" + }, + "configSettings": { + "title": "Paramètres de configuration", + "start": "Début", + "auto": "Auto", + "autoHint": "Auto (défaut) Une fois que le navigateur est actualisé ou une nouvelle page est chargé des charges automatiques d'extension avec elle", + "manual": "Manuel", + "manualHint": "Manuel Une fois que le navigateur est chargé, l'utilisateur peut appeler manuellement une extension avec une touche de raccourci automatique.", + "extensionLoad": "Charge d'extension", + "window": "Window", + "windowHint": "Window (défaut) Le navigateur charge l'extension une fois que tout son contenu est chargé", + "document": "Document", + "hotkey": "Gamper", + "documentHint": "Document Le navigateur charge l'extension avant que les scripts et les images soient chargés (plus rapides) (dangereux)", + "saveMessage": "Config enréglage enregistré avec succès !" + }, + "reorder": { + "title": "Réorganiser Configuration's", + "hint": "Veuillez enregistrer toutes les configurations avant la réorganisation" + }, + "extensionNotFound": { + "title": "Extension non trouvée", + "subTitle": "Ceci est la page de configuration pour{{REACT_APP_NAME}} {{REACT_APP_VARIANT}} extension", + "hint": "Vous devez télécharger d'abord une extension afin de l'utiliser" + }, + "actionSettings": { + "title": "Paramètres d'action", + "info": "Les paramètres d'action remplaceront les paramètres globaux et son application à la fois pour l'action et son état addon.", + "iframeFirst": "Iframe premier", + "iframeFirstHint": "Cet élément de contrôle dans l'iframe d'abord, puis sur la page principale", + "retry": { + "title": "Réessayez", + "hint": "* Vous trouverez ci-dessous une action qui peut être effectuée si XPath n'est pas trouvé par extension après la réparation", + "interval": "Intervalle de réessayer", + "stop": "Arrêter", + "skip": "Passer non trouvé", + "refresh": "Rafraîchir" + }, + "saveMessage": "Action enréglage enregistré avec succès !" + }, + "actionCondition": { + "action": "Action", + "status": "Status", + "title": "Action État", + "info": "La condition d'action est utilisée pour ajouter une condition liée à l'état de l'action précédente", + "saveMessage": "Condition d'action enregistrée avec succès !", + "skip": "Skip", + "proceed": "Proceed" + }, + "ads": { + "title": "S'il vous plaît permettre aux annonces sur notre site", + "subTitle": "Laquelle de ces extensions avez-vous?" + }, + "addon": { + "title": "Ajouter", + "info": "Ajouter une condition sera vérifié avant d'exécuter Action", + "elementFinder": "Element Finder", + "condition": "État", + "value": "Valeur", + "valueExtractor": "Extracteur de valeur", + "recheck": { + "title": "Revérifier", + "hint": "* Vous trouverez ci-dessous une action qui peut être effectuée si le revérificateur n'est pas assorti par extension après la revue.", + "interval": "Intervalle de revérificateur", + "stop": "Arrêter", + "skip": "Passer non trouvé", + "refresh": "Rafraîchir" + }, + "saveMessage": "Addon enregistré avec succès !" + } + }, + "configuration": { + "title": "Configuration", + "add": "Ajouter Configuration", + "exportAll": "Configuration de l'exportation en masse", + "importAll": "Configuration de l'importation en bloc", + "remove": "Supprimer Configuration", + "duplicate": "Dupliquer Configuration", + "reorder": "Réorganiser Configuration's", + "removeConfigs": "Configuration de suppression en bloc", + "settings": "Paramètres de configuration", + "enable": "Permettre", + "export": "Exportation Configuration", + "import": "Importer Configuration", + "url": "URL", + "name": "Nom", + "initWait": "Attendre", + "startTime": "Heure de début", + "saveMessage": "Configuration enregistré avec succès !" + }, + "batch": { + "title": "Grouper", + "repeat": "Répéter", + "repeatInterval": "R-intervalle", + "refresh": "Rafraîchir", + "saveMessage": "Batch enregistré avec succès !" + }, + "error": { + "number": "Seuls les nombres valides sont autorisés", + "interval": "Seuls les nombres valides sont autorisés", + "url": "URL est requis", + "initWait": "Seuls les nombres valides sont autorisés", + "startTime": "Le temps de début devrait correspondre à HH: MM: SS: FFF (12: 12: 12: 12: 000)", + "json": "JSON sélectionné n'est pas valide", + "hotKey": "Une seule lettre sans Ctrl/Command n'est pas valide", + "valueExtractor": "Pas une regex valide", + "value": "Valeur est requise", + "condition": "La condition est requise", + "elementFinder": "Element Finder est requis" + }, + "action": { + "title": "action", + "add": "Ajouter une action", + "addon": "Ajouter", + "remove": "Supprimer l'action", + "settings": "Paramètres d'action", + "initWait": "Initive attend", + "name": "Nom", + "elementFinder": "Élévateur", + "value": "Valeur", + "repeat": "Répéter", + "repeatInterval": "R-intervalle", + "saveMessage": "Action enregistré avec succès !" + }, + "popover": { + "valueExtractor": { + "title": "Exemples" + }, + "startTime": { + "content": "Essayer <1>Schedule URL notre nouvelle extension de navigateur.
Il est utilisé pour planifier la page Web / URL en particulier la journée et l'heure" + }, + "hotkey": { + "title": "Gamper", + "content": "Appuyez sur HotKey sur le clavier sur le champ de type automatique dans le champ", + "hint": "Une seule lettre sans Ctrl, Alt or Shift n'est pas valide" + } + }, + "common": { + "settings": "Paramètres", + "error": "Erreur", + "save": "sauvegarder", + "clear": "Dégager", + "close": "proche", + "download": "Télécharger", + "disabled": "Désactivé", + "sec": "seconde", + "no": "Non", + "yes": "Oui", + "local": "LOCALE", + "dev": "Faire devenir", + "stable": "stable", + "examples": "Exemples", + "translate": "Nous lançons l'effort de traduction officielle pour Auto Clicker. Veuillez consulter l'annonce pour savoir comment aider Auto Clicker en fournissant des traductions d'interface utilisateur pour votre langue.", + "clickHere": "Cliquez ici" + }, + "language": { + "en": "Anglaise", + "fr": "La France", + "kr": "Coréenne", + "ca": "canada", + "hi": "hindi" + } +} diff --git a/apps/acf-i18n/src/locales/kr/web.json b/apps/acf-i18n/src/locales/kr/web.json index 99bd2205..43f45d95 100644 --- a/apps/acf-i18n/src/locales/kr/web.json +++ b/apps/acf-i18n/src/locales/kr/web.json @@ -1,264 +1,264 @@ -{ - "header": { - "theme": { - "light": "라이트 테마로 전환하십시오", - "dark": "어두운 테마로 전환하십시오" - }, - "login": "로그인", - "logout": "로그 아웃", - "settings": "전역 설정" - }, - "footer": { - "resources": "자원", - "docs": "문서 도구", - "blog": "블로그", - "configuration": "구성", - "issues": "문제", - "test": "연습 양식", - "about": "에 대한", - "contact": "연락하다", - "chat": "채팅", - "privacy": "개인 정보 정책", - "social": "사회의", - "instagram": "Instagram", - "discord": "Discord", - "twitter": "Twitter", - "github": "Github" - }, - "toast": { - "configuration": { - "add": { - "header": "구성", - "body": "{{name}} 성공적으로 추가되었습니다" - }, - "remove": { - "header": "구성", - "body": "{{name}} 성공적으로 제거되었습니다" - }, - "exportAll": { - "header": "대량 내보내기" - }, - "importAll": { - "header": "대량 가져오기" - }, - "importError": { - "header": "가져 오기 오류" - }, - "importSuccess": { - "header": "구성", - "body": "{{name}} 성공적으로 가져온 것" - } - }, - "action": { - "save": { - "header": "행위", - "body": "작업이 성공적으로 저장되었습니다!" - } - } - }, - "confirm": { - "configuration": { - "remove": { - "title": "구성을 제거하십시오", - "message": "당신은 확실히 제거 할 것입니다 {{name}} 구성?" - } - }, - "action": { - "remove": { - "title": "조치를 제거하십시오", - "message": "당신은 확실히 제거 할 것입니다 {{name}} 동작?" - } - } - }, - "modal": { - "settings": { - "title": "전역 설정", - "checkIFrames": "확인을 확인하십시오", - "checkIFramesHint": "이것은 iframe 내의 요소를 검사합니다", - "advance":"전진", - "advanceHint": "더 많은 기능을 위해 고급 모드 활성화", - "notification": { - "title": "알림 표시", - "error": "오류가 발생했습니다", - "action": "행동 완료시", - "batch": "배치 완료시", - "config": "구성 완료시", - "sound": "알림 소리", - "discord": { - "title": "불화에 대한 알림", - "hint": "로그인하여 우리의 가입해야합니다 <1>Discord server 에서 알림을 받기 위해서", - "info": "현재 개발중인 개발 및 기능으로 이동할 수 있습니다 동작 다가오는 릴리스의 특정 알림" - } - }, - "retry": { - "title": "다시 해 보다", - "interval": "재시도 간격", - "stop": "중지", - "skip": "건너 뛰지 않아", - "refresh": "새로 고치다", - "hint": "다음은 재시도 후에 XPath가 확장자가 발견하지 못하면 수행 할 수있는 동작입니다." - }, - "saveMessage": "설정이 성공적으로 저장되었습니다!" - }, - "configSettings": { - "title": "구성 설정", - "start": "시작", - "auto": "자동으로", - "autoHint": "자동으로 (기본) 브라우저가 새로 고침되면 새 페이지가로드 된 확장자 자동로드가로드됩니다.", - "manual": "설명서", - "manualHint": "설명서 브라우저가로드되면 사용자는 단축키를 사용하여 수동으로 확장을 호출 할 수 있습니다.", - "extensionLoad": "확장 부하", - "window": "창문", - "windowHint": "창문 (기본) 브라우저는 모든 콘텐츠가로드되면 확장을로드합니다", - "document": "문서", - "hotkey": "핫키", - "documentHint": "문서 브라우저는 스크립트와 이미지가로드되기 전에 확장자를로드합니다 (더 빠르지 않음) (안전하지 않음)", - "saveMessage": "Config 환경 저장 완료!" - }, - "reorder": { - "title": "구성 재정렬", - "hint": "재정렬하기 전에 모든 구성을 저장하십시오" - }, - "extensionNotFound": { - "title": "확장명을 찾을 수 없습니다", - "subTitle": "이것은 구성 페이지입니다 {{REACT_APP_NAME}} {{REACT_APP_VARIANT}} 확대", - "hint": "이를 사용하려면 먼저 확장을 다운로드해야합니다." - }, - "actionSettings": { - "title": "조치 설정", - "info": "조치 설정은 전역 설정보다 우선하며 모든 작업 및 애드온 조건 모두에 적용 할 수 있습니다.", - "iframeFirst": "첫 번째 iframe.", - "iframeFirstHint": "이것은 iframe 내에서 요소를 먼저 확인한 다음 메인 페이지에서 확인합니다.", - "retry": { - "title": "다시 해 보다", - "hint": "* 아래에서는 XPath가 재시도 후에 XPath가 발견되지 않으면 수행 할 수있는 작업입니다.", - "interval": "재시도 간격", - "stop": "중지", - "skip": "건너 뛰지 않아", - "refresh": "새로 고치다" - }, - "saveMessage": "Action 환경 저장 완료!" - }, - "actionCondition": { - "action": "동작", - "status": "상태", - "title": "동작 조건", - "info": "동작 조건은 이전 동작 상태와 관련된 조건을 추가하는 데 사용됩니다.", - "saveMessage": "작업 조건이 성공적으로 저장되었습니다!", - "skip": "건너 뛰다", - "proceed": "진행하다" - }, - "ads": { - "title": "우리 사이트에서 광고를 허용하십시오", - "subTitle": "다음 중 어떤 확장 프로그램이 있습니까?" - }, - "addon": { - "title": "첨가본", - "info": "조치를 실행하기 전에 조건을 추가하면 점검됩니다", - "elementFinder": "요소 파인더", - "condition": "상태", - "value": "값", - "valueExtractor": "값 추출기", - "recheck": { - "title": "재확인하다", - "hint": "* 다음은 재확인하다 후에 재정 검사가 확장자가 일치하지 않으면 수행 할 수있는 작업입니다.", - "interval": "회계 간격", - "stop": "중지", - "skip": "건너 뛰지 않아", - "refresh": "새로 고치다" - }, - "saveMessage": "Addon 저장 완료!" - } - }, - "configuration": { - "title": "구성", - "add": "구성을 추가하십시오", - "exportAll": "대량 내보내기 구성", - "importAll": "대량 가져오기 구성", - "remove": "구성을 제거하십시오", - "duplicate": "복제하다 제거하십시오", - "reorder": "구성 재정렬", - "removeConfigs": "대량 제거 구성", - "settings": "구성 설정", - "enable": "할 수있게하다", - "export": "수출 구성", - "import": "구성 가져 오기", - "url": "URL", - "name": "이름", - "initWait": "기다려", - "startTime": "시작 시간", - "saveMessage": "Configuration 저장 완료!" - }, - "batch": { - "title": "일괄", - "repeat": "반복하다", - "repeatInterval": "R 간격", - "refresh": "새로 고치다", - "saveMessage": "Batch 저장 완료!" - }, - "error": { - "number": "유효한 숫자 만 허용됩니다", - "interval": "유효한 숫자 만 허용됩니다", - "url": "URL이 필요합니다", - "initWait": "유효한 숫자 만 허용됩니다", - "startTime": "시작 시간은 hh : mm : ss : fff (12 : 12 : 12 : 000) 형식", - "json": "선택한 JSON이 유효하지 않습니다", - "hotKey": "한 편지가없는 Ctrl/Command 유효하지 않습니다", - "valueExtractor": "유효한 정규 표현이 아닙니다", - "value": "가치가 필요합니다", - "condition": "조건이 필요합니다", - "elementFinder": "요소 파인더가 필요합니다" - }, - "action": { - "title": "동작", - "add": "조치를 추가하십시오", - "addon": "첨가본", - "remove": "조치를 제거하십시오", - "settings": "조치 설정", - "initWait": "기다려", - "name": "이름", - "elementFinder": "요소 파인더", - "value": "값", - "repeat": "반복하다", - "repeatInterval": "R 간격", - "saveMessage": "Action 저장 완료!" - }, - "popover": { - "valueExtractor": { - "title": "예" - }, - "startTime": { - "content": "노력하다 <1>Schedule URL 우리의 새로운 브라우저 확장.
특정 요일 및 시간에 웹 페이지 / URL을 예약하는 데 사용됩니다." - }, - "hotkey": { - "title": "핫키", - "content": "키보드의 단축키를 누르면 자동 유형 필드에서", - "hint": "한 편지가없는Ctrl, Alt 또는 Shift유효하지 않습니다" - } - }, - "common": { - "settings": "설정", - "error": "오류", - "save": "구하다", - "clear": "분명한", - "close": "닫다", - "download": "다운로드", - "disabled":"장애가있는", - "sec": "비서", - "no": "아니요", - "yes": "예", - "local": "현지의", - "dev": "개구", - "stable": "안정적인", - "examples": "예", - "translate": "Auto Clicker 의 공식 번역 작업을 시작합니다. 귀하의 언어에 대한 사용자 인터페이스 번역을 제공하여 Auto Clicker 를 돕는 방법에 대해 알아보려면 공지를 확인하십시오.", - "clickHere": "여기를 클릭" - }, - "language": { - "en": "영어", - "fr": "프랑스", - "kr": "한국인", - "ca": "캐나다", - "hi": "힌디 어" - } -} +{ + "header": { + "theme": { + "light": "라이트 테마로 전환하십시오", + "dark": "어두운 테마로 전환하십시오" + }, + "login": "로그인", + "logout": "로그 아웃", + "settings": "전역 설정" + }, + "footer": { + "resources": "자원", + "docs": "문서 도구", + "blog": "블로그", + "configuration": "구성", + "issues": "문제", + "test": "연습 양식", + "about": "에 대한", + "contact": "연락하다", + "chat": "채팅", + "privacy": "개인 정보 정책", + "social": "사회의", + "instagram": "Instagram", + "discord": "Discord", + "twitter": "Twitter", + "github": "Github" + }, + "toast": { + "configuration": { + "add": { + "header": "구성", + "body": "{{name}} 성공적으로 추가되었습니다" + }, + "remove": { + "header": "구성", + "body": "{{name}} 성공적으로 제거되었습니다" + }, + "exportAll": { + "header": "대량 내보내기" + }, + "importAll": { + "header": "대량 가져오기" + }, + "importError": { + "header": "가져 오기 오류" + }, + "importSuccess": { + "header": "구성", + "body": "{{name}} 성공적으로 가져온 것" + } + }, + "action": { + "save": { + "header": "행위", + "body": "작업이 성공적으로 저장되었습니다!" + } + } + }, + "confirm": { + "configuration": { + "remove": { + "title": "구성을 제거하십시오", + "message": "당신은 확실히 제거 할 것입니다 {{name}} 구성?" + } + }, + "action": { + "remove": { + "title": "조치를 제거하십시오", + "message": "당신은 확실히 제거 할 것입니다 {{name}} 동작?" + } + } + }, + "modal": { + "settings": { + "title": "전역 설정", + "checkIFrames": "확인을 확인하십시오", + "checkIFramesHint": "이것은 iframe 내의 요소를 검사합니다", + "advance": "전진", + "advanceHint": "더 많은 기능을 위해 고급 모드 활성화", + "notification": { + "title": "알림 표시", + "error": "오류가 발생했습니다", + "action": "행동 완료시", + "batch": "배치 완료시", + "config": "구성 완료시", + "sound": "알림 소리", + "discord": { + "title": "불화에 대한 알림", + "hint": "로그인하여 우리의 가입해야합니다 <1>Discord server 에서 알림을 받기 위해서", + "info": "현재 개발중인 개발 및 기능으로 이동할 수 있습니다 동작 다가오는 릴리스의 특정 알림" + } + }, + "retry": { + "title": "다시 해 보다", + "interval": "재시도 간격", + "stop": "중지", + "skip": "건너 뛰지 않아", + "refresh": "새로 고치다", + "hint": "다음은 재시도 후에 XPath가 확장자가 발견하지 못하면 수행 할 수있는 동작입니다." + }, + "saveMessage": "설정이 성공적으로 저장되었습니다!" + }, + "configSettings": { + "title": "구성 설정", + "start": "시작", + "auto": "자동으로", + "autoHint": "자동으로 (기본) 브라우저가 새로 고침되면 새 페이지가로드 된 확장자 자동로드가로드됩니다.", + "manual": "설명서", + "manualHint": "설명서 브라우저가로드되면 사용자는 단축키를 사용하여 수동으로 확장을 호출 할 수 있습니다.", + "extensionLoad": "확장 부하", + "window": "창문", + "windowHint": "창문 (기본) 브라우저는 모든 콘텐츠가로드되면 확장을로드합니다", + "document": "문서", + "hotkey": "핫키", + "documentHint": "문서 브라우저는 스크립트와 이미지가로드되기 전에 확장자를로드합니다 (더 빠르지 않음) (안전하지 않음)", + "saveMessage": "Config 환경 저장 완료!" + }, + "reorder": { + "title": "구성 재정렬", + "hint": "재정렬하기 전에 모든 구성을 저장하십시오" + }, + "extensionNotFound": { + "title": "확장명을 찾을 수 없습니다", + "subTitle": "이것은 구성 페이지입니다 {{REACT_APP_NAME}} {{REACT_APP_VARIANT}} 확대", + "hint": "이를 사용하려면 먼저 확장을 다운로드해야합니다." + }, + "actionSettings": { + "title": "조치 설정", + "info": "조치 설정은 전역 설정보다 우선하며 모든 작업 및 애드온 조건 모두에 적용 할 수 있습니다.", + "iframeFirst": "첫 번째 iframe.", + "iframeFirstHint": "이것은 iframe 내에서 요소를 먼저 확인한 다음 메인 페이지에서 확인합니다.", + "retry": { + "title": "다시 해 보다", + "hint": "* 아래에서는 XPath가 재시도 후에 XPath가 발견되지 않으면 수행 할 수있는 작업입니다.", + "interval": "재시도 간격", + "stop": "중지", + "skip": "건너 뛰지 않아", + "refresh": "새로 고치다" + }, + "saveMessage": "Action 환경 저장 완료!" + }, + "actionCondition": { + "action": "동작", + "status": "상태", + "title": "동작 조건", + "info": "동작 조건은 이전 동작 상태와 관련된 조건을 추가하는 데 사용됩니다.", + "saveMessage": "작업 조건이 성공적으로 저장되었습니다!", + "skip": "건너 뛰다", + "proceed": "진행하다" + }, + "ads": { + "title": "우리 사이트에서 광고를 허용하십시오", + "subTitle": "다음 중 어떤 확장 프로그램이 있습니까?" + }, + "addon": { + "title": "첨가본", + "info": "조치를 실행하기 전에 조건을 추가하면 점검됩니다", + "elementFinder": "요소 파인더", + "condition": "상태", + "value": "값", + "valueExtractor": "값 추출기", + "recheck": { + "title": "재확인하다", + "hint": "* 다음은 재확인하다 후에 재정 검사가 확장자가 일치하지 않으면 수행 할 수있는 작업입니다.", + "interval": "회계 간격", + "stop": "중지", + "skip": "건너 뛰지 않아", + "refresh": "새로 고치다" + }, + "saveMessage": "Addon 저장 완료!" + } + }, + "configuration": { + "title": "구성", + "add": "구성을 추가하십시오", + "exportAll": "대량 내보내기 구성", + "importAll": "대량 가져오기 구성", + "remove": "구성을 제거하십시오", + "duplicate": "복제하다 제거하십시오", + "reorder": "구성 재정렬", + "removeConfigs": "대량 제거 구성", + "settings": "구성 설정", + "enable": "할 수있게하다", + "export": "수출 구성", + "import": "구성 가져 오기", + "url": "URL", + "name": "이름", + "initWait": "기다려", + "startTime": "시작 시간", + "saveMessage": "Configuration 저장 완료!" + }, + "batch": { + "title": "일괄", + "repeat": "반복하다", + "repeatInterval": "R 간격", + "refresh": "새로 고치다", + "saveMessage": "Batch 저장 완료!" + }, + "error": { + "number": "유효한 숫자 만 허용됩니다", + "interval": "유효한 숫자 만 허용됩니다", + "url": "URL이 필요합니다", + "initWait": "유효한 숫자 만 허용됩니다", + "startTime": "시작 시간은 hh : mm : ss : fff (12 : 12 : 12 : 000) 형식", + "json": "선택한 JSON이 유효하지 않습니다", + "hotKey": "한 편지가없는 Ctrl/Command 유효하지 않습니다", + "valueExtractor": "유효한 정규 표현이 아닙니다", + "value": "가치가 필요합니다", + "condition": "조건이 필요합니다", + "elementFinder": "요소 파인더가 필요합니다" + }, + "action": { + "title": "동작", + "add": "조치를 추가하십시오", + "addon": "첨가본", + "remove": "조치를 제거하십시오", + "settings": "조치 설정", + "initWait": "기다려", + "name": "이름", + "elementFinder": "요소 파인더", + "value": "값", + "repeat": "반복하다", + "repeatInterval": "R 간격", + "saveMessage": "Action 저장 완료!" + }, + "popover": { + "valueExtractor": { + "title": "예" + }, + "startTime": { + "content": "노력하다 <1>Schedule URL 우리의 새로운 브라우저 확장.
특정 요일 및 시간에 웹 페이지 / URL을 예약하는 데 사용됩니다." + }, + "hotkey": { + "title": "핫키", + "content": "키보드의 단축키를 누르면 자동 유형 필드에서", + "hint": "한 편지가없는Ctrl, Alt 또는 Shift유효하지 않습니다" + } + }, + "common": { + "settings": "설정", + "error": "오류", + "save": "구하다", + "clear": "분명한", + "close": "닫다", + "download": "다운로드", + "disabled": "장애가있는", + "sec": "비서", + "no": "아니요", + "yes": "예", + "local": "현지의", + "dev": "개구", + "stable": "안정적인", + "examples": "예", + "translate": "Auto Clicker 의 공식 번역 작업을 시작합니다. 귀하의 언어에 대한 사용자 인터페이스 번역을 제공하여 Auto Clicker 를 돕는 방법에 대해 알아보려면 공지를 확인하십시오.", + "clickHere": "여기를 클릭" + }, + "language": { + "en": "영어", + "fr": "프랑스", + "kr": "한국인", + "ca": "캐나다", + "hi": "힌디 어" + } +} diff --git a/apps/acf-options-page/src/app/configs/action/action-table.tsx b/apps/acf-options-page/src/app/configs/action/action-table.tsx index e1d81441..4d4af590 100644 --- a/apps/acf-options-page/src/app/configs/action/action-table.tsx +++ b/apps/acf-options-page/src/app/configs/action/action-table.tsx @@ -111,8 +111,6 @@ const ActionTable = () => { [t] ); - console.log(actions); - const table = useReactTable({ columns: columns, data: actions, diff --git a/apps/acf-options-page/src/modal/reorder-configs.modal.tsx b/apps/acf-options-page/src/modal/reorder-configs.modal.tsx index 03f67317..a68e7b7c 100644 --- a/apps/acf-options-page/src/modal/reorder-configs.modal.tsx +++ b/apps/acf-options-page/src/modal/reorder-configs.modal.tsx @@ -1,13 +1,15 @@ -import { FormEvent } from 'react'; +import { FormEvent, useState } from 'react'; import { Badge, Button, Form, ListGroup, Modal } from 'react-bootstrap'; import Reorder, { reorder } from 'react-reorder'; import { useTranslation } from 'react-i18next'; import { ErrorAlert } from '../components'; import { configReorderSelector, configReorderUpdateAPI, switchConfigReorderModal, updateConfigReorder } from '../store/config'; import { useAppDispatch, useAppSelector } from '../hooks'; +import { ArrowDown, ArrowUp } from '../util'; const ReorderConfigsModal = () => { const { visible, configs, error } = useAppSelector(configReorderSelector); + const [sort, setSort] = useState(); const dispatch = useAppDispatch(); const { t } = useTranslation(); const onSubmit = (e: FormEvent) => { @@ -23,6 +25,21 @@ const ReorderConfigsModal = () => { dispatch(updateConfigReorder(reorder(configs, previousIndex, nextIndex))); }; + const sortActions = () => { + setSort(!sort); + if (configs) { + dispatch( + updateConfigReorder( + [...configs].sort((a, b) => { + const first = sort ? a.name || a.url : b.name || b.url; + const second = sort ? b.name || b.url : a.name || a.url; + return first.localeCompare(second); + }) + ) + ); + } + }; + const onShow = () => { //:TODO }; @@ -35,6 +52,9 @@ const ReorderConfigsModal = () => {

{t('modal.reorder.hint')}

+
{configs?.map((config, index) => ( diff --git a/apps/acf-options-page/src/util/svg.tsx b/apps/acf-options-page/src/util/svg.tsx index a10a34af..2cc6a7d5 100644 --- a/apps/acf-options-page/src/util/svg.tsx +++ b/apps/acf-options-page/src/util/svg.tsx @@ -28,3 +28,5 @@ export { ReactComponent as FileSpreadsheet } from 'bootstrap-icons/icons/file-sp export { ReactComponent as Youtube } from 'bootstrap-icons/icons/youtube.svg'; export { ReactComponent as FileSpreadsheetFill } from 'bootstrap-icons/icons/file-spreadsheet-fill.svg'; export { ReactComponent as ExclamationTriangleFill } from 'bootstrap-icons/icons/exclamation-triangle-fill.svg'; +export { ReactComponent as ArrowUp } from 'bootstrap-icons/icons/arrow-up.svg'; +export { ReactComponent as ArrowDown } from 'bootstrap-icons/icons/arrow-down.svg'; diff --git a/package.json b/package.json index eaf96015..57a5b4a5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhruv-techapps/source", - "version": "3.4.36", + "version": "3.4.37", "license": "MIT", "scripts": { "start": ""