Rails에서 i18n을 사용할 경우 공식 환경 설정도 주의해야 합니다.
컨디션
개요
Rails 설명서2.3 언어 환경의 설정과 연결에 따라 i18n을 적용하고 로컬 개발 환경에서 설치 방법에 따라 영어 태그를 실행합니다.
그러나 정식 촬영 환경에서 헤로쿠가 디자인을 한 후, 예를 들어 블로그 일람화면에서 왠지 아래와 같은 불완전한 영어 쓰기 방식이 되었다.
로컬 뷰
공식 환경(Heroku)의 표현
View 기술
블로그 일람index.html.erb
을 표시하는 기술은 다음과 같다.
t방법으로 문장과 관련된 부분을 기술하고ja.yml
또는en.yml
로 구체적인 문장을 정의한다.<h1 class="title"><%=t :blog_list %></h1>
<div class="container">
<div class="row">
<% @blogs.each do |blog| %>
<div class="col-xs-12 col-md-6 blog-panel">
<h2><%= blog.title %></h2>
<p><%= blog.content %></p>
<p><%=t :author %>:<%= blog.user.name %></p>
<p><%=t :created_at %>:<%= blog.created_at %></p>
<div class="blog-link">
<%= link_to t(:detail), blog_path(blog.id), class: "btn btn-default" %>
<% if blog.user == current_user %>
<%= link_to t(:edit), edit_blog_path(blog.id), class: "btn btn-info" %>
<%= link_to t(:delete), blog_path(blog.id), method: :delete, data: { confirm: "削除しますか?" }, class: "btn btn-danger" %>
<% else %>
<%= link_to t(:edit), '', class: "btn btn-info", disabled: "disabled" %>
<%= link_to t(:delete), '', class: "btn btn-danger", disabled: "disabled" %>
<% end %>
</div>
</div>
<% end %>
</div>
</div>
I18n.load_path
결과 되돌아오는 배열 요소에 다음과 같은 내용이 포함되어 있기 때문에 로컬에서 설정한yml 파일을 정확하게 읽는 경우."/app/config/locales/en.yml", "/app/config/locales/ja.yml", "/app/config/locales/model.en.yml", "/ap p/config/locales/model.ja.yml"
결실
config/environments/production.rb
의 값config.i18n.fallbacks
을 true
에서 false
로 변경함으로써 해결되었다.# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation cannot be found). |
config.i18n.fallbacks = false
기본 메모의 위 두 행에 프롬프트가 숨겨져 있는 경우fallbacks = true
en.yml
에서 번역문을 찾을 수 없는 경우 검색 대상을 기본 언어 환경으로 되돌려줍니다. (이 경우 ja입니다.)
나의 경우 en.yml
최소한의 번역문만 쓴다. 예를 들어'블로그 일람'과 같은 제목의 영역을 찾지 못하면 기본적인 일본어 제목이 표시된다.fallbacks = false
면 en.yml
지정이 없으면 t 메서드의 매개변수를 (snake case)->(Camel Case)로 변환한 후 문자열이 표시되므로 표시되는 내용이 대상과 일치합니다.
상술한 방법en.yml
을 습득했다면 불필요한 번역문을 쓸 필요가 없었을 것이다. 그러나 잘 이해하지 못하면 성실하게en.yml
번역문을 정확하게 쓰는 것이 좋다.
Reference
이 문제에 관하여(Rails에서 i18n을 사용할 경우 공식 환경 설정도 주의해야 합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masarusan24/items/005bf7399dc31192e425
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<h1 class="title"><%=t :blog_list %></h1>
<div class="container">
<div class="row">
<% @blogs.each do |blog| %>
<div class="col-xs-12 col-md-6 blog-panel">
<h2><%= blog.title %></h2>
<p><%= blog.content %></p>
<p><%=t :author %>:<%= blog.user.name %></p>
<p><%=t :created_at %>:<%= blog.created_at %></p>
<div class="blog-link">
<%= link_to t(:detail), blog_path(blog.id), class: "btn btn-default" %>
<% if blog.user == current_user %>
<%= link_to t(:edit), edit_blog_path(blog.id), class: "btn btn-info" %>
<%= link_to t(:delete), blog_path(blog.id), method: :delete, data: { confirm: "削除しますか?" }, class: "btn btn-danger" %>
<% else %>
<%= link_to t(:edit), '', class: "btn btn-info", disabled: "disabled" %>
<%= link_to t(:delete), '', class: "btn btn-danger", disabled: "disabled" %>
<% end %>
</div>
</div>
<% end %>
</div>
</div>
"/app/config/locales/en.yml", "/app/config/locales/ja.yml", "/app/config/locales/model.en.yml", "/ap p/config/locales/model.ja.yml"
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation cannot be found). |
config.i18n.fallbacks = false
Reference
이 문제에 관하여(Rails에서 i18n을 사용할 경우 공식 환경 설정도 주의해야 합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masarusan24/items/005bf7399dc31192e425텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)