locales and kaminari

This commit is contained in:
Adrian Hinz 2019-05-15 16:55:18 +02:00
parent 6684552ceb
commit 0ebd341780
14 changed files with 341 additions and 254 deletions

View File

@ -31,7 +31,7 @@ gem 'redis', '~> 4.0'
# Use ActiveStorage variant
gem 'mini_magick', '~> 4.8'
gem 'kaminari', '~> 1.1.1'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

View File

@ -91,6 +91,18 @@ GEM
jbuilder (2.8.0)
activesupport (>= 4.2.0)
multi_json (>= 1.2)
kaminari (1.1.1)
activesupport (>= 4.1.0)
kaminari-actionview (= 1.1.1)
kaminari-activerecord (= 1.1.1)
kaminari-core (= 1.1.1)
kaminari-actionview (1.1.1)
actionview
kaminari-core (= 1.1.1)
kaminari-activerecord (1.1.1)
activerecord
kaminari-core (= 1.1.1)
kaminari-core (1.1.1)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
@ -217,6 +229,7 @@ DEPENDENCIES
devise
factory_bot_rails
jbuilder (~> 2.5)
kaminari (~> 1.1.1)
listen (>= 3.0.5, < 3.2)
mini_magick (~> 4.8)
mysql2 (>= 0.4.4, < 0.6.0)

View File

@ -5,11 +5,37 @@ module ViewsHelper
def dropdown_link(name, menu_links)
content_tag(:div, class: 'dropdown no-arrow') do
concat link_for('#', name)
concat dropdown_menu(menu_links)
end
end
def link_for(href, text)
link_to(text, href, class: 'dropdown-toggle', id: 'ddMenuLink',
role: 'button', data: { toggle: 'dropdown' },
aria: { haspopup: 'true', expanded: 'false' })
end
def dropdown_menu(menu_links)
content_tag(:div, class: 'dropdown no-arrow') do
menu_links.each do |ml|
end
end
end
def menu_item(item)
if item.nil?
# divider
tag.div class: 'dropdown-divider'
elsif item.class.to_s == 'String'
# header
content_tag :h6, I18n.t(item), class: 'dropdown-header'
elsif item.class.to_s == 'Array'
# link (menu item)
icon = item[2].nil? ? '' : "<i class=\"far fa-fw #{item[2]}\"></i>"
nm = I18n.t(sub[0])
link_to(raw("#{icon} #{nm}"), sub[1], class: 'dropdown-item')
end
end
=begin

View File

@ -1,13 +1,13 @@
<h1 class="h3 mb-1 text-gray-800">Kursy</h1>
<p class="mb-4">Tutaj jakiś opis.</p>
<h1 class="h3 mb-1 text-gray-800"><%= t('course.title') %></h1>
<p class="mb-4"><%= t('course.title_desc') %></p>
<p id="notice"><%= notice %></p>
<div class="row">
<div class="col">
<!-- Basic Card Example -->
<div class="card shadow mb-4">
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
<h6 class="m-0 font-weight-bold text-primary">Lista kursów</h6>
<%= link_to raw('<i class="fa fa-plus"></i> Dodaj Nowy Kurs'), new_admin_course_path, { remote: true, class: 'btn btn-sm btn-primary float-right' } %>
<h6 class="m-0 font-weight-bold text-primary"><%= t('course.list') %></h6>
<%= link_to raw("<i class=\"fa fa-plus\"></i> #{ t('course.add_new') }"), new_admin_course_path, { remote: true, class: 'btn btn-sm btn-primary float-right' } %>
</div>
<div class="card-body">
<div id="ajax_form"></div>

View File

@ -4,9 +4,9 @@
<table class="table table-bordered">
<thead class="thead-dark">
<tr>
<th>Nazwa</th>
<th>Opis</th>
<th class="fit">Akcje</th>
<th><%= t('course.table.name') %></th>
<th><%= t('course.table.description') %></th>
<th class="fit"><%= t('actions') %></th>
</tr>
</thead>
<tbody>

View File

@ -3,7 +3,7 @@
<!-- Basic Card Example -->
<div class="card shadow mb-4 border-primary">
<div class="card-header text-white bg-primary">
<h6>Edycja kursu</h6>
<h6><%= t('course.edit') %></h6>
</div>
<div class="card-body">
<%= render '/admin/courses/partials/form', course: @course %>

View File

@ -3,7 +3,7 @@
<!-- Basic Card Example -->
<div class="card shadow mb-4 border-primary">
<div class="card-header text-white bg-primary">
<h6>Nowy kurs</h6>
<h6><%= t('course.new') %></h6>
</div>
<div class="card-body">
<%= render '/admin/courses/partials/form', course: @course %>

