カップルRails 3.0.1、Ruby 1.9.2と私のウェブサイトのローカリゼーション。
問題は非常に簡単です、私はビューでそのようなものを持っています:
f.input :Zip_code, :label => I18n.t('labels.Zip_code')
およびes.ymlファイル:
es:
labels:
Zip_code: "Este código postal no es valido."
En.ymlファイル(純粋なASCIIファイル)に問題はありませんが、Webサイトがi18n.locale == 'es'
私はこのエラーを受け取ります:
incompatible character encodings: UTF-8 and ASCII-8BIT
私はかなり長い間探していましたが、UTF-8翻訳ファイルを使用する方法を見つけませんでした。
動作させる方法を知っている人もいましたか?
ご協力いただきありがとうございます。
数時間のグーグルで問題は解決しました...
実際、私のコードには2つのバグがありました。 1つ目はファイルエンコーディングエラーで、2つ目はMySQLデータベース構成の問題です。
まず、MySQLが原因のエラーを解決するために、次の2つの記事を使用しました。
http://www.dotkam.com/2008/09/14/configure-Rails-and-mysql-to-support-utf-8/
http://www.rorra.com.ar/2010/07/30/Rails-3-mysql-and-utf-8/
次に、ファイルエンコーディングの問題を解決するために、config/environment.rbに次の2行を追加しました
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
うまくいけば、これは誰かを助ける:)
多くのソリューションを組み合わせることで、ほとんどの問題を解決しました。
application.rb
に次の行があることを確認してください:config.encoding = "utf-8"
。# encoding: utf-8
を配置します。<App Name>::Application.initialize!
のenvironment.rb
行の上に次の2行を追加します。
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
http://rorguide.blogspot.com/2011/06/incompatible-character-encodings-ascii.html
このアンパック関数を使用すると、最終的にこれを整理するのに役立ちました。変換できないエラーメッセージが表示された場合は、これを試してください。
myString.unpack('U*').pack('U*')
config.encoding = "utf-8"
あなたのconfig/application.rb
。また、サンプルの翻訳ファイルは、検索しているキーと一致しません(com_name
およびfirst_name
)しかし、私はそれが単なるタイプミスかもしれないと思います。
本当にes.yml
ファイルはUTF-8として保存されましたか?
Windowsを使用している場合は、 http://notepad-plus-plus.org/ を使用して確認してください。