免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wuqing
打印 上一主题 下一主题

FreeBSD 7.2中文输入法与使用本地化语言设置[已解决] [复制链接]

论坛徽章:
0
21 [报告]
发表于 2009-05-14 21:35 |只看该作者
必须这样才能启动:
exec scim -d &

论坛徽章:
0
22 [报告]
发表于 2009-05-14 21:38 |只看该作者
下面这样做毫无效果:

在/etc/login.conf添加:
chinese|chinese Users Accounts:\
        :charset=UTF-8:\
        :lang=zh_CN.UTF-8:\
        :tc=default:

论坛徽章:
0
23 [报告]
发表于 2009-05-14 22:21 |只看该作者

  1. #!/usr/local/bin/bash
  2. #!/bin/bash
  3. #export XMODIFIERS="@im=sicm"
  4. #export GTK_IM_MODULE=scim
  5. #export QT_IM_MODULE=scim
  6. #----------------------------
  7. #   export LANG=zh_CN.utf8
  8. #   export LC_CTYPE=zh_CN.utf8
  9. #   export LANGUAGE=zh_CN.utf8
  10. #   export LC_TIME=zh_CN.utf8
  11. #----------------------------

  12. #   if [ -e /proc/acpi/ibm/hotkey ] ; then
  13. #       export USE_LAPTOP=1
  14. #   else
  15. #       export USE_LAPTOP=0
  16. #   fi
  17. export USE_LAPTOP=1
  18. export USE_XFCE4_PANEL=0
  19. #----------------------------
  20. #----------------------------
  21. export LANGUAGE="zh_CN:zh:en_US:en"
  22. export LC_CTYPE="zh_CN.UTF-8"
  23. export LANG="zh_CN.UTF-8"
  24. export LC_TIME="zh_CN.UTF-8"
  25. #----------------------------


  26. #----------------------------
  27. #* LANG='your_language' scim -d
  28. #* export XMODIFIERS=@im=SCIM
  29. #* export GTK_IM_MODULE="scim"
  30. #* export QT_IM_MODULE="scim"
  31. USE_IBUS=0   #use ibus input
  32. USE_SCIM=1   #use scim input
  33. #=======================================
  34. if [ ${USE_SCIM} -eq 1 ] ;then
  35.     export XIM=scim
  36.     export XMODIFIERS="@im=scim"
  37.     export GTK_IM_MODULE=scim
  38.     export QT_IM_MODULE=scim
  39.     #export XIM_PROGRAM=/usr/local/bin/scim
  40.     export XIM_PROGRAM="scim"

  41. #export GTK_IM_MODULE="scim"
  42. #export QT_IM_MODULE="scim"
  43. export GTK_IM_MODULE="scim-bridge"
  44. export QT_IM_MODULE="scim-bridge"
  45. fi
  46. #=======================================
  47. if [ ${USE_IBUS} -eq 1 ] ;then
  48.     export XMODIFIERS="@im=ibus"
  49.     export GTK_IM_MODULE="ibus"
  50.     export QT_IM_MODULE="ibus"
  51.     export XIM=ibus
  52.     export XIM_PROGRAM=/usr/bin/ibus
  53.     `which ibus`
  54.     if [ $? -eq 0 ] ; then
  55.         ibus &
  56.     else
  57.         ibus-daemon -d -x
  58.     fi
  59. fi
  60. #=======================================
  61. #export XMODIFIERS="@im=fcitx"
  62. #export XIM=fcitx
  63. #export XIM_PROGRAM=fcitx
  64. #=======================================
  65. export XIM_ARGS="-d"
  66. # Open office fix
  67. export OOO_FORCE_DESKTOP=gnome
  68. #export OOO_FORCE_DESKTOP=kde


  69. #----------------------------
  70. #scim -f socket -c socket -d
  71. #----------------------------
  72. #   if [ `pidof urxvtd` ] ; then
  73. #       killall urxvtd >/dev/null 2>&1
  74. #   fi
  75. #
  76. #   if [ `pidof fcitx` ] ; then
  77. #       killall fcitx  >/dev/null 2>&1
  78. #   fi
  79. #
  80. #   #killall rox
  81. #   #exec urxvtd&
  82. #   exec fcitx&

  83. #   if [ `pidof urxvtd|wc -w` -eq 0 ] ; then
  84. #       echo 'exec urxvtd&'
  85. #   else
  86. #       killall urxvtd
  87. #       #exec urxvtd&
  88. #       echo 'exec urxvtd&'
  89. #   fi

  90. #   if [ `pidof fcitx|wc -w` -eq 0 ] ; then
  91. #       exec fcitx&
  92. #   else
  93. #       killall fcitx
  94. #       exec fcitx&
  95. #   fi

  96. default_wm=openbox
  97. default_wm=awesome
  98. if [ -z $1 ] ; then
  99.     start_wm=$default_wm
  100. else
  101.     start_wm=$1
  102. fi
  103. #   echo "start_wm= $start_wm"

  104. #defaultwm=ob   # 指定如果没有提供启动 wm 参数,默认为启动 KDE。
  105. #windowmgr=${1:-$defaultwm}
  106. if [[ -z $1 ]] ; then
  107.     windowmgr=${1:-$start_wm}
  108. else
  109.     windowmgr=$1
  110. fi

  111. echo "windowmgr = $windowmgr"


  112. #根据参数不同启动不同的 wm
  113. case ${windowmgr} in
  114.     kde|kwm|kdestart)
  115.     #WINDOWMANAGER=startkde
  116.     WINDOWMANAGER=openbox-kde-session
  117.     ;;
  118.     flux|fluxbox)
  119.     WINDOWMANAGER=fluxbox
  120.     #exec spaceclock &  # 这里我加入了两个程序随 fluxbox 启动
  121.     #exec xidesk &
  122.     ;;
  123.     gnome)
  124.     WINDOWMANAGER=gnome-session
  125.     ;;
  126.     xfce4|xfce)
  127.     WINDOWMANAGER=startxfce4
  128.     #killall xfwm4 ; openbox & exit
  129.     #xfdesktop --quit
  130.     ;;
  131.     ok|openbox-kde)
  132.     WINDOWMANAGER=openbox-kde-session
  133.     ;;
  134.     og|openbox-gnome)
  135.     WINDOWMANAGER=openbox-gnome-session
  136.     ;;
  137.     ob|openbox)
  138.     WINDOWMANAGER=openbox-session
  139.     ;;
  140.     ice|icewm)
  141.     WINDOWMANAGER=icewm-session
  142.     ;;
  143.     awe|awesome)
  144.         WINDOWMANAGER=awesome
  145.     ;;
  146.     pek|pekwm)
  147.         WINDOWMANAGER=pekwm
  148.     ;;

  149.     *) WINDOWMANAGER=$windowmgr
  150. esac

  151. #----------------------------
  152. #scim -d
  153. #exec rox -p default &
  154. #exec fbpanel &
  155. #exec /usr/bin/fvwm-crystal
  156. #exec gnome-session
  157. #exec xfce4-session
  158. #exec icewm-session
  159. #exec /usr/bin/fvwm
  160. #exec /usr/bin/openbox
  161. #==========================
  162. #exec openbox-session
  163. #==========================
  164. #exec dwm
  165. #exec openbox-gnome-session
  166. #exec /usr/bin/wmaker
  167. #exec startfluxbox
  168. #exec /usr/bin/fluxbox
  169. #exec /usr/bin/fvwm-themes-start
  170. #exec /usr/bin/icewm-session
  171. #----------------------------
  172. echo "wm=$WINDOWMANAGER"
  173. awesome2_startup()
  174. {
  175.     export OOO_FORCE_DESKTOP=gnome
  176.     if [ -e ~/.Xmodmap ] ; then
  177.         xmodmap ~/.Xmodmap
  178.     fi

  179.     # Xresources
  180.     if [ -e ~/.Xresources ] ; then
  181.         xrdb -merge ~/.Xresources
  182.     fi


  183.     if [ `pidof trayer|wc -w` -eq 0 ] ; then
  184.         :
  185.     else
  186.        killall trayer
  187.    fi
  188.     trayer --edge right --widthtype request --width 200 --SetDockType true --transparent true --expand false&
  189.    
  190.     if [ `pidof awesome-diskusage|wc -w` -eq 0 ] ; then
  191.         :
  192.     else
  193.         killall awesome-clock
  194.     fi
  195.     exec ~/MultiConfigDir/awesome/awesome-diskusage &


  196.     if [ `pidof awesome-clock|wc -w` -eq 0 ] ; then
  197.         :
  198.     else
  199.         killall awesome-clock
  200.     fi
  201.     exec ~/MultiConfigDir/awesome/awesome-clock&
  202.     ## 用 gnome-volume-manager 来自动挂载 U 盘等
  203.     gnome-volume-manager &
  204.     gnome-power-manager &
  205.     gnome-screensaver &
  206. #关闭触摸块
  207. #x11-drivers/synaptics (/usr/bin/synclient)
  208. echo "synclient TouchpadOff=1"
  209. synclient TouchpadOff=1 &
  210. #-------------------------
  211. xset b off  #terminal bell off
  212. #-------------------------
  213. #
  214. #----------------------------
  215. export XIM=scim
  216. export XMODIFIERS="@im=scim"
  217. export XIM_PROGRAM="/usr/bin/scim"
  218. export GTK_IM_MODULE="scim-bridge"
  219. export QT_IM_MODULE="scim-bridge"
  220. export XIM_ARGS="-d"
  221. #----------------------------
  222. export LANGUAGE="zh_CN:zh:en_US:en"
  223. export LC_CTYPE="zh_CN.UTF-8"
  224. export LANG="zh_CN.UTF-8"
  225. export LC_TIME="zh_CN.UTF-8"
  226. #----------------------------
  227. #
  228. #----------------------------
  229. #scim -f socket -c socket -d
  230. #----------------------------
  231. #
  232. if [ `pidof urxvtd|wc -w` -eq 0 ] ; then
  233.     exec urxvtd&
  234. #else
  235. #    killall urxvtd
  236. #    exec urxvtd&
  237. fi

  238. #   if [ `pidof fcitx|wc -w` -eq 0 ] ; then
  239. #       exec fcitx&
  240. #   #else
  241. #   #    killall fcitx
  242. #   #    exec fcitx&
  243. #   fi
  244. #
  245. #
  246. }
  247. #nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1
  248. #echo "nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1"
  249. awesome_ver=3
  250. if [ $WINDOWMANAGER == "awesome" ] ; then
  251.     if [ $awesome_ver -eq 3 ] ; then
  252.         if [ -e ~/.config/awesome/scripts/awesome_startup.sh ] ; then
  253.             source ~/.config/awesome/scripts/awe_autostart.sh
  254.             awesome3_startup
  255.         fi
  256.     else
  257.         echo "awesome2_startup"
  258.         awesome2_startup
  259.     fi
  260.     #exec $WINDOWMANAGER >~/log_awesome_run_err.log 2>&1
  261.     #exec $WINDOWMANAGER 2>~/log_awesome_run_err.log
  262.     exec $WINDOWMANAGER
  263. else
  264.     exec $WINDOWMANAGER
  265. fi
  266. #if [ $WINDOWMANAGER == "pekwm" ] ; then
  267.     #exec ~/.pekwm/autostart.sh
  268. #fi

  269. #exec $WINDOWMANAGER

  270. killall urxvtd >/dev/null 2>&1
  271. killall fcitx >/dev/null 2>&1
  272. killall fbpanel >/dev/null 2>&1
  273. killall rox  >/dev/null 2>&1
  274. #----------------------------