View File

@ -1,4 +1,4 @@
<div class="alert alert-primary" role="alert">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Informacja</h4>
<p>Nie znaleziono żadnych elementów do wyświetlenia.</p>
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> <%= t('information') %></h4>
<p><%= t('empty_list') %></p>
</div>

View File

@ -0,0 +1,5 @@
# frozen_string_literal: true
Kaminari.configure do |config|
config.default_per_page = 2
end

View File

@ -0,0 +1,16 @@
pl:
course:
title: 'Kursy'
title_desc: 'Tworzenie kursów'
list: 'Lista kursów'
add_new: 'Dodaj nowy kurs'
edit: 'Edycja kursu'
new: 'Nowy kurs'
table:
name: 'Nazwa'
description: 'Opis'
activerecord:
attributes:
course:
name: 'Nazwa'
description: 'Opis'

View File

@ -0,0 +1,8 @@
pl:
views:
pagination:
first: "&laquo; Pierwsza"
last: "Ostatnia &raquo;"
previous: "&lsaquo; Poprzednia"
next: "Następna &rsaquo;"
truncate: "&hellip;"

View File

@ -31,243 +31,3 @@ pl:
password: 'Hasło'
forgot_password: 'Zapomniane hasło?'
no_account: 'Nie masz konta?'
spikon_inv: 'Zapraszamy do Spikon!'
activerecord:
errors:
messages:
record_invalid: 'Negatywne sprawdzenie poprawności: %{errors}'
restrict_dependent_destroy:
has_one: Nie może zostać usunięte, gdyż istnieje zależny od niego %{record}
has_many: Nie może zostać usunięte, gdyż istnieją zależne od niego %{record}
date:
abbr_day_names:
- nie
- pon
- wto
- śro
- czw
- pią
- sob
abbr_month_names:
-
- sty
- lut
- mar
- kwi
- maj
- cze
- lip
- sie
- wrz
- paź
- lis
- gru
day_names:
- niedziela
- poniedziałek
- wtorek
- środa
- czwartek
- piątek
- sobota
formats:
default: "%d-%m-%Y"
long: "%B %d, %Y"
short: "%d %b"
month_names:
-
- styczeń
- luty
- marzec
- kwiecień
- maj
- czerwiec
- lipiec
- sierpień
- wrzesień
- październik
- listopad
- grudzień
order:
- :day
- :month
- :year
datetime:
distance_in_words:
about_x_hours:
one: około godziny
few: około %{count} godziny
many: około %{count} godzin
other: około %{count} godzin
about_x_months:
one: około miesiąca
few: około %{count} miesiące
many: około %{count} miesięcy
other: około %{count} miesięcy
about_x_years:
one: około rok
few: około %{count} lata
many: około %{count} lat
other: około %{count} lat
almost_x_years:
one: prawie rok
few: prawie %{count} lata
many: prawie %{count} lat
other: prawie %{count} lat
half_a_minute: pół minuty
less_than_x_seconds:
one: mniej niż sekundę
few: mniej niż %{count} sekundy
many: mniej niż %{count} sekund
other: mniej niż %{count} sekund
less_than_x_minutes:
one: mniej niż minutę
few: mniej niż %{count} minuty
many: mniej niż %{count} minut
other: mniej niż %{count} minut
over_x_years:
one: ponad rok
few: ponad %{count} lata
many: ponad %{count} lat
other: ponad %{count} lat
x_seconds:
one: 1 sekunda
few: "%{count} sekundy"
many: "%{count} sekund"
other: "%{count} sekund"
x_minutes:
one: 1 minuta
few: "%{count} minuty"
many: "%{count} minut"
other: "%{count} minut"
x_days:
one: 1 dzień
few: "%{count} dni"
many: "%{count} dni"
other: "%{count} dni"
x_months:
one: 1 miesiąc
few: "%{count} miesiące"
many: "%{count} miesięcy"
other: "%{count} miesięcy"
prompts:
second: Sekundy
minute: Minuta
hour: Godzina
day: Dzień
month: Miesiąc
year: Rok
errors:
format: "%{attribute} %{message}"
messages:
accepted: musi zostać zaakceptowane
blank: nie może być puste
confirmation: nie zgadza się z polem %{attribute}
empty: nie może być puste
equal_to: musi być równe %{count}
even: musi być parzyste
exclusion: jest zarezerwowane
greater_than: musi być większe od %{count}
greater_than_or_equal_to: musi być większe lub równe %{count}
inclusion: nie znajduje się na liście dopuszczalnych wartości
invalid: jest nieprawidłowe
less_than: musi być mniejsze od %{count}
less_than_or_equal_to: musi być mniejsze lub równe %{count}
not_a_number: nie jest liczbą
not_an_integer: musi być liczbą całkowitą
odd: musi być nieparzyste
other_than: musi być inna niż %{count}
present: musi być puste
required: musi istnieć
taken: zostało już zajęte
too_long:
one: jest za długie (maksymalnie jeden znak)
few: jest za długie (maksymalnie %{count} znaki)
many: jest za długie (maksymalnie %{count} znaków)
other: jest za długie (maksymalnie %{count} znaków)
too_short:
one: jest za krótkie (przynajmniej jeden znak)
few: jest za krótkie (przynajmniej %{count} znaki)
many: jest za krótkie (przynajmniej %{count} znaków)
other: jest za krótkie (przynajmniej %{count} znaków)
wrong_length:
one: ma nieprawidłową długość (powinna wynosić jeden znak)
few: ma nieprawidłową długość (powinna wynosić %{count} znaki)
many: ma nieprawidłową długość (powinna wynosić %{count} znaków)
other: ma nieprawidłową długość (powinna wynosić %{count} znaków)
template:
body: 'Błędy dotyczą następujących pól:'
header:
one: "%{model} nie został zachowany z powodu jednego błędu"
few: "%{model} nie został zachowany z powodu %{count} błędów"
many: "%{model} nie został zachowany z powodu %{count} błędów"
other: "%{model} nie został zachowany z powodu %{count} błędów"
helpers:
select:
prompt: Proszę wybrać
submit:
create: Utwórz %{model}
submit: Zapisz %{model}
update: Aktualizuj %{model}
number:
currency:
format:
delimiter: " "
format: "%n %u"
precision: 2
separator: ","
significant: false
strip_insignificant_zeros: true
unit:
format:
delimiter: " "
precision: 3
separator: ","
significant: false
strip_insignificant_zeros: false
human:
decimal_units:
format: "%n %u"
units:
billion: Miliard
million: Milion
quadrillion: Biliard
thousand: Tysiąc
trillion: Bilion
unit: ''
format:
delimiter: ''
precision: 3
significant: true
strip_insignificant_zeros: true
storage_units:
format: "%n %u"
units:
byte:
one: bajt
few: bajty
many: bajtów
other: bajty
gb: GB
kb: KB
mb: MB
tb: TB
percentage:
format:
delimiter: ''
format: "%n%"
precision:
format:
delimiter: ''
support:
array:
last_word_connector: " oraz "
two_words_connector: " i "
words_connector: ", "
time:
am: przed południem
formats:
default: "%a, %d %b %Y %H:%M:%S %z"
long: "%B %d, %Y %H:%M"
short: "%d %b %H:%M"
pm: po południu

