2011-06-23 6 views
9

最小のDevise + OmniAuthアプリケーションの場合はwhole source codeです。Rails3:国際化がローカライズされていない "パスワード確認"など

ご覧のとおり、日本のdevise.ja.ymlconfig/localesです。

問題:私はLANG = JAでサイトにアクセスすると、一部の文字列が日本人が、英語ではありません。

devise i18n password confirmation

"サインアップ" が正しく表示されますが、 "パスワードの確認" と他はまだ英語です。実際には、私はプロジェクト全体と.rvmディレクトリ全体をgrep'd:ファイルがありません "パスワードの確認"が含まれています!それは困惑している。

これらの文字列はどこから来たのですか?どうやって彼らはdevise.ja.ymlにいませんか?それはOmniAuthですか?

答えて

14

実際には、あなたのデフォルトの言語ymlファイルから来ます。 Deviseロケールファイルには、アラートメッセージといくつかの通知用のロケールがあります。フォーム属性の属性変換は行いません。

あなたはおそらく(

https://github.com/svenfuchs/rails-i18n/tree/f8606e62def45279f3498549f97699049135bd11/rails/locale

を訪問し、適切な(日本のあなたのケースでは)言語ファイルをダウンロードし、レールのアプリケーション構成ファイルで次に./config/locales/フォルダ

に入れたい./ config/application.rb)は、ロケール設定を変更して、日本語ロケールファイルを使用します。

config.i18n.default_locale = :ja 

設定を変更した後で、属性に日本語名が必要な場合は、次のようなルールを追加します。

activerecord: 
    attributes: 
     user: 
      email: "Email address in Japanese" 
      password: "Password in Japanese" 
      password_confirmation: "Password confirmation in Japanese" 
+0

実際にこのactiverecord段落を追加すると、これらの文字列を無効にすることができます。しかし、私は本当に自分ですべての文字列を見つけて翻訳する必要がありますか? ActiveRecordプロジェクトの一部であれば、既に日本語に翻訳されていないのですか? –

+0

あなたはすでにこれを認識していると思いますが、他の読者にはっきりさせるために、これらの文字列(例えばpassword_confirmation)はsvenfuchs/rails-i18nローカリゼーションファイルに含まれていません。 –

+0

人がどんな属性名を使うのかわからないので、ローカリゼーションのymlファイルにすべての可能な翻訳を含めることはできません。 'password'や' password_confirmation'や 'phone'や' dateofbirth'や何らかのランダム属性名を使うユーザもいます。ローカリゼーションファイルに1行の翻訳を追加すると、私のビューページのすべての属性に影響が出ると確信していました... – user482594

関連する問題