系统语言切换为英文后,右键菜单里很多项目仍显示中文?一次关于 LaunchServices 本地化注册机制的深挖过程
# [macOS] 系统语言改成英文后,右键菜单里很多项目仍是中文 —— 记录一次对 LaunchServices 本地化机制的深挖(未解)
起因很简单,就是我把 macOS 的系统语言从中文切换成了英文,然后在 Finder 中右键选择文字时,发现菜单里还有一项中文服务:
将文本转为音频
说实话这东西在一堆英文菜单里格外显眼,我本来以为是缓存没刷新,结果越查越离谱……最终没解决,但这个坑我踩得够深,就整理一下发出来,供有类似强迫症的朋友参考。
---
## 🧩 起因 & 表现
系统界面全英文,唯独 Finder 的服务菜单中仍有一项中文服务「将文本转为音频」。这不是自己建的 Automator ,也不是第三方插件,看起来就是系统自带的。
---
## 🔍 排查过程
### 1. ~/Library/Services 没东西
首先排除了用户级 Quick Action 的可能。
### 2. 在 /System/Library/Services/ 下找到了关键文件:
ChineseTextConverterService.app
目录结构正常,里面包含多语言本地化资源:
Contents/Resources/zh.lproj/ServicesMenu.strings
Contents/Resources/en.lproj/ServicesMenu.strings
也就是说,这玩意确实支持英文显示,但我系统语言都切成英文了,它却还是显示中文服务名?很迷。
---
## 🧪 Gemini 推荐我执行了一条命令:
```bash
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
这条命令的作用是强制重建系统的 LaunchServices 数据库,理论上能刷新所有“打开方式”、服务项之类的注册信息。
我当时抱着试试看的态度执行了,没有报错,也没有立刻生效,问题依旧。
但,坑也就此埋下。
⸻
🧨 后续发现:它其实注册了这个服务(并锁定了中文)
我查了系统日志:
log show --predicate 'eventMessage contains "ChineseTextConverterService"' --last 30d
结果显示:
2025-06-08 02:02:41
com.apple.ChineseTextConverterService 被正式注册入系统
也就是说,这条命令其实是“首次激活”了这个原本未注册的系统服务项,注册时使用的是中文资源( zh.lproj ),于是它现在牢牢地以「将文本转为音频」出现在菜单中,无论你系统语言是否为英文。
⸻
❓那这个服务是什么时候写入系统的?
查 .app 文件的创建时间是 2025-05-04 ,结合我现在是 macOS Sequoia 15.5 ,可以合理推测是系统更新中自动部署的。
当时它只是静静地存在,并未被注册为 Finder 服务,直到我执行了那条命令,把它“唤醒”了……
⸻
🧱 崩溃瞬间:打开系统设置 > Keyboard > Services 后我彻底放弃
你以为只有一个中文服务名?
不,还有这些:

这些全部都还是中文,系统语言为英文,Finder 语言为英文,服务却全是中文。
⸻
🚫 尝试过但无效的操作
• 删除 ~/Library/Preferences/com.apple.finder.plist
• 删除 ~/Library/Preferences/com.apple.systempreferences.plist
• 手动编辑 .strings 文件(被 SIP 拦截)
• 新建用户(无效,LaunchServices 是系统级)
• 多次执行 lsregister (只会让更多服务“苏醒”)
• 怀疑人生(有效,但短暂)
⸻
✅ 所学到的冷知识
• macOS 的 LaunchServices 服务名注册是一次性的
• 一旦注册,语言就固定了,以后语言切换不会影响已注册名称
• /System/Library/Services 下很多 .app 是“预部署未激活”的,直到某些动作(或你手贱)触发才注册
• lsregister -r 命令其实就是“全系统服务激活开关”,慎用
• 系统不会回滚注册名,SIP 不允许你改名或清除
⸻
💡 可行的 Workaround (仅供参考)
• 在系统设置 → Keyboard → Services 中,取消勾选“将文本转为音频”
• 用 Automator 自建一个英文名的服务(比如叫 Convert Text to Audio )
我也顺便做了一个 .workflow 模板,如果你想下载,可以留言我发给你。
⸻
❌ 最终结论
这个问题没有解法,除非你抹盘重装一个最初语言为英文的 macOS 系统,才能避免注册为中文服务项。
否则,这些看起来“只是语言显示”的东西,其实是系统注册层面已经写死的。
# [macOS] 系统语言改成英文后,右键菜单里很多项目仍是中文 —— 记录一次对 LaunchServices 本地化机制的深挖(未解)
起因很简单,就是我把 macOS 的系统语言从中文切换成了英文,然后在 Finder 中右键选择文字时,发现菜单里还有一项中文服务:
将文本转为音频
说实话这东西在一堆英文菜单里格外显眼,我本来以为是缓存没刷新,结果越查越离谱……最终没解决,但这个坑我踩得够深,就整理一下发出来,供有类似强迫症的朋友参考。
---
## 🧩 起因 & 表现
系统界面全英文,唯独 Finder 的服务菜单中仍有一项中文服务「将文本转为音频」。这不是自己建的 Automator ,也不是第三方插件,看起来就是系统自带的。
---
## 🔍 排查过程
### 1. ~/Library/Services 没东西
首先排除了用户级 Quick Action 的可能。
### 2. 在 /System/Library/Services/ 下找到了关键文件:
ChineseTextConverterService.app
目录结构正常,里面包含多语言本地化资源:
Contents/Resources/zh.lproj/ServicesMenu.strings
Contents/Resources/en.lproj/ServicesMenu.strings
也就是说,这玩意确实支持英文显示,但我系统语言都切成英文了,它却还是显示中文服务名?很迷。
---
## 🧪 Gemini 推荐我执行了一条命令:
```bash
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
这条命令的作用是强制重建系统的 LaunchServices 数据库,理论上能刷新所有“打开方式”、服务项之类的注册信息。
我当时抱着试试看的态度执行了,没有报错,也没有立刻生效,问题依旧。
但,坑也就此埋下。
⸻
🧨 后续发现:它其实注册了这个服务(并锁定了中文)
我查了系统日志:
log show --predicate 'eventMessage contains "ChineseTextConverterService"' --last 30d
结果显示:
2025-06-08 02:02:41
com.apple.ChineseTextConverterService 被正式注册入系统
也就是说,这条命令其实是“首次激活”了这个原本未注册的系统服务项,注册时使用的是中文资源( zh.lproj ),于是它现在牢牢地以「将文本转为音频」出现在菜单中,无论你系统语言是否为英文。
⸻
❓那这个服务是什么时候写入系统的?
查 .app 文件的创建时间是 2025-05-04 ,结合我现在是 macOS Sequoia 15.5 ,可以合理推测是系统更新中自动部署的。
当时它只是静静地存在,并未被注册为 Finder 服务,直到我执行了那条命令,把它“唤醒”了……
⸻
🧱 崩溃瞬间:打开系统设置 > Keyboard > Services 后我彻底放弃
你以为只有一个中文服务名?
不,还有这些:

这些全部都还是中文,系统语言为英文,Finder 语言为英文,服务却全是中文。
⸻
🚫 尝试过但无效的操作
• 删除 ~/Library/Preferences/com.apple.finder.plist
• 删除 ~/Library/Preferences/com.apple.systempreferences.plist
• 手动编辑 .strings 文件(被 SIP 拦截)
• 新建用户(无效,LaunchServices 是系统级)
• 多次执行 lsregister (只会让更多服务“苏醒”)
• 怀疑人生(有效,但短暂)
⸻
✅ 所学到的冷知识
• macOS 的 LaunchServices 服务名注册是一次性的
• 一旦注册,语言就固定了,以后语言切换不会影响已注册名称
• /System/Library/Services 下很多 .app 是“预部署未激活”的,直到某些动作(或你手贱)触发才注册
• lsregister -r 命令其实就是“全系统服务激活开关”,慎用
• 系统不会回滚注册名,SIP 不允许你改名或清除
⸻
💡 可行的 Workaround (仅供参考)
• 在系统设置 → Keyboard → Services 中,取消勾选“将文本转为音频”
• 用 Automator 自建一个英文名的服务(比如叫 Convert Text to Audio )
我也顺便做了一个 .workflow 模板,如果你想下载,可以留言我发给你。
⸻
❌ 最终结论
这个问题没有解法,除非你抹盘重装一个最初语言为英文的 macOS 系统,才能避免注册为中文服务项。
否则,这些看起来“只是语言显示”的东西,其实是系统注册层面已经写死的。
网站开发小白设想了一个存储在 s3 上的静态照片/视频网站,仅供家人访问,请问是否可行?
我从来没做过网站开发,最近在看 s3 的文档的时候,发现可以直接在上头 host 静态网站,同时可以用 policy 限制访问白名单,于是有了一个构建照片/视频网站的偷懒的想法。
s3 的结构大致是这样的:
.../my-static-website/webpage/ -> 这里存储的是网页的 html 和脚本(我也没做过网站开发,不知道需要多少脚本)
.../my-static-website/photo/ -> 这里存储的是所有照片和视频,底下还有多余的 yyyy-mm-dd 前缀,比如说.../my-static-website/photo/2025-06-01/photo1.jpg
用白名单策略来限制家人的访问,需要他们的公开 ip 。我感觉这里比较粗糙,因为他们的 ip 很可能经常变化,但是反正就那几个人,直接让他们访问一个给出访问者公网 ip 的网站,把结果告诉我,我手动修改策略就行了。具体如何自动化还没想好,我觉得如果做成手机 apk ,让 app 检测手机的公网 ip ,然后自动更新策略,也应该可行。
主页的内容大致是:
就是一张最简单的网页,上面罗列了每个 yyyy-mm-dd 前缀,点进去可以访问一个直接动态生成的、以 yyyy-mm-dd.html 为名字的网页,上面罗列了每个.../my-static-website/photo/yyyy-mm-dd/ 目录下面的图片和视频的缩略图(每一天应该不会超过 10 个物体),再点就可以直接在浏览器中打开图片和视频。
yyyy-mm-dd 的列表应该可以从 s3 里的前缀中获取,至于如何自动生成网页,我从来没开发过网页,但是想来应该不会太难,可能要写点 javascript 。
整个“产品”就是这样了。使用者不会超过 10 人,他们对界面也无所谓,最重要的是能看到儿子照片和视频。大家觉得可行性如何?安全性的话,如果白名单策略有效的话,还会有什么漏洞吗?
多谢!
我从来没做过网站开发,最近在看 s3 的文档的时候,发现可以直接在上头 host 静态网站,同时可以用 policy 限制访问白名单,于是有了一个构建照片/视频网站的偷懒的想法。
s3 的结构大致是这样的:
.../my-static-website/webpage/ -> 这里存储的是网页的 html 和脚本(我也没做过网站开发,不知道需要多少脚本)
.../my-static-website/photo/ -> 这里存储的是所有照片和视频,底下还有多余的 yyyy-mm-dd 前缀,比如说.../my-static-website/photo/2025-06-01/photo1.jpg
用白名单策略来限制家人的访问,需要他们的公开 ip 。我感觉这里比较粗糙,因为他们的 ip 很可能经常变化,但是反正就那几个人,直接让他们访问一个给出访问者公网 ip 的网站,把结果告诉我,我手动修改策略就行了。具体如何自动化还没想好,我觉得如果做成手机 apk ,让 app 检测手机的公网 ip ,然后自动更新策略,也应该可行。
主页的内容大致是:
就是一张最简单的网页,上面罗列了每个 yyyy-mm-dd 前缀,点进去可以访问一个直接动态生成的、以 yyyy-mm-dd.html 为名字的网页,上面罗列了每个.../my-static-website/photo/yyyy-mm-dd/ 目录下面的图片和视频的缩略图(每一天应该不会超过 10 个物体),再点就可以直接在浏览器中打开图片和视频。
yyyy-mm-dd 的列表应该可以从 s3 里的前缀中获取,至于如何自动生成网页,我从来没开发过网页,但是想来应该不会太难,可能要写点 javascript 。
整个“产品”就是这样了。使用者不会超过 10 人,他们对界面也无所谓,最重要的是能看到儿子照片和视频。大家觉得可行性如何?安全性的话,如果白名单策略有效的话,还会有什么漏洞吗?
多谢!
yb 上最喜欢的两位博主,他们的交流看起来真的很轻松愉快
https://www.youtube.com/watch?v=9FimiWuexPg
这两位博主经常在一起视频交流沟通学习,而且还会邀请其他人参与,yb 经常更新视频,沟通在做的内容和遇到的问题, 两位好像是不同国家的,德国和爱尔兰.
经营了一个自动化开发的网站 https://www.the-automator.com/ 好像在一起承接做项目
这种轻松愉快交流学习 好像我只在大学实验室里体会到过. 工作后已经没有这种感觉了.
不晓得国内有没有类似的公开视频,感觉很有意思.
https://www.youtube.com/watch?v=9FimiWuexPg
这两位博主经常在一起视频交流沟通学习,而且还会邀请其他人参与,yb 经常更新视频,沟通在做的内容和遇到的问题, 两位好像是不同国家的,德国和爱尔兰.
经营了一个自动化开发的网站 https://www.the-automator.com/ 好像在一起承接做项目
这种轻松愉快交流学习 好像我只在大学实验室里体会到过. 工作后已经没有这种感觉了.
不晓得国内有没有类似的公开视频,感觉很有意思.
chrome 出现这种 亮屏/白屏 是因为 hdr 吗?
https://i.imgur.com/ys0tfja.png
我看到这个网站的 https://www.hdrify.com/ hdr 图片的效果 跟之前 chrome 经常出现的效果类似.
https://i.imgur.com/ys0tfja.png
我看到这个网站的 https://www.hdrify.com/ hdr 图片的效果 跟之前 chrome 经常出现的效果类似.
永久免费无限流量 VPS, 1000 星开源项目就可申领
## 申请条件
要获得 DartNode 的免费 VPS ,你的开源项目需要满足以下条件:
- 开源项目:项目必须是公开的开源项目。
- GitHub 星数:项目在 GitHub 上需要拥有至少 1000 个星标(昨天还只需 100 星)。
## 申请流程
申请过程非常简单,且采用自动审核,审核结果几乎是秒出。以下是具体步骤:
- 第一步:在项目中添加 DartNode 标志
在你的项目 README 文件中添加 DartNode 的标志( logo )。
比如我的 https://github.com/Sjj1024/PakePlus
确保标志链接到 DartNode 的主页( https://dartnode.com )。
以下是添加到 README 的示例代码:
```shell
[]( https://dartnode.com "Powered by DartNode - Free VPS for Open Source")
```
- 第二步:注册账号
更新了自己开源项目的 readme 以后,访问 https://dartnode.com/
可以使用以下任一方式注册,我选择的是用谷歌登录.
- 第三步:提交项目链接
访问 DartNode 网站,进入免费 VPS 申请页面。
在申请表中填写你的项目 GitHub URL 。
注意:项目 URL 只能提交一次,提交前请仔细检查。如果填错,需要注册新账号重新提交。
- 第四步:填写地址信息
在提交了项目链接以后,会跳转要求你输入街道地址信息,这里需要注意,在输入地址时下拉框中会显示很多模糊搜索的地址,不要去点击,它们网站的自动填充貌似有问题,自己输入一个街道地址就行。
根据要求填写你的地址信息。提交后,系统会自动审核,通常只需几分钟。
- 第五步:等待审核通过
我已经领领到了哦

## 申请条件
要获得 DartNode 的免费 VPS ,你的开源项目需要满足以下条件:
- 开源项目:项目必须是公开的开源项目。
- GitHub 星数:项目在 GitHub 上需要拥有至少 1000 个星标(昨天还只需 100 星)。
## 申请流程
申请过程非常简单,且采用自动审核,审核结果几乎是秒出。以下是具体步骤:
- 第一步:在项目中添加 DartNode 标志
在你的项目 README 文件中添加 DartNode 的标志( logo )。
比如我的 https://github.com/Sjj1024/PakePlus
确保标志链接到 DartNode 的主页( https://dartnode.com )。
以下是添加到 README 的示例代码:
```shell
[]( https://dartnode.com "Powered by DartNode - Free VPS for Open Source")
```
- 第二步:注册账号
更新了自己开源项目的 readme 以后,访问 https://dartnode.com/
可以使用以下任一方式注册,我选择的是用谷歌登录.
- 第三步:提交项目链接
访问 DartNode 网站,进入免费 VPS 申请页面。
在申请表中填写你的项目 GitHub URL 。
注意:项目 URL 只能提交一次,提交前请仔细检查。如果填错,需要注册新账号重新提交。
- 第四步:填写地址信息
在提交了项目链接以后,会跳转要求你输入街道地址信息,这里需要注意,在输入地址时下拉框中会显示很多模糊搜索的地址,不要去点击,它们网站的自动填充貌似有问题,自己输入一个街道地址就行。
根据要求填写你的地址信息。提交后,系统会自动审核,通常只需几分钟。
- 第五步:等待审核通过
我已经领领到了哦

活钱 04 | 5 大理财底线+3 个投资原则
[**🔗 刀刀简介**]( https://ddlink.cc/daodao)








[**🔗 刀刀简介**]( https://ddlink.cc/daodao)








我做了一个可以复制网页元素的插件
下载地址: https://chromewebstore.google.com/detail/copy-ui-%E2%80%93-export-html-tai/dfejfkofhnkcplhhhddfdlifcpfkcakc
做这个插件的初衷是为了快速做出好看的 landing page 大家可以试一试 还在非常早期的开发阶段
来都来了 顺便发个外链: https://copyui.online
下载地址: https://chromewebstore.google.com/detail/copy-ui-%E2%80%93-export-html-tai/dfejfkofhnkcplhhhddfdlifcpfkcakc
做这个插件的初衷是为了快速做出好看的 landing page 大家可以试一试 还在非常早期的开发阶段
来都来了 顺便发个外链: https://copyui.online