复制代码

这前发贴都在WIN下,现在在BSD下了,可以贴一下我的 ~/.xinitrc 了, 我用的是bash,为了平台的最小化差异


  1. export USE_LAPTOP=1
  2. export USE_XFCE4_PANEL=0
  3. export LANGUAGE="zh_CN:zh:en_US:en"
  4. export LC_CTYPE="zh_CN.UTF-8"
  5. export LANG="zh_CN.UTF-8"
  6. export LC_TIME="zh_CN.UTF-8"


  7. USE_IBUS=0   #use ibus input
  8. USE_SCIM=1   #use scim input
  9. if [ ${USE_SCIM} -eq 1 ] ;then
  10.     export XIM=scim
  11.     export XMODIFIERS="@im=scim"
  12.     export GTK_IM_MODULE=scim
  13.     export QT_IM_MODULE=scim
  14.     #export XIM_PROGRAM=/usr/local/bin/scim
  15.     export XIM_PROGRAM="scim"

  16. export GTK_IM_MODULE="scim-bridge"
  17. export QT_IM_MODULE="scim-bridge"
  18. fi
  19. if [ ${USE_IBUS} -eq 1 ] ;then
  20.     export XMODIFIERS="@im=ibus"
  21.     export GTK_IM_MODULE="ibus"
  22.     export QT_IM_MODULE="ibus"
  23.     export XIM=ibus
  24.     export XIM_PROGRAM=/usr/bin/ibus
  25.     `which ibus`
  26.     if [ $? -eq 0 ] ; then
  27.         ibus &
  28.     else
  29.         ibus-daemon -d -x
  30.     fi
  31. fi
  32. export XIM_ARGS="-d"
  33. export OOO_FORCE_DESKTOP=gnome





  34. default_wm=openbox
  35. default_wm=awesome
  36. if [ -z $1 ] ; then
  37.     start_wm=$default_wm
  38. else
  39.     start_wm=$1
  40. fi

  41. if [[ -z $1 ]] ; then
  42.     windowmgr=${1:-$start_wm}
  43. else
  44.     windowmgr=$1
  45. fi

  46. echo "windowmgr = $windowmgr"


  47. case ${windowmgr} in
  48.     kde|kwm|kdestart)
  49.     #WINDOWMANAGER=startkde
  50.     WINDOWMANAGER=openbox-kde-session
  51.     ;;
  52.     flux|fluxbox)
  53.     WINDOWMANAGER=fluxbox
  54.     #exec spaceclock &  # 这里我加入了两个程序随 fluxbox 启动
  55.     #exec xidesk &
  56.     ;;
  57.     gnome)
  58.     WINDOWMANAGER=gnome-session
  59.     ;;
  60.     xfce4|xfce)
  61.     WINDOWMANAGER=startxfce4
  62.     #killall xfwm4 ; openbox & exit
  63.     #xfdesktop --quit
  64.     ;;
  65.     ok|openbox-kde)
  66.     WINDOWMANAGER=openbox-kde-session
  67.     ;;
  68.     og|openbox-gnome)
  69.     WINDOWMANAGER=openbox-gnome-session
  70.     ;;
  71.     ob|openbox)
  72.     WINDOWMANAGER=openbox-session
  73.     ;;
  74.     ice|icewm)
  75.     WINDOWMANAGER=icewm-session
  76.     ;;
  77.     awe|awesome)
  78.         WINDOWMANAGER=awesome
  79.     ;;
  80.     pek|pekwm)
  81.         WINDOWMANAGER=pekwm
  82.     ;;

  83.     *) WINDOWMANAGER=$windowmgr
  84. esac

  85. echo "wm=$WINDOWMANAGER"
  86. awesome2_startup()
  87. {
  88.     export OOO_FORCE_DESKTOP=gnome
  89.     if [ -e ~/.Xmodmap ] ; then
  90.         xmodmap ~/.Xmodmap
  91.     fi

  92.     # Xresources
  93.     if [ -e ~/.Xresources ] ; then
  94.         xrdb -merge ~/.Xresources
  95.     fi


  96.     if [ `pidof trayer|wc -w` -eq 0 ] ; then
  97.         :
  98.     else
  99.        killall trayer
  100.    fi
  101.     trayer --edge right --widthtype request --width 200 --SetDockType true --transparent true --expand false&
  102.    
  103.     if [ `pidof awesome-diskusage|wc -w` -eq 0 ] ; then
  104.         :
  105.     else
  106.         killall awesome-clock
  107.     fi
  108.     exec ~/MultiConfigDir/awesome/awesome-diskusage &


  109.     if [ `pidof awesome-clock|wc -w` -eq 0 ] ; then
  110.         :
  111.     else
  112.         killall awesome-clock
  113.     fi
  114.     exec ~/MultiConfigDir/awesome/awesome-clock&
  115.     ## 用 gnome-volume-manager 来自动挂载 U 盘等
  116.     gnome-volume-manager &
  117.     gnome-power-manager &
  118.     gnome-screensaver &
  119. echo "synclient TouchpadOff=1"
  120. synclient TouchpadOff=1 &
  121. xset b off  #terminal bell off
  122. export XIM=scim
  123. export XMODIFIERS="@im=scim"
  124. export XIM_PROGRAM="/usr/bin/scim"
  125. export GTK_IM_MODULE="scim-bridge"
  126. export QT_IM_MODULE="scim-bridge"
  127. export XIM_ARGS="-d"
  128. export LANGUAGE="zh_CN:zh:en_US:en"
  129. export LC_CTYPE="zh_CN.UTF-8"
  130. export LANG="zh_CN.UTF-8"
  131. export LC_TIME="zh_CN.UTF-8"
  132. if [ `pidof urxvtd|wc -w` -eq 0 ] ; then
  133.     exec urxvtd&
  134. fi

  135. }
  136. awesome_ver=3
  137. if [ $WINDOWMANAGER == "awesome" ] ; then
  138.     if [ $awesome_ver -eq 3 ] ; then
  139.         if [ -e ~/.config/awesome/scripts/awesome_startup.sh ] ; then
  140.             source ~/.config/awesome/scripts/awe_autostart.sh
  141.             awesome3_startup
  142.         fi
  143.     else
  144.         echo "awesome2_startup"
  145.         awesome2_startup
  146.     fi
  147.     #exec $WINDOWMANAGER >~/log_awesome_run_err.log 2>&1
  148.     #exec $WINDOWMANAGER 2>~/log_awesome_run_err.log
  149.     exec $WINDOWMANAGER
  150. else
  151.     exec $WINDOWMANAGER
  152. fi
  153.     #exec ~/.pekwm/autostart.sh


  154. killall urxvtd >/dev/null 2>&1
  155. killall fcitx >/dev/null 2>&1
  156. killall fbpanel >/dev/null 2>&1
  157. killall rox  >/dev/null 2>&1
复制代码


注释太多,再弄个干净一点的

[ 本帖最后由 axlrose 于 2009-5-14 22:22 编辑 ]

论坛徽章:
0
24 [报告]
发表于 2009-05-15 11:39 |只看该作者
原帖由 aries215 于 2009-5-14 21:38 发表
下面这样做毫无效果:

在/etc/login.conf添加:
chinese|chinese Users Accounts:\
        :charset=UTF-8:\
        :lang=zh_CN.UTF-8:\
        :tc=default:


1)建议修改~/.login_conf,而不是全局的login.conf(请参照手册)
2) 任何login.conf或者.login_conf改动后记得执行:
cap_mkdb file

论坛徽章:
0
25 [报告]
发表于 2009-05-15 11:45 |只看该作者
原帖由 aries215 于 2009-5-14 21:23 发表
这个不通用,我试了一下,在Root目录下新建“.login_conf”,添加以上内容。
结果:
1、以管理员身份登录,locale是中文,但SCIM无法调出;
2、以用户身份登录,locale还是英文没有变化,SCIM也无法调出。
...


1)root环境中的locale你可能已经在shell定义?
2)user下面如没有.login_conf,如果你去掉了shell中对locale的设置,就是默认的C

论坛徽章:
0
26 [报告]
发表于 2009-05-15 12:12 |只看该作者
原帖由 aries215 于 2009-5-14 21:38 发表
下面这样做毫无效果:

在/etc/login.conf添加:
chinese|chinese Users Accounts:\
        :charset=UTF-8:\
        :lang=zh_CN.UTF-8:\
        :tc=default:


引用一个老帖子:
中文本地化设置。
(1)在/etc/login.conf中最后,加入以下部分
#
#Chinese Users Accounts.
#
chinese|Chinese Users Accounts:\
:charset=eucCN:\
:lang=zh_CN.eucCN:\
:tc=default:

(2)执行以下命令
#cap_mkdb /etc/login.conf

(3)用vipw修改登入类型,针对相应用用户进行修改,修改格式参照如下内容:
root1$lOOD78Dm$oSG5u21RGrXoC.TTJ3nCs.:0:0:chinese:0:0:Charlie &:/root:/bin/csh
关键是在相应位置加入"chinese","chinese"是和第1步的设置对应的。
保存退出。

(4)重新登入后执行startx。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
27 [报告]
发表于 2009-05-15 13:22 |只看该作者
原帖由 menghonghe 于 2009-5-11 17:57 发表
可参考杜比兄和哈密瓜兄的方法,
创建/etc/xprofile,内容如下:

export LANG=zh_CN.UTF-8
export LC_CTYPE="zh_CN.UTF-8"
export LC_NUMERIC="zh_CN.UTF-8"
export LC_TIME="zh_CN.UTF-8"
export LC_CO ...



累不累啊,直接 LC_ALL=zh_CN.UTF-8 不行吗?

论坛徽章:
0
28 [报告]
发表于 2009-05-15 13:58 |只看该作者
呵呵,的确比较累。不过有时候有特定的用途。

例如,我就需要一个能够 输入中文的英文环境,所以我可以把 LC_CTYPE设定成zh_CN.GB18030,而其他所有的项都是en_US.UTF-8。

设定locale就是设定12大类的locale分类属性,即 12个LC_*。除了这12个变量可以设定以外,为了简便起见,还有两个变量: LC_ALL和LANG。它们之间有一个优先级的关系: LC_ALL>LC_*>LANG 可以这么说,LC_ALL是最上级设定或者强制设定,而LANG是默认设定值。 1、如果你设定了LC_ALL=zh_CN.UTF-8,那么不管LC_*和LANG设定成什么值,它们都会被强制服从 LC_ALL的设定,成为 zh_CN.UTF-8。 2、假如你设定了LANG=zh_CN.UTF-8,而其他的LC_*=en_US.UTF-8,并且没有设定LC_ALL的话,那么系统的locale 设定以LC_*=en_US.UTF-8。 3、假如你设定了LANG=zh_CN.UTF-8,而其他的LC_*,和LC_ALL均未设定的话,系统会将LC_*设定成默认值,也就是LANG的值 zh_CN.UTF-8 。 4、假如你设定了 LANG=zh_CN.UTF-8,而其他的LC_CTYPE=en_US.UTF-8,其他的LC_*,和LC_ALL均未设定的话,那么系统的 locale设定将是:LC_CTYPE=en_US.UTF-8,其余的 LC_COLLATE,LC_MESSAGES等等均会采用默认值,也就是 LANG的值,也就是LC_COLLATE=LC_MESSAGES=……= LC_PAPER=LANG=zh_CN.UTF-8。

所以,locale是这样设定的: 1、如果你需要一个纯中文的系统的话,设定LC_ALL= zh_CN.XXXX,或者LANG= zh_CN.XXXX都可以,当然你可以两个都设定,但正如上面所讲,LC_ALL的值将覆盖所有其他的locale设定,不要作无用功。 2、如果你只想要一个可以输入中文的环境,而保持菜单、标题,系统信息等等为英文界面,那么只需要设定 LC_CTYPE=zh_CN.XXXX,LANG= en_US.XXXX就可以了。这样LC_CTYPE=zh_CN.XXXX,而LC_COLLATE=LC_MESSAGES=……= LC_PAPER=LANG=en_US.XXXX。 3、假如你高兴的话,可以把12个LC_*一一设定成你需要的值,打造一个古灵精怪的系统: LC_CTYPE=zh_CN.GBK/GBK(使用中文编码内码GBK字符集); LC_NUMERIC=en_GB.ISO-8859-1(使用大不列颠的数字系统) LC_MEASUREMEN=de_DE@euro.ISO-8859-15(德国的度量衡使用ISO-8859-15字符集) 罗马的地址书写方式,美国的纸张设定……。估计没人这么干吧。 4、假如你什么也不做的话,也就是LC_ALL,LANG和LC_*均不指定特定值的话,系统将采用POSIX作为lcoale,也就是C locale。

