开源项目管理系统Redmine汉化小结

安装好redmine之后(在这里不再啰嗦如何安装了)。
我在centos和windows上都装了下,客户端是windows的ie6
使用默认的zh语言包,文件路径:lang\zh.yml
界面基本汉化,但是主要的问题在于

1、PDF导出乱码
状况:acrobat打开以后提示安装繁体字库。下载后打开乱码。
原因:redmine项目是以utf-8编码。acrobat reader不带unicode字体。而生成pdf必须用gb2312或者Big5
pdf导出编码是在zh.yml定义的。

zh.yml文件第55行
general_pdf_encoding: Big5

这里定义了导出编码为Big5,再查看app\helper\ifpdf_helper.rb

ifpdf_helper.rb第36行
when :zh
    extend(PDF_Chinese)
    AddBig5Font()
    @font_for_content 
= 'Big5'
    @font_for_footer 
= 'Big5'

设定zh语言的时候,用的是big5字体。下面给出修改方法。

修改方法:
修改zh.yml

zh.yml文件第55行改为
general_pdf_encoding: gb2312

修改ifpdf_helper.rb

ifpdf_helper.rb第36行开始改为
when :zh
    extend(PDF_Chinese)
    AddGBFont()
    @font_for_content 
= 'GB'
    @font_for_footer 
= 'GB'

重新启动server,下载打开成功。



2、文档列表下载的文件名乱码
分析:在linux下载文件的时候文件名是正确的,估计是由于windows默认是gbk编码所致,需要在下载的时候修改编码。
修改:一般来说还是用windows客户端占绝大多数,因此直接修改下载文件名用gb2312编码。
修改documents_controller.rb

原代码41行开始
def download
    @attachment 
= @document.attachments.find(params[:attachment_id])
    @attachment.increment_download
    send_file @attachment.diskfile, :filename 
=> @attachment.filename

改为
def download
    @attachment 
= @document.attachments.find(params[:attachment_id])
    @attachment.increment_download
     @ic 
||= Iconv.new(l(:general_pdf_encoding), 'UTF-8')
    send_file @attachment.diskfile, :filename 
=> @ic.iconv(@attachment.filename)

并在文件最上面加入
require 
'iconv'

修改前

修改后


如果要进一步优化,就得根据用户操作系统环境和浏览器来决定编码。破ie到现在还是不支持原生utf-8的。
  

posted on 2007-11-14 15:32  冰天雪地  阅读(4661)  评论(3编辑  收藏  举报