Rails Insights

Rails I18n: Canllaw i Ryngwladoli yn Ruby on Rails

Mae creu apiau gwe sy'n gallu gwasanaethu defnyddwyr o wahanol ddiwylliannau a ieithoedd yn hanfodol yn y byd modern. Mae Ruby on Rails, un o'r fframweithiau mwyaf poblogaidd ar gyfer datblygu apiau gwe, yn cynnig system ryngwladoli (I18n) sy'n gwneud y broses hon yn haws. Yn y canllaw hwn, byddwn yn archwilio sut i ddefnyddio I18n yn Ruby on Rails, gan gynnwys enghreifftiau cod a chamau i ddilyn.

Beth yw Ryngwladoli (I18n)?

Mae ryngwladoli (I18n) yn broses sy'n caniatáu i apiau we ddarparu cynnwys yn nifer o ieithoedd a diwylliannau. Mae'n cynnwys cyfieithu testunau, fformatio dyddiadau, a chynnal arferion lleol. Mae Ruby on Rails yn cynnig cymorth adeiledig ar gyfer I18n, gan ei gwneud hi'n haws i ddatblygwyr greu apiau sy'n addas ar gyfer defnyddwyr ledled y byd.

Sut i Ddefnyddio I18n yn Ruby on Rails

Mae defnyddio I18n yn Ruby on Rails yn syml. Mae angen i chi ddilyn rhai camau sylfaenol i sefydlu a defnyddio'r system. Dyma'r camau i'w dilyn:

Cam 1: Gosod y Ffeiliau Cyfieithu

Y cam cyntaf yw creu ffeiliau cyfieithu. Mae'r ffeiliau hyn yn cynnwys y testunau a'r cyfieithiadau ar gyfer eich ap. Mae angen i chi greu ffeiliau YAML ar gyfer pob iaith. Er enghraifft, gallwch greu ffeiliau fel:

config/locales/en.yml
config/locales/cy.yml

Mae'r ffeil 'en.yml' yn cynnwys y testunau yn Saesneg, tra bod 'cy.yml' yn cynnwys y cyfieithiadau Cymraeg. Dyma enghraifft o'r ffeil 'cy.yml':

cy:
  hello: "Helo"
  goodbye: "Hwyl fawr"

Cam 2: Defnyddio'r Testunau Cyfieithiedig

Unwaith y byddwch wedi creu'r ffeiliau cyfieithu, gallwch ddechrau defnyddio'r testunau cyfieithiedig yn eich ap. Mae Rails yn cynnig y dull 't' i gael gafael ar y testunau. Dyma enghraifft:

<%= t('hello') %>

Bydd y cod hwn yn dangos "Helo" os yw'r iaith wedi'i gosod i Gymraeg. Os yw'r iaith wedi'i gosod i Saesneg, bydd yn dangos "Hello".

Cam 3: Gosod y Iaith

Mae angen i chi hefyd sefydlu pa iaith i'w defnyddio yn eich ap. Gallwch wneud hyn yn y ffeil 'application.rb'. Dyma sut i'w wneud:

# config/application.rb
module YourApp
  class Application < Rails::Application
    config.i18n.default_locale = :cy
  end
end

Mae hyn yn gosod y Gymraeg fel iaith default ar gyfer eich ap. Gallwch hefyd newid y iaith yn seiliedig ar ddewisiadau defnyddiwr.

Cyfieithu Testunau a Fformatio

Mae I18n yn cynnig mwy na dim ond cyfieithu testunau. Mae hefyd yn caniatáu i chi fformatio dyddiadau, amserau, a rhifau yn seiliedig ar ddiwylliannau penodol. Dyma sut i wneud hynny:

Fformatio Dyddiadau

Gallwch ddefnyddio I18n i fformatio dyddiadau yn seiliedig ar iaith. Dyma enghraifft:

<%= l(Date.today, format: :long) %>

Mae angen i chi hefyd ddiffinio'r fformat dyddiad yn eich ffeil cyfieithu:

cy:
  date:
    formats:
      long: "%d Awst %Y"

Fformatio Rhifau

Mae I18n hefyd yn caniatáu fformatio rhifau. Gallwch ddefnyddio'r dull 'number_with_delimiter' i fformatio rhifau gyda rhifau miloedd. Dyma enghraifft:

<%= number_with_delimiter(1000) %>

Gallwch ddiffinio'r fformat yn eich ffeil cyfieithu:

cy:
  number:
    format:
      delimiter: ","

Defnyddio I18n gyda Modelau a Gweithrediadau

Gallwch hefyd ddefnyddio I18n i gyfieithu negeseuon yn eich modelau a gweithrediadau. Mae hyn yn ddefnyddiol ar gyfer negeseuon gwall a negeseuon llwyddiant. Dyma enghraifft o sut i wneud hynny:

Cyfieithu Negeseuon Gwall

Gallwch ddefnyddio I18n i gyfieithu negeseuon gwall yn eich modelau. Dyma enghraifft:

class User < ApplicationRecord
  validates :name, presence: { message: I18n.t('errors.messages.blank') }
end

Mae angen i chi ddiffinio'r neges yn eich ffeil cyfieithu:

cy:
  errors:
    messages:
      blank: "Mae angen i chi roi enw."

Cyfieithu Negeseuon Llwyddiant

Gallwch hefyd ddefnyddio I18n i gyfieithu negeseuon llwyddiant. Dyma enghraifft:

def create
  @user = User.new(user_params)
  if @user.save
    flash[:notice] = I18n.t('users.create.success')
    redirect_to @user
  else
    render :new
  end
end

Mae angen i chi ddiffinio'r neges yn eich ffeil cyfieithu:

cy:
  users:
    create:
      success: "Cafodd y defnyddiwr ei greu'n llwyddiannus."

Defnyddio I18n gyda JavaScript

Os ydych chi'n defnyddio JavaScript yn eich ap, efallai y bydd angen i chi ddefnyddio I18n yno hefyd. Gallwch wneud hyn trwy greu ffeil cyfieithu JavaScript. Dyma sut i wneud hynny:

# config/locales/javascript.cy.yml
cy:
  hello: "Helo"

Gallwch ddefnyddio'r ffeil hon yn eich JavaScript fel hyn:

alert(I18n.t('hello'));

Casgliad

Mae I18n yn nodwedd hanfodol yn Ruby on Rails sy'n caniatáu i ddatblygwyr greu apiau sy'n addas ar gyfer defnyddwyr o wahanol ddiwylliannau a ieithoedd. Trwy ddilyn y camau a'r enghreifftiau a drafodwyd yn y canllaw hwn, gallwch ddechrau defnyddio I18n yn eich ap a sicrhau bod eich cynnwys yn hygyrch i bawb.

Peidiwch ag anghofio y gall I18n hefyd wella profiad y defnyddiwr trwy ddarparu cynnwys sy'n gysylltiedig â'u diwylliant a'u hiaith. Mae'n amser i chi ddechrau arni a gwneud eich ap yn fyd-eang!

Published: August 12, 2024

© 2024 RailsInsights. All rights reserved.