http://www.chinamac.com/2009/1012/49609.html
在选择系统语言的时候,你一定注意到了,在你的Home下文件夹会随之变化,
例如在英文时显示Documents,切换到一个使用中文偏好的账户(即便在fast switch)时,显示“文档”,后续介绍mac os x是如何处理的,在介绍之前,先说明一下了解这方面的一点知识可以解决的实际问题
如果遇到这样的问题,我们该如何处理呢,例如
- 我的下载文件夹怎么变成英文的Downloads了?其他的文件夹例如“文稿”等等还是中文的
- 我在使用Finder浏览users目录,怎么我的文件夹是中文的,别人的文件夹有些名称是英文的?
- 这样的文件夹在darwin文件系统使用原始的名称来保存,通常是英文,例如Downloads
mac os x的GUI软件,例如Finder会根据用户的语言偏好,来显示本地化名称,例如下载
你可以用终端输入ls命令来验证
如果Finder在文件夹里面找到.localized(前面有一个.,隐藏文件),Finder就知道需要查找并显示本地化名称了。
所以针对上面的问题,通常是因为两方面的原因,
第一 .localized这个文件被误删除了
我们可以手工创建一个,以Home下下载为例,终端使用这个命令
- touch ~/Dowloads/.localized
复制代码
第二 设置了错误的权限,使得Finder不能访问到
可以使用chmod命令设置正确的权限
针对上面提到的第2个问题,看别人的文件夹名称是英文的,这个就不难理解了,那些文件夹你没有权限,自然不能访问.localized,Finder自然使用原始的名字来显示给你了
如下图:
Mac OS X支持多国语言,在系统偏好设置-多语言环境中,你可以选择使用的语言,很多文件夹和应用程序,随着你选择的语言不同也会随之变化,例如,使用英文时,你会看到这样的文件夹Desktop, Documents, Downloads, Library, Movies, Music, Pictures,使用中文时你会看到“桌面”、“文稿”、“下载”、“资源库”、“电影”、“音乐”和“图 片”
- Mac OS X实际使用的名字我们暂且称作真实的名称,通常使用英文,例如Documents
- 根据用户使用的语言,所显示名称称作本地化的(非英语)名称,就是Display Name
- Display names 与真实的名字不会混淆. 真实的名字是darwin文件系统中使用的名字,Display Name基于 文件系统的名字,但是被修改以反应当前用户的偏好设置
- Mac OS X 在Darwin and Classic environments不支持Display Name
从以下三点介绍本地化名称(Display Name)
- System-defined文件夹(指类似Desktop, Documents, Downloads, Library这样的文件夹)
- 你可以自定义本地化文件夹,同样可以根据系统的语言显示本地化名称
- 应用程序(Application),像system preferences(中文是显示"系统偏好设置")
System-defined的文件夹
例如"文稿"(真实的名字是Documents),如下图,可以看到.localized(前面有一个.)这个隐藏文件
在通常情况下,Finder不显示这类文件
Finder发现有这个"空白"的文件(不需要内容),就知道需要查找并显示本地化名称了,所以不要删除这个文件。
它会去这里找,
- /System/Library/CoreServices/SystemFolderLocalizations/
复制代码
比如中文,相应的语言包(如zh_CN.lproj)
进入这个文件夹,可以看到SystemFolderLocalizations.strings文件(plain text)
,你可以看到相关的Display Name了,
你可以自定义本地化文件夹,同样可以根据系统的语言显示本地化名称
有人按照system-defined文件夹的方法,用VI编辑 SystemFolderLocalizations.strings文件,加入相关的条目,不建议这样作,推荐
例如这个文件夹真实名字是test
下面的操作需要使用/Applications/Utilities/Terminal.app (中文是 /应用程序/实用工具/终端.app)
1 给test目录加上 .localized扩展名
复制代码
2 在test文件夹下面,增加一个.localized的子文件夹.
- cd test.localized && mkdir .localized
复制代码
3 进入.localized 子文件夹里面,建立"string"文件,每个文件对应一种语言,
文件名子是two-letter language code加上.strings的扩展名
en.strings
zh.strings
de.strings
....等等
4 每一个"string"文件的编码是Unicode,内容是这样的"test" = "Localized name";
PS: 取消Finder->show all file extertions1.png (59.89 KB)
定义bundle Application的Dispplay Name
这个话题更多的牵扯到软件开发,在这里不详细说明,更多的信息参考: Bundle Programming Guide
在app右键,选择show package contents,进入contents/resource目录,有很多的语言.lproj包,
以zh_CN.lproj为例这是简体中文,里面又一个文件InfoPlist.strings,其中有键值指定了Display NAME
Picture 1.jpg (44.5 KB)
posted on 2010-12-22 22:38
哈哈的日子 阅读(981)
评论(0) 编辑 收藏