1. ホーム
  2. ruby-on-rails

[解決済み] rails の国際化 - 内部にリンクがあるテキストを翻訳する

2022-11-11 21:54:02

質問

次のようなテキストを国際化したいのですが、どうすればよいでしょうか。

すでに登録済みですか? ログインしてください。

テキストにリンクがあることに注意してください。この例ではgoogleを指していますが、実際には私のアプリの log_in_path .

私はこれを行う2つの方法を見つけましたが、どれも"right"に見えません。

私が知っている最初の方法は、この私の en.yml :

log_in_message: "Already signed up? <a href='{{url}}'>Log in!</a>"

そして、私の見解では

<p> <%= t('log_in_message', :url => login_path) %> </p>

これは が動作します。 しかし <a href=...</a> の部分は en.yml の部分は、私にはあまりきれいに見えません。

私が知っている他の選択肢は ローカライズされたビュー - login.en.html.erblogin.es.html.erb .

これでは、異なる行は前述の1行だけで、残りの部分(約30行)はすべてのビューで繰り返されることになり、正しいとは言えません。これは非常に DRY とは言えません。

ローカライズされたパーシャルを使用することもできると思いますが、それはあまりに煩雑に思われます。

私の質問は、これを実装するための "proper" の方法があるかどうかということです。

どのように解決するのですか?

ja.yml

log_in_message_html: "This is a text, with a %{href} inside."
log_in_href: "link"

ログイン.html.erb

<p> <%= t("log_in_message_html", href: link_to(t("log_in_href"), login_path)) %> </p>