code.json 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. {
  2. "theme.NotFound.title": {
  3. "message": "Page Not Found",
  4. "description": "The title of the 404 page"
  5. },
  6. "theme.NotFound.p1": {
  7. "message": "We could not find what you were looking for.",
  8. "description": "The first paragraph of the 404 page"
  9. },
  10. "theme.NotFound.p2": {
  11. "message": "Please contact the owner of the site that linked you to the original URL and let them know their link is broken.",
  12. "description": "The 2nd paragraph of the 404 page"
  13. },
  14. "theme.AnnouncementBar.closeButtonAriaLabel": {
  15. "message": "Close",
  16. "description": "The ARIA label for close button of announcement bar"
  17. },
  18. "theme.blog.paginator.navAriaLabel": {
  19. "message": "Blog list page navigation",
  20. "description": "The ARIA label for the blog pagination"
  21. },
  22. "theme.blog.paginator.newerEntries": {
  23. "message": "Newer Entries",
  24. "description": "The label used to navigate to the newer blog posts page (previous page)"
  25. },
  26. "theme.blog.paginator.olderEntries": {
  27. "message": "Older Entries",
  28. "description": "The label used to navigate to the older blog posts page (next page)"
  29. },
  30. "theme.blog.post.readingTime.plurals": {
  31. "message": "One min read|{readingTime} min read",
  32. "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
  33. },
  34. "theme.tags.tagsListLabel": {
  35. "message": "Tags:",
  36. "description": "The label alongside a tag list"
  37. },
  38. "theme.blog.post.readMore": {
  39. "message": "Read More",
  40. "description": "The label used in blog post item excerpts to link to full blog posts"
  41. },
  42. "theme.blog.post.paginator.navAriaLabel": {
  43. "message": "Blog post page navigation",
  44. "description": "The ARIA label for the blog posts pagination"
  45. },
  46. "theme.blog.post.paginator.newerPost": {
  47. "message": "Newer Post",
  48. "description": "The blog post button label to navigate to the newer/previous post"
  49. },
  50. "theme.blog.post.paginator.olderPost": {
  51. "message": "Older Post",
  52. "description": "The blog post button label to navigate to the older/next post"
  53. },
  54. "theme.tags.tagsPageTitle": {
  55. "message": "Tags",
  56. "description": "The title of the tag list page"
  57. },
  58. "theme.blog.post.plurals": {
  59. "message": "One post|{count} posts",
  60. "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
  61. },
  62. "theme.blog.tagTitle": {
  63. "message": "{nPosts} tagged with \"{tagName}\"",
  64. "description": "The title of the page for a blog tag"
  65. },
  66. "theme.tags.tagsPageLink": {
  67. "message": "View All Tags",
  68. "description": "The label of the link targeting the tag list page"
  69. },
  70. "theme.CodeBlock.copyButtonAriaLabel": {
  71. "message": "Copy code to clipboard",
  72. "description": "The ARIA label for copy code blocks button"
  73. },
  74. "theme.CodeBlock.copied": {
  75. "message": "Copied",
  76. "description": "The copied button label on code blocks"
  77. },
  78. "theme.CodeBlock.copy": {
  79. "message": "Copy",
  80. "description": "The copy button label on code blocks"
  81. },
  82. "theme.docs.sidebar.expandButtonTitle": {
  83. "message": "Expand sidebar",
  84. "description": "The ARIA label and title attribute for expand button of doc sidebar"
  85. },
  86. "theme.docs.sidebar.expandButtonAriaLabel": {
  87. "message": "Expand sidebar",
  88. "description": "The ARIA label and title attribute for expand button of doc sidebar"
  89. },
  90. "theme.docs.paginator.navAriaLabel": {
  91. "message": "Docs pages navigation",
  92. "description": "The ARIA label for the docs pagination"
  93. },
  94. "theme.docs.paginator.previous": {
  95. "message": "Previous",
  96. "description": "The label used to navigate to the previous doc"
  97. },
  98. "theme.docs.paginator.next": {
  99. "message": "Next",
  100. "description": "The label used to navigate to the next doc"
  101. },
  102. "theme.docs.sidebar.collapseButtonTitle": {
  103. "message": "Collapse sidebar",
  104. "description": "The title attribute for collapse button of doc sidebar"
  105. },
  106. "theme.docs.sidebar.collapseButtonAriaLabel": {
  107. "message": "Collapse sidebar",
  108. "description": "The title attribute for collapse button of doc sidebar"
  109. },
  110. "theme.docs.sidebar.responsiveCloseButtonLabel": {
  111. "message": "Close menu",
  112. "description": "The ARIA label for close button of mobile doc sidebar"
  113. },
  114. "theme.docs.sidebar.responsiveOpenButtonLabel": {
  115. "message": "Open menu",
  116. "description": "The ARIA label for open button of mobile doc sidebar"
  117. },
  118. "theme.docs.versions.unreleasedVersionLabel": {
  119. "message": "This is unreleased documentation for {siteTitle} {versionLabel} version.",
  120. "description": "The label used to tell the user that he's browsing an unreleased doc version"
  121. },
  122. "theme.docs.versions.unmaintainedVersionLabel": {
  123. "message": "This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.",
  124. "description": "The label used to tell the user that he's browsing an unmaintained doc version"
  125. },
  126. "theme.docs.versions.latestVersionSuggestionLabel": {
  127. "message": "For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).",
  128. "description": "The label userd to tell the user that he's browsing an unmaintained doc version"
  129. },
  130. "theme.docs.versions.latestVersionLinkLabel": {
  131. "message": "latest version",
  132. "description": "The label used for the latest version suggestion link label"
  133. },
  134. "theme.common.editThisPage": {
  135. "message": "帮助我们修改文档",
  136. "description": "The link label to edit the current page"
  137. },
  138. "theme.common.headingLinkTitle": {
  139. "message": "Direct link to heading",
  140. "description": "Title for link to heading"
  141. },
  142. "theme.lastUpdated.atDate": {
  143. "message": " on {date}",
  144. "description": "The words used to describe on which date a page has been last updated"
  145. },
  146. "theme.lastUpdated.byUser": {
  147. "message": " by {user}",
  148. "description": "The words used to describe by who the page has been last updated"
  149. },
  150. "theme.lastUpdated.lastUpdatedAtBy": {
  151. "message": "Last updated{atDate}{byUser}",
  152. "description": "The sentence used to display when a page has been last updated, and by who"
  153. },
  154. "theme.common.skipToMainContent": {
  155. "message": "Skip to main content",
  156. "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"
  157. },
  158. "theme.SearchPage.documentsFound.plurals": {
  159. "message": "One document found|{count} documents found",
  160. "description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
  161. },
  162. "theme.SearchPage.existingResultsTitle": {
  163. "message": "Search results for \"{query}\"",
  164. "description": "The search page title for non-empty query"
  165. },
  166. "theme.SearchPage.emptyResultsTitle": {
  167. "message": "Search the documentation",
  168. "description": "The search page title for empty query"
  169. },
  170. "theme.SearchPage.inputPlaceholder": {
  171. "message": "Type your search here",
  172. "description": "The placeholder for search page input"
  173. },
  174. "theme.SearchPage.inputLabel": {
  175. "message": "Search",
  176. "description": "The ARIA label for search page input"
  177. },
  178. "theme.SearchPage.algoliaLabel": {
  179. "message": "Search by Algolia",
  180. "description": "The ARIA label for Algolia mention"
  181. },
  182. "theme.SearchPage.noResultsText": {
  183. "message": "No results were found",
  184. "description": "The paragraph for empty search result"
  185. },
  186. "theme.SearchPage.fetchingNewResults": {
  187. "message": "Fetching new results...",
  188. "description": "The paragraph for fetching new search results"
  189. },
  190. "theme.SearchBar.label": {
  191. "message": "Search",
  192. "description": "The ARIA label and placeholder for search button"
  193. },
  194. "Get Started": {
  195. "message": "快速开始"
  196. },
  197. "theme.PwaReloadPopup.info": {
  198. "message": "New version available",
  199. "description": "The text for PWA reload popup"
  200. },
  201. "theme.PwaReloadPopup.refreshButtonText": {
  202. "message": "Refresh",
  203. "description": "The text for PWA reload button"
  204. },
  205. "theme.PwaReloadPopup.closeButtonAriaLabel": {
  206. "message": "Close",
  207. "description": "The ARIA label for close button of PWA reload popup"
  208. },
  209. "theme.Playground.result": {
  210. "message": "Result",
  211. "description": "The result label of the live codeblocks"
  212. },
  213. "theme.Playground.liveEditor": {
  214. "message": "Live Editor",
  215. "description": "The live editor label of the live codeblocks"
  216. },
  217. "Support for Jvm Modern Frameworks": {
  218. "message": "适用大部分Jvm Web框架"
  219. },
  220. "Focus on Protection of API": {
  221. "message": "面向API的高性能认证鉴权框架"
  222. },
  223. "Extendable": {
  224. "message": "可扩展"
  225. },
  226. "Compatible": {
  227. "message": "原生兼容"
  228. },
  229. "Multi And Fast": {
  230. "message": "多支持与高性能"
  231. },
  232. "Multi Support Samples": {
  233. "message": "大量集成样例"
  234. },
  235. "Benchmark Compare": {
  236. "message": "基准性能测试"
  237. },
  238. "Why Is High Performance": {
  239. "message": "为什么高性能"
  240. },
  241. "Get Started With Sureness within Minutes": {
  242. "message": "几分钟入门Sureness"
  243. },
  244. "Focus on the protection of {restApi}. Based on {rbac}.{br}Provides {authentication} and {authorization}, etc.{br}Extension custom interface is {simple} and really {useful}.": {
  245. "message": "基于 {rbac} (用户-角色-资源)主要关注于对 {restApi} 的安全 (认证与鉴权) 保护。{br} 自定义Subject,Subject Creator,Processor和自定义数据源等良好的{interface}, {sample}和{doc}助急速理解扩展使用。"
  246. },
  247. "Support {WebSockets}, HTTP containers ({Servlet} and {JaxRs}).{br}No framework dependency.{native} supports {SpringBoot}, {SpringWebFlux}, {Javalin}, {Quarkus},{Ktor}, {Solon}, {Jfinal}, {Micronaut} etc.": {
  248. "message": "支持 {WebSockets} ,主流 HTTP 容器 {Servlet} 和 {JaxRs}。{br} 无特定Web框架依赖, 原生支持 {SpringBoot}, {SpringWebFlux}, {Javalin}, {Quarkus}, {Ktor}, {Solon}, {Jfinal}, {Micronaut} 等。"
  249. },
  250. "Supports {jwt}, {basic}, {digest} etc.{br}{dynamic} modification of {perm}.{br}{high} with {tree}.": {
  251. "message": "原生拥有 {jwt}, {basic}, {digest} 等认证方式。{br} 支持{dynamicCn}(动态配置每个 API 谁有权访问)。{br} 基于{treeCn}拥有的{highCn}。"
  252. },
  253. "Sureness allows you to security any server written with jvm modern frameworks such as {Spring}, {SpringBoot}, {SpringWebFlux}, {Javalin}, {Quarkus}, {Micronaut}, {Solon}, {Jfinal} or {Ktor} as well as frameworks for Kotlin.": {
  254. "message": "您可以通过使用Sureness来保护大部分JVM系语言的现代化框架搭建的后台服务,比如:Java 语言的 {Spring}, {SpringBoot}, {SpringWebFlux}, {Javalin}, {Quarkus}, {Micronaut}, {Solon}, {Jfinal} 和 Kotlin 语言的 {Ktor}."
  255. },
  256. "The essence of Sureness is to use {interceptor}(like servlet filter or Spring interceptor) to intercept all rest requests for authenticating and authorizing.{br}So no matter any framework, as long as it has a interceptor, it can integrate with sureness. Sureness uses {handling}, {checkIn} will return {SubjectSum}(user information) when auth success, or throw different types of auth exceptions when auth error.": {
  257. "message": "Sureness的本质是使用{interceptor}(如 servlet filter or Spring interceptor)拦截所有API请求对其认证鉴权判断。{br} 所以对于任何Web框架,只要其支持拦截器{interceptor}, 就能轻松和Sureness集成。Sureness使用异常处理流程即{handling}, {checkIn} 方法会在认证鉴权成功后返回带有用户信息的 {SubjectSum} 对象,但认证鉴权失败时抛出不同类型的异常,用户根据这些异常来继续后面的流程。"
  258. },
  259. "{Benchmark} test shows Sureness to lose 0.026ms performance compared to frameless application, Shiro lose 0.088ms, Spring Security lose 0.116ms.{br}In contrast, Sureness basically does not consume performance, and the performance (TPS loss) is {times3} that of Shiro and {times4} that of Spring Security.{br}{increases}.": {
  260. "message": "基准测试显示 Sureness 对比无权限框架应用损耗 0.026ms 性能,Shiro 损耗 0.088ms,Spring Security 损耗 0.116ms,相比之下 Sureness 性能(参考TPS损耗)是 Shiro 的 {times3cn},Spring Security 的 {times4cn}。{br}{increaseCn}。"
  261. },
  262. "In a large number of requests, we found that the {linear} of the {filter} is a performance bottleneck. {br}So we used a {tree} instead of {ant}.{br}Practice has proved that it is very {effective}.": {
  263. "message": "在大量的请求和过滤链匹配下,我们发现主要的性能瓶颈在{linearCn}这。{br} 所以我们使用了{treeCn}来代替其它安全框架常用的{antCn}。{br} 实践效果证明这有效,提升了{effCn}。"
  264. },
  265. "We provide many tutorials and samples, you can refer to them to builda complete permission project within 10 minutes.{br}Have Fun!": {
  266. "message": "我们提供了很多教程和集成样例,您可以参考其中在10分钟之内使用 Sureness 做一个完整功能的认证鉴权项目。{br} Have Fun!"
  267. },
  268. "Friend Links": {
  269. "message": "友情链接"
  270. },
  271. "Media Partners": {
  272. "message": "合作媒体"
  273. }
  274. }