当前位置: 首页 > article >正文

xwiki的中文国际化

https://www.xwiki.org/xwiki/bin/view/Documentation/DevGuide/Tutorials/InternationalizingApplications/

首先启用中文支持(参考此网页)
到Wiki的管理界面,进入Localization,在Supported Languages和Default Language里填zh,为方便起见Multilingual选No。
第一步之后,大部分界面文字已经变成中文。但还是有不少没有汉化,或者汉化得不准。
然后在xwiki/WEB-INF/classes下增加ApplicationResources_zh.properties ,这个文件的key可以参考 WEB-INF/lib/xwiki-oldcore-.jar中的ApplicationResources_zh.properties中的,以及xar插件的Translations.zh.xml文件中的。

admin.users=\u7528\u6237
admin.users.description=\u7ba1\u7406\u6b64\u7ef4\u57fa\u4e2d\u7684\u7528\u6237\uff1a\u6dfb\u52a0\u3001\u5220\u9664\u3001\u4fee\u6539\u7528\u6237\u8d44\u6599\u3002
admin.groups=\u7528\u6237\u7ec4
admin.groups.description=\u7ba1\u7406\u7528\u6237\u7ec4\uff1a\u6dfb\u52a0\u6216\u5220\u9664\u7ec4\uff0c\u6216\u66f4\u6539\u7ec4\u6210\u5458\u3002
admin.registration=\u6ce8\u518c\u8bbe\u7f6e
admin.registration.description=\u7ba1\u7406\u7528\u6237\u6ce8\u518c\u8bbe\u7f6e\u3002
admin.rights=\u6743\u9650
admin.rights.description=\u7ba1\u7406\u7528\u6237\u7ec4\u548c\u7528\u6237\u6743\u9650\uff1a\u63a7\u5236\u54ea\u4e9b\u4eba\u53ef\u4ee5\u67e5\u770b\u3001\u7f16\u8f91\u548c\u5220\u9664\u9875\u9762\u3002
admin.pagerights=\u9875\u9762\u6743\u9650
admin.pagerights.description=\u7ba1\u7406\u7528\u6237\u7ec4\u548c\u7528\u6237\u6743\u9650\uff1a\u63a7\u5236\u54ea\u4e9b\u4eba\u53ef\u4ee5\u67e5\u770b\u3001\u7f16\u8f91\u548c\u5220\u9664\u9875\u9762\u3002\u4e0d\u5f71\u54cd\u5176\u5b50\u9875\u9762\u3002
admin.pagerights.info=\u8fd9\u4e9b\u6743\u9650\u4ec5\u9002\u7528\u4e8e\u6b64\u9875\u9762\u3002
admin.pagerights.infoNonTerminalDoc=\u5b83\u4eec\u4e0d\u5f71\u54cd\u5176{0}\u5b50\u9875\u9762{1}\u3002
admin.pageandchildrenrights=\u9875\u9762\u53ca\u5b50\u9875\u9762\u6743\u9650
admin.pageandchildrenrights.description=\u7ba1\u7406\u7528\u6237\u7ec4\u548c\u7528\u6237\u6743\u9650\uff1a\u63a7\u5236\u54ea\u4e9b\u4eba\u53ef\u4ee5\u67e5\u770b\u3001\u7f16\u8f91\u548c\u5220\u9664\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762\u3002
admin.pageandchildrenrights.info=\u8fd9\u4e9b\u6743\u9650\u9002\u7528\u4e8e\u6b64\u9875\u9762\u53ca\u5176{0}\u6240\u6709{1}\u5b50\u9875\u9762{2}{3}\u3002
admin.userprofile=\u7528\u6237\u8d44\u6599
admin.userprofile.description=\u7ba1\u7406\u6bcf\u4e2a\u7528\u6237\u4e2a\u4eba\u8d44\u6599\u4e2d\u663e\u793a\u7684\u4fe1\u606f\u3002# Watch \u6309\u94ae\u548c\u6a21\u6001\u5bf9\u8bdd\u6846
notifications.watch.button.title=\u5f53\u524d\u9875\u9762\u7684\u901a\u77e5\u8bbe\u7f6e\uff1a{0} - \u70b9\u51fb\u66f4\u6539
notifications.watch.button.status.notset=\u672a\u8bbe\u7f6e
notifications.watch.button.status.followed=\u5df2\u5173\u6ce8
notifications.watch.button.status.blocked=\u5df2\u5c4f\u853d
notifications.watch.button.status.custom=\u81ea\u5b9a\u4e49notifications.watch.modal.title=\u5f53\u524d\u9875\u9762\u7684\u901a\u77e5\u8bbe\u7f6e
notifications.watch.modal.description.options=\u4f60\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u9009\u9879\u66f4\u6539\u5f53\u524d\u7684\u901a\u77e5\u8bbe\u7f6e\uff1a
notifications.watch.modal.description.ancestoroption=\u4f60\u53ef\u4ee5\u5728 {0} \u66f4\u6539\u901a\u77e5\u8bbe\u7f6e\uff0c\u6216\u8005\u76f4\u63a5\u5728\u5f53\u524d\u9875\u9762\u5e94\u7528\u4ee5\u4e0b\u9009\u9879\uff1anotifications.watch.modal.title.WATCHED_FOR_ALL_EVENTS_AND_FORMATS=\u9875\u9762\u5df2\u5173\u6ce8\u7684\u901a\u77e5\u8bbe\u7f6e
notifications.watch.modal.description.WATCHED_FOR_ALL_EVENTS_AND_FORMATS=\u4f60\u6b63\u5728\u5173\u6ce8\u6b64\u9875\u9762\uff1a\u4f60\u5c06\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u7684\u901a\u77e5\u3002notifications.watch.modal.title.WATCHED_BY_ANCESTOR_FOR_ALL_EVENTS_AND_FORMATS=\u901a\u8fc7\u7236\u7ea7\u5173\u6ce8\u9875\u9762\u7684\u901a\u77e5\u8bbe\u7f6e
notifications.watch.modal.description.WATCHED_BY_ANCESTOR_FOR_ALL_EVENTS_AND_FORMATS=\u4f60\u901a\u8fc7\u4e0a\u7ea7\u5728\u5176\u5c42\u7ea7\u4e2d\u5173\u6ce8\u6b64\u9875\u9762\uff1a\u4f60\u5c06\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u7684\u901a\u77e5\u3002notifications.watch.modal.title.WATCHED_WITH_CHILDREN_FOR_ALL_EVENTS_AND_FORMATS=\u5173\u6ce8\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762\u7684\u901a\u77e5\u8bbe\u7f6e
notifications.watch.modal.description.WATCHED_WITH_CHILDREN_FOR_ALL_EVENTS_AND_FORMATS=\u4f60\u6b63\u5728\u5173\u6ce8\u6b64\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762\uff1a\u4f60\u5c06\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762\u7684\u901a\u77e5\u3002notifications.watch.modal.title.NOT_SET=\u672a\u8bbe\u7f6e\u5173\u6ce8\u8bbe\u7f6e
notifications.watch.modal.description.NOT_SET=\u4f60\u8fd8\u6ca1\u6709\u4e3a\u5173\u6ce8\u6b64\u9875\u9762\u8bbe\u7f6e\u4efb\u4f55\u901a\u77e5\uff0c\u5e76\u56e0\u6b64\u672a\u5173\u6ce8\u6b64\u9875\u9762\uff1a\u4f60\u5c06\u4e0d\u4f1a\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u7684\u901a\u77e5\u3002notifications.watch.modal.title.BLOCKED_FOR_ALL_EVENTS_AND_FORMATS=\u5c4f\u853d\u9875\u9762\u7684\u901a\u77e5\u8bbe\u7f6e
notifications.watch.modal.description.BLOCKED_FOR_ALL_EVENTS_AND_FORMATS=\u4f60\u5df2\u5ffd\u7565\u6b64\u9875\u9762\uff1a\u4f60\u5c06\u4e0d\u4f1a\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u7684\u901a\u77e5\u3002notifications.watch.modal.title.BLOCKED_BY_ANCESTOR_FOR_ALL_EVENTS_AND_FORMATS=\u901a\u8fc7\u7236\u7ea7\u5ffd\u7565\u9875\u9762\u7684\u901a\u77e5\u8bbe\u7f6e
notifications.watch.modal.description.BLOCKED_BY_ANCESTOR_FOR_ALL_EVENTS_AND_FORMATS=\u4f60\u901a\u8fc7\u4e0a\u7ea7\u5728\u5176\u5c42\u7ea7\u4e2d\u5ffd\u7565\u6b64\u9875\u9762\uff1a\u4f60\u5c06\u4e0d\u4f1a\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u7684\u901a\u77e5\u3002notifications.watch.modal.title.BLOCKED_WITH_CHILDREN_FOR_ALL_EVENTS_AND_FORMATS=\u5ffd\u7565\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762\u7684\u901a\u77e5\u8bbe\u7f6e
notifications.watch.modal.description.BLOCKED_WITH_CHILDREN_FOR_ALL_EVENTS_AND_FORMATS=\u4f60\u5df2\u5ffd\u7565\u6b64\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762\uff1a\u4f60\u5c06\u4e0d\u4f1a\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762\u7684\u901a\u77e5\u3002notifications.watch.modal.title.CUSTOM=\u81ea\u5b9a\u4e49\u7684\u901a\u77e5\u8bbe\u7f6e
notifications.watch.modal.description.CUSTOM=\u4f60\u6b63\u5728\u4e3a\u6b64\u9875\u9762\u4f7f\u7528\u81ea\u5b9a\u4e49\u901a\u77e5\u8bbe\u7f6e\uff1a\u4f60\u53ef\u80fd\u4f1a\u5173\u6ce8\u6216\u5ffd\u7565\u7279\u5b9a\u4e8b\u4ef6\uff0c\u6216\u8005\u6307\u5b9a\u7279\u5b9a\u7684\u901a\u77e5\u901a\u9053\u3002\u6211\u4eec\u5efa\u8bae\u4f60\u4ece\u4e2a\u4eba\u8d44\u6599\u4e2d\u68c0\u67e5\u4f60\u7684\u901a\u77e5\u8bbe\u7f6e\u3002notifications.watch.modal.option.watchpage.title=\u5173\u6ce8\u5f53\u524d\u9875\u9762
notifications.watch.modal.option.watchpage.hint=\u4f60\u5c06\u4ec5\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u7684\u901a\u77e5\u3002
notifications.watch.modal.option.watchspace.title=\u5173\u6ce8\u5f53\u524d\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762
notifications.watch.modal.option.watchspace.hint=\u4f60\u5c06\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762\u7684\u901a\u77e5\u3002
notifications.watch.modal.option.watchwiki.title=\u5173\u6ce8\u6574\u4e2awiki
notifications.watch.modal.option.watchwiki.hint=\u6b64\u9009\u9879\u4e0d\u4ec5\u5f71\u54cd\u5f53\u524d\u9875\u9762\u6216\u7a7a\u95f4\uff1a\u4f60\u5c06\u6536\u5230wiki\u4e2d\u7684\u4efb\u4f55\u9875\u9762\u7684\u901a\u77e5\u3002notifications.watch.modal.option.blockpage.title=\u5c4f\u853d\u5f53\u524d\u9875\u9762
notifications.watch.modal.option.blockpage.hint=\u4f60\u5c06\u4ec5\u5c4f\u853d\u6b64\u9875\u9762\u7684\u901a\u77e5\u3002
notifications.watch.modal.option.blockspace.title=\u5c4f\u853d\u5f53\u524d\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762
notifications.watch.modal.option.blockspace.hint=\u4f60\u5c06\u4ec5\u5c4f\u853d\u6b64\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762\u7684\u901a\u77e5\u3002notifications.watch.modal.option.unwatchpage.title=\u53d6\u6d88\u5173\u6ce8\u5f53\u524d\u9875\u9762
notifications.watch.modal.option.unwatchpage.hint=\u4f60\u5c06\u505c\u6b62\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u7684\u901a\u77e5\u3002
notifications.watch.modal.option.unwatchspace.title=\u53d6\u6d88\u5173\u6ce8\u5f53\u524d\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762
notifications.watch.modal.option.unwatchspace.hint=\u4f60\u5c06\u505c\u6b62\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762\u7684\u901a\u77e5\u3002
notifications.watch.modal.option.unwatchwiki.title=\u53d6\u6d88\u5173\u6ce8\u6574\u4e2awiki
notifications.watch.modal.option.unwatchwiki.hint=\u6b64\u9009\u9879\u4e0d\u4ec5\u5f71\u54cd\u5f53\u524d\u9875\u9762\u6216\u7a7a\u95f4\uff1a\u4f60\u5c06\u505c\u6b62\u6536\u5230wiki\u4e2d\u7684\u4efb\u4f55\u9875\u9762\u7684\u901a\u77e5\u3002notifications.watch.modal.option.unblockpage.title=\u53d6\u6d88\u5c4f\u853d\u5f53\u524d\u9875\u9762
notifications.watch.modal.option.unblockpage.hint=\u4f60\u5c06\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u7684\u901a\u77e5\u3002
notifications.watch.modal.option.unblockspace.title=\u53d6\u6d88\u5c4f\u853d\u5f53\u524d\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762
notifications.watch.modal.option.unblockspace.hint=\u4f60\u5c06\u6536\u5230\u5173\u4e8e\u6b64\u9875\u9762\u53ca\u5176\u5b50\u9875\u9762\u7684\u901a\u77e5\u3002
notifications.watch.modal.option.unblockwiki.title=\u53d6\u6d88\u5c4f\u853d\u6574\u4e2awiki
notifications.watch.modal.option.unblockwiki.hint=\u6b64\u9009\u9879\u4e0d\u4ec5\u5f71\u54cd\u5f53\u524d\u9875\u9762\u6216\u7a7a\u95f4\uff1a\u4f60\u5c06\u7ed3\u675f\u5ffd\u7565wiki\u4e2d\u7684\u4efb\u4f55\u9875\u9762\u7684\u901a\u77e5\u3002notifications.watch.modal.close=\u4e0d\u4fdd\u5b58\u5173\u95ed
notifications.watch.modal.savechanges=\u4fdd\u5b58\u66f4\u6539
notifications.watch.modal.gotosettings=\u7ba1\u7406\u6240\u6709\u901a\u77e5\u8bbe\u7f6e# Template\u6a21\u677f
xe.monitor.disabled=\u76d1\u63a7\u63d2\u4ef6\u5df2\u7981\u7528\u3002\u8bf7\u901a\u8fc7\u5728 <tt>xwiki.cfg</tt> \u914d\u7f6e\u6587\u4ef6\u4e2d\u8bbe\u7f6e <tt>xwiki.monitor=1</tt> \u6765\u542f\u7528\u5b83\u3002
xe.templateprovider.name=\u63d0\u4f9b\u8005\u540d\u79f0
xe.templateprovider.name.example=\u793a\u4f8b\uff1a\u6211\u7684\u6a21\u677f\u63d0\u4f9b\u8005
xe.templateprovider.templatename=\u6a21\u677f\u540d\u79f0
xe.templateprovider.templatename.example=\u793a\u4f8b\uff1aMy Template
xe.templateprovider.templatename.info=\u60a8\u53ef\u4ee5\u586b\u5165\u4e00\u4e2a\u7ffb\u8bd1\u952e\u4ee5\u4f7f\u6b64\u6a21\u677f\u540d\u79f0\u652f\u6301\u56fd\u9645\u5316\u3002
xe.templateprovider.template=\u8981\u4f7f\u7528\u7684\u6a21\u677f
xe.templateprovider.template.edit=\u7f16\u8f91
xe.templateprovider.template.example=\u793a\u4f8b\uff1aXWiki.MyTemplate
xe.templateprovider.spaces=\u6a21\u677f\u5fc5\u987b\u53ef\u8bbf\u95ee\u7684\u4f4d\u7f6e\u5217\u8868
xe.templateprovider.spaces.all=\u6b64\u6a21\u677f\u53ef\u5728\u4efb\u4f55\u4f4d\u7f6e\u8bbf\u95ee
xe.templateprovider.spaces.info=\u5982\u679c\u6ca1\u6709\u9009\u62e9\u4efb\u4f55\u4f4d\u7f6e\uff0c\u5219\u6b64\u6a21\u677f\u53ef\u5728\u4efb\u4f55\u4f4d\u7f6e\u8bbf\u95ee
xe.templateprovider.backtoadmin=\u67e5\u770b\u6240\u6709\u6a21\u677f
xe.templateprovider.action=\u521b\u5efa\u65f6\u7684\u52a8\u4f5c
xe.templateprovider.action.info=\u5728\u6309\u4e0b\u521b\u5efa\u6309\u94ae\u65f6\u8981\u6267\u884c\u7684\u64cd\u4f5c\uff0c\u53ef\u4ee5\u5728\u6b64\u914d\u7f6e\u65b0\u9875\u9762\u4fdd\u5b58\u540e\u518d\u6253\u5f00\u7f16\u8f91\u8fd8\u662f\u76f4\u63a5\u6253\u5f00\u7f16\u8f91\u3002
xe.templateprovider.terminal=\u7ec8\u7aef\u9875\u9762
xe.templateprovider.terminal.hint=\u5728\u4f7f\u7528\u6b64\u6a21\u677f\u63d0\u4f9b\u8005\u65f6\uff0c\u662f\u5426\u9ed8\u8ba4\u521b\u5efa\u7ec8\u7aef\u6587\u6863\u3002
xe.templateprovider.backtoadmin=\u67e5\u770b\u6240\u6709\u6a21\u677f
xe.templateprovider.edit=\u7f16\u8f91\u6b22\u8fce\u4fe1\u606f

unicode转化可以使用java的native2ascii 命令

# 中文转Unicodenative2ascii -encoding UTF-8 ApplicationResources.properties ApplicationResources_zh.properties
# 反向转换(Unicode转本地字符)native2ascii -reverse -encoding UTF-8 ApplicationResources_zh.properties messages_zh_restored.properties

重启xwiki生效。

还有通过页面实现翻译的功能Define a Document Bundle。

参考

https://blog.csdn.net/DViewer/article/details/52194822

相关文章:

xwiki的中文国际化

https://www.xwiki.org/xwiki/bin/view/Documentation/DevGuide/Tutorials/InternationalizingApplications/ 首先启用中文支持&#xff08;参考此网页&#xff09; 到Wiki的管理界面&#xff0c;进入Localization&#xff0c;在Supported Languages和Default Language里填zh&…...

多模态大语言模型arxiv论文略读(七)

MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文标题&#xff1a;MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文作者&#xff1a;Zhiyuan Zhao, Linke Ouyang, Bin Wang, Siyuan Huang, Pan Zhang, Xiaoyi Dong, Jiaqi Wang,…...

【操作系统(Linux)】——生产者消费者同步互斥模型

✅ 一、程序功能概述 我们将做的&#xff1a;实现一个经典的「生产者-消费者问题」多线程同步模型的案例&#xff0c;主要用到 循环缓冲区 POSIX 信号量 sem_t pthread 多线程库&#xff0c;非常适合理解并发控制、线程通信和缓冲区管理。 案例目标&#xff1a;通过多个生产…...

