mirror of https://github.com/longtai-cn/hippo4j
Officially added internationalization function (#866)
parent
70146d00cb
commit
25ae85a487
@ -1,5 +1,5 @@
|
|||||||
xiaomage:
|
xiaomage:
|
||||||
name: 小马哥
|
name: 小马哥
|
||||||
title: hippo4j 作者
|
title: hippo4j 作者
|
||||||
url: https://github.com/mabaiwan
|
url: https://github.com/magegoofy
|
||||||
image_url: https://avatars.githubusercontent.com/u/77398366?v=4
|
image_url: https://avatars.githubusercontent.com/u/77398366?v=4
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
xiaomage:
|
||||||
|
name: 小马哥
|
||||||
|
title: hippo4j 作者
|
||||||
|
url: https://github.com/magegoofy
|
||||||
|
image_url: https://avatars.githubusercontent.com/u/77398366?v=4
|
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"title": {
|
||||||
|
"message": "Blog",
|
||||||
|
"description": "The title for the blog used in SEO"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"message": "Blog",
|
||||||
|
"description": "The description for the blog used in SEO"
|
||||||
|
},
|
||||||
|
"sidebar.title": {
|
||||||
|
"message": "Recent posts",
|
||||||
|
"description": "The label for the left sidebar"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,94 @@
|
|||||||
|
{
|
||||||
|
"version.label": {
|
||||||
|
"message": "Next",
|
||||||
|
"description": "The label for version current"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.社区": {
|
||||||
|
"message": "社区",
|
||||||
|
"description": "The label for category 社区 in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.贡献规约": {
|
||||||
|
"message": "贡献规约",
|
||||||
|
"description": "The label for category 贡献规约 in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.user_docs": {
|
||||||
|
"message": "user_docs",
|
||||||
|
"description": "The label for category user_docs in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.用户指南": {
|
||||||
|
"message": "用户指南",
|
||||||
|
"description": "The label for category 用户指南 in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": {
|
||||||
|
"message": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。",
|
||||||
|
"description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.快速开始": {
|
||||||
|
"message": "快速开始",
|
||||||
|
"description": "The label for category 快速开始 in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.依赖配置中心": {
|
||||||
|
"message": "依赖配置中心",
|
||||||
|
"description": "The label for category 依赖配置中心 in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.无中间件依赖": {
|
||||||
|
"message": "无中间件依赖",
|
||||||
|
"description": "The label for category 无中间件依赖 in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.运维指南": {
|
||||||
|
"message": "运维指南",
|
||||||
|
"description": "The label for category 运维指南 in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.开发者手册": {
|
||||||
|
"message": "开发者手册",
|
||||||
|
"description": "The label for category 开发者手册 in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": {
|
||||||
|
"message": "Hippo4J 留给使用者能够扩展的知识点。",
|
||||||
|
"description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.category.其它": {
|
||||||
|
"message": "其它",
|
||||||
|
"description": "The label for category 其它 in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.user_docs.category.用户指南": {
|
||||||
|
"message": "用户指南",
|
||||||
|
"description": "The label for category 用户指南 in sidebar user_docs"
|
||||||
|
},
|
||||||
|
"sidebar.user_docs.category.用户指南.link.generated-index.description": {
|
||||||
|
"message": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。",
|
||||||
|
"description": "The generated-index page description for category 用户指南 in sidebar user_docs"
|
||||||
|
},
|
||||||
|
"sidebar.user_docs.category.快速开始": {
|
||||||
|
"message": "快速开始",
|
||||||
|
"description": "The label for category 快速开始 in sidebar user_docs"
|
||||||
|
},
|
||||||
|
"sidebar.user_docs.category.依赖配置中心": {
|
||||||
|
"message": "依赖配置中心",
|
||||||
|
"description": "The label for category 依赖配置中心 in sidebar user_docs"
|
||||||
|
},
|
||||||
|
"sidebar.user_docs.category.无中间件依赖": {
|
||||||
|
"message": "无中间件依赖",
|
||||||
|
"description": "The label for category 无中间件依赖 in sidebar user_docs"
|
||||||
|
},
|
||||||
|
"sidebar.user_docs.category.运维指南": {
|
||||||
|
"message": "运维指南",
|
||||||
|
"description": "The label for category 运维指南 in sidebar user_docs"
|
||||||
|
},
|
||||||
|
"sidebar.user_docs.category.开发者手册": {
|
||||||
|
"message": "开发者手册",
|
||||||
|
"description": "The label for category 开发者手册 in sidebar user_docs"
|
||||||
|
},
|
||||||
|
"sidebar.user_docs.category.开发者手册.link.generated-index.description": {
|
||||||
|
"message": "Hippo4J 留给使用者能够扩展的知识点。",
|
||||||
|
"description": "The generated-index page description for category 开发者手册 in sidebar user_docs"
|
||||||
|
},
|
||||||
|
"sidebar.user_docs.category.其它": {
|
||||||
|
"message": "其它",
|
||||||
|
"description": "The label for category 其它 in sidebar user_docs"
|
||||||
|
},
|
||||||
|
"sidebar.community.category.贡献规约": {
|
||||||
|
"message": "贡献规约",
|
||||||
|
"description": "The label for category 贡献规约 in sidebar community"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"label": "社区",
|
||||||
|
"position": 1,
|
||||||
|
"link": {
|
||||||
|
"type": "generated-index"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 1
|
||||||
|
---
|
||||||
|
|
||||||
|
# 贡献指南
|
||||||
|
|
||||||
|
Git Commit Log 尽量使用英文。
|
||||||
|
|
||||||
|
Pull Request 尽量保持单一,不同语义的代码贡献应拆分多个 Pull Request。
|
||||||
|
|
||||||
|
为了让您的 GitHub ID 显示在 Contributor 列表中,别忘了以下设置:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git config --global user.name "username"
|
||||||
|
git config --global user.email "GitHub 账号邮箱"
|
||||||
|
```
|
||||||
|
|
||||||
|
## 贡献者列表
|
||||||
|
|
||||||
|
您可以在 [Hippo4J](https://github.com/opengoofy/hippo4j/graphs/contributors) 和 [Hippo4J Console](https://github.com/opengoofy/hippo4j-console) 的贡献列表中找到全部的贡献者名单。
|
||||||
|
|
||||||
|
<a href="https://github.com/opengoofy/hippo4j/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=opengoofy/hippo4j" />
|
||||||
|
</a>
|
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"label": "贡献规约",
|
||||||
|
"position": 2,
|
||||||
|
"link": {
|
||||||
|
"type": "generated-index"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# 代码规约
|
||||||
|
|
||||||
|
1. 代码提交前,执行 `mvn spotless:apply` 保证代码格式符合规范。
|
||||||
|
2. 代码中不要出现无意义的空行。
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"label": "开发者手册",
|
||||||
|
"position": 5,
|
||||||
|
"link": {
|
||||||
|
"type": "generated-index",
|
||||||
|
"description": "Hippo4J 留给使用者能够扩展的知识点。"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 0
|
||||||
|
---
|
||||||
|
|
||||||
|
# 内置拒绝策略
|
||||||
|
|
||||||
|
内置两种拒绝策略说明:
|
||||||
|
|
||||||
|
**RunsOldestTaskPolicy**:添加新任务并由主线程运行最早的任务。
|
||||||
|
|
||||||
|
```java
|
||||||
|
public class RunsOldestTaskPolicy implements RejectedExecutionHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
|
||||||
|
if (executor.isShutdown()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
BlockingQueue<Runnable> workQueue = executor.getQueue();
|
||||||
|
Runnable firstWork = workQueue.poll();
|
||||||
|
boolean newTaskAdd = workQueue.offer(r);
|
||||||
|
if (firstWork != null) {
|
||||||
|
firstWork.run();
|
||||||
|
}
|
||||||
|
if (!newTaskAdd) {
|
||||||
|
executor.execute(r);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**SyncPutQueuePolicy**:主线程把拒绝任务以阻塞的方式添加到队列。
|
||||||
|
|
||||||
|
```java
|
||||||
|
@Slf4j
|
||||||
|
public class SyncPutQueuePolicy implements RejectedExecutionHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
|
||||||
|
if (executor.isShutdown()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
executor.getQueue().put(r);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
log.error("Adding Queue task to thread pool failed.", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"label": "快速开始",
|
||||||
|
"position": 3,
|
||||||
|
"link": {
|
||||||
|
"type": "generated-index"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"label": "依赖配置中心",
|
||||||
|
"position": 2,
|
||||||
|
"collapsed": true
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 4
|
||||||
|
---
|
||||||
|
|
||||||
|
# 参数默认配置
|
||||||
|
|
||||||
|
曾有多名小伙伴反馈说,项目中线程池一多,配置文件中配置就显得很臃肿。为此 hippo4j-config 开发出了动态线程池默认配置。
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
spring:
|
||||||
|
dynamic:
|
||||||
|
thread-pool:
|
||||||
|
default-executor:
|
||||||
|
core-pool-size: 4
|
||||||
|
maximum-pool-size: 6
|
||||||
|
blocking-queue: ResizableCapacityLinkedBlockingQueue
|
||||||
|
queue-capacity: 1024
|
||||||
|
execute-time-out: 1000
|
||||||
|
keep-alive-time: 9999
|
||||||
|
rejected-handler: AbortPolicy
|
||||||
|
active-alarm: 90
|
||||||
|
capacity-alarm: 85
|
||||||
|
alarm: true
|
||||||
|
allow-core-thread-time-out: true
|
||||||
|
notify:
|
||||||
|
interval: 5
|
||||||
|
receives: chen.ma
|
||||||
|
executors:
|
||||||
|
- thread-pool-id: message-produce
|
||||||
|
- thread-pool-id: message-consume
|
||||||
|
core-pool-size: 80
|
||||||
|
maximum-pool-size: 100
|
||||||
|
execute-time-out: 1000
|
||||||
|
notify:
|
||||||
|
interval: 6
|
||||||
|
receives: chen.ma
|
||||||
|
```
|
||||||
|
|
||||||
|
`spring.dynamic.thread-pool.executors` 层级下,仅需要配置 `thread-pool-id`,其余配置从 `spring.dynamic.thread-pool.default-executor` 读取。
|
||||||
|
|
||||||
|
如果 `spring.dynamic.thread-pool.executors` 下配置和 `spring.dynamic.thread-pool.default-executor` 冲突,以前者为主。
|
||||||
|
|
||||||
|
通过该自定义配置方式,可减少大量重复线程池参数配置项,提高核心配置简洁度。
|
||||||
|
|
||||||
|
提示:`spring.dynamic.thread-pool.default-executor` 层级下参数,不提供动态刷新功能。
|
@ -0,0 +1,121 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 5
|
||||||
|
---
|
||||||
|
|
||||||
|
# 适配SpringBoot1x
|
||||||
|
|
||||||
|
目前已支持 Nacos、Apollo 配置中心适配 SpringBoot 1.5.x 版本。
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.hippo4j</groupId>
|
||||||
|
<artifactId>hippo4j-config-spring-boot-1x-starter</artifactId>
|
||||||
|
<version>1.4.2</version>
|
||||||
|
</dependency>
|
||||||
|
```
|
||||||
|
|
||||||
|
Nacos SpringBoot 配置如下:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
spring:
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
config:
|
||||||
|
ext-config:
|
||||||
|
- data-id: hippo4j-nacos.yaml
|
||||||
|
group: DEFAULT_GROUP
|
||||||
|
refresh: true
|
||||||
|
server-addr: 127.0.0.1:8848
|
||||||
|
dynamic:
|
||||||
|
thread-pool:
|
||||||
|
config-file-type: yml
|
||||||
|
nacos:
|
||||||
|
data-id: hippo4j-nacos.yaml
|
||||||
|
group: DEFAULT_GROUP
|
||||||
|
```
|
||||||
|
|
||||||
|
Apollo SpringBoot 配置如下:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apollo:
|
||||||
|
autoUpdateInjectedSpringProperties: true
|
||||||
|
bootstrap:
|
||||||
|
eagerLoad:
|
||||||
|
enabled: true
|
||||||
|
enabled: true
|
||||||
|
namespaces: application
|
||||||
|
meta: http://127.0.0.1:8080
|
||||||
|
app:
|
||||||
|
id: dynamic-threadpool-example
|
||||||
|
spring:
|
||||||
|
dynamic:
|
||||||
|
thread-pool:
|
||||||
|
apollo:
|
||||||
|
namespace: application
|
||||||
|
```
|
||||||
|
|
||||||
|
动态线程池通用配置如下:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
management:
|
||||||
|
context-path: /actuator
|
||||||
|
security:
|
||||||
|
enabled: false
|
||||||
|
server:
|
||||||
|
port: 8091
|
||||||
|
servlet:
|
||||||
|
context-path: /example
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: dynamic-threadpool-example
|
||||||
|
dynamic:
|
||||||
|
thread-pool:
|
||||||
|
banner: true
|
||||||
|
check-state-interval: 5
|
||||||
|
collect-type: micrometer
|
||||||
|
config-file-type: properties
|
||||||
|
enable: true
|
||||||
|
executors:
|
||||||
|
- active-alarm: 80
|
||||||
|
alarm: true
|
||||||
|
allow-core-thread-time-out: true
|
||||||
|
blocking-queue: LinkedBlockingQueue
|
||||||
|
capacity-alarm: 80
|
||||||
|
core-pool-size: 1
|
||||||
|
execute-time-out: 1000
|
||||||
|
keep-alive-time: 6691
|
||||||
|
maximum-pool-size: 1
|
||||||
|
notify:
|
||||||
|
interval: 8
|
||||||
|
receives: chen.ma
|
||||||
|
queue-capacity: 1
|
||||||
|
rejected-handler: AbortPolicy
|
||||||
|
thread-name-prefix: message-consume
|
||||||
|
thread-pool-id: message-consume
|
||||||
|
- active-alarm: 80
|
||||||
|
alarm: true
|
||||||
|
allow-core-thread-time-out: true
|
||||||
|
blocking-queue: LinkedBlockingQueue
|
||||||
|
capacity-alarm: 80
|
||||||
|
core-pool-size: 1
|
||||||
|
execute-time-out: 1000
|
||||||
|
keep-alive-time: 6691
|
||||||
|
maximum-pool-size: 1
|
||||||
|
notify:
|
||||||
|
interval: 8
|
||||||
|
receives: chen.ma
|
||||||
|
queue-capacity: 1
|
||||||
|
rejected-handler: AbortPolicy
|
||||||
|
thread-name-prefix: message-produce
|
||||||
|
thread-pool-id: message-produce
|
||||||
|
notify-platforms:
|
||||||
|
- platform: WECHAT
|
||||||
|
token: ac0426a5-c712-474c-9bff-72b8b8f5caff
|
||||||
|
profiles:
|
||||||
|
active: dev
|
||||||
|
```
|
||||||
|
|
||||||
|
具体 Demo 运行请参考以下示例模块,已验证对应线程池动态变更、报警以及运行时监控功能。
|
||||||
|
|
||||||
|
- `/hippo4j-config-nacos-spring-boot-1x-starter-example`
|
||||||
|
- `hippo4j-example/hippo4j-config-apollo-spring-boot-1x-starter-example`
|
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 730 KiB |
After Width: | Height: | Size: 27 KiB |
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"label": "无中间件依赖",
|
||||||
|
"position": 3,
|
||||||
|
"collapsed": true
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"label": "运维指南",
|
||||||
|
"position": 4,
|
||||||
|
"link": {
|
||||||
|
"type": "generated-index"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"label": "其它",
|
||||||
|
"position": 6,
|
||||||
|
"link": {
|
||||||
|
"type": "generated-index"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 1
|
||||||
|
---
|
||||||
|
|
||||||
|
# 加群沟通
|
||||||
|
|
||||||
|
扫码添加微信,备注:`hippo4j`,邀您加入群聊。
|
||||||
|
|
||||||
|
![](https://images-machen.oss-cn-beijing.aliyuncs.com/185774220-c11951f9-e130-4d60-8204-afb5c51d4401.png)
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"label": "用户指南",
|
||||||
|
"position": 2,
|
||||||
|
"link": {
|
||||||
|
"type": "generated-index",
|
||||||
|
"description": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Markdown page example
|
||||||
|
---
|
||||||
|
|
||||||
|
# Markdown page example
|
||||||
|
|
||||||
|
You don't need React to write simple standalone pages.
|
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"link.title.Docs": {
|
||||||
|
"message": "Docs",
|
||||||
|
"description": "The title of the footer links column with title=Docs in the footer"
|
||||||
|
},
|
||||||
|
"link.title.Community": {
|
||||||
|
"message": "Community",
|
||||||
|
"description": "The title of the footer links column with title=Community in the footer"
|
||||||
|
},
|
||||||
|
"link.title.More": {
|
||||||
|
"message": "More",
|
||||||
|
"description": "The title of the footer links column with title=More in the footer"
|
||||||
|
},
|
||||||
|
"link.item.label.简介": {
|
||||||
|
"message": "简介",
|
||||||
|
"description": "The label of footer link with label=简介 linking to /docs/user_docs/intro"
|
||||||
|
},
|
||||||
|
"link.item.label.加群沟通": {
|
||||||
|
"message": "加群沟通",
|
||||||
|
"description": "The label of footer link with label=加群沟通 linking to https://hippo4j.cn/docs/user_docs/other/group"
|
||||||
|
},
|
||||||
|
"link.item.label.微信公众号": {
|
||||||
|
"message": "微信公众号",
|
||||||
|
"description": "The label of footer link with label=微信公众号 linking to https://mp.weixin.qq.com/s/diVHYvwiuYH9aWpZDPc27g"
|
||||||
|
},
|
||||||
|
"link.item.label.Gitee": {
|
||||||
|
"message": "Gitee",
|
||||||
|
"description": "The label of footer link with label=Gitee linking to https://gitee.com/itmachen/hippo4j"
|
||||||
|
},
|
||||||
|
"link.item.label.GitHub": {
|
||||||
|
"message": "GitHub",
|
||||||
|
"description": "The label of footer link with label=GitHub linking to https://github.com/opengoofy/hippo4j"
|
||||||
|
},
|
||||||
|
"link.item.label.公司登记": {
|
||||||
|
"message": "公司登记",
|
||||||
|
"description": "The label of footer link with label=公司登记 linking to https://github.com/opengoofy/hippo4j/issues/13"
|
||||||
|
},
|
||||||
|
"copyright": {
|
||||||
|
"message": "Copyright © 2021-2022 小马哥版权所有 <a href=\"https://beian.miit.gov.cn\">京ICP备2021038095号-2\n</a>",
|
||||||
|
"description": "The footer copyright"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"title": {
|
||||||
|
"message": "",
|
||||||
|
"description": "The title in the navbar"
|
||||||
|
},
|
||||||
|
"item.label.文档": {
|
||||||
|
"message": "文档",
|
||||||
|
"description": "Navbar item with label 文档"
|
||||||
|
},
|
||||||
|
"item.label.社区": {
|
||||||
|
"message": "社区",
|
||||||
|
"description": "Navbar item with label 社区"
|
||||||
|
},
|
||||||
|
"item.label.控制台样例": {
|
||||||
|
"message": "控制台样例",
|
||||||
|
"description": "Navbar item with label 控制台样例"
|
||||||
|
},
|
||||||
|
"item.label.🥇代码实战课": {
|
||||||
|
"message": "🥇代码实战课",
|
||||||
|
"description": "Navbar item with label 🥇代码实战课"
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 41 KiB |
Loading…
Reference in new issue