241
config/locales/pl/sys.yml Normal file
View File

@ -0,0 +1,241 @@
pl:
activerecord:
errors:
messages:
record_invalid: 'Negatywne sprawdzenie poprawności: %{errors}'
restrict_dependent_destroy:
has_one: Nie może zostać usunięte, gdyż istnieje zależny od niego %{record}
has_many: Nie może zostać usunięte, gdyż istnieją zależne od niego %{record}
date:
abbr_day_names:
- nie
- pon
- wto
- śro
- czw
- pią
- sob
abbr_month_names:
-
- sty
- lut
- mar
- kwi
- maj
- cze
- lip
- sie
- wrz
- paź
- lis
- gru
day_names:
- niedziela
- poniedziałek
- wtorek
- środa
- czwartek
- piątek
- sobota
formats:
default: "%d-%m-%Y"
long: "%B %d, %Y"
short: "%d %b"
month_names:
-
- styczeń
- luty
- marzec
- kwiecień
- maj
- czerwiec
- lipiec
- sierpień
- wrzesień
- październik
- listopad
- grudzień
order:
- :day
- :month
- :year
datetime:
distance_in_words:
about_x_hours:
one: około godziny
few: około %{count} godziny
many: około %{count} godzin
other: około %{count} godzin
about_x_months:
one: około miesiąca
few: około %{count} miesiące
many: około %{count} miesięcy
other: około %{count} miesięcy
about_x_years:
one: około rok
few: około %{count} lata
many: około %{count} lat
other: około %{count} lat
almost_x_years:
one: prawie rok
few: prawie %{count} lata
many: prawie %{count} lat
other: prawie %{count} lat
half_a_minute: pół minuty
less_than_x_seconds:
one: mniej niż sekundę
few: mniej niż %{count} sekundy
many: mniej niż %{count} sekund
other: mniej niż %{count} sekund
less_than_x_minutes:
one: mniej niż minutę
few: mniej niż %{count} minuty
many: mniej niż %{count} minut
other: mniej niż %{count} minut
over_x_years:
one: ponad rok
few: ponad %{count} lata
many: ponad %{count} lat
other: ponad %{count} lat
x_seconds:
one: 1 sekunda
few: "%{count} sekundy"
many: "%{count} sekund"
other: "%{count} sekund"
x_minutes:
one: 1 minuta
few: "%{count} minuty"
many: "%{count} minut"
other: "%{count} minut"
x_days:
one: 1 dzień
few: "%{count} dni"
many: "%{count} dni"
other: "%{count} dni"
x_months:
one: 1 miesiąc
few: "%{count} miesiące"
many: "%{count} miesięcy"
other: "%{count} miesięcy"
prompts:
second: Sekundy
minute: Minuta
hour: Godzina
day: Dzień
month: Miesiąc
year: Rok
errors:
format: "%{attribute} %{message}"
messages:
accepted: musi zostać zaakceptowane
blank: nie może być puste
confirmation: nie zgadza się z polem %{attribute}
empty: nie może być puste
equal_to: musi być równe %{count}
even: musi być parzyste
exclusion: jest zarezerwowane
greater_than: musi być większe od %{count}
greater_than_or_equal_to: musi być większe lub równe %{count}
inclusion: nie znajduje się na liście dopuszczalnych wartości
invalid: jest nieprawidłowe
less_than: musi być mniejsze od %{count}
less_than_or_equal_to: musi być mniejsze lub równe %{count}
not_a_number: nie jest liczbą
not_an_integer: musi być liczbą całkowitą
odd: musi być nieparzyste
other_than: musi być inna niż %{count}
present: musi być puste
required: musi istnieć
taken: zostało już zajęte
too_long:
one: jest za długie (maksymalnie jeden znak)
few: jest za długie (maksymalnie %{count} znaki)
many: jest za długie (maksymalnie %{count} znaków)
other: jest za długie (maksymalnie %{count} znaków)
too_short:
one: jest za krótkie (przynajmniej jeden znak)
few: jest za krótkie (przynajmniej %{count} znaki)
many: jest za krótkie (przynajmniej %{count} znaków)
other: jest za krótkie (przynajmniej %{count} znaków)
wrong_length:
one: ma nieprawidłową długość (powinna wynosić jeden znak)
few: ma nieprawidłową długość (powinna wynosić %{count} znaki)
many: ma nieprawidłową długość (powinna wynosić %{count} znaków)
other: ma nieprawidłową długość (powinna wynosić %{count} znaków)
template:
body: 'Błędy dotyczą następujących pól:'
header:
one: "%{model} nie został zachowany z powodu jednego błędu"
few: "%{model} nie został zachowany z powodu %{count} błędów"
many: "%{model} nie został zachowany z powodu %{count} błędów"
other: "%{model} nie został zachowany z powodu %{count} błędów"
helpers:
select:
prompt: Proszę wybrać
submit:
create: Utwórz %{model}
submit: Zapisz %{model}
update: Aktualizuj %{model}
number:
currency:
format:
delimiter: " "
format: "%n %u"
precision: 2
separator: ","
significant: false
strip_insignificant_zeros: true
unit:
format:
delimiter: " "
precision: 3
separator: ","
significant: false
strip_insignificant_zeros: false
human:
decimal_units:
format: "%n %u"
units:
billion: Miliard
million: Milion
quadrillion: Biliard
thousand: Tysiąc
trillion: Bilion
unit: ''
format:
delimiter: ''
precision: 3
significant: true
strip_insignificant_zeros: true
storage_units:
format: "%n %u"
units:
byte:
one: bajt
few: bajty
many: bajtów
other: bajty
gb: GB
kb: KB
mb: MB
tb: TB
percentage:
format:
delimiter: ''
format: "%n%"
precision:
format:
delimiter: ''
support:
array:
last_word_connector: " oraz "
two_words_connector: " i "
words_connector: ", "
time:
am: przed południem
formats:
default: "%a, %d %b %Y %H:%M:%S %z"
long: "%B %d, %Y %H:%M"
short: "%d %b %H:%M"
pm: po południu

View File

@ -0,0 +1,18 @@
pl:
week:
title: 'Tygodnie'
title_desc: 'Tworzenie tygodni dla kursu'
list: 'Lista tygodni'
add_one: 'Dodaj pojedynczo'
add_many: 'Dodaj wiele'
add_new: 'Dodaj nowy tydzień'
edit: 'Edycja tygodnia'
new: 'Nowy tydzień'
table:
name: 'Nazwa'
description: 'Opis'
activerecord:
attributes:
week:
name: 'Nazwa'
description: 'Opis'