@@ -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 |