不过,按照FreeBSD手册的建议,我现在直接编辑.login_conf搞定。

论坛徽章:
0
29 [报告]
发表于 2009-05-16 12:29 |只看该作者
原帖由 menghonghe 于 2009-5-15 11:39 发表

1)建议修改~/.login_conf,而不是全局的login.conf(请参照手册)
2) 任何login.conf或者.login_conf改动后记得执行:
cap_mkdb file


1、两种都属于“登入分类方法”,哪有建议不建议的说法?官方说两种都好。再说,设定一个一个用户的~/.login_conf,那跟设定shell有什么分别?
2、我有运行 # cap_mkdb /etc/login.conf 。
重启后就是没效果:设定全局后用户的shell没反应,最后还不是要一个用户设置一次!
你本人是不是真的试过这个方法???
原帖由 menghonghe 于 2009-5-15 11:45 发表

1)root环境中的locale你可能已经在shell定义?
2)user下面如没有.login_conf,如果你去掉了shell中对locale的设置,就是默认的C

1、已经在shell定义中文环境,但我说已经屏蔽了。
2、user主目录下肯定都有.login_conf,隐藏起来而已。如果不能去掉shell的设置,那“不提倡”环境变量加到shell的启动文件里面,等于放P。
3、引用的老帖子,那跟手册又不一样,我以前做过,没用!

本地化语言很早已做到,现在听wuqing说这样做有效,我就试一下。
总的来说,设定后只对当前用户有效,换用户后不起作用。

[ 本帖最后由 aries215 于 2009-5-16 13:14 编辑 ]

论坛徽章:
0
30 [报告]
发表于 2009-05-18 09:46 |只看该作者
我只试过.login_conf。从手册描述可以看出,最简单的办法就是这一种(不知道你有没有留意到,手册通常会把推荐的方法放在前面),编辑.login_conf,而/etc/login中需要更多的步骤。

我的测试环境:(我的只是个例子,请以手册为准,如果我的帖子引起了混淆,或者耽误了你的时间,深感抱歉...)

FreeBSD 7.2+KDE3.5.10(中文包)+ SCIM+B shell or C shell,KDM or Startx 启动(非管理员帐户)。

如果是startx方式启动

~/.xinitrc文件只有两行(KDM不会读取)
exec scim -d &
exec startkde

~/.login_conf内容:
me:\
        :charset=UTF-8:\
        :lang=zh_CN.UTF-8:
        :setenv=LC_ALL=zh_CN.UTF-8:\
        :setenv=LC_COLLATE=zh_CN.UTF-8:\
        :setenv=LC_CTYPE=zh_CN.UTF-8:\
        :setenv=LC_MESSAGES=zh_CN.UTF-8:\
        :setenv=LC_MONETARY=zh_CN.UTF-8:\
        :setenv=LC_NUMERIC=zh_CN.UTF-8:\
        :setenv=LC_TIME=zh_CN.UTF-8:
        :xmodifiers="@im=scim": #Set scim as the XIM Input Server
        :setenv=QT_IM_MODULE=scim
        :setenv=GTK_IM_MODULE=scim

再贴一次手册内容,并请仔细阅读:

23.3.4.1 设置本地化的方法
  有两种方法来设置本地化,接下来都会描述。 第一种 (推荐) 就是在 登入分类 里面指定环境变量。 第二种方法是把环境变量加到shell的启动文件里面。
