Mac OS X上文件夹名称的多语言显示是怎么来的

前两天不小心弄坏了~/documents文件夹,原来在中文系统下显示的“文稿”两个字没有了,变回了英文的”documents”。经过求助得到了解决,也明白了原理,现在给大家分享一下。

mac系统中文件夹的默认的实际名称都是英文的,在不同的语种之下,系统会使用一个多语言文件名显示服务来显示相应语言的文件夹名称。

比如说~/documents文件夹在中文环境中就显示成“文稿”,/system/library在中文环境中就显示成/”系统”/“资源库”。其实这并不是文件的路径名称发生了变化,也就是说/“系统”/”资源库”(/system/library)实际上和/系统/资源库是不同的。

实际上实现这种自动的按语种显示文件夹名称需要两步。

第一,在需要这样显示的目录中要有一个空白的.localized文件,这可以通过 “touch ~/要进行设置的某个私人目录/.localized” 或者 “sudo touch 其他系统目录/.localized” 命令来建立。

第二,要在 /system/library/coreservices/systemfolderlocalizations/相应的语言包(如zh_cn.lproj)/systemfolderlocalizations.strings文件中添加这样一个要翻译的词条。这样系统在显示目标目录的时候,一旦发现了里面的.localized文件,就到这个相应的语言本地化字串表中来找词条,找到匹配的原始名称之后,就用对应的本地语言名称代替文件夹名称的显示。

这样的服务也可以利用来本地化自己其他的指定文件夹,举例来说:假设有一个“~/downloads/my design reference”文件夹。我们可以在 /system/library/coreservices/systemfolderlocalizations/相应的语言包(如zh_cn.lproj)/systemfolderlocalizations.strings 文件中加入词条(通过终端 sudo vi 的方式编辑这个文件最好,这样不用xcode编辑完了重新设置权限):

“my design reference” = “我的设计参考”;

然后 touch ~/downloads/my design reference/.localized,重启finder或者注销再重登录,这样在finder中看到的 ~/downloads/my design reference 就显示成了 “我的设计参考”。

这样我们可以把很多文件夹保持原来的英文名,通过本地化显示名称的方式而不是重命名来将其中文化。

FTP命令详解

FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。

FTP的命令行格式为:ftp -v -d -i -n -g [主机名],其中

-v显示远程服务器的所有响应信息;

-n限制ftp的自动登录,即不使用;

.n etrc文件;

-d使用调试方式;

-g取消全局文件名。

ftp使用的内部命令如下(中括号表示可选项):

1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip.

2.$ macro-ame[args]:执行宏定义macro-name.

3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。

4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。

5.ascii:使用ascii类型传输方式。

6.bell:每个命令执行完毕后计算机响铃一次。

7.bin:使用二进制文件传输方式。

8.bye:退出ftp会话过程。

9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。

10.cd remote-dir:进入远程主机目录。

11.cdup:进入远程主机目录的父目录。

12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。

13.close:中断与远程服务器的ftp会话(与open对应)。

14.cr:使用asscii方式传输文件时,将回车换行转换为回行。

15.delete remote-file:删除远程主机文件。

16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。

17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file。

18.disconnection:同close。

19.form format:将文件传输方式设置为format,缺省为file方式。

20.get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。

21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。

22.hash:每传输1024字节,显示一个hash符号(#)。

23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。

24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。

25.image:设置二进制传输方式(同binary)。

26.lcd[dir]:将本地工作目录切换至dir。

27.ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。

28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。

29.mdelete[remote-file]:删除远程主机文件。

30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如:mdir *.o.*.zipoutfile

31.mget remote-files:传输多个远程文件。

32.mkdir dir-name:在远程主机中建一目录。

33.mls remote-file local-file:同nlist,但可指定多个文件名。

34.mode[modename]:将文件传输方式设置为modename,缺省为stream方式。

35.modtime file-name:显示远程主机文件的最后修改时间。

36.mput local-file:将多个文件传输至远程主机。

37.newer file-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。

38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。

39.nmap[inpattern outpattern]:设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。

40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR。

41.open host[port]:建立指定ftp服务器连接,可指定连接端口。

42.passive:进入被动传输方式。

43.prompt:设置多个文件传输时的交互提示。

44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。

45.put local-file[remote-file]:将本地文件local-file传送至远程主机。

46.pwd:显示远程主机的当前工作目录。

47.quit:同bye,退出ftp会话。

48.quote arg1,arg2…:将参数逐字发至远程ftp服务器,如:quote syst.

49.recv remote-file[local-file]:同get。

50.reget remote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。

51.rhelp[cmd-name]:请求获得远程主机的帮助。

52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态。

53.rename[from][to]:更改远程主机文件名。

54.reset:清除回答队列。

55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。

56.rmdir dir-name:删除远程主机目录。

57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀..1,.2等。

58.send local-file[remote-file]:同put。

59.sendport:设置PORT命令的使用。

60.site arg1,arg2…:将参数作为SITE命令逐字发送至远程ftp主机。

61.size file-name:显示远程主机文件大小,如:site idle 7200。

62.status:显示当前ftp状态。

63.struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。

64.sunique:将远程主机文件名存储设置为唯一(与runique对应)。

65.system:显示远程主机的操作系统类型。

66.tenex:将文件传输类型设置为TENEX机的所需的类型。

67.tick:设置传输时的字节计数器。

68.trace:设置包跟踪。

69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。

70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3。

71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。

72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on.

73.?[cmd]:同help。

iPhone开发基础知识

1.编写ios应用程序有何不同
1.1 只有一个应用程序在运行
1.2 只有一个窗口
1.3 受限访问
1.4 有限的响应时间
1.5 有限的屏幕大小
1.6 有限的系统资源
1.7 不支持垃圾回收
2.项目环境
class, other source,resources, frameworks,products
class:最常用的一个文件夹,编写的大多数代码都保存在这里,其中包括所有的Objective-C类。
XXX_Prefix.pch 表示precompiled header(欲编译的头文件),这是项目所使用的来自外部框架的一组头文件。
Xcode将欲编译包含在此文件中的头文件,就会减少使用BUILD或builid and go 选项编译项目所需的时间,暂时不必担心该文件
因为其中已经包含了最常用的头文件。
main.m 此文件包含了应用程序的main()方法,通常不需要编辑或修改此文件。
other source:包含除Objective-C类之外的源代码文件。
resources:包含应用程序中的非代码文件。
XXXViewController.xib 此文件包含程序InterfaceBuilder所有的信息
XXXWindow.xib 应用程序的InterfaceBuilder(或nib)主文件。
frameworks:是一种特殊的库,其中可以包含代码、图像和声音文件等资源。
products :包含此项目编译时生成的应用程序。

Pyhon编程规范

1、变量不推荐使用的字符

不要用字符‘l’(小写字母l),‘O’(大写字母),或‘I’(大写字母)作为单字符的变量名。在某些字体中这些字符不能与数字1和0分辨。试着在使用‘l’时用‘L’代替。

2、局部变量

类型名+变量简写,并且从第二个单词开始,首字母大写。例如字符型的路名称

strWayName.

3、全局变量

g+类型名+变量简写,并且从第二个单词开始,首字母大写。例如字符型的路名称

gstrWayName.

4包、模块的命名规则

全部以小写字母的形式来命名。模块名应该是不含下划线、简短、小写字母。

5、类、对象的命名规则

每个单词的首字母要大写,其他字母小写;

对象名用小写字母来表示;

类的私有属性、私有方法以两个下划线作为前缀,对象通过点操作符来访问类中的属性和方法。

6、函数的命名规则

函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。

函数名是区分大小写的。

函数名不能是保留字。

建议第一个单词的首字母小写。

7、注释

1.单行注释

Python中的单行注释使用#号加若干空格开始,后面是注释的内容,以回车作为注释的结束。例如:

#声明并初始化变量num

num=1

2.行内注释

Python中的行内注释是最常用的,行内注释应该至少用两个空格和语句分开,它们以#号和单个空格开始。例如:
num=1 #声明并初始化变量num

3.注释块

注释块通常应用于跟随一些(或者全部)代码并和这些代码有着相同的缩进层次。注释块中也使用#号和一个空格开始。注释块内的段落以仅含单个#的行分隔。

Python一般会忽略#行的内容,跳过#行执行后面的内容。特殊含义的注释例外。Python还有一些特殊的注释,用以完成一些特别的功能,例如中文注释、程序的跨平台等。

1) 中文注释

如果需要在代码中使用中文注释,必须在Python文件的最前面加上如下注释说明:

#_*_ coding:UTF-8 _*_

2) 跨平台注释

如果需要使Python程序运行在Windows以外的平台上,则需要在Python文件的最前面加上如下注释说明:

!# /usr/bin/python

4、变量注释

所有变量建议先定义后使用,在定义时可以给变量赋空值,同时在后面给出注释;

建议一行只定义一个变量。

5、函数注释

函数名称:函数名

功能描述:函数功能描述

输入参数:

输入参数名称1:输入参数的类型及其代表的含义

输入参数名称2:输入参数的类型及其代表的含义

输出参数:

输出参数名称1:输出参数的类型及其代表的含义

输出参数名称2:输出参数的类型及其代表的含义

返回值:

返回值的类型,每种返回值所代表的含义,例如成功、失败、错误码。

6、类注释

类名称:类名称

功能描述:对该类的功能的描述

 

8、代码布局

1、缩进

4个空格一个缩进层次,不建议使用制表符(TAB)。

2、行的最大长度

所有行限制在最大79字符(Emacs准确得将行限制为长80字符),对顺序排放的大块文本(文档字符串或注释),推荐将长度限制在72字符。

3、空行

用两行空行分割顶层函数和类的定义;

类内方法(以及普通方法)的定义用单个空行分割;

在‘class’行和第一个方法定义之间也要有一个空行。

4、导入

通常应该在单独的行中导入(Imports),例如:

错误的做法:import sys, os

正确的做法:

import sys

import os

但是这样也是可以的:

from types import StringType, ListType

Imports 通常被放置在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前。Imports应该有顺序地成组安放:

1、标准库的导入(Imports )

2、相关的主包(major package)的导入(即,所有的email包在随后导入)

3、特定应用的导入(imports)

在每组导入之间放置一个空行,对于内部包的导入是不推荐使用相对导入的,对所有导入都要使用包的绝对路径。

从一个包含类的模块中导入类时,通常可以写成这样:

from MyClass import MyClass

from foo.bar.YourClass import YourClass

如果这样写导致了本地名字冲突,那么就这样写

import MyClass

import foo.bar.YourClass

即使用”MyClass.MyClass”和”foo.bar.YourClass.YourClass”

5、表达式和语句中的空格

1)、不需要空格的地方

紧挨着圆括号,方括号和花括号的地方如:”spam( ham[ 1 ],{ eggs:2 } )”。要始终将它写成”spam(ham[1],{eggs: 2})”;

紧贴着函数调用的参数列表前开式括号(open parenthesis )的,如”spam (1)”。要始终将它写成”spam(1)”;

紧贴在索引或切片,开始的开式括号前的,如:

“dict [‘key’] = list [index]”。要始终将它写成”dict[‘key’] = list[index]”。

 

2)、需要空格的地方

紧贴在逗号,分号或冒号前的,如:

“if x == 4:print x,y:x,y = y,x”。要始终将它写成

“if x == 4:print x,y:x,y = y,x”;

赋值(或其它)运算符周围的用于和其它并排的一个以上的空格,如:

x = 1。

 

iPhone开发 在xcode4.2中sdk5.0 ARC部分不开启

一般都是开启arc功能,毕竟不需要自己手动去释放,是一件比较轻松的事情。

但是我们在引用第三方的时候,基本上都是带release与retain的方法,这个时候代码编译就通不过

我们可以设置部分文件不使用arc,这样就可以兼容了。

步骤:

1.在builde phases 中,compile sources

2.选中文件,双击文件,在弹出框中输入-fno-objc-arc,

3.编译就可以通过了