熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

為系統添加新字體和中文顯示

2013-11-23 18:52:51  來源: Java核心技術 

  
   為 Redhat 的兩個字體子系統添加字體
   讓 Enlightenment 顯示中文
   Java 的中文問題:
     JBuilder 的中文問題
     JSDK 的中文問題
     JRE 的中文問題
    大家挑自己需要的看就好了
  
  為 Redhat Linux 添加新字體
  [注]
  以下過程在 Redhat 上測試通過
  
  
  准備要安裝的字體 如: c f
  根據發行注記裡所言分別為核心 X 字體子系統和 fontconfig 字體子系統添加字體:
  
  為核心 X 字體子系統添加字體
  
  [注]
  以下部分應該對 Redhat 之前的版本也適用 因為 核心 X 字體子系統存在
  於迄今為止的版本中
  
  如果你想給你的 Red Hat Linux 系統添加新字體根據使用新字體的字體子系統而
  定
  你必須明確所需步驟對於核心 X 字體子系統你必須
   創建 /usr/share/fonts/local/ 目錄(如果它不存在)
  mkdir /usr/share/fonts/local/
  
   這一步沒問題
  
  如果你必須要創建 /usr/share/fonts/local/你就必須把它添加到 X 字體服務器的
  路
  徑中
  chkfontpath add /usr/share/fonts/local/
  
   如果是剛創建的 /usr/share/fonts/local/ 那麼執行這一行命令會提示錯誤
  因為系統在這個目錄裡找不到 fontsdir 文件 然後就不 add 不過沒關系
  這一步跳過去 在第三步之後做
  
   把新字體文件復制到 /usr/share/fonts/local/ 中
  
   照做
  
   使用以下命令來更新字體信息
  ttmkfdir d /usr/share/fonts/local/ o /usr/share/fonts/local/fontsscale
  
   照做 然後:
  ) 把 fontsscale 拷貝出來一份 fontsdir
  ) chkfontpath add /usr/share/fonts/local/
  
   使用以下命令來重新啟動 xfs 字體服務器
  service xfs reload
  
   這一步我沒成功 因為我發現 redhat 裡面沒有 service 這個命令 於是
  用笨辦法解決: 退出 X 再 startx
  
  以上這些步驟做完之後 所有 gtk 的程序裡有關字體的部分 (如 xmms 的字體設置
  裡) 都多出來我們要的新字體 像 simsun tahoma 這時可以在程序內部直接使用了
  比如我們讓歌曲列表裡的中文使用 simsum 英文使用 tahoma 可以這樣做:
  
  ) 先在 xmms 的 Fonts 裡勾上選項 Use fontsets 讓 xmms 支持雙字節的
  中文字體;
  ) 在 播放清單 部分浏覽字體 選擇使用 simsum:
  miscsimsunmediumrnormal****c*koir
  (不用拷這個 選上 simsun 它自己就出來了)
  
  對於英文字體的要用 tahoma 就這麼來 一點小技巧:
  
  把這段 miscsimsunmediumrnormal****c*koir ^x 剪切下來
  再選字體為 tahoma 出現這個:
  
  microsofttahomamediumrnormal****p*viscii
  
  好了 在後面加個逗號 把剛才剪切的那段東東 ^v 粘貼在後面成為:
  
  microsofttahomamediumrnormal****p*viscii
  miscsimsunmediumrnormal****c*koir
  
  
  這麼一行 保存一下 於是歌曲列表就會對中文使用 simsum 英文使用 tahoma
  再把這行拷下面 Main Window 的字體裡 (要勾上 Use X font) 這時 xmms 主窗
  口裡的字體 (像那條來回滾動的歌曲信息的字體) 也和歌曲列表裡的一樣了
  
  注意 我剛才說的是程序內部 就象 xmms 的歌曲列表一樣 而 程序本身 即 xmms 自
  己的窗口卻還是又粗又大的字體 這時需要改 gtk 的字體設置:
  
  ) 用 root 賬號: vi /etc/gtkrczh_CN
  ) 把原來的:
  
  fontset = adobehelveticamediumrnormal*****iso
  **mediumrnormal*****gb*r*
  
  改成和我們上面用在 xmms 裡的字體一樣:
  
  fontset =
  microsofttahomamediumrnormal****p*viscii
  miscsimsunmediumrnormal****c*koir
  
  ) 保存退出 關掉 xmms 這些程序 再重新打開 效果就出來了! Enjoy!
  
  
  為 fontconfig 字體子系統添加字體
  
  [注]
  以下除了 圖形化地安裝字體 部分為 Rehat 獨有 其他應該在之前版本也適
  用 大家試試
  
  這部分簡單多了 看 redhat 發行注記:
  
  把新字體添加到 fontconfig 字體子系統比較簡單明了只需把新字體復制到
  /usr/share/fonts/ 目錄中即可(個體用戶可以把新字體復制到 ~/fonts/ 目錄中來修
  改他們的個人字體配置)
  
  復制了新字體後使用 fccache 來更新字體信息緩存
  
  fccache 
  
  (這裡的 應該是 /usr/share/fonts/ 或 ~/fonts/ 目錄)
  
   我是按這個辦法把字體拷 ~/fonts/ 下面做成功的 (不想使用 root 用戶 hh)
  
  個體用戶還可以圖形化地安裝字體方法是在 Nautilus 中浏覽 fonts:///然後把
  新字體文件拖放到那裡
  
   而這個辦法我失敗了 無論我用普通用戶還是 root 用戶 都無法把字體文件
  拷貝或者 拖放 到 Nautilus 的 fonts:/// 文件夾裡 不知道原因 只好放棄
  
  按第一種方式添加成功後 在 gtk 的程序裡設置字體的部分都可以自由使用新字體
  比如在控制中心裡把應用程序字體都改成 simsum (另外 我發現 號大小的
  simsun 效果最好 不使用單色也非常清晰 可以考慮使用)
  
  總的來說 為 Redhat Linux 添加新字體並沒有什麼太難太神秘的東西 我個人做完之
  後
  覺得並沒有想像中那麼難 尤其是 gtk 程序的字體部分 不必改別人說過的那麼多
  文件
  
  而實際只要添加完字體 改個 /etc/gtkrczh_CN 就搞定了
  
  
  讓 Enlightenment 顯示中文
  同樣簡單 在上面的前提下 找到你當前使用的 E 主題 如我的是在
  ~/enlightenment/themes/AquaX/
  
  進入這個目錄後 最簡單的做法:
  gedit textclasscfg
  
  利用 gedit 的替換功能 把所有關於字體的字符串 如:
  
  *helveticaboldrnormal********
  
  統統替換成和 xmms 一樣的:
  
  microsofttahomamediumrnormal****p*viscii
  miscsimsunmediumrnormal****c*koir
  
  保存退出 清除 E 的緩存 Restart E 搞定
  
  
  Java 的中文顯示
   JBuilder 的中文問題
  
  vi /etc/profile
  
  添加:
  
  JAVA_FONTS=/path/to/your/zhfonts/
  export JAVA_FONTS
  
  比如要用剛才弄好的 simsum 和 tahoma 字體 因為我們已經把它們放在:
  /usr/share/fonts/local 裡面了 所以這裡就可以填:
  
  JAVA_FONTS=/usr/share/fonts/local
  
  注意 JBuilder 顯然用的是 fontconfig 字體子系統 所以 要讓它認出來
  有哪些字體可以用 fontsscale 和 fontsdir 這兩個問題無疑是必需的
  相比較上面核心 X 字體子系統的字體文件夾裡 即我的 ~/fonts 裡面只有
  字體文件和一個叫 fontscache 的文件 可以對比著理解
  
  能讓 JBuilder 打開的程序顯示中文 但 JBuilder 本身中文有問題 下面:
  修改 JBuilder 自己的字體配置 比如我的 JBuilder 裝在:
  
  ~/Apps/Devs/JBuilder
  
  那麼:
  vi ~/Apps/Devs/JBuilder/jdk/jre/lib/fontproperties
  
  把這樣的東西:
  
  serif=b&h lucidabrightmediumrnormal*%d**p*iso
  serif=standard symbols lmediumrnormal*%d**p*urwfontspecific
  
  alic=b&hlucidabrightmediuminormal*%d**p*iso
  alic=standard symbols lmediumrnormal*%d**p*urwfontsp
  ecific
  
  統統換成如:
  
  serif=microsofttahomamediumrnormal****p*viscii
  serif=miscsimsunmediumrnormal****c*koir
  
  alic=microsofttahomamediumrnormal****p*viscii
  alic=miscsimsunmediumrnormal****c*koir
  
  (還是用上面 xmms 一樣的字體)
  
  所有這些 *= 都是描述英文該用什麼字體
  而所有 *= 都是描述中文該用什麼字體
  
  最後保存退出 JBuilder 裡的英文就都是 tahoma 所有的中文都是 simsun
  自然 因為已經設置了 JAVA_FONTS 所以所有 Java 的應用程序都能正常找到
  中文字體並顯示
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25919.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.