23.3.4.1.1 登入分类方法
  这种方法允许把本地化名称和MIME字符集的环境变量赋给可能的shell, 而不是加到每个特定shell的启动文件里面。 用户级设置 Level Setup 允许普通用户自己完成这个设置,而管理员级设置需要超级用户权限。
23.3.4.1.1.1 用户级设置
  这有一个设置用户根目录文件.login_conf的小例子, 它为上述两个变量设置了Latin-1编码。
me:\
    :charset=ISO-8859-1:\
    :lang=de_DE.ISO8859-1:

  这是一个为.login_conf设置繁体中文的BIG-5编码的例子。应该设置下面的大部分变量, 因为很多软件都没有为中文,日文和韩文设置正确的本地化变量。
#Users who do not wish to use monetary units or time formats
#of Taiwan can manually change each variable
me:\
    :lang=zh_TW.Big5:\
    :setenv=LC_ALL=zh_TW.Big:\
    :setenv=LC_COLLATE=zh_TW.Big5:\ 
    :setenv=LC_CTYPE=zh_TW.Big5:\
    :setenv=LC_MESSAGES=zh_TW.Big5:\
    :setenv=LC_MONETARY=zh_TW.Big5:\
    :setenv=LC_NUMERIC=zh_TW.Big5:\
    :setenv=LC_TIME=zh_TW.Big5:\
    :charset=big5:\
    :xmodifiers="@im=gcin": #Set gcin as the XIM Input Server

  更多的信息参考管理员级设置和login.conf(5)
23.3.4.1.1.2 管理员级设置
  检查用户的登入分类在 /etc/login.conf里面是否设置了正确的语言。主要确定下面的几个设置:
language_name:accounts_title:\
    :charset=MIME_charset:\
    :lang=locale_name:\
    :tc=default:

  再次使用前面的Latin-1编码的例子:
german:German Users Accounts:\
    :charset=ISO-8859-1:\
    :lang=de_DE.ISO8859-1:\
    :tc=default:

  在修改用户的登入类型之前, 应首先执行下面的命令:
# cap_mkdb /etc/login.conf

  以便使在 /etc/login.conf 中新增的配置生效。
使用 vipw(8) 改变登入类型。
  使用vipw添加新用户,看起来像下面这样:
user:password:1111:11:language:0:0:User Name:/home/user:/bin/sh

用adduser(8)改变登入类型。
  用adduser添加新用户看起来像下面这样:
在/etc/adduser.conf里面设置defaultclass = 语言。应该记住,您必须为使用其它语言的所有用户设置 缺省类别。
每一次使用adduser(8)的时候,一个特定语言的可选择性回答会像下面这样给出:
Enter login class: default []:


 
 
如果您打算给每一个用户使用另外一种语言,您应该这样:
# adduser -class language

使用pw(8)改变登入类型。
  如果您使用pw(8)来添加新用户,应该这样使用:
# pw useradd user_name -L language

23.3.4.1.2 Shell启动文件方法
注意: 不推荐使用这种方法,因为它需要给每一个可能的shell程序一个不同的启动文件。 应该用登入分类方法来代替这种方法。
  为了设置本地化名称和MIME字符集,只要在/etc/profile或 /etc/csh.login启动文件里面设置这两个变量。下面我们使用德语做例子:
  在/etc/profile里面:
LANG=de_DE.ISO8859-1; export LANG
MM_CHARSET=ISO-8859-1; export MM_CHARSET

  或在/etc/csh.login里面:
setenv LANG de_DE.ISO8859-1
setenv MM_CHARSET ISO-8859-1

  另外,您可以把上面的设置添加到/usr/share/skel/dot.profile (和前面的/etc/profile一样),或者/usr/share/skel/dot.login (和前面的/etc/csh.login一样)。
  对于X11:
  在$HOME/.xinitrc里面:
LANG=de_DE.ISO8859-1; export LANG

  或者:
setenv LANG de_DE.ISO8859-1

  依赖您的shell(看上面)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP