diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d5c67208..708a1a90 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -13,7 +13,7 @@ jobs:
steps:
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
- run: corepack enable
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
with:
node-version: 16
cache: 'pnpm'
diff --git a/.github/workflows/docker-nightly-release.yml b/.github/workflows/docker-nightly-release.yml
index 9964632c..46efa60e 100644
--- a/.github/workflows/docker-nightly-release.yml
+++ b/.github/workflows/docker-nightly-release.yml
@@ -30,7 +30,7 @@ jobs:
steps:
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
- run: corepack enable
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
with:
node-version: 16
cache: 'pnpm'
diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml
index b5b04096..d1a09eea 100644
--- a/.github/workflows/e2e-tests.yml
+++ b/.github/workflows/e2e-tests.yml
@@ -16,7 +16,7 @@ jobs:
- run: corepack enable
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
with:
node-version: 16
cache: 'pnpm'
diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml
index 49540562..064157a4 100644
--- a/.github/workflows/releases.yml
+++ b/.github/workflows/releases.yml
@@ -59,7 +59,7 @@ jobs:
- run: corepack enable
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
with:
node-version: 16
cache: 'pnpm'
diff --git a/index.html b/index.html
index e8b8a60e..49109b76 100644
--- a/index.html
+++ b/index.html
@@ -4,8 +4,8 @@
-
IT Tools - Handy online tools for developers
-
+ Dev - IT Tools - Handy online tools for developers
+
-
+
-
+
diff --git a/locales/zh.yml b/locales/zh.yml
new file mode 100644
index 00000000..a77b77c2
--- /dev/null
+++ b/locales/zh.yml
@@ -0,0 +1,65 @@
+home:
+ categories:
+ newestTools: '最新工具'
+ favoriteTools: '收藏的工具'
+ allTools: '全部工具'
+ subtitle: '助力开发人员和 IT 工作者'
+ toggleMenu: '切换菜单'
+ home: '主页'
+ uiLib: 'UI 库'
+ buyMeACoffee: '赞助'
+ follow:
+ title: '关注我们'
+ p1: '给我们Star'
+ githubRepository: 'GitHub 仓库'
+ p2: '关注我们的'
+ twitterAccount: 'Twitter'
+ thankYou: '感谢您的支持!'
+ nav:
+ github: 'GitHub 仓库'
+ githubRepository: 'GitHub 仓库'
+ twitter: 'Twitter 账号'
+ twitterAccount: 'Twitter 账号'
+ about: '关于'
+ aboutLabel: '关于 IT-Tools'
+ darkMode: '深色模式'
+ lightMode: '浅色模式'
+ mode: '颜色模式'
+about:
+ h1: '关于 IT-Tools'
+ h1p1: 'IT-Tools 由'
+ h1p2: "开发,致力于助力开发人员和 IT 行业工作者。如果对您有帮助,请将其分享给您的朋友,并且添加到收藏夹中!"
+ h1p3: 'IT Tools 永久免费且开源 (MIT 许可证) , 但需要资金用于托管和续订域名. 欢迎'
+ h1p4: '赞助我们'
+ h2: '技术'
+ h2p1: 'IT Tools 采用 Vue.js (Vue 3) 和 Naive UI 组件库制作,由 Vercel 托管和持续部署。 某些工具使用了第三方开源库,您可以在存储库的'
+ h2p2: '文件中找到完整列表'
+ h3: '有Bug? 缺少功能?'
+ h3p1: '如果您需要的工具目前此处不存在,并且您认为可能有必要,欢迎您在 GitHub 存储库的'
+ h3p2: 'issues'
+ h3p3: '提交新增功能的请求。'
+ h3p4: "如果您发现Bug或某些内容未按预期工作,请在 GitHub 存储库的"
+ h3p5: 'issues'
+ h3p6: '部分提交错误报告。'
+404:
+ notFound: '404 页面不存在'
+ sorry: '抱歉,您访问的页面不存在。'
+ maybe: '也许您可以尝试以下链接:'
+ backHome: '返回主页'
+toolCard:
+ new: '新'
+search:
+ label: '搜索'
+tools:
+ categories:
+ favorite-tools: '收藏的工具'
+ crypto: '加密'
+ converter: '转换器'
+ web: Web
+ images and videos: '图片和视频'
+ development: '开发'
+ network: '网络'
+ math: '数学'
+ measurement: '测量'
+ text: '文本'
+ data: '数据'
\ No newline at end of file
diff --git a/src/pages/404.page.vue b/src/pages/404.page.vue
index 20f61c41..d6f9fd5d 100644
--- a/src/pages/404.page.vue
+++ b/src/pages/404.page.vue
@@ -1,7 +1,7 @@
diff --git a/src/pages/Home.page.vue b/src/pages/Home.page.vue
index 859418ef..22a3bd23 100644
--- a/src/pages/Home.page.vue
+++ b/src/pages/Home.page.vue
@@ -8,7 +8,7 @@ import { config } from '@/config';
const toolStore = useToolStore();
-useHead({ title: 'IT Tools - Handy online tools for developers' });
+useHead({ title: 'Dev - IT Tools - Handy online tools for developers' });
const { t } = useI18n();
diff --git a/src/tools/bcrypt/bcrypt.vue b/src/tools/bcrypt/bcrypt.vue
index 55c0005f..c28c20bf 100644
--- a/src/tools/bcrypt/bcrypt.vue
+++ b/src/tools/bcrypt/bcrypt.vue
@@ -23,6 +23,7 @@ const compareMatch = computed(() => compareSync(compareString.value, compareHash
raw-text
label="Your string: "
label-position="left"
+ label-align="right"
label-width="120px"
mb-2
/>