その他
    ホーム 技術発信 DoRuby 日本語のRailsプロジェクトを中国語化する

    日本語のRailsプロジェクトを中国語化する

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    Railsプロジェクトは基本的にUTF8のcharsetで、多言語を対応していますが、 Railsのプロジェクトを中国語化にするにはアプリ上にもいくつか変更必要がある箇所があります。

    ここで基本的な箇所をリストにします。

    1.charset
    一般的にRails日本語のプロジェクトのcharsetはUTF-8ですので、そのままで結構です。
    中国語のGB2312に変更したい場合、viewsファイル(html.erb、rhtml)のヘッダmetaの

    charset指定の「charset=UTF-8」

    「charset=GB2312」
    に変更

    2.validateチェック
    ・日本語に特有なvalidateチェックはカタカタのチェックです。
    カタカナチェックをすべて外しか、英数字のチェックに変更する必要があります。
    ・郵便番号桁数
    日本に郵便番号が7桁ですので、中国の6桁に変える必要があります。

    3.エラーメッセージ
    エラーメッセージは下記のディレクトリにあります。
    config\locales
    ja.yml→エラーメッセージ
    activerecord:
        errors:

    translation_ja.yml→エラー項目名

    この2ファイルをzh.yml,translation_zh.ymlに変更するか、
    あるいはこのディレクトリにzh.yml,translation_zh.ymlを追加するか。
    どちらでも構いません。

    renameする場合、ja.ymlの最初に「ja:」という定義がありますので、
    それを「zh:」に変更すればOK。

    4.環境設定ファイル
    config\environment.rbファイルにタイムゾーンとロケールの指定を変更
    config.active_record.default_timezone = ‘Tokyo’


    config.i18n.default_locale = ‘ja’

    config.i18n.default_locale = ‘zh’

    5.メール
    メールあたりは変える箇所が何か所があります。

    ・設定ファイルに定義がある場合、GB2312かUTF8に変更してください。
    config\environments\production.rb
    日本語プロジェクトのメールのエンコードは
    ActionMailer::Base.default_charset = ‘iso-2022-jp’

    ・一般的にメール送信処理はapp/models/notifier.rbが行います。
    GetText.locale = ‘ja’
    @@charset=’iso-2022-jp’

    @mail.subject = NKF.nkf(‘-j’, @mail.subject)
    @mail.body = NKF.nkf(‘-j’, @mail.body)

    上記の分を中国語に向いているようにしてください。
    NKF.nkfのオプションには中国語のエンコードがないようですので、UTF8に変更するか、
    NKF.nkfをやめるかをお勧めします。


    6.DB
    DBもcharsetの話ですね。サイトはGB2312の場合、DBも対応のcharsetに変更してください。


    まとめ、Railsのプロジェクトを中国語化にするには基本的にcharset+validateの変更。
    charsetはUTF8のままでしたら、もっと簡単です。