SQL ③-基本语法

SQL基本语法 表操作 创建表 CREATE TABLE table_name (column1 datatype constraint,column2 datatype constraint,column3 datatype constraint,... );删除表 DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name...];TEMPORARY&#xff1a;表示临时表&#xff…...

【Pandas】pandas DataFrame bool

Pandas2.2 DataFrame Conversion 方法描述DataFrame.astype(dtype[, copy, errors])用于将 DataFrame 中的数据转换为指定的数据类型DataFrame.convert_dtypes([infer_objects, …])用于将 DataFrame 中的数据类型转换为更合适的类型DataFrame.infer_objects([copy])用于尝试…...

2025年3月全国青少年软件编程等级考试(Python五级)试卷及答案

2025.03电子学会 全国青少年软件编程等级考试&#xff08;Python五级&#xff09;试卷 一、单选题 1.以下哪个选项不是Python中的推导式&#xff1f;( ) A.列表推导式 B.字典推导式 C.集合推导式 D.元组推导式 2.以下Python代码的返回结果是&#xff1f;( ) [x**2 for…...

esp32cam -> 服务器 | 手机 -> 服务器 直接服务器传输图片

服务器先下载python &#xff1a; 一、Python环境搭建&#xff08;CentOS/Ubuntu通用&#xff09; 一条一条执行 安装基础依赖 # CentOS sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel # Ubuntu sudo apt update && sudo apt install b…...

豆浆机语音提示芯片方案:基于可远程在线更换语音的WT2003H-16S芯片

随着智能家居概念的普及&#xff0c;消费者对家电产品的智能化、便捷性提出了更高要求。豆浆机作为厨房常用电器&#xff0c;其操作便捷性和用户体验直接影响市场竞争力。传统豆浆机多依赖指示灯或简单蜂鸣器提示用户操作状态&#xff0c;信息传递单一且无法满足个性化需求。 在…...

解密工业控制柜:认识关键硬件(PLC)

前言 作为一名视觉开发工程师&#xff0c;我们不仅要做到做好自己的工作&#xff0c;我们更需要在工业现场学习更多知识&#xff0c;最近网上流传很多&#xff0c;“教会徒弟&#xff0c;饿死师傅”&#xff1b;在自动化行业中&#xff0c;在项目下来很忙的时候&#xff0c;我们…...

【嵌入式系统设计师】知识点:第11 章 嵌入式系统设计案例分析

提示:“软考通关秘籍” 专栏围绕软考展开,全面涵盖了如嵌入式系统设计师、数据库系统工程师、信息系统管理工程师等多个软考方向的知识点。从计算机体系结构、存储系统等基础知识,到程序语言概述、算法、数据库技术(包括关系数据库、非关系型数据库、SQL 语言、数据仓库等)…...

记录一次SSH和SFTP服务分离后文件上传权限问题

开门见山 因服务器安全需求&#xff0c;需要将ssh和sftp服务分离&#xff0c;并创建一个用户组sftpuser::sftp&#xff0c;根目录权限均正常。用户sftpuser仅能通过sftp访问服务器&#xff0c;不能通过ssh访问服务器。但是&#xff0c;ssh应用用户appuser::sftp通过sftp建立链…...

【深度解析】SkyWalking 10.2.0版本安全优化与性能提升实战指南

前言 Apache SkyWalking 作为云原生可观测性领域的佼佼者&#xff0c;在微服务架构监控中扮演着至关重要的角色。然而&#xff0c;官方版本在安全性、镜像体积和功能扩展方面仍有优化空间。本文将分享一套完整的 SkyWalking 10.2.0 版本优化方案&#xff0c;从安全漏洞修复到镜…...

面向大模型的开发框架LangChain

这篇文章会带给你 如何使用 LangChain&#xff1a;一套在大模型能力上封装的工具框架如何用几行代码实现一个复杂的 AI 应用面向大模型的流程开发的过程抽象 文章目录 这篇文章会带给你写在前面LangChain 的核心组件文档&#xff08;以 Python 版为例&#xff09;模型 I/O 封装…...

