Skip to content

Commit

Permalink
Add basic i18n for dashboard admin
Browse files Browse the repository at this point in the history
  • Loading branch information
vicmaster committed Oct 4, 2016
1 parent de48ec0 commit b179a4a
Show file tree
Hide file tree
Showing 5 changed files with 488 additions and 22 deletions.
5 changes: 5 additions & 0 deletions app/controllers/admin/application_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ module Admin
class ApplicationController < Administrate::ApplicationController
before_action :authenticate_user!
before_action :authenticate_admin
before_action :set_locale

def authenticate_admin
redirect_to '/', alert: 'Not authorized.' unless current_user && access?
Expand All @@ -18,5 +19,9 @@ def authenticate_admin
def access?
current_user.has_role? :admin
end

def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
end
end
30 changes: 30 additions & 0 deletions app/views/admin/application/_sidebar.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<%#
# Sidebar
This partial is used to display the sidebar in Administrate.
By default, the sidebar contains navigation links
for all resources in the admin dashboard,
as defined by the routes in the `admin/` namespace
%>

<ul class="sidebar__list">
<% Administrate::Namespace.new(namespace).resources.each do |resource| %>
<li>
<%= link_to(
display_resource_name(resource),
[namespace, resource],
class: "sidebar__link sidebar__link--#{nav_link_state(resource)}"
) %>
</li>
<% end %>
<% if I18n.locale == I18n.default_locale %>
<li>
<%= link_to I18n.t('administrate.sidebar.language'), params.merge(locale: 'es-MX'), class: "sidebar__link" %>
</li>
<% else %>
<li>
<%= link_to I18n.t('administrate.sidebar.language'),params.merge(locale: 'en'), class: "sidebar__link" %>
</li>
<% end %>

</ul>
1 change: 1 addition & 0 deletions config/initializers/locale.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
I18n.default_locale = :en
237 changes: 215 additions & 22 deletions config/locales/en.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,216 @@
# Files in the config/locales directory are used for internationalization
# and are automatically loaded by Rails. If you want to use locales other
# than English, add the necessary files in this directory.
#
# To use the locales, use `I18n.t`:
#
# I18n.t 'hello'
#
# In views, this is aliased to just `t`:
#
# <%= t('hello') %>
#
# To use a different locale, set it with `I18n.locale`:
#
# I18n.locale = :es
#
# This would use the information in config/locales/es.yml.
#
# To learn more, please read the Rails Internationalization guide
# available at http://guides.rubyonrails.org/i18n.html.

---
en:
hello: "Hello world"
administrate:
sidebar:
language: "Español"
activerecord:
errors:
messages:
record_invalid: "Validation failed: %{errors}"
restrict_dependent_destroy:
has_one: "Cannot delete record because a dependent %{record} exists"
has_many: "Cannot delete record because dependent %{record} exist"
date:
abbr_day_names:
- Sun
- Mon
- Tue
- Wed
- Thu
- Fri
- Sat
abbr_month_names:
-
- Jan
- Feb
- Mar
- Apr
- May
- Jun
- Jul
- Aug
- Sep
- Oct
- Nov
- Dec
day_names:
- Sunday
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
formats:
default: "%Y-%m-%d"
long: "%B %d, %Y"
short: "%b %d"
month_names:
-
- January
- February
- March
- April
- May
- June
- July
- August
- September
- October
- November
- December
order:
- :year
- :month
- :day
datetime:
distance_in_words:
about_x_hours:
one: about 1 hour
other: about %{count} hours
about_x_months:
one: about 1 month
other: about %{count} months
about_x_years:
one: about 1 year
other: about %{count} years
almost_x_years:
one: almost 1 year
other: almost %{count} years
half_a_minute: half a minute
less_than_x_minutes:
one: less than a minute
other: less than %{count} minutes
less_than_x_seconds:
one: less than 1 second
other: less than %{count} seconds
over_x_years:
one: over 1 year
other: over %{count} years
x_days:
one: 1 day
other: "%{count} days"
x_minutes:
one: 1 minute
other: "%{count} minutes"
x_months:
one: 1 month
other: "%{count} months"
x_years:
one: 1 year
other: "%{count} years"
x_seconds:
one: 1 second
other: "%{count} seconds"
prompts:
day: Day
hour: Hour
minute: Minute
month: Month
second: Seconds
year: Year
errors:
format: "%{attribute} %{message}"
messages:
accepted: must be accepted
blank: can't be blank
present: must be blank
confirmation: doesn't match %{attribute}
empty: can't be empty
equal_to: must be equal to %{count}
even: must be even
exclusion: is reserved
greater_than: must be greater than %{count}
greater_than_or_equal_to: must be greater than or equal to %{count}
inclusion: is not included in the list
invalid: is invalid
less_than: must be less than %{count}
less_than_or_equal_to: must be less than or equal to %{count}
model_invalid: "Validation failed: %{errors}"
not_a_number: is not a number
not_an_integer: must be an integer
odd: must be odd
required: must exist
taken: has already been taken
too_long:
one: is too long (maximum is 1 character)
other: is too long (maximum is %{count} characters)
too_short:
one: is too short (minimum is 1 character)
other: is too short (minimum is %{count} characters)
wrong_length:
one: is the wrong length (should be 1 character)
other: is the wrong length (should be %{count} characters)
other_than: must be other than %{count}
template:
body: 'There were problems with the following fields:'
header:
one: 1 error prohibited this %{model} from being saved
other: "%{count} errors prohibited this %{model} from being saved"
helpers:
select:
prompt: Please select
submit:
create: Create %{model}
submit: Save %{model}
update: Update %{model}
number:
currency:
format:
delimiter: ","
format: "%u%n"
precision: 2
separator: "."
significant: false
strip_insignificant_zeros: false
unit: "$"
format:
delimiter: ","
precision: 3
separator: "."
significant: false
strip_insignificant_zeros: false
human:
decimal_units:
format: "%n %u"
units:
billion: Billion
million: Million
quadrillion: Quadrillion
thousand: Thousand
trillion: Trillion
unit: ''
format:
delimiter: ''
precision: 3
significant: true
strip_insignificant_zeros: true
storage_units:
format: "%n %u"
units:
byte:
one: Byte
other: Bytes
gb: GB
kb: KB
mb: MB
tb: TB
percentage:
format:
delimiter: ''
format: "%n%"
precision:
format:
delimiter: ''
support:
array:
last_word_connector: ", and "
two_words_connector: " and "
words_connector: ", "
time:
am: am
formats:
default: "%a, %d %b %Y %H:%M:%S %z"
long: "%B %d, %Y %H:%M"
short: "%d %b %H:%M"
pm: pm
Loading

0 comments on commit b179a4a

Please sign in to comment.