i18n 로켈을 JavaScript에 전달
6617 단어 I18nJavaScriptRubyRails
다국적 언어 앱을 만드는 과정에서 막혔어요.
jQuery 및 Ajax를 사용하여 상위 범주를 선택하면 드롭다운 메뉴에 하위 범주 후보가 표시됩니다.
그러나 하위 범주만 기본 태그의 베트남어로 번역할 수 있습니다.
예: 상위 분류 => 질문
하위 클래스=>1, Ng.ngng7919ăn hóa
2,Tập huấn kỹ thuật
3,Ứng dụng và thủ tục
까닭
Ajax가 하위 범주를 가져올 때 컨트롤러에 로켈을 전달하지 않았기 때문입니다.
category_pulldown.js
$("#parent").on("change", function () {
// 選択した親カテゴリからIDを取得
var id = document.getElementById("parent").value;
// 中略
$.ajax({
type: 'GET',
data: { parent_id: id }, // IDをparams[:parent_id]に入れて送信
url: '/categories/pulldown', // categoriesコントローラにて、受け取ったIDで子カテゴリを取得
dataType: 'json',
}).done(function (children) { // 取得した子カテゴリを表示させる処理...
일부 발췌문이지만 언어 환경을 얻는 것은 다음과 같은 방법으로 진행된다.application_controller.rb
before_action :set_locale
private
def set_locale
I18n.locale = locale
end
def locale
@locale ||= params[:locale] ||= I18n.default_locale
end
def default_url_options(options = {})
options.merge(locale: locale)
end
Java Script에 현재 로켈 전달
우선, 현재 언어 환경을 유지하기 위해 input 탭을 사용하십시오.
아래와 같이
type="hidden"
사용자가 봐도 화면에 표시되지 않습니다.hoge.html.erb
<input type="hidden" class="current_locale" value="<%= I18n.locale %>">
다음 추가locale: $('.current_locale').val()
하면친자류의 번역 언어가 통일되었다.
category_pulldown.js
$("#parent").on("change", function () {
// 選択した親カテゴリからIDを取得
var id = document.getElementById("parent").value;
// 中略
$.ajax({
type: 'GET',
data: { parent_id: id, locale: $('.current_locale').val() }, // IDをparams[:parent_id]に入れて送信
url: '/categories/pulldown', // categoriesコントローラにて、受け取ったIDで子カテゴリを取得
dataType: 'json',
}).done(function (children) { // 取得した子カテゴリを表示させる処理...
HTML은 루비와 자바스크립트로부터 정보를 전달할 수 있어 매우 편리하다
Reference
이 문제에 관하여(i18n 로켈을 JavaScript에 전달), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lotte_pepe/items/2877a9c8cf067b9521b7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)