pip install pytrec_eval失败的解决方案

1、问题描述 在使用华为云 notebook 的时候&#xff0c;想要&#xff1a; !pip install transformer结果失败&#xff0c;阅读报错后&#xff0c;疑似是 pytrec_eval 库的下载问题。 于是&#xff0c;单独尝试&#xff1a; !pip install pytrec_eval发现确实是这个库安装失…...

Easysearch VS Opensearch 数据写入与存储性能对比

本文记录 Easysearch 和 Opensearch 数据写入和数据存储方面的性能对比。 准备 压测工具&#xff1a;INFINI Loadgen 对比版本&#xff1a; Easysearch 1.11.1&#xff08;lucene 8.11.4&#xff09;Opensearch 2.19.1&#xff08;lucene 9.12.1&#xff09; 节点 JVM 配置…...

【Proteus仿真】【32单片机-A009】矩阵按键系统设计

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 联系作者 一、主要功能 1、按键值与LCD显示 2、矩阵按键 二、使用步骤 系统运行后&#xff0c;LCD1602显示当前的按键值&#xff1b; 当按下不同按键后显示屏更新对应的按键值。 三、硬件资…...

考研单词笔记 2025.04.09

act v表现&#xff0c;行动&#xff0c;做事&#xff0c;扮演&#xff0c;充当&#xff0c;担任&#xff0c;起作用n行为&#xff0c;行动&#xff0c;法案&#xff0c;法令 action n行为&#xff0c;行动 behave v表现&#xff0c;行事&#xff0c;守规矩&#xff0c;举止端…...

用一个实际例子快速理解MCP应用的工作步骤

已经有很多的文章介绍MCP server&#xff0c;MCP Client工作原理&#xff0c;这里不做太多介绍。但是很多介绍都只是侧重介绍概念&#xff0c;实际的工作原理理解起来对初学者还是不太友好。本文以一个智能旅游咨询系统为例&#xff0c;详细说明在利用 Model Context Protocol&…...

TCP 和 UDP 可以使用同一个端口吗?

TCP 和 UDP 可以使用同一个端口吗&#xff1f; 前言 在深入探讨 TCP 和 UDP 是否可以使用同一个端口之前&#xff0c;我们首先需要理解网络通信的基本原理。网络通信是一个复杂的过程&#xff0c;涉及到多个层次的协议和机制。在 OSI 模型中&#xff0c;传输层是负责端到端数…...

探索原生JS的力量:自定义实现类似于React的useState功能

1.写在前面 本方案特别适合希望在历史遗留的原生JavaScript项目中实现简单轻量级数据驱动机制的开发者。无需引入任何框架或第三方库&#xff0c;即可按照此方法封装出类似于React中useState的功能&#xff0c;轻松为项目添加状态管理能力&#xff0c;既保持了项目的轻量性&am…...

探索 Shell 中的扩展通配符:从 Bash 到 Zsh

在 Unix 系统中&#xff0c;通配符&#xff08;globbing&#xff09;是 shell 的核心功能&#xff0c;用于快速匹配文件或目录。基础通配符&#xff08;如 *、?、[]&#xff09;虽简单实用&#xff0c;但在复杂场景下往往力不从心。为此&#xff0c;许多现代 shell 提供了“扩…...

封装方法的辨析

equals //字符串 str1.equals(str2); //list的两个实现类 list1.equals(list2); //map的两个实现类 //比较所有的键值对是否相同 map1.equals(map2); //数组&#xff08;包括string类型&#xff09; //比较内容是否相同 Arrays.equals(array1, array2); contains 基本都有…...

[leetcode]判断质数

一.判断质数 1.1 什么是质数 质数&#xff08;素数&#xff09;就是只可以被自己和1整除的数叫做素数/质数 1.2判断方法 #include<bits/stdc.h> using namespace std; bool isPrime(int num) { if(num < 1) { return false;//a number less of …...

在Flutter中使用BottomNavigationBar和IndexedStack可以实现一个功能完整的底部导航栏

在Flutter中&#xff0c;使用BottomNavigationBar和IndexedStack可以实现一个功能完整的底部导航栏。BottomNavigationBar用于显示底部的导航按钮&#xff0c;而IndexedStack则用于管理页面的切换&#xff0c;确保每个页面的状态得以保留&#xff08;即页面不会因为切换而重新构…...

HBuilder运行uni-app程序报错【Error: listen EACCES: permission denied 0.0.0.0:5173】

一、错误提示&#xff1a; 当使用HBuilder运行uni-app项目的时候提示了如下错误❌ 15:11:03.089 项目 project 开始编译 15:11:04.404 请注意运行模式下&#xff0c;因日志输出、sourcemap 以及未压缩源码等原因&#xff0c;性能和包体积&#xff0c;均不及发行模式。 15:11:04…...

聊透多线程编程-线程基础-3.C# Thread 如何从非UI线程直接更新UI元素

目录 1. 使用 Control.Invoke 或 Control.BeginInvoke&#xff08;Windows Forms&#xff09; 2. 使用 Dispatcher.Invoke 或 Dispatcher.BeginInvoke&#xff08;WPF&#xff09; 3. 使用 SynchronizationContext 桌面应用程序&#xff08;如 Windows Forms 或 WPF&#xf…...

VMware Fusion Pro 13 for Mac虚拟机

VMware Fusion Pro 13 for Mac虚拟机 文章目录 VMware Fusion Pro 13 for Mac虚拟机一、介绍二、效果下载 一、介绍 VMware Fusion Pro for Mac&#xff0c;是一款mac虚拟机软件&#xff0c;跟Parallels Desktop一样&#xff0c;都可以让你的 Mac 同时运行一个或多个不同的操作…...

7.第二阶段x64游戏实战-string类

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;7.第二阶段x64游戏实战-分析人物属性 string类是字符串类&#xff0c;在计算机中…...

【debug莫名其妙跑飞了】

现象&#xff1a;就是在初始化汇编里跑飞了&#xff0c;也可能运行起来时钟不对 原因&#xff1a;调试器调试程序时会执行reset复位&#xff0c;reset没有正确执行。 细节决定成败&#xff0c;事出反常必有妖&#xff0c;忽略的小卡拉米最后能玩死你啊...

【Git 常用操作指令指南】

一、初始化与配置 1. 设置全局账户信息 git config --global user.name "用户名" # 设置全局用户名 git config --global user.email "邮箱" # 设置全局邮箱 --global 表示全局生效&#xff0c;若需针对单个仓库配置&#xff0c;可省略该参数 2.…...