Logo Ruby on Rails

Tłumaczenie aplikacji w Ruby on Rails – aliasy YAML

Tłumaczenie aplikacji w Ruby on Rails jest dobrze opisane w manual (i18n, zmiana locale, ładowanie plików z tłumaczeniami itd.). Nie ma tam jednak wzmianki o aliasach w składni YAML, które pozwalają znacznie ograniczyć powtórzenia w obrębie pliku z translacjami.

Zasadę działania aliasów

Przykład:

# config/locales/app_name.pl.yml
pl:
  hello: &hello Cześć
  world: Świat
  posts:
    index:
      title: Spis
      hello: *hello

W powyższym kodzie w linii 3 definiujemy alias (hello: &hello Cześć), a w linii 8 wywołujemy (hello: *hello). Proste.

Do czego możemy wykorzystać aliasy?

Na przykład do tłumaczeń często wykorzystywanych atrybutów modeli tj. timestamps. Poniżej fragment pliku dla aplikacji quizowej wykorzystującej nested attributes.

# config/locales/quiz_app.pl.yml
pl:
  timestamps: &timestamps
    created_at: &created_at Utworzono
    updated_at: &updated_at Zmieniono
  model_defaults: &model_defaults
    <<: *timestamps
    id: &id ID
  activerecord:
    models:
      quiz:
        question: &question Pytanie
      quiz: Quiz
      question: *question
    attributes:
      quiz: &quiz_attrs
        <<: *model_defaults
        description: Opis
        name: Nazwa
      question: &question_attrs
        <<: *model_defaults
        body: Treść
        opened: Otwarte
      quiz/questions:
        <<: *question_attrs

Autor

Kamil Skrzypiński

Fullstack developer, programista aplikacji internetowych i mobilnych. Zna się m.in. na Ruby on Rails, JavaScript, Objective-C, PHP, HTML5 i CSS3. Instalacja i konfiguracja serwera z mniej i bardziej popularnymi usługami, to też dla niego nie problem. Niegdyś zapalony radiowiec - głównie od strony techniczno-informatycznej.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *