Update /terms and /about/more to use public layout (#8142)
This commit is contained in:
parent
f2404de871
commit
0dcc1950d1
53 changed files with 397 additions and 385 deletions
|
@ -9,9 +9,13 @@ class AboutController < ApplicationController
|
|||
@initial_state_json = serializable_resource.to_json
|
||||
end
|
||||
|
||||
def more; end
|
||||
def more
|
||||
render layout: 'public'
|
||||
end
|
||||
|
||||
def terms; end
|
||||
def terms
|
||||
render layout: 'public'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
|
|
|
@ -15,6 +15,276 @@ $small-breakpoint: 960px;
|
|||
}
|
||||
}
|
||||
|
||||
.rich-formatting {
|
||||
font-family: 'mastodon-font-sans-serif', sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 30px;
|
||||
color: $darker-text-color;
|
||||
padding-right: 10px;
|
||||
|
||||
a {
|
||||
color: $highlight-text-color;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
p,
|
||||
li {
|
||||
font-family: 'mastodon-font-sans-serif', sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 30px;
|
||||
margin-bottom: 12px;
|
||||
color: $darker-text-color;
|
||||
|
||||
a {
|
||||
color: $highlight-text-color;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
em {
|
||||
display: inline;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-weight: 700;
|
||||
background: transparent;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
color: lighten($darker-text-color, 10%);
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-family: 'mastodon-font-display', sans-serif;
|
||||
font-size: 26px;
|
||||
line-height: 30px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 20px;
|
||||
color: $secondary-text-color;
|
||||
|
||||
small {
|
||||
font-family: 'mastodon-font-sans-serif', sans-serif;
|
||||
display: block;
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
color: lighten($darker-text-color, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-family: 'mastodon-font-display', sans-serif;
|
||||
font-size: 22px;
|
||||
line-height: 26px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 20px;
|
||||
color: $secondary-text-color;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-family: 'mastodon-font-display', sans-serif;
|
||||
font-size: 18px;
|
||||
line-height: 24px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 20px;
|
||||
color: $secondary-text-color;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-family: 'mastodon-font-display', sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 20px;
|
||||
color: $secondary-text-color;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-family: 'mastodon-font-display', sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 20px;
|
||||
color: $secondary-text-color;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-family: 'mastodon-font-display', sans-serif;
|
||||
font-size: 12px;
|
||||
line-height: 24px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 20px;
|
||||
color: $secondary-text-color;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin-left: 20px;
|
||||
|
||||
&[type='a'] {
|
||||
list-style-type: lower-alpha;
|
||||
}
|
||||
|
||||
&[type='i'] {
|
||||
list-style-type: lower-roman;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: disc;
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style: decimal;
|
||||
}
|
||||
|
||||
li > ol,
|
||||
li > ul {
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
hr {
|
||||
width: 100%;
|
||||
height: 0;
|
||||
border: 0;
|
||||
border-bottom: 1px solid rgba($ui-base-lighter-color, .6);
|
||||
margin: 20px 0;
|
||||
|
||||
&.spacer {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.information-board {
|
||||
background: darken($ui-base-color, 4%);
|
||||
padding: 20px 0;
|
||||
|
||||
.container-alt {
|
||||
position: relative;
|
||||
padding-right: 280px + 15px;
|
||||
}
|
||||
|
||||
&__sections {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
&__section {
|
||||
flex: 1 0 0;
|
||||
font-family: 'mastodon-font-sans-serif', sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 28px;
|
||||
color: $primary-text-color;
|
||||
text-align: right;
|
||||
padding: 10px 15px;
|
||||
|
||||
span,
|
||||
strong {
|
||||
display: block;
|
||||
}
|
||||
|
||||
span {
|
||||
&:last-child {
|
||||
color: $secondary-text-color;
|
||||
}
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: 500;
|
||||
font-size: 32px;
|
||||
line-height: 48px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: $column-breakpoint) {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.panel {
|
||||
position: absolute;
|
||||
width: 280px;
|
||||
box-sizing: border-box;
|
||||
background: darken($ui-base-color, 8%);
|
||||
padding: 20px;
|
||||
padding-top: 10px;
|
||||
border-radius: 4px 4px 0 0;
|
||||
right: 0;
|
||||
bottom: -40px;
|
||||
|
||||
.panel-header {
|
||||
font-family: 'mastodon-font-display', sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
font-weight: 500;
|
||||
color: $darker-text-color;
|
||||
padding-bottom: 5px;
|
||||
margin-bottom: 15px;
|
||||
border-bottom: 1px solid lighten($ui-base-color, 4%);
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
|
||||
a,
|
||||
span {
|
||||
font-weight: 400;
|
||||
color: darken($darker-text-color, 10%);
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.owner {
|
||||
text-align: center;
|
||||
|
||||
.avatar {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 15px;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 48px;
|
||||
}
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 14px;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
color: $primary-text-color;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
.display_name {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.username {
|
||||
display: block;
|
||||
color: $darker-text-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.landing-page {
|
||||
.grid {
|
||||
display: grid;
|
||||
|
@ -486,128 +756,6 @@ $small-breakpoint: 960px;
|
|||
}
|
||||
}
|
||||
|
||||
.information-board {
|
||||
background: darken($ui-base-color, 4%);
|
||||
padding: 20px 0;
|
||||
|
||||
.container-alt {
|
||||
position: relative;
|
||||
padding-right: 280px + 15px;
|
||||
}
|
||||
|
||||
&__sections {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
&__section {
|
||||
flex: 1 0 0;
|
||||
font-family: 'mastodon-font-sans-serif', sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 28px;
|
||||
color: $primary-text-color;
|
||||
text-align: right;
|
||||
padding: 10px 15px;
|
||||
|
||||
span,
|
||||
strong {
|
||||
display: block;
|
||||
}
|
||||
|
||||
span {
|
||||
&:last-child {
|
||||
color: $secondary-text-color;
|
||||
}
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: 500;
|
||||
font-size: 32px;
|
||||
line-height: 48px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: $column-breakpoint) {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.panel {
|
||||
position: absolute;
|
||||
width: 280px;
|
||||
box-sizing: border-box;
|
||||
background: darken($ui-base-color, 8%);
|
||||
padding: 20px;
|
||||
padding-top: 10px;
|
||||
border-radius: 4px 4px 0 0;
|
||||
right: 0;
|
||||
bottom: -40px;
|
||||
|
||||
.panel-header {
|
||||
font-family: 'mastodon-font-display', sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
font-weight: 500;
|
||||
color: $darker-text-color;
|
||||
padding-bottom: 5px;
|
||||
margin-bottom: 15px;
|
||||
border-bottom: 1px solid lighten($ui-base-color, 4%);
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
|
||||
a,
|
||||
span {
|
||||
font-weight: 400;
|
||||
color: darken($darker-text-color, 10%);
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.owner {
|
||||
text-align: center;
|
||||
|
||||
.avatar {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 15px;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 48px;
|
||||
}
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 14px;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
color: $primary-text-color;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
.display_name {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.username {
|
||||
display: block;
|
||||
color: $darker-text-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.alternative {
|
||||
padding: 10px 0;
|
||||
|
||||
|
@ -983,21 +1131,6 @@ $small-breakpoint: 960px;
|
|||
}
|
||||
}
|
||||
|
||||
.extended-description {
|
||||
padding: 50px 0;
|
||||
font-family: 'mastodon-font-sans-serif', sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 30px;
|
||||
color: $darker-text-color;
|
||||
|
||||
a {
|
||||
color: $highlight-text-color;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
.footer-links {
|
||||
padding-bottom: 50px;
|
||||
text-align: right;
|
||||
|
|
|
@ -115,6 +115,34 @@
|
|||
}
|
||||
}
|
||||
|
||||
.grid-3 {
|
||||
display: grid;
|
||||
grid-gap: 10px;
|
||||
grid-template-columns: 3fr 1fr;
|
||||
grid-auto-columns: 25%;
|
||||
grid-auto-rows: max-content;
|
||||
|
||||
.column-0 {
|
||||
grid-column: 1/3;
|
||||
grid-row: 1;
|
||||
}
|
||||
|
||||
.column-1 {
|
||||
grid-column: 1;
|
||||
grid-row: 2;
|
||||
}
|
||||
|
||||
.column-2 {
|
||||
grid-column: 2;
|
||||
grid-row: 2;
|
||||
}
|
||||
|
||||
.column-3 {
|
||||
grid-column: 1/3;
|
||||
grid-row: 3;
|
||||
}
|
||||
}
|
||||
|
||||
.public-layout {
|
||||
@media screen and (max-width: $no-gap-breakpoint) {
|
||||
padding-top: 48px;
|
||||
|
@ -300,6 +328,15 @@
|
|||
}
|
||||
}
|
||||
|
||||
&--no-bar {
|
||||
margin-bottom: 0;
|
||||
|
||||
.public-account-header__image,
|
||||
.public-account-header__image img {
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $no-gap-breakpoint) {
|
||||
margin-bottom: 0;
|
||||
box-shadow: none;
|
||||
|
|
|
@ -103,6 +103,48 @@
|
|||
}
|
||||
}
|
||||
|
||||
.box-widget {
|
||||
padding: 20px;
|
||||
border-radius: 4px;
|
||||
background: $ui-base-color;
|
||||
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
|
||||
}
|
||||
|
||||
.contact-widget,
|
||||
.landing-page__information.contact-widget {
|
||||
box-sizing: border-box;
|
||||
padding: 20px;
|
||||
height: 100%;
|
||||
border-radius: 4px;
|
||||
background: $ui-base-color;
|
||||
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
|
||||
}
|
||||
|
||||
.contact-widget {
|
||||
font-size: 15px;
|
||||
color: $darker-text-color;
|
||||
line-height: 20px;
|
||||
word-wrap: break-word;
|
||||
font-weight: 400;
|
||||
|
||||
p {
|
||||
margin-bottom: 10px;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&__mail {
|
||||
margin-top: 10px;
|
||||
|
||||
a {
|
||||
color: $primary-text-color;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.moved-account-widget {
|
||||
padding: 15px;
|
||||
padding-bottom: 20px;
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
.account
|
||||
.account__wrapper
|
||||
- if @instance_presenter.contact_account
|
||||
= link_to TagManager.instance.url_for(@instance_presenter.contact_account), class: 'account__display-name' do
|
||||
.account__avatar-wrapper
|
||||
.account__avatar{ style: "background-image: url(#{@instance_presenter.contact_account.avatar.url})" }
|
||||
%span.display-name
|
||||
%bdi
|
||||
%strong.display-name__html.emojify= display_name(@instance_presenter.contact_account, custom_emojify: true)
|
||||
%span.display-name__account @#{@instance_presenter.contact_account.acct}
|
||||
- else
|
||||
.account__display-name
|
||||
.account__avatar-wrapper
|
||||
.account__avatar{ style: "background-image: url(#{full_asset_url('avatars/original/missing.png', skip_pipeline: true)})" }
|
||||
%span.display-name
|
||||
%strong= t 'about.contact_missing'
|
||||
%span.display-name__account= t 'about.contact_unavailable'
|
||||
|
||||
= link_to t('about.learn_more'), about_more_path, class: 'button button-alternative'
|
|
@ -1,22 +0,0 @@
|
|||
.panel
|
||||
.panel-header
|
||||
= succeed ':' do
|
||||
= t 'about.contact'
|
||||
- if contact.site_contact_email.present?
|
||||
= mail_to contact.site_contact_email, nil, title: contact.site_contact_email
|
||||
- else
|
||||
%span= t 'about.contact_unavailable'
|
||||
.panel-body
|
||||
- if contact.contact_account
|
||||
.owner
|
||||
.avatar= image_tag contact.contact_account.avatar.url
|
||||
.name
|
||||
= link_to TagManager.instance.url_for(contact.contact_account) do
|
||||
%span.display_name.emojify= display_name(contact.contact_account, custom_emojify: true)
|
||||
%span.username @#{contact.contact_account.acct}
|
||||
- else
|
||||
.owner
|
||||
.avatar= image_tag full_asset_url('avatars/original/missing.png', skip_pipeline: true)
|
||||
.name
|
||||
%span.display_name= t 'about.contact_missing'
|
||||
%span.username= t 'about.contact_unavailable'
|
|
@ -5,39 +5,41 @@
|
|||
= javascript_pack_tag 'public', integrity: true, crossorigin: 'anonymous'
|
||||
= render partial: 'shared/og'
|
||||
|
||||
.landing-page
|
||||
.header-wrapper.compact
|
||||
.header
|
||||
= render 'links'
|
||||
.grid-3
|
||||
.column-0
|
||||
.public-account-header.public-account-header--no-bar
|
||||
.public-account-header__image
|
||||
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax'
|
||||
|
||||
.container-alt.hero
|
||||
.heading
|
||||
%h3= t('about.description_headline', domain: site_hostname)
|
||||
%p= @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname)
|
||||
.column-1
|
||||
.landing-page__call-to-action{ dir: 'ltr' }
|
||||
.row
|
||||
.row__information-board
|
||||
.information-board__section
|
||||
%span= t 'about.user_count_before'
|
||||
%strong= number_with_delimiter @instance_presenter.user_count
|
||||
%span= t 'about.user_count_after'
|
||||
.information-board__section
|
||||
%span= t 'about.status_count_before'
|
||||
%strong= number_with_delimiter @instance_presenter.status_count
|
||||
%span= t 'about.status_count_after'
|
||||
.row__mascot
|
||||
.landing-page__mascot
|
||||
= image_tag asset_pack_path('elephant_ui_plane.svg')
|
||||
|
||||
.information-board
|
||||
.container-alt
|
||||
.information-board__sections
|
||||
.information-board__section
|
||||
%span= t 'about.user_count_before'
|
||||
%strong= number_with_delimiter @instance_presenter.user_count
|
||||
%span= t 'about.user_count_after'
|
||||
.information-board__section
|
||||
%span= t 'about.status_count_before'
|
||||
%strong= number_with_delimiter @instance_presenter.status_count
|
||||
%span= t 'about.status_count_after'
|
||||
.information-board__section
|
||||
%span= t 'about.domain_count_before'
|
||||
%strong= number_with_delimiter @instance_presenter.domain_count
|
||||
%span= t 'about.domain_count_after'
|
||||
= render 'contact', contact: @instance_presenter
|
||||
.column-2
|
||||
.landing-page__information.contact-widget
|
||||
%p= t 'about.administered_by'
|
||||
|
||||
.extended-description
|
||||
.container-alt
|
||||
= @instance_presenter.site_extended_description.html_safe.presence || t('about.extended_description_html')
|
||||
= account_link_to(@instance_presenter.contact_account)
|
||||
|
||||
.footer-links
|
||||
.container-alt
|
||||
%p
|
||||
= link_to t('about.source_code'), @instance_presenter.source_url
|
||||
= " (#{@instance_presenter.version_number})"
|
||||
- if @instance_presenter.site_contact_email.present?
|
||||
%p.contact-widget__mail
|
||||
= succeed ':' do
|
||||
= t 'about.contact'
|
||||
%br/
|
||||
= mail_to @instance_presenter.site_contact_email, nil, title: @instance_presenter.site_contact_email
|
||||
|
||||
.column-3
|
||||
.box-widget
|
||||
.rich-formatting= @instance_presenter.site_extended_description.html_safe.presence || t('about.extended_description_html')
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
%p= t 'about.about_mastodon_html'
|
||||
%div.contact
|
||||
%h3= t 'about.administered_by'
|
||||
= render 'administration'
|
||||
= account_link_to(@instance_presenter.contact_account, link_to(t('about.learn_more'), about_more_path, class: 'button button-alternative'))
|
||||
|
||||
= render 'features'
|
||||
|
||||
|
@ -131,7 +131,7 @@
|
|||
%p= t 'about.about_mastodon_html'
|
||||
%div.contact
|
||||
%h3= t 'about.administered_by'
|
||||
= render 'administration'
|
||||
= account_link_to(@instance_presenter.contact_account, link_to(t('about.learn_more'), about_more_path, class: 'button button-alternative'))
|
||||
|
||||
= render 'features'
|
||||
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
- content_for :page_title do
|
||||
= t('terms.title', instance: site_hostname)
|
||||
|
||||
.landing-page
|
||||
.header-wrapper.compact
|
||||
.header
|
||||
= render 'links'
|
||||
|
||||
.extended-description
|
||||
.container-alt
|
||||
= @instance_presenter.site_terms.html_safe.presence || t('terms.body_html')
|
||||
.grid
|
||||
.column-0
|
||||
.box-widget
|
||||
.rich-formatting= @instance_presenter.site_terms.html_safe.presence || t('terms.body_html')
|
||||
.column-1
|
||||
= render 'application/sidebar'
|
||||
|
|
|
@ -9,9 +9,6 @@ ar:
|
|||
contact: للتواصل معنا
|
||||
contact_missing: غير محدد
|
||||
contact_unavailable: غير متوفر
|
||||
description_headline: ما هو %{domain}?
|
||||
domain_count_after: خوادم أخرى
|
||||
domain_count_before: متصل بـ
|
||||
extended_description_html: |
|
||||
<h3>مكان جيد للقواعد</h3>
|
||||
<p>لا يوجد تفصيل طويل حتى الآن.</p>
|
||||
|
|
|
@ -3,8 +3,6 @@ ast:
|
|||
about:
|
||||
about_mastodon_html: Mastodon ye una rede social basada en protocolos abiertos y software de códigu llibre. Ye descentralizada, como'l corréu electrónicu.
|
||||
contact_unavailable: N/D
|
||||
description_headline: "¿Qué ye %{domain}?"
|
||||
domain_count_after: otres instancies
|
||||
features:
|
||||
not_a_product_title: Yes una persona, non un productu
|
||||
source_code: Códigu fonte
|
||||
|
|
|
@ -5,9 +5,6 @@ bg:
|
|||
about_this: За тази инстанция
|
||||
closed_registrations: В момента регистрациите за тази инстанция са затворени.
|
||||
contact: За контакти
|
||||
description_headline: Какво е %{domain}?
|
||||
domain_count_after: други инстанции
|
||||
domain_count_before: Свързани към
|
||||
other_instances: Други инстанции
|
||||
source_code: Програмен код
|
||||
status_count_after: публикации
|
||||
|
|
|
@ -9,9 +9,6 @@ ca:
|
|||
contact: Contacte
|
||||
contact_missing: No configurat
|
||||
contact_unavailable: N/D
|
||||
description_headline: Què es %{domain}?
|
||||
domain_count_after: altres instàncies
|
||||
domain_count_before: Connectada a
|
||||
extended_description_html: |
|
||||
<h3>Un bon lloc per les regles</h3>
|
||||
<p>Encara no s'ha configurat la descripció ampliada.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ co:
|
|||
contact: Cuntattu
|
||||
contact_missing: Mancante
|
||||
contact_unavailable: Micca dispunibule
|
||||
description_headline: Quale hè %{domain} ?
|
||||
domain_count_after: altre istanze
|
||||
domain_count_before: Cunnettati à
|
||||
extended_description_html: |
|
||||
<h3>Una bona piazza per e regule</h3>
|
||||
<p>A descrizzione stesa ùn hè micca stata riempiuta.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ cs:
|
|||
contact: Kontakt
|
||||
contact_missing: Nenastaveno
|
||||
contact_unavailable: Neuvedeno
|
||||
description_headline: Co je %{domain}?
|
||||
domain_count_after: dalším instancím
|
||||
domain_count_before: Připojeno k
|
||||
extended_description_html: |
|
||||
<h3>Dobré místo pro pravidla</h3>
|
||||
<p>Rozšířený popis ještě nebyl nastaven.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ da:
|
|||
contact: Kontakt
|
||||
contact_missing: Ikke sat
|
||||
contact_unavailable: Ikke tilgængeligt
|
||||
description_headline: Hvad er %{domain}?
|
||||
domain_count_after: andre instanser
|
||||
domain_count_before: Forbundet til
|
||||
extended_description_html: |
|
||||
<h3>Et godt sted for regler</h3>
|
||||
<p>Den udvidede beskrivelse er endnu ikke blevet opsat.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ de:
|
|||
contact: Kontakt
|
||||
contact_missing: Nicht angegeben
|
||||
contact_unavailable: N/A
|
||||
description_headline: Was ist %{domain}?
|
||||
domain_count_after: anderen Instanzen
|
||||
domain_count_before: Vernetzt mit
|
||||
extended_description_html: |
|
||||
<h3>Ein guter Platz für Regeln</h3>
|
||||
<p>Die erweiterte Beschreibung wurde noch nicht aufgesetzt.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ el:
|
|||
contact: Επικοινωνία
|
||||
contact_missing: Δεν έχει οριστεί
|
||||
contact_unavailable: Μ/Δ
|
||||
description_headline: Τι είναι το %{domain};
|
||||
domain_count_after: άλλους διακομιστές
|
||||
domain_count_before: Συνδέεται με
|
||||
extended_description_html: |
|
||||
<h3>Ένα καλό σημείο για κανόνες</h3>
|
||||
<p>Η αναλυτική περιγραφή δεν έχει ακόμα οριστεί</p>
|
||||
|
|
|
@ -10,10 +10,7 @@ en:
|
|||
contact: Contact
|
||||
contact_missing: Not set
|
||||
contact_unavailable: N/A
|
||||
description_headline: What is %{domain}?
|
||||
documentation: Documentation
|
||||
domain_count_after: other instances
|
||||
domain_count_before: Connected to
|
||||
extended_description_html: |
|
||||
<h3>A good place for rules</h3>
|
||||
<p>The extended description has not been set up yet.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ eo:
|
|||
contact: Kontakti
|
||||
contact_missing: Ne elektita
|
||||
contact_unavailable: Ne disponebla
|
||||
description_headline: Kio estas %{domain}?
|
||||
domain_count_after: aliaj nodoj
|
||||
domain_count_before: Konektita al
|
||||
extended_description_html: |
|
||||
<h3>Bona loko por reguloj</h3>
|
||||
<p>La detala priskribo ne estis elektita.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ es:
|
|||
contact: Contacto
|
||||
contact_missing: No especificado
|
||||
contact_unavailable: N/A
|
||||
description_headline: "¿Qué es %{domain}?"
|
||||
domain_count_after: otras instancias
|
||||
domain_count_before: Conectado a
|
||||
extended_description_html: |
|
||||
<h3>Un buen lugar para las reglas</h3>
|
||||
<p>La descripción extendida no se ha colocado aún.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ eu:
|
|||
contact: Kontaktua
|
||||
contact_missing: Ezarri gabe
|
||||
contact_unavailable: E/E
|
||||
description_headline: Zer da %{domain}?
|
||||
domain_count_after: instantzia desberdinetara
|
||||
domain_count_before: Konektatuta
|
||||
extended_description_html: |
|
||||
<h3>Arauentzako toki egoki bat</h3>
|
||||
<p>Azalpen luzea ez da ezarri oraindik.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ fa:
|
|||
contact: تماس
|
||||
contact_missing: تعیین نشده
|
||||
contact_unavailable: موجود نیست
|
||||
description_headline: "%{domain} چیست؟"
|
||||
domain_count_after: سرور دیگر
|
||||
domain_count_before: متصل به
|
||||
extended_description_html: |
|
||||
<h3>جای خوبی برای قانونها</h3>
|
||||
<p>توضیحات تکمیلی نوشته نشده است.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ fi:
|
|||
contact: Ota yhteyttä
|
||||
contact_missing: Ei asetettu
|
||||
contact_unavailable: Ei saatavilla
|
||||
description_headline: Mikä on %{domain}?
|
||||
domain_count_after: muuhun instanssiin
|
||||
domain_count_before: Yhdistyneenä
|
||||
extended_description_html: |
|
||||
<h3>Hyvä paikka säännöille</h3>
|
||||
<p>Pidempää kuvausta ei ole vielä laadittu.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ fr:
|
|||
contact: Contact
|
||||
contact_missing: Manquant
|
||||
contact_unavailable: Non disponible
|
||||
description_headline: Qu’est-ce que %{domain} ?
|
||||
domain_count_after: autres instances
|
||||
domain_count_before: Connecté⋅e⋅s à
|
||||
extended_description_html: |
|
||||
<h3>Un bon endroit pour les règles</h3>
|
||||
<p>La description étendue n’a pas été remplie.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ gl:
|
|||
contact: Contacto
|
||||
contact_missing: Non establecido
|
||||
contact_unavailable: N/A
|
||||
description_headline: Qué é %{domain}?
|
||||
domain_count_after: outras instancias
|
||||
domain_count_before: Conectada a
|
||||
extended_description_html: |
|
||||
<h3>Un bo lugar para regras</h3>
|
||||
<p>A descrición extendida aínda non se proporcionou.</p>
|
||||
|
|
|
@ -8,9 +8,6 @@ he:
|
|||
contact: צור קשר
|
||||
contact_missing: אין
|
||||
contact_unavailable: לא רלוונטי/חסר
|
||||
description_headline: מהו %{domain}?
|
||||
domain_count_after: שרתים אחרים
|
||||
domain_count_before: מחובר אל
|
||||
extended_description_html: |
|
||||
<h3>מקום טוב לכללים</h3>
|
||||
<p>התיאור המורחב טרם הוגדר.</p>
|
||||
|
|
|
@ -5,9 +5,6 @@ hr:
|
|||
about_this: O ovoj instanci
|
||||
closed_registrations: Registracije na ovoj instanci su trenutno zatvorene.
|
||||
contact: Kontakt
|
||||
description_headline: Što je %{domain}?
|
||||
domain_count_after: druge instance
|
||||
domain_count_before: Spojen na
|
||||
other_instances: Druge instance
|
||||
source_code: Izvorni kod
|
||||
status_count_after: statusi
|
||||
|
|
|
@ -8,9 +8,6 @@ hu:
|
|||
contact: Kapcsolat
|
||||
contact_missing: Nincs megadva
|
||||
contact_unavailable: N/A
|
||||
description_headline: Mi az a %{domain}?
|
||||
domain_count_after: további instanciával
|
||||
domain_count_before: Kapcsolatban
|
||||
extended_description_html: |
|
||||
<h3>Ez itt a szabályzat helye</h3>
|
||||
<p>Még nem állítottál be bővebb leírást.</p>
|
||||
|
|
|
@ -5,9 +5,6 @@ id:
|
|||
about_this: Tentang server ini
|
||||
closed_registrations: Pendaftaran untuk server ini sedang ditutup.
|
||||
contact: Kontak
|
||||
description_headline: Apa itu %{domain}?
|
||||
domain_count_after: server lain
|
||||
domain_count_before: Terhubung dengan
|
||||
other_instances: Server lain
|
||||
source_code: Kode sumber
|
||||
status_count_after: status
|
||||
|
|
|
@ -5,9 +5,6 @@ io:
|
|||
about_this: Pri ta instaluro
|
||||
closed_registrations: Membresko ne nun esas posible en ta instaluro.
|
||||
contact: Kontaktar
|
||||
description_headline: Quo esas %{domain}?
|
||||
domain_count_after: altra instaluri
|
||||
domain_count_before: Konektita ad
|
||||
other_instances: Altra instaluri
|
||||
source_code: Fontkodexo
|
||||
status_count_after: mesaji
|
||||
|
|
|
@ -9,9 +9,6 @@ it:
|
|||
contact: Contatti
|
||||
contact_missing: Non impostato
|
||||
contact_unavailable: N/D
|
||||
description_headline: Cos'è %{domain}?
|
||||
domain_count_after: altri server
|
||||
domain_count_before: Connesso a
|
||||
extended_description_html: |
|
||||
<h3>Un buon posto per le regole</h3>
|
||||
<p>La descrizione estesa non è ancora stata preparata.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ ja:
|
|||
contact: 連絡先
|
||||
contact_missing: 未設定
|
||||
contact_unavailable: N/A
|
||||
description_headline: "%{domain} とは?"
|
||||
domain_count_after: 個のインスタンス
|
||||
domain_count_before: 接続中
|
||||
extended_description_html: |
|
||||
<h3>ルールを書くのに適した場所</h3>
|
||||
<p>詳細説明が設定されていません。</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ ko:
|
|||
contact: 연락처
|
||||
contact_missing: 미설정
|
||||
contact_unavailable: N/A
|
||||
description_headline: "%{domain} (은)는 무엇인가요?"
|
||||
domain_count_after: 개의 인스턴스
|
||||
domain_count_before: 연결된
|
||||
extended_description_html: |
|
||||
<h3>룰을 작성하는 장소</h3>
|
||||
<p>아직 설명이 작성되지 않았습니다.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ nl:
|
|||
contact: Contact
|
||||
contact_missing: Niet ingesteld
|
||||
contact_unavailable: n.v.t
|
||||
description_headline: Wat is %{domain}?
|
||||
domain_count_after: andere servers
|
||||
domain_count_before: Verbonden met
|
||||
extended_description_html: |
|
||||
<h3>Een goede plek voor richtlijnen</h3>
|
||||
<p>De uitgebreide omschrijving is nog niet ingevuld.</p>
|
||||
|
|
|
@ -8,9 +8,6 @@
|
|||
contact: Kontakt
|
||||
contact_missing: Ikke innstilt
|
||||
contact_unavailable: Ikke tilgjengelig
|
||||
description_headline: Hva er %{domain}?
|
||||
domain_count_after: andre instanser
|
||||
domain_count_before: Koblet til
|
||||
extended_description_html: |
|
||||
<h3>En god plassering for regler</h3>
|
||||
<p>En utvidet beskrivelse er ikke satt opp ennå.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ oc:
|
|||
contact: Contacte
|
||||
contact_missing: Pas parametrat
|
||||
contact_unavailable: Pas disponible
|
||||
description_headline: Qué es %{domain} ?
|
||||
domain_count_after: autras instàncias
|
||||
domain_count_before: Connectat a
|
||||
extended_description_html: |
|
||||
<h3>Una bona plaça per las règlas</h3>
|
||||
<p>La descripcion longa es pas estada causida pel moment.</p>
|
||||
|
|
|
@ -10,10 +10,7 @@ pl:
|
|||
contact: Kontakt
|
||||
contact_missing: Nie ustawiono
|
||||
contact_unavailable: Nie dotyczy
|
||||
description_headline: Czym jest %{domain}?
|
||||
documentation: Dokumentacja
|
||||
domain_count_after: instancjami
|
||||
domain_count_before: Serwer połączony z
|
||||
extended_description_html: |
|
||||
<h3>Dobre miejsce na zasady użytkowania</h3>
|
||||
<p>Nie ustawiono jeszcze szczegółowego opisu</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ pt-BR:
|
|||
contact: Contato
|
||||
contact_missing: Não definido
|
||||
contact_unavailable: N/A
|
||||
description_headline: O que é %{domain}?
|
||||
domain_count_after: outras instâncias
|
||||
domain_count_before: Conectado a
|
||||
extended_description_html: |
|
||||
<h3>Um bom lugar para regras</h3>
|
||||
<p>A descrição da instância ainda não foi feita.</p>
|
||||
|
|
|
@ -8,9 +8,6 @@ pt:
|
|||
contact: Contacto
|
||||
contact_missing: Não configurado
|
||||
contact_unavailable: n.d.
|
||||
description_headline: O que é o %{domain}?
|
||||
domain_count_after: outras instâncias
|
||||
domain_count_before: Ligado a
|
||||
extended_description_html: |
|
||||
<h3>Um bom lugar para regras</h3>
|
||||
<p>A descrição estendida ainda não foi configurada.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ ru:
|
|||
contact: Связаться
|
||||
contact_missing: Не установлено
|
||||
contact_unavailable: Недоступен
|
||||
description_headline: Что такое %{domain}?
|
||||
domain_count_after: другими узлами
|
||||
domain_count_before: Связан с
|
||||
extended_description_html: |
|
||||
<h3>Хорошее место для правил</h3>
|
||||
<p>Расширенное описание еще не настроено.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ sk:
|
|||
contact: Kontakt
|
||||
contact_missing: Nezadané
|
||||
contact_unavailable: Neuvedené
|
||||
description_headline: Čo je %{domain}?
|
||||
domain_count_after: ďalším instanciám
|
||||
domain_count_before: Pripojený k
|
||||
extended_description_html: |
|
||||
<h3>Pravidlá</h3>
|
||||
<p>Žiadne zatiaľ nie sú</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ sl:
|
|||
contact: Kontakt
|
||||
contact_missing: Ni nastavljeno
|
||||
contact_unavailable: Ni na voljo
|
||||
description_headline: Kaj je %{domain}?
|
||||
domain_count_after: ostala vozlišča
|
||||
domain_count_before: Povezan z
|
||||
extended_description_html: |
|
||||
<h3>Dober prostor za pravila</h3>
|
||||
<p>Razširjen opis še ni bil nastavljen.</p>
|
||||
|
|
|
@ -8,9 +8,6 @@ sr-Latn:
|
|||
contact: Kontakt
|
||||
contact_missing: Nije postavljeno
|
||||
contact_unavailable: N/A
|
||||
description_headline: Šta je %{domain}?
|
||||
domain_count_after: ostale instance
|
||||
domain_count_before: Povezan na
|
||||
extended_description_html: |
|
||||
<h3>Dobro mesto za pravila</h3>
|
||||
<p>Prošireni opis koji još nije postavljen.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ sr:
|
|||
contact: Контакт
|
||||
contact_missing: Није постављено
|
||||
contact_unavailable: N/A
|
||||
description_headline: Шта је %{domain}?
|
||||
domain_count_after: остале инстанце
|
||||
domain_count_before: Повезан на
|
||||
extended_description_html: |
|
||||
<h3>Добро место за правила</h3>
|
||||
<p>Проширени опис који још није постављен.</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ sv:
|
|||
contact: Kontakt
|
||||
contact_missing: Inte inställd
|
||||
contact_unavailable: N/A
|
||||
description_headline: Vad är %{domain}?
|
||||
domain_count_after: andra instanser
|
||||
domain_count_before: Uppkopplad mot
|
||||
extended_description_html: |
|
||||
<h3>En bra plats för regler</h3>
|
||||
<p>Den utökade beskrivningen har inte konfigurerats ännu.</p>
|
||||
|
|
|
@ -5,9 +5,6 @@ th:
|
|||
about_this: เกี่ยวกับอินซะแตนซ์นี้
|
||||
closed_registrations: อินซะแตนซ์นี้ปิดรับลงทะเบียนแล้ว.
|
||||
contact: ติดต่อ
|
||||
description_headline: โดเมนคือ %{domain} ?
|
||||
domain_count_after: อินซะแตนซ์อื่นๆ
|
||||
domain_count_before: เชื่อมต่อกับ
|
||||
other_instances: อินซะแตนซ์อื่นๆ
|
||||
source_code: ซอร์สโค๊ด
|
||||
status_count_after: สถานะ
|
||||
|
|
|
@ -5,9 +5,6 @@ tr:
|
|||
about_this: Bu sunucu hakkında
|
||||
closed_registrations: Bu sunucu şu anda yeni kayıt almamaktadır.
|
||||
contact: İletişim
|
||||
description_headline: Peki %{domain} nedir?
|
||||
domain_count_after: sunucu var.
|
||||
domain_count_before: Bağlı olduğu
|
||||
other_instances: Diğer sunucular
|
||||
source_code: Kaynak kodu
|
||||
status_count_after: adet gönderi yazıldı.
|
||||
|
|
|
@ -7,9 +7,6 @@ uk:
|
|||
closed_registrations: На даний момент реєстрація на цій інстанції закрита.
|
||||
contact: Зв'язатися
|
||||
contact_missing: Не зазначено
|
||||
description_headline: Що таке %{domain}?
|
||||
domain_count_after: іншими інстанціями
|
||||
domain_count_before: Зв'язаний з
|
||||
features:
|
||||
humane_approach_title: Більш людський підхід
|
||||
real_conversation_title: Побудований для справжньої розмови
|
||||
|
|
|
@ -9,9 +9,6 @@ zh-CN:
|
|||
contact: 联系方式
|
||||
contact_missing: 未设定
|
||||
contact_unavailable: 未公开
|
||||
description_headline: 关于 %{domain}
|
||||
domain_count_after: 个其它实例
|
||||
domain_count_before: 现已接入
|
||||
extended_description_html: |
|
||||
<h3>这里可以写一些规定</h3>
|
||||
<p>本站尚未设置详细介绍。</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ zh-HK:
|
|||
contact: 聯絡
|
||||
contact_missing: 未設定
|
||||
contact_unavailable: 未公開
|
||||
description_headline: 甚麼是 %{domain} ?
|
||||
domain_count_after: 個其他服務站
|
||||
domain_count_before: 已連接至
|
||||
extended_description_html: |
|
||||
<h3>這裡可以寫一些網站規則</h3>
|
||||
<p>本站未有詳細介紹</p>
|
||||
|
|
|
@ -9,9 +9,6 @@ zh-TW:
|
|||
contact: 聯絡我們
|
||||
contact_missing: 未設定
|
||||
contact_unavailable: 未公開
|
||||
description_headline: 關於 %{domain}?
|
||||
domain_count_after: 個站點相連
|
||||
domain_count_before: 與其他
|
||||
extended_description_html: |
|
||||
<h3>這裡可以寫一些網站規則</h3>
|
||||
<p>本站點未有詳細介紹</p>
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'about/_contact.html.haml' do
|
||||
describe 'the contact account', without_verify_partial_doubles: true do
|
||||
before do
|
||||
allow(view).to receive(:display_name).and_return('Display Name!')
|
||||
end
|
||||
|
||||
it 'shows info when account is present' do
|
||||
account = Account.new(username: 'admin')
|
||||
contact = double(contact_account: account, site_contact_email: '')
|
||||
render 'about/contact', contact: contact
|
||||
|
||||
expect(rendered).to have_content('@admin')
|
||||
end
|
||||
|
||||
it 'does not show info when account is missing' do
|
||||
contact = double(contact_account: nil, site_contact_email: '')
|
||||
render 'about/contact', contact: contact
|
||||
|
||||
expect(rendered).not_to have_content('@')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'the contact email' do
|
||||
it 'show info when email is present' do
|
||||
contact = double(site_contact_email: 'admin@example.com', contact_account: nil)
|
||||
render 'about/contact', contact: contact
|
||||
|
||||
expect(rendered).to have_content('admin@example.com')
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue