diff --git a/app/views/user/_account.html.haml b/app/views/user/_account.html.haml index 208d4d1f..70c0eeca 100644 --- a/app/views/user/_account.html.haml +++ b/app/views/user/_account.html.haml @@ -13,34 +13,33 @@ .modal-header %button.close{"data-dismiss" => "modal", :type => "button"} %span{"aria-hidden" => "true"} × - %span.sr-only Close - %h4#modal-passwd-label.modal-title Save account changes + %span.sr-only= t 'views.actions.close' + %h4#modal-passwd-label.modal-title= t 'views.settings.account.modal.title' .modal-body - = f.password_field :current_password, autocomplete: "off", label: "Current password", help: "We need your current password to confirm your changes" + = f.password_field :current_password, autocomplete: "off", label: t('views.settings.account.password_current'), help: t('views.settings.account.password_current_help') .modal-footer - %button.btn.btn-default{"data-dismiss" => "modal", :type => "button"} Cancel - %button.btn.btn-primary{:type => "submit"} Save changes + %button.btn.btn-default{"data-dismiss" => "modal", :type => "button"}= t 'views.actions.cancel' + %button.btn.btn-primary{:type => "submit"}= t 'views.actions.save' = devise_error_messages! - = f.text_field :screen_name, autofocus: true, label: "User name" + = f.text_field :screen_name, autofocus: true, label: t('views.settings.account.username') - = f.email_field :email, label: "Email address" + = f.email_field :email, label: t('views.settings.account.email') - if devise_mapping.confirmable? && resource.pending_reconfirmation? - %div - Currently waiting confirmation for: #{resource.unconfirmed_email} + %div= raw t('views.settings.account.email_confirm', resource: resource.unconfirmed_email) - = f.password_field :password, autocomplete: "off", label: "Password", help: "Leave this blank if you don't want to change it" - = f.password_field :password_confirmation, autocomplete: "off", label: "Confirm password" + = f.password_field :password, autocomplete: "off", label: t('views.settings.account.password'), help: t('views.settings.account.password_help') + = f.password_field :password_confirmation, autocomplete: "off", label: t('views.settings.account.password_confirm') %button.btn.btn-primary{"data-target" => "#modal-passwd", "data-toggle" => "modal", :type => "button"} - Save changes + = t 'views.actions.save' %hr/ %p - Unsatisfied? - =button_to "Delete my account", '/settings/account', data: { confirm: "Are you sure?" }, method: :delete, class: "btn btn-danger btn-xs" + = t 'views.settings.account.unsatisfied' + =button_to t('views.settings.account.delete'), '/settings/account', data: { confirm: "Are you sure?" }, method: :delete, class: "btn btn-danger btn-xs" - = link_to "Back", :back + = link_to t('views.settings.account.back'), :back .visible-xs= render "shared/links" diff --git a/app/views/user/_actions.html.haml b/app/views/user/_actions.html.haml index 6b28cbac..ec19de32 100644 --- a/app/views/user/_actions.html.haml +++ b/app/views/user/_actions.html.haml @@ -5,14 +5,14 @@ - else - if current_user.following? user %button#editprofile.btn.btn-default.btn-block.profile--follow-btn{type: :button, name: 'user-action', data: { action: :unfollow, type: type, target: user.screen_name }} - Unfollow + = t 'views.actions.unfollow' - else %button#editprofile.btn.btn-primary.btn-block.profile--follow-btn{type: :button, name: 'user-action', data: { action: :follow, type: type, target: user.screen_name }} - Follow + = t 'views.actions.follow' - unless user == current_user .btn-group.btn-block %button.btn.btn-default.btn-block.btn-sm.dropdown-toggle{data: { toggle: :dropdown }, aria: { expanded: :false }} - Actions + = t 'views.actions.title' %span.caret %ul.dropdown-menu / @@ -23,21 +23,18 @@ %li.visible-xs %a{href: '#', data: { target: "#modal-group-memberships", toggle: :modal }} %i.fa.fa-users - Manage group memberships + = t 'views.actions.group' %li %a{href: '#', data: { action: 'report-user', target: user.screen_name }} %i.fa.fa-exclamation-triangle - Report + = t 'views.actions.report' - if current_user.mod? %li %a{href: '#', data: { target: "#modal-privileges", toggle: :modal }} %i.fa.fa-wrench - Check - = succeed "'s" do - = user.screen_name - privileges + = raw t('views.actions.privilege', user: user.screen_name) - unless user.admin? %li %a{href: '#', data: { target: "#modal-ban", toggle: :modal }} %i.fa.fa-ban - Ban Control + = t 'views.actions.ban' diff --git a/app/views/user/_modal_ban.html.haml b/app/views/user/_modal_ban.html.haml index cdfb1fb8..63b374bd 100644 --- a/app/views/user/_modal_ban.html.haml +++ b/app/views/user/_modal_ban.html.haml @@ -6,16 +6,16 @@ %span{"aria-hidden" => "true"} × %span.sr-only Close %h4#modal-ban-label.modal-title - Ban Control Center + = t 'views.modal.bancontrol.title' = bootstrap_form_tag(url: '/mod/ban', html: { method: :post, novalidate: "novalidate" }) do |f| = f.hidden_field :user, value: @user.screen_name #ban-control-super.modal-body - = f.check_box :ban, label: "Ban?", checked: @user.banned? + = f.check_box :ban, label: t('views.modal.bancontrol.ban'), checked: @user.banned? #ban-controls{style: "#{"display: none" unless @user.banned?}"} - = f.check_box :permaban, label: "Permanently?", checked: @user.permanently_banned? + = f.check_box :permaban, label: t('views.modal.bancontrol.permanent'), checked: @user.permanently_banned? #ban-controls-time{style: "#{"display: none" unless not @user.permanently_banned?}"} = f.text_field :until, label: "", required: true, value: (@user.banned_until || DateTime.current).strftime("%m/%d/%Y %I:%M %p") - = f.text_field :reason, placeholder: "Reason", value: @user.ban_reason + = f.text_field :reason, placeholder: t('views.modal.bancontrol.reason'), value: @user.ban_reason .modal-footer - %button.btn.btn-default{name: 'stop-time', type: :button, data: { dismiss: :modal }} Close - = f.submit "Hammer Time", class: "btn btn-primary", name: 'hammer-time' + %button.btn.btn-default{name: 'stop-time', type: :button, data: { dismiss: :modal }}= t 'views.actions.close' + = f.submit t('views.modal.bancontrol.hammertime'), class: "btn btn-primary", name: 'hammer-time' diff --git a/app/views/user/_modal_group_item.html.haml b/app/views/user/_modal_group_item.html.haml index 406496be..820d88d8 100644 --- a/app/views/user/_modal_group_item.html.haml +++ b/app/views/user/_modal_group_item.html.haml @@ -6,7 +6,8 @@ .list-group-item-heading= group.display_name .list-group-item-text.text-muted.j2-up %span{id: "#{group.name}-members"}= group.members.count - members · + = t 'views.modal.group.members' + · %a.j2-delete#delete-group{href: "#", data: { group: group.name }} %i.fa.fa-close - Delete + = t 'views.actions.delete' diff --git a/app/views/user/_modal_group_memberships.html.haml b/app/views/user/_modal_group_memberships.html.haml index 6da03d2b..b8b1265a 100644 --- a/app/views/user/_modal_group_memberships.html.haml +++ b/app/views/user/_modal_group_memberships.html.haml @@ -4,16 +4,16 @@ .modal-header %button.close{"data-dismiss" => "modal", :type => "button"} %span{"aria-hidden" => "true"} × - %span.sr-only Close - %h4#modal-group-memberships-label.modal-title Manage group memberships + %span.sr-only= t 'views.actions.close' + %h4#modal-group-memberships-label.modal-title= t 'views.modal.group.title' %div{role: "tabpanel"} %ul.nav.nav-tabs{role: "tablist"} %li.active{role: "presentation"} %a{href: "#grouplist", aria: {controls: "grouplist"}, data: {toggle: "tab"}, role: "tab"} - Groups + = t 'views.modal.group.tabs.main' %li{role: "presentation"} %a{href: "#create", aria: {controls: "create"}, data: {toggle: "tab"}, role: "tab"} - Create new group + = t 'views.modal.group.tabs.create' .tab-content .tab-pane.active{role:"tabpanel", id: "grouplist"} @@ -22,7 +22,7 @@ = render 'user/modal_group_item', group: group, user: @user .tab-pane{role:"tabpanel", id: "create"} .modal-body - %input#new-group-name.form-control{type: :text, placeholder: 'Group name'} - %button#create-group.btn.btn-primary{type: :button, data: { user: @user.screen_name }} Create group + %input#new-group-name.form-control{type: :text, placeholder: t('views.modal.group.name')} + %button#create-group.btn.btn-primary{type: :button, data: { user: @user.screen_name }}= t('views.modal.group.create') .modal-footer - %button.btn.btn-primary{name: 'gm-save', type: :button, data: { dismiss: :modal }} Done \ No newline at end of file + %button.btn.btn-primary{name: 'gm-save', type: :button, data: { dismiss: :modal }}= t 'views.actions.done' diff --git a/app/views/user/_modal_privileges.html.haml b/app/views/user/_modal_privileges.html.haml index 265a3330..ae9988cf 100644 --- a/app/views/user/_modal_privileges.html.haml +++ b/app/views/user/_modal_privileges.html.haml @@ -4,18 +4,15 @@ .modal-header %button.close{"data-dismiss" => "modal", :type => "button"} %span{"aria-hidden" => "true"} × - %span.sr-only Close + %span.sr-only= t 'views.actions.close' %h4#modal-privileges-label.modal-title - Check - = succeed "'s" do - = @user.screen_name - privileges + = raw t('views.actions.privilege', user: @user.screen_name) %ul.list-group.groups--list - = render 'user/modal_privileges_item', privilege: 'blogger', description: 'The user gets that privilege if they blogged something (nice) about Retrospring.', user: @user - = render 'user/modal_privileges_item', privilege: 'contributor', description: "This user has contributed to justask#{" (the software behind #{APP_CONFIG['site_name']})" unless APP_CONFIG['site_name'] == 'justask'}.", user: @user + = render 'user/modal_privileges_item', privilege: 'blogger', description: t('views.modal.privilege.blogger'), user: @user + = render 'user/modal_privileges_item', privilege: 'contributor', description: t('views.modal.privilege.contributor'), user: @user - if current_user.admin? - = render 'user/modal_privileges_item', privilege: 'supporter', description: 'This user monetarily supports the site', user: @user - = render 'user/modal_privileges_item', privilege: 'moderator', description: 'Someone trustworthy enough to help managing reports',user: @user - = render 'user/modal_privileges_item', privilege: 'admin', description: 'This user is part of the core team', user: @user + = render 'user/modal_privileges_item', privilege: 'supporter', description: t('views.modal.privilege.supporter'), user: @user + = render 'user/modal_privileges_item', privilege: 'moderator', description: t('views.modal.privilege.moderator'),user: @user + = render 'user/modal_privileges_item', privilege: 'admin', description: t('views.modal.privilege.admin'), user: @user .modal-footer - %button.btn.btn-primary{name: 'checked-privileges', type: :button, data: { dismiss: :modal }} Done + %button.btn.btn-primary{name: 'checked-privileges', type: :button, data: { dismiss: :modal }}= t 'views.actions.done' diff --git a/app/views/user/_profile_info.html.haml b/app/views/user/_profile_info.html.haml index 0d1d866e..7e96f469 100644 --- a/app/views/user/_profile_info.html.haml +++ b/app/views/user/_profile_info.html.haml @@ -3,30 +3,30 @@ - if @user.admin? .profile--panel-badge.panel-badge-danger %i.fa.fa-flask - Admin + = t 'views.user.title.admin' - if @user.moderator? .profile--panel-badge.panel-badge-success %i.fa.fa-users - Mod + = t 'views.user.title.moderator' - if @user.supporter? .profile--panel-badge.panel-badge-warning %i.fa.fa-star - Supporter + = t 'views.user.title.supporter' - if @user.contributor? .profile--panel-badge.panel-badge-primary %i.fa.fa-github - Contributor + = t 'views.user.title.contributor' - if @user.blogger? .profile--panel-badge.panel-badge-info %i.fa.fa-pencil - Blogger + = t 'views.user.title.blogger' - if @user.banned? .profile--panel-badge.panel-badge-default %i.fa.fa-ban - Banned + = t 'views.user.title.banned' - if @user.following? current_user .profile--panel-badge.panel-badge-default - Follows you + = t 'views.user.follows_you' .panel-body .profile--panel-name - if @user.display_name.blank? diff --git a/app/views/user/_settings_tabs.html.haml b/app/views/user/_settings_tabs.html.haml index 5583da38..f2f8ea41 100644 --- a/app/views/user/_settings_tabs.html.haml +++ b/app/views/user/_settings_tabs.html.haml @@ -1,10 +1,10 @@ .col-md-3.col-xs-12.col-sm-3 .panel.panel-default .list-group - = list_group_item "Account", edit_user_registration_path - = list_group_item "Profile", edit_user_profile_path - = list_group_item "Privacy", edit_user_privacy_path - = list_group_item "Sharing", services_path + = list_group_item t('views.settings.tabs.account'), edit_user_registration_path + = list_group_item t('views.settings.tabs.profile'), edit_user_profile_path + = list_group_item t('views.settings.tabs.privacy'), edit_user_privacy_path + = list_group_item t('views.settings.tabs.sharing'), services_path - .hidden-xs= render "shared/links" \ No newline at end of file + .hidden-xs= render "shared/links" diff --git a/app/views/user/_stats.html.haml b/app/views/user/_stats.html.haml index 7ca49232..0c2dca50 100644 --- a/app/views/user/_stats.html.haml +++ b/app/views/user/_stats.html.haml @@ -6,17 +6,17 @@ %a{href: show_user_followers_path(@user.screen_name)} .col-md-6.col-sm-6.col-xs-6 %h4.entry-text#follower-count= @user.follower_count - %h6.entry-subtext Followers + %h6.entry-subtext= t('views.general.follower').pluralize(@user.follower_count) %a{href: show_user_friends_path(@user.screen_name)} .col-md-6.col-sm-6.col-xs-6 %h4.entry-text#friend-count= @user.friend_count - %h6.entry-subtext Following + %h6.entry-subtext= t('views.general.following') .row %a{href: show_user_questions_path(@user.screen_name)} .col-md-6.col-sm-6.col-xs-6 %h4.entry-text#asked-count= @user.asked_count - %h6.entry-subtext Questions + %h6.entry-subtext= t('views.general.question').pluralize(@user.asked_count) %a{href: show_user_profile_path(@user.screen_name)} .col-md-6.col-sm-6.col-xs-6 %h4.entry-text#answered-count= @user.answered_count - %h6.entry-subtext Answers + %h6.entry-subtext= t('views.general.question').pluralize(@user.answered_count) diff --git a/app/views/user/edit.html.haml b/app/views/user/edit.html.haml index a2409b3a..0721deff 100644 --- a/app/views/user/edit.html.haml +++ b/app/views/user/edit.html.haml @@ -7,7 +7,7 @@ .panel-body = bootstrap_form_for(current_user, url: {action: "edit"}, :html => { :multipart => true }, method: "patch") do |f| - = f.text_field :display_name, label: "Your name" + = f.text_field :display_name, label: t('views.settings.profile.displayname') .media#profile-picture-media .pull-left @@ -17,7 +17,7 @@ .row#profile-picture-crop-controls{style: 'display: none;'} .col-sm-10.col-md-8 - %strong Adjust your new avatar + %strong= t('views.settings.profile.avatar_adjust') %img#profile-picture-cropper{src: current_user.profile_picture.url(:medium)} .col-sm-2.col-md-4 .btn-group @@ -34,7 +34,7 @@ .row#profile-header-crop-controls{style: 'display: none;'} .col-sm-10.col-md-8 - %strong Adjust your new header + %strong= t('views.settings.profile.header_adjust') %img#profile-header-cropper{src: current_user.profile_header.url(:web)} .col-sm-2.col-md-4 .btn-group @@ -43,13 +43,13 @@ %button#cropper-header-zoom-in.btn.btn-inverse{type: :button} %i.fa.fa-search-plus - = f.text_field :motivation_header, label: "Motivation header", placeholder: 'Ask me anything!' + = f.text_field :motivation_header, label: t('views.settings.profile.motivation'), placeholder: t('views.settings.profile.placeholder.motivation') - = f.text_field :website, label: "Website", placeholder: 'http://example.com' + = f.text_field :website, label: t('views.settings.profile.website'), placeholder: 'http://example.com' - = f.text_field :location, label: "Location", placeholder: 'Where are you?' + = f.text_field :location, label: t('views.settings.profile.location'), placeholder: t('views.settings.profile.placeholder.location') - = f.text_area :bio, label: "Bio", placeholder: 'Tell us something nice about you!' + = f.text_area :bio, label: t('views.settings.profile.bio'), placeholder: t('views.settings.profile.placeholder.bio') - for attrib in %i(crop_x crop_y crop_w crop_h) = f.hidden_field attrib, id: attrib @@ -57,4 +57,4 @@ - for attrib in %i(crop_h_x crop_h_y crop_h_w crop_h_h) = f.hidden_field attrib, id: attrib - = f.submit "Save settings", class: 'btn btn-primary' + = f.submit t('views.actions.save'), class: 'btn btn-primary' diff --git a/app/views/user/edit_privacy.html.haml b/app/views/user/edit_privacy.html.haml index 26aad1cc..5ac2c7ea 100644 --- a/app/views/user/edit_privacy.html.haml +++ b/app/views/user/edit_privacy.html.haml @@ -7,8 +7,8 @@ .panel-body = bootstrap_form_for(current_user, url: {action: "edit_privacy"}, method: "patch") do |f| - = f.check_box :privacy_allow_anonymous_questions, label: "Allow anonymous questions" - = f.check_box :privacy_allow_public_timeline, label: "Show your answers in the public timeline" - = f.check_box :privacy_allow_stranger_answers, label: "Allow other people to answer your questions" + = f.check_box :privacy_allow_anonymous_questions, label: t('views.settings.privacy.anonymous') + = f.check_box :privacy_allow_public_timeline, label: t('views.settings.privacy.public') + = f.check_box :privacy_allow_stranger_answers, label: t('views.settings.privacy.stranger') - = f.submit "Save settings", class: 'btn btn-primary' + = f.submit t('views.actions.save'), class: 'btn btn-primary' diff --git a/app/views/user/questions.html.haml b/app/views/user/questions.html.haml index e8f5d435..4691417f 100644 --- a/app/views/user/questions.html.haml +++ b/app/views/user/questions.html.haml @@ -15,5 +15,5 @@ - if @questions.next_page %button#load-more-btn.btn.btn-default{type: :button, data: { current_page: @questions.current_page }} - Load more + = t 'views.actions.load' .visible-xs= render 'shared/links' diff --git a/app/views/user/show.html.haml b/app/views/user/show.html.haml index 00f5b723..8e2d714a 100644 --- a/app/views/user/show.html.haml +++ b/app/views/user/show.html.haml @@ -18,7 +18,7 @@ - if @answers.next_page %button#load-more-btn.btn.btn-default{type: :button, data: { current_page: @answers.current_page }} - Load more + = t 'views.actions.load' .visible-xs= render 'shared/links' - if user_signed_in? = render 'user/modal_group_memberships' diff --git a/app/views/user/show_follow.html.haml b/app/views/user/show_follow.html.haml index d1d3878f..9c410115 100644 --- a/app/views/user/show_follow.html.haml +++ b/app/views/user/show_follow.html.haml @@ -16,7 +16,7 @@ - if @users.next_page %button#load-more-btn.btn.btn-default{type: :button, data: { current_page: @users.current_page }} - Load more + = t 'views.actions.load' .visible-xs= render 'shared/links' - if user_signed_in? = render 'user/modal_group_memberships' diff --git a/config/locales/en.yml b/config/locales/en.yml index 63347a33..7c06af6d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -76,6 +76,7 @@ en: follower: "follower" following: "following" actions: + title: "Actions" answer: "Answer" options: "Options" anonymous: "Hide your name" @@ -86,6 +87,15 @@ en: unsubscribe: "Unsubscribe" view: "View comment smiles" load: "Load more" + follow: "Follow" + unfollow: "Unfollow" + group: "Manage group memberships" + ban: "Ban Control" + privilege: "Check %{user}'s privileges" + save: "Save changes" + cancel: "Cancel" + close: "Close" + done: "Done" sessions: destroy: "Logout" create: "Sign in" @@ -181,4 +191,70 @@ en: create: "Create an account" another: "Ask another question" join: "Join %{app_title} today! You'll be able to follow and ask people you know and a lot more." + settings: + tabs: + account: "Account" + profile: "Profile" + privacy: "Privacy" + sharing: "Sharing" + account: + modal: + title: "Save account changes" + username: "User name" + email: "Email address" + email_confirm: "Currently awaiting confirmation for %{resource}" + password: "Password" + password_confirm: "Confirm password" + password_help: "Leave this blank if you don't want to change it" + password_current: "Current password" + password_current_help: + delete: "Delete my account" + unsatisfied: "Unsatisfied?" + back: "Back" + profile: + displayname: "Your name" + avatar_adjust: "Adjust your new avatar" + header_adjust: "Adjust your new header" + motivation: "Motivation header" + website: "Website" + location: "Location" + bio: "Bio" + placeholder: + motivation: "Ask me anything!" + location: "Where are you?" + bio: "Tell us something nice about you!" + privacy: + anonymous: "Allow anonymous questions" + public: "Show your answers in the public timeline" + stranger: "Allow other people to answer your questions" + modal: + bancontrol: + title: "Ban Control Center" + ban: "Ban?" + permanent: "Permanently?" + reason: "Reason" + hammertime: "Hammer Time" + group: + title: "Manage group memberships" + tabs: + main: "Groups" + create: "Create new group" + create: "Create group" + name: "Group name" + members: "members" + privilege: + blogger: "The user gets that privilege if they blogged something (nice) about Retrospring." + contributor: "This user has contributed to justask (the software behind Retrospring)." + supporter: "This user monetarily supports the site." + moderator: "Someone trustworthy enough to help managing reports." + admin: "This user is part of the core team." + user: + follows_you: "Follows you" + title: + admin: "Admin" + moderator: "Moderator" + supporter: "Supporter" + contributor: "Contributor" + blogger: "Blogger" + banned: "Banned" hello: "Hello world"