这个鬼项目终于要结束了,就差翻译工作。其实早就不想干了,但苦于经济压力,只能坚持做完,只要翻译完事,就可以获取客观的收入,马上就可以离开这个鬼项目了!但是翻译遇到问题,请各位同仁帮帮忙!问题是这样的:
一个需要完全运行在日文系统下的项目,因为不懂日文,也不想学习日文,就将其拿到中文系统下开发,使用的环境是英文的JBuilder 2006 + 中文的SQL Server2000,系统中用到文字的地方全是汉字,包括注释,工程的Encoding为default。现在系统已经集成测试完毕,我想只要把系统中除了注释外其他汉字翻译成日文,再重新编译一遍,应该就可以了吧。现在我已经安装了日文系统,也安装了英文的JBuilder 2006,已经把系统中除了注释外的中文全部翻译成了日文,工程下的Encoding选择了EUC-JP(日文字符集),重新编译运行整个系统,出现了上千个warning,检查每个warning,发现原来注释部分的汉字也给出警告,我认为中文注释也就显示不出来,不至于给出警告呀!结果运行程序,发现日文还是显示不出来,全部显示方框,是什么问题呢?哪位同仁能指点迷津,我感激涕零!

解决方案 »

  1.   

    >>>出现了上千个warning
    这个没有关系,上万个也没有关系>>>结果运行程序,发现日文还是显示不出来,全部显示方框
    显示的字符集问题,比如,如果你用了JSP,请检查httpResponse的字符集是否正确
      

  2.   

    >>>出现了上千个warning
    你用南极星把它转码吧。gb2312->shift-jis,这样就不会警告了。
    >>>结果运行程序,发现日文还是显示不出来,全部显示方框
    首先你要在日文系统下翻译。
    确认程序使用的字符集是不是日文字符集。以前做过日文转成中文的。
      

  3.   

    zqrqq(zqrain(结帖是一种美德)):多谢你的回答我用的不是JSP,而是Swing,是一个Swing项目,结构是两层C/S,访问数据库用JDBC,那么请问:我如何检查显示的字符集是什么呢?这方面没有一点经验,多谢指点!另外,日文的字符集就是EUC-JP呀,不是吗?
      

  4.   

    kikikeke():多谢你的回答我是在JBuilder下编译运行,Encoding选择的是EUC-JP,然后发现日文显示不出来,全部显示小方框,请问设置Encoding为EUC-JP,不是设置字符集为日文吗?多谢指点!
      

  5.   

    你们的文字是写在程序里面的还是写在资源文件中呢?如果是写在资源文件中,那很好办,只需要把资源文件的编码用native2ascii -encoding shift_JIS 转换一下就可以了。
    如果是在程序中,就稍微麻烦一点了,你需要把那些java文件处理一下,因为里面的字符串可能是用default的编码的
      

  6.   

    最好找个工具,像emeditor这样的先看看你的程序代码的编码是怎样的?
    如果是gb2312的,那你就先用南极星转了后在放到日文系统下来。有可能你翻译的时候编码就已经不对了。
      

  7.   

    zqrqq(zqrain(结帖是一种美德)):多谢你的回答我是个初学者,还没用到资源文件,只是听说过,还不太会用。我是这样操作的:
    中文操作系统下,在JBuilder中创建一个工程,工程属性中Encoding没有特意设置,默认是default,然后新建一个JFrame,就开始设计画面,编写程序了,运行,测试成功即可!请问如果按照上面过程操作,如何查看工程字符集?是不是就是default?如果要修改字符集,怎么办呢?请指点迷津!非常感谢!
      

  8.   

    JBuilder在中文操作系统下的default字符集一般是gbk2312
      

  9.   

    zqrqq(zqrain(结帖是一种美德))、kikikeke():多谢你们的回答画面上我没有设置特殊的字体,我的字体是new Font("Dialog", 0, 12),很普通的一个字体,应该不是问题来源!
    我上面举的例子,我需要对每个Java文件转码吧?我该如何转码呢?没用过,用你们说的native2ascii -encoding shift_JIS? shift_JIS是日文字符集吗?为什么不用EUC_JP?
      

  10.   

    请教两位:你们用的日文字符集是shift_JIS,还是EUC_JP?
      

  11.   

    都是,就想GBK和gb2312都是中文字符集一样
      

  12.   

    我在JBuider下把Encoding设置为gb2312,然后重新编译,日文系统下所有的中文都能正常显示出来,系统能够正常运行,那是不是说,我的系统中文下的字符集肯定为gb2312?
      

  13.   

    另外想再请教一下:目前我的系统已经运行测试完事,指在中文系统下,请问,我现在可以加资源文件进去吗?在资源文件中指定使用的字符集,这样整个系统的字符集是统一的,我还需要修改每一个使用到字符集的Java文件吗?这方面我一点经验都没有,能不能帮我一下!感激涕零!
      

  14.   

    因为你的程序文件的内码是中文的,所以你在日文下编译,它还是中文的。中文还是可以显示。但是你把日文加在中文内码的程序文件中,当然显示出来的就是乱码了。所以关键不在于你在jbuilder中把encoding设成什么,而是在于程序文件本身的编码。
    你可以自己新建一个文件,把代码拷贝出来在看看内容是否正确。
      

  15.   

    另外想再请教一下:目前我的系统已经运行测试完事,指在中文系统下,请问,我现在可以加资源文件进去吗?在资源文件中指定使用的字符集,这样整个系统的字符集是统一的,我还需要修改每一个使用到字符集的Java文件吗?这方面我一点经验都没有,能不能帮我一下!感激涕零!
      

  16.   

    >>>我现在可以加资源文件进去吗?
    可以,虽然有一定的工作量在资源文件中指定使用的字符集,这样整个系统的字符集是统一的,我还需要修改每一个使用到字符集的Java文件吗?
    如果使用资源文件,就不需要修改java文件。
      

  17.   

    我说的意思是,不需要修改java文件的字符集。但是java代码显然会有一定修改
      

  18.   

    zqrqq(zqrain(结帖是一种美德)):多谢你的回答
    对你的建议我很期待,很希望能够实现!我现在加资源文件进去,在资源文件里面设置系统使用的字符集,请问你说的有一定的工作量具体指什么?我猜应该是指在每个使用到字符集的Java文件中设置字符集属性,该属性名称是由资源文件所决定的。如果使用资源文件,就不需要修改java文件。------不需要修改使用到字符集的Java文件吗?那有一定的工作量指什么?你指的java代码修改是指修改什么?
    有没有相应的例子呀?非常渴望得到!感激涕零![email protected] QQ:25403519
      

  19.   

    工作量:(例子)
    old code
    ======================================
    String s = "某些界面上的日文文字";new code
    ======================================
    String s = ResourceBundle.get(strName);
      

  20.   

    kikikeke() :多谢你的回答我目前系统中的中文都是写在一个Java文件中,其实我要翻译的话只需要翻译这一个文件就可以了!这个Java文件中包括控件名称、提示信息等等,其他的画面Java文件都是调用此Java文件来获取中文的!kikikeke() :你前面的回答我总结了一下,就是我在中文系统下编译的程序(都是中文),如果想在日文系统下正确显示日文,首先要将包含中文的Java文件用南极星转换内码成shift_JIS,然后在日文系统下把翻译后的日文粘贴上去,就可以了。OK?我的理解对吧?
    具体在JBuilder中重新编译运行时,Encoding采用日文系统下默认的default就可以了,不用再设置Encoding了吧?
      

  21.   

    既然你是写在一个java文件的,那你就可以用zqrqq(zqrain(结帖是一种美德)) 的方法做成国际化的吧,以后不管是中文,日文系统都可以用。何乐而不为呢。