問題タブ [rails-i18n]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
173 参照

ruby-on-rails-3 - レール。同時に多くのロケールの検証

enruの 2 つのロケールを持つバイリンガル Web サイトがあります。

サイトに i18n を実装したい。「globalize3」と「easy_globalize3_accessors」の gem を使用します。

標準フォームで作成および編集できる部門があります。ロケールは URL から指定されます:example.com/en/departments/またはexample.com/ru/departments/

ここで、新しい部門項目を作成したい場合、次のように表示されます。

  1. 現在のロケールのメイン フォーム (I18n.locale)。
  2. 同じページに翻訳を追加するためのチェックボックス。
  3. チェックボックスがアクティブな場合、メイン フォームのすぐ隣に別のロケールの別のフォームを表示します。
  4. 最も重要なことは、各ロケールの検証が異なる必要があることです。たとえば、enの場合は ASCII シンボルを渡す必要があります。for ru — キリル文字。

私の問題は番号 4 です。チェックボックスで検証を機能させることができません。

主な問題は次のとおりです。チェックボックスがアクティブですか?はいの場合は、別のフォームを表示して、そのフォームの検証を実行します。いいえの場合、何も表示せず、そのフォームの検証を実行せず、空にします。

今のところ、2 つのフォームに記入すれば、すべてが魔法のように機能します。

Ok。私が試したこと。

モデル

コントローラ

チェックボックスなしで表示 (new.haml.html)

私がしなければならないことを理解するのを手伝ってください。

0 投票する
1 に答える
6786 参照

ruby-on-rails-3.2 - rails-i18n の翻訳が読み込まれていないようです

ステージ:

私は Rails 3.2 アプリケーションを持っていますGemfile

それから私は実行しbundle installます。

ビューで i18n メッセージをリクエストします。例:

config/initializers/locate.rb、デフォルトの位置を設定しました:

問題:

どうしたの?rails-i18nロードされていませんよね?

テスト:

ファイルに追加puts I18n.load_pathしましょう:config/initializers/locate.rb

I18n.default_locale = :es I18n.available_locales = :es

puts I18n.load_path

アプリケーションを再起動すると、ロードされたすべてのパスがリストされていることがわかります。

このリストにはesメッセージがあります。

もう一度言いますが、何が問題なのですか?

0 投票する
0 に答える
41 参照

ruby - i18n を使用した Ruby / RSpec テスト

rspec を使用して iOS アプリのテストを実行しています。つまり、テストは Ruby で記述されています。アプリの言語を他の言語に変更できるため、どの言語でも実行できるように、Ruby テスト スクリプトを共通にしています。

しかし、rspec を使用して他の言語のテストを実行するにはどうすればよいですか。私は rspec/ruby 領域に不慣れで、rspec テストで i18n がどのように処理されるかについてのヘルプ/情報が必要です。アプリの現在の言語と、テストを実行したい言語を確認するにはどうすればよいですか。

提案してください。

0 投票する
1 に答える
31 参照

ruby-on-rails - 変換されていないモデル パラメータ

config/locales/models/de.yml からの抜粋:

データベースはまさにメッセージの意味ですが、「Nachricht」ではなく「Messages」と書かれた検証エラーのメッセージです。どうしたの?

0 投票する
1 に答える
36 参照

ruby-on-rails - コードをアプリケーションのカスタム エラー メッセージに割り当てる方法

Ruby on Rails でアプリケーション カスタム エラー メッセージにコードを与える方法。ユーザーがエラーを見たとき、エラー コードとメッセージの両方を知ることができる必要があります。

たとえば、それぞれのエラーの場合、次の結果を達成したいと考えています。

これは多言語アプリケーションです。エラー メッセージの翻訳は /config/locales/en.yml にあります。翻訳には i18n gem を使用しています。これは、エラー メッセージの翻訳がコードなしで存在する方法です。

0 投票する
1 に答える
2098 参照

ruby-on-rails-3.2 - マウントされたエンジンへの i18n ルーティング - ロケールを無視します

i18n サポートが構築されたアプリケーション (my_test_app) があります。現在、FR と EN の 2 つの言語ファイルが利用可能です。それらを切り替えると、ユーザー インデックス/表示/編集/削除 (ISED) などのエンジン以外の機能については、期待どおりにすべてが機能します。オプション。

my_test_app 内には、コントローラーとモデル セット (engine_job) を持つ Rails エンジン (my_engine) がマウントされています。したがって、実行可能な URL は次のようになります。

ただし、どの言語を選択しても、常に EN で表示されます。パラメータを調べると、次のことがわかります。

それでも、選択された翻訳は EN です。

my_test_app route.rb:

my_engine route.rb:

レーキルート:

さらに、エンジン内でクリックされたリンクは、言語を EN に設定します。私が見つけたすべての i18n の例は、マウントされたエンジンを含まないため、いくつかの Web 検索では、ここで何が起こっているのかについて実際の光を当てることはできませんでした。

編集: デフォルトのロケール my_test_app/app/controllers/application_controller.rb を設定するコードを表示:

/編集

EDIT2 (8 月 9 日 15:59 にピエールによって提案された変更後の​​ルート マップ):

申請ルートはhttp://0.0.0.0:3000/en/usersで決まり"locale"=>"en"ます。ヘルパーによって作成されたエンジン ルートは、http://0.0.0.0:3000/my_engine?locale=en/engine_jobsと yieldsのようになりますNo route matches [GET] "/my_engine"

/EDIT2 (8 月 9 日 15:59 にピエールによって提案された変更後の​​ルート マップ)

問題は、これを期待どおりに機能させるには、ルートまたはエンジンにどのような変更を加える必要があるかということです。

あなたの時間と提案を前もってありがとう!