問題タブ [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.
ruby-on-rails-3 - レール。同時に多くのロケールの検証
enとruの 2 つのロケールを持つバイリンガル Web サイトがあります。
サイトに i18n を実装したい。「globalize3」と「easy_globalize3_accessors」の gem を使用します。
標準フォームで作成および編集できる部門があります。ロケールは URL から指定されます:example.com/en/departments/
またはexample.com/ru/departments/
ここで、新しい部門項目を作成したい場合、次のように表示されます。
- 現在のロケールのメイン フォーム (I18n.locale)。
- 同じページに翻訳を追加するためのチェックボックス。
- チェックボックスがアクティブな場合、メイン フォームのすぐ隣に別のロケールの別のフォームを表示します。
- 最も重要なことは、各ロケールの検証が異なる必要があることです。たとえば、enの場合は ASCII シンボルを渡す必要があります。for ru — キリル文字。
私の問題は番号 4 です。チェックボックスで検証を機能させることができません。
主な問題は次のとおりです。チェックボックスがアクティブですか?はいの場合は、別のフォームを表示して、そのフォームの検証を実行します。いいえの場合、何も表示せず、そのフォームの検証を実行せず、空にします。
今のところ、2 つのフォームに記入すれば、すべてが魔法のように機能します。
Ok。私が試したこと。
モデル
コントローラ
チェックボックスなしで表示 (new.haml.html)
私がしなければならないことを理解するのを手伝ってください。
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
メッセージがあります。
もう一度言いますが、何が問題なのですか?
ruby - i18n を使用した Ruby / RSpec テスト
rspec を使用して iOS アプリのテストを実行しています。つまり、テストは Ruby で記述されています。アプリの言語を他の言語に変更できるため、どの言語でも実行できるように、Ruby テスト スクリプトを共通にしています。
しかし、rspec を使用して他の言語のテストを実行するにはどうすればよいですか。私は rspec/ruby 領域に不慣れで、rspec テストで i18n がどのように処理されるかについてのヘルプ/情報が必要です。アプリの現在の言語と、テストを実行したい言語を確認するにはどうすればよいですか。
提案してください。
ruby-on-rails - 変換されていないモデル パラメータ
config/locales/models/de.yml からの抜粋:
データベースはまさにメッセージの意味ですが、「Nachricht」ではなく「Messages」と書かれた検証エラーのメッセージです。どうしたの?
ruby-on-rails - コードをアプリケーションのカスタム エラー メッセージに割り当てる方法
Ruby on Rails でアプリケーション カスタム エラー メッセージにコードを与える方法。ユーザーがエラーを見たとき、エラー コードとメッセージの両方を知ることができる必要があります。
たとえば、それぞれのエラーの場合、次の結果を達成したいと考えています。
これは多言語アプリケーションです。エラー メッセージの翻訳は /config/locales/en.yml にあります。翻訳には i18n gem を使用しています。これは、エラー メッセージの翻訳がコードなしで存在する方法です。
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 にピエールによって提案された変更後のルート マップ)
問題は、これを期待どおりに機能させるには、ルートまたはエンジンにどのような変更を加える必要があるかということです。
あなたの時間と提案を前もってありがとう!