오류 정보의 일본어화

입문


올리야프 제작에서는 잘못된 정보의 일본어화가 진행돼 잊지 않기 위해 실렸다.
사용자가 표를 정확하게 입력하지 못할 때, 잘못된 정보는 영어로 어디가 완비되지 않았는지 알기 어렵지 않습니까?그래서 일본어화를 실시하고 싶습니다.
사전 상황: 사용자 로그인 등 가져오기 devise/단일 오류 코드 설명
이번 절차로locale 파일에서 일본어 변환용yaml 파일을 만들어 영어를 번역합니다.
(locale 파일: 다국어 언어 파일)

1.gem 배포


1. 오류 메시지를 일본화하기 위해 Gemfile에'rails-i18n'이라는 gem와 bundle install을 기술합니다.
이것은 아래 링크에 기술된 문장을 일본어로 바꾸는 것이다.
https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml
Gemfile
gem 'rails-i18n'
2.config/application.rb에서 config.i18n.default_locale=: ja를 설명하고 언어를 설정합니다.
config/appllication.rb
module IdeaApp
  class Application < Rails::Application
    # 中略
    config.i18n.default_locale = :ja
    # 中略
  end
end

2. devise 관련 일본어화


사용자 로그인 등에서 devise를 가져왔기 때문에 관련 내용의 일본어화를 진행합니다.
1.config/locales에서devise.ja.yml을 만듭니다.
 →config/locales/devise.ja.yml
2.devise.ja.yml에 다음 링크 대상에 기술된 코드를 붙여넣습니다.
붙여넣기를 통해 기술한 문장을 일본어로 바꿉니다.
https://github.com/tigrish/devise-i18n/blob/master/rails/locales/ja.yml

3. 지정된 단어의 일본어화


이전 설치 중, rails-i18n과devise.ja.yml에 기술된 문장은 일본어화할 수 있지만 다른 문장은 아래 그림처럼 일본어화할 수 없습니다.

따라서 여기에 문장(Nickname, Title, Category) 등을 지정하여 일본어로 변환해야 한다.
1.config/locales 더하기.yml 만들기
 →config/locales/ja.yml
2. ja.yml에서 다음에 변환하고 싶은 문장의 변환 전, 변환 후
config/locales/ja.yml
ja:
  activerecord:
    attributes:
      user: #Userモデル
        nickname: ニックネーム
        phone_number: 電話番号
        first_name: 名前
        last_name: 名字
        first_name_kana: 名前カナ
        last_name_kana: 名字カナ
      idea: #Ideaモデル
        title: アイデア名
        idea: アイデアの内容
        price: 価格
        category_id: カテゴリー
    errors:
     messages:
       other_than:  --」以外を選択してください

4. 일본어로 변환 후


이렇게 하면 잘못된 정보를 일본어화할 수 있다.

5. 보충: 오류 코드 수정


이미 단일 테스트 코드를 기술한 상황에서 기대했던 오류 정보도 일본어로 바뀌었기 때문에 고쳐야 한다.
예를 들어 Nickname의 오류 코드를 기록합니다.
spec/models/user_spec.rb 개작 전
# 中略
context '新規登録がうまくいかないとき' do
  it 'nicknameが空だと登録できない' do
    @user.nickname = ''
    @user.valid?
    expect(@user.errors.full_messages).to include("Nickname can't be blank")
  end
end
# 中略
spec/models/user_spec.rb 다시 쓰기 후
# 中略
context '新規登録がうまくいかないとき' do
  it 'nicknameが空だと登録できない' do
    @user.nickname = ''
    @user.valid?
    expect(@user.errors.full_messages).to include("ニックネームを入力してください")
  end
end
# 中略

마지막


영어를 못하는 사람도 잘못된 정보를 읽을 수 있도록 실시했다.
앞으로도 누구나 쉽게 사용할 수 있는 앱을 만들 수 있다는 것을 깨달아야 한다.

좋은 웹페이지 즐겨찾기