37

アプリケーションを国際化していますが、一重引用符と二重引用符の両方を含む翻訳文字列を宣言する方法がわかりません。これは、私がしようとしている en.yml 文字列の例です

en:
  my_string: When you're using double quotes, they look like "this"

上記の文字列を使用すると、次のエラーが発生します。

can not load translations from /vagrant/config/locales/en.yml,
expected it to return a hash, but does not

二重引用符だけの場合は、一重引用符で囲み、その逆も同様です。ただし、二重引用符と単一引用符の両方を処理するにはどうすればよいですか?

4

3 に答える 3

46

エスケープはこのように行う必要があります

"When you're using double quotes, they look like \"this\""
于 2013-02-21T00:18:02.363 に答える
11

実際、翻訳文字列に時代遅れのタイプライターの引用符が必要な理由がわかりません。2013 年になり、もはや ASCII-7 に固執していません。タイポグラフィの規則では、Unicode の引用符を使用する必要があります。

これはこれまでのベスト プラクティスです。これらを 3 番目のキーボード レベル (または、最終的には)内にマップしsedます。yml

"When you’re using double quotes, they look like “this”"

このようなアプローチを使用すると、エスケープの問題に遭遇することはなく、クライアントは間違いなく「ああ、いいですね」と言うでしょう。</p>

申し訳ありませんが、これが少しトピックから外れているように思えますが、質問は翻訳文字列に関するものだったので、それでも最善の解決策であると考えています.

于 2013-02-21T05:28:52.877 に答える