如何临时修改 macOS 应用的界面语言?
一般情况下,应用程序的界面语言会和系统语言保持一致。但有些时候,我们也会希望临时换用一种不同的界面语言。例如,一些程序的中文翻译词不达意,有必要参考英文界面来确定功能的准确含义;又如,一些网页会强制按照浏览器语言显示不同版本,因此必须通过切换浏览器语言来控制网页语言。
问题是,并不是所有的应用程序都提供了切换界面语言的选项。事实上,大多数 macOS 的内建应用都没有这样的设置。如果每次遇到这种需求都去临时改变系统语言,未免过于耗时和麻烦。
这个问题可以通过终端命令来解决。macOS 允许在运行应用程序时向其传递特定参数,其中,-AppleLanguages 参数就是用来控制应用程序的语言的。例如:
# 以简体中文界面启动 Safari 浏览器
$ open -a /Applications/Safari.app --args -AppleLanguages '(zh-CN)'
# 以英文界面启动 Pages
$ open -a /Applications/Pages.app --args -AppleLanguages '(en)'
如果想以其他语言启动某个应用程序,只需要修改将上述命令最后的地区代码。其他一些常用的代码包括繁体中文(zh-TW)、日文(ja)、法文(fr)、德文(de)等。
要知道一个应用都支持哪些界面语言,可以在 Finder 中找到该应用,点击右键选择 显示包内容,然后查看 /Contents/Resources 目录下以 .lproj 结尾的语言文件目录;.lproj 之前的部分就是各语言对应的地区代码。
Safari 的语言文件
当然,更快捷的方法还是使用终端命令。例如:
# 查看 Ulysses 支持的界面语言
$ ls /Applications/Ulysses.app/Contents/Resources | grep lproj
> Base.lproj
> de.lproj
> en.lproj
> …
为应用程序的特定语言创建快捷方式
如果需要比较频繁地用不同语言显示某个应用,那么可以为其创建一个快捷方式。
方法是:打开系统内建的「脚本编辑器」应用,新建一个文档,在命令栏输入:
do shell script "open -a [应用程序路径] --args -AppleLanguages '([要显示的语言])'"
点击 文件 > 导出,起一个易认的名字(例如「Safari CN」),并将「文件格式」选为「脚本」,然后将其导出到 Applications 文件夹。
用脚本编辑器为特定语言创建快捷方式
这样,就可以直接从 Launchpad 以特定语言启动这一应用了。
Alfred 或 LaunchBar 用户可以用该原理制作动作来实现同样效果,在此不赘。
默认以特定语言启动应用程序
最后,如果希望始终以某种与系统设置不同的语言启动特定应用,可以用 defaults write 命令来修改其默认设置。具体语法是:
$ defaults write [应用的 Bundle ID] AppleLanguages '([要默认显示的语言])'
例如:
# 默认以简体中文打开「文本编辑」应用
$ defaults write com.apple.TextEdit AppleLanguages '(zh-CN)'
其中,应用的 Bundle ID 可以通过运行 mdls -name kMDItemCFBundleIdentifier [应用程序路径]来查找。例如:
# Chrome 浏览器的 Bundle ID
$ mdls -name kMDItemCFBundleIdentifier /Applications/Google\ Chrome.app
> kMDItemCFBundleIdentifier = "com.google.Chrome"
如果不再需要固定应用程序的显示语言,在终端运行:
$ defaults delete [应用的 Bundle ID] AppleLanguages
如何临时修改 macOS 应用的界面语言?的更多相关文章
- TODO:macOS编译PHP7.1
TODO:macOS编译PHP7.1 本文主要介绍在macOS上编译PHP7.1,有兴趣的朋友可以去尝试一下. 1.下载PHP7.1源码,建议到PHP官网下载纯净到源码包php-7.1.0.tar.g ...
- TODO:macOS上ThinkPHP5和Semantic-UI集成
TODO:macOS上ThinkPHP5和Semantic-UI集成 1. 全局安装 (on OSX via homebrew)Composer 是 homebrew-php 项目的一部分 2. 把X ...
- CoreCRM 开发实录——Travis-CI 实现 .NET Core 程度在 macOS 上的构建和测试 [无水干货]
上一篇文章我提到:为了使用"国货",我把 Linux 上的构建和测试委托给了 DaoCloud,而 Travis-CI 不能放着不用啊.还好,这货支持 macOS 系统.所以就把 ...
- docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
.net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对岸的苹果园越来越茂盛,实在不想再去做一只宅猿了.于是,.net猿决定搭上小鲸鱼的渡轮到苹果园去看 ...
- ASP.NET Core 中文文档 第二章 指南(1)用 Visual Studio Code 在 macOS 上创建首个 ASP.NET Core 应用程序
原文:Your First ASP.NET Core Application on a Mac Using Visual Studio Code 作者:Daniel Roth.Steve Smith ...
- Swift 3 and OpenGL on Linux and macOS with GLFW
https://solarianprogrammer.com/2016/11/19/swift-opengl-linux-macos-glfw/ Swift 3 and OpenGL on Linux ...
- Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
前言 在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在Linux中,对 Asp.Net Core 的程序进行发布和部署. 有关如何在 Jexus 中进行部署,请 ...
- 在MacOS 10.12上安装Tomcat8.5
在MacOS 10.12上安装Tomcat8.5 原文链接:https://wolfpaulus.com/journal/mac/tomcat8/ Context 已安装Java,使用java -ve ...
- MacOS中使用QT开发iOS应用
因为项目合同中规定一部分业务内容要在手机端实现,包括安卓机和苹果机,因此选择了QT作为开发工具.程序在Win10和安卓系统上已经完美运行,这几天开始搭建iOS的编译和发布环境,因为以前没有使用过mac ...
随机推荐
- 【451】python 同一行打印进度条
参考:Python3 Print 同一行打印显示进度条效果 参考:\r\n, \r and \n what is the difference between them? [duplicate] 参考 ...
- Linux下tar的安装方式
tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...
- WPF--控件模板的视觉效果呈现流程及逻辑
外部通过属性把数据--传递给-->(破拆后)内部可视化树 ----> 内部可视化树呈现出视觉效果 ----> 各种内部可视化组件的视觉效果组合 --- 呈现 --> 外部的 ...
- js:如何在iframe重载前执行特定动作
问题说明: 点击左侧菜单时,右侧页面中的iframe加载菜单内容,在iframe加载的页面A中使用了websocket.点击其它菜单时,无法主动关闭websocket, 可能会造成websocket链 ...
- 【Spring Boot学习之四】Spring Boot事务管理
环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.springboot整合事务事务分类:编程事务.声明事务(XML.注解),推荐使用注解方式,springboot默 ...
- 静默安装weblogic12c提示INST-07319: Oracle 主目录(O) 位置的验证失败。指定的位置已存在, 是非空目录并且不是有效的 Oracle 主目录
[xxx@localhost bea12c3]$ java -jar fmw_12.2.1.3.0_wls.jar -silent -responseFile /app/bea12c3/weblogi ...
- python之 小甲鱼教程 Easygui 篇
博客转自 https://blog.csdn.net/bestallen/article/details/51933427 终于有点实质性可以看到摸到的界面了,搜了一下虽然easygui用的不多,但是 ...
- python-mysql事务
MySQL 事务 MySQL 事务主要用于处理操作量大,复杂度高的数据.简单的理解就是:完成一件事情的多个mysql语句的集合就是一个事务了,可能有人会想,我的mysql本来就是一句一句语句执行的啊, ...
- 微信小程序文档
提示框: wx.showToast(OBJECT) 显示消息提示框 OBJECT参数说明: 示例代码: wx.showToast({ title: '成功', icon: 'success', dur ...
- C# 运行流程
转载 https://www.cnblogs.com/qcloud1001/p/9816956.html 从编译原理说起 一句话介绍编译器:编译器是将用某种程式语言写成的源代码(源语言),转换成另一 ...