· 1 min read

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.

Zerknijmy na aliasy w składni YAML, które pozwalają znacznie ograniczyć powtórzenia w obrębie pliku z translacjami.

Zasada 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
Back to Blog