diff options
122 files changed, 819 insertions, 694 deletions
diff --git a/app/helpers/instance_helper.rb b/app/helpers/instance_helper.rb index 70027cca9..22a19c52b 100644 --- a/app/helpers/instance_helper.rb +++ b/app/helpers/instance_helper.rb @@ -6,6 +6,6 @@ module InstanceHelper end def site_hostname - Rails.configuration.x.local_domain + @site_hostname ||= Addressable::URI.parse("//#{Rails.configuration.x.local_domain}").display_uri.host end end diff --git a/app/javascript/images/elephant_ui_greeting.svg b/app/javascript/images/elephant_ui_greeting.svg new file mode 100644 index 000000000..f3eb4b142 --- /dev/null +++ b/app/javascript/images/elephant_ui_greeting.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="266.89999" width="463.97818" viewBox="0 0 463.97818 266.89999"><g transform="translate(-184 -205.1)"><defs><path id="a" d="M184 151h494.79999v321H184z"/></defs><clipPath id="b"><use height="100%" width="100%" xlink:href="#a" overflow="visible"/></clipPath><path clip-path="url(#b)" d="M525.7 478c-.5 0-.9-.2-1.2-.6-.3-.4-.4-.9-.2-1.3.2-.6 20-65 22-72 .2-.7.5-1.4.9-2.1.1-.4.3-.8.6-1.1l.3-.3c8.2-11.9 29.8-12.9 36.2-12.9 2.4 0 5 .1 7.6.3 13.6.9 25.2 3.7 33.6 8 6.4 3.3 10.7 7.4 12.2 11.8.1.2.2.4.2.6.2.6.3 1.3.4 1.9.6 5.4-1 13.6-2 18.5-1 5-11.9 47.7-12 48.1-.2.7-.8 1.1-1.5 1.1h-97.1z"/></g><g transform="translate(-184 -205.1)"><defs><path id="c" d="M184 151h494.79999v321H184z"/></defs><clipPath id="d"><use height="100%" width="100%" xlink:href="#c" overflow="visible"/></clipPath><path clip-path="url(#d)" d="M414.9 482.9c-.6 0-1.2-.4-1.4-.9H295.2l-81.3.8c-.6 0-1.1-.3-1.3-.8h-33.9c-.8 0-1.5-.7-1.5-1.5v-168c0-.3.1-.7.3-.9l2.9-3.8c-1.4-3-5.5-12.9-2.1-21.9-.2-.4-.3-.8-.5-1.2-1.9-5-2.6-10.8-2.3-17.1 0-1.1.1-2.2.3-3.3l.4-3.1.4-2.1c.5-3.2 1.3-6 2.2-8.4 2-5.4 5.5-10.4 10-14.3 4.1-3.6 9.1-6.5 15-8.6 7.6-2.7 16.2-4.1 25.5-4.1 2.4 0 5 .1 7.5.3 2.1-3.2 4.6-5.8 7.3-7.8 1.6-1.3 3.3-2.3 4.9-3.1 1.6-.8 3.5-1.7 5.4-2.2 2.9-.9 6.2-1.4 9.6-1.4.6 0 1.3 0 1.9.1 3.6.2 7.1 1 10.5 2.4 4.4-3.1 9.4-5.2 14.6-6.2 2.3-.4 4.7-.7 7.1-.7 3.3 0 6.5.4 9.6 1.3 2.8.8 5.5 1.8 7.8 3 2.5 1.3 4.8 2.9 6.9 4.7 3.9 3.3 7.2 7.6 9.5 12.5 7.9.2 15.5 3.2 21.7 8.3 3.2 2.7 5.9 5.9 7.9 9.4 2.1 3.6 3.5 7.5 4.2 11.5.7 3.7.7 7.8.2 12.2-.6 5-1.5 8.6-3 11.9-.8 1.8-1.9 3.5-3.3 5.3-1.4 1.6-2.6 2.9-3.9 4 25.8 10.3 47.4 26.8 62.7 48 8.3 11.3 16 24.7 22.9 39.7 7.1-5.1 14.6-12.5 23.2-23.3 22.7-28.1 60.2-50.7 89-53.6 4.5-.4 9-.7 13.3-.7 18.2 0 30.4 3.9 34.1 5.3 1.8-3.1 7.3-11.3 15.7-11.3 1.5 0 3 .3 4.5.8 4.6 1.5 7.8 4.3 9.4 8.2 1.5 3.5 1.3 7.4.7 10.5 1-.3 2.1-.5 3.4-.5 3.3 0 6.4 1.4 9.2 4.2 3.8 3.8 5.2 10.5 3.4 16.5-1.5 4.9-6.3 13.7-22.2 17-5.9 1.2-11.5 1.8-16.7 1.8-11.1 0-17.2-2.8-18.9-3.8-3.9.6-37.3 6.7-56.4 42.2-3.7 6.9-8.6 15.8-14 24.3 2.8 6.9 3.5 16 2.2 26.3-2.5 18.9-10 40-10.1 40.2-.2.6-.8 1-1.4 1l-94.8.9z"/></g><g transform="translate(-184 -205.1)"><defs><path id="e" d="M184 151h494.79999v321H184z"/></defs><clipPath id="f"><use height="100%" width="100%" xlink:href="#e" overflow="visible"/></clipPath><g clip-path="url(#f)"><path d="M414.9 481.4c-8.2-22.8-2.2-33.8 10.8-38.8s27 0 40 24c0 0 7-5 11-25s10-38 27-38c11 0 19 14 16 37-2.5 18.9-10 39.9-10 39.9l-94.8.9z" fill="#ebded8" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"/><path d="M415.1 480.7c-6.4-18.1-4.1-29.8 7-35.9 6.6 4 12.9 11.4 18.7 22.1l.3.5.5-.3c.2-.2 5.6-4.2 9.7-18.8 4.9 4.2 9.6 10.5 14 18.6l-3.7-3.4-.8-1.9c.3-.2 12.4.2 16.4-19.8 2.4-11.8 5.7-24.7 12.7-31.8 4.9 6.5 6.7 17.6 5 30.7-2.3 17.4-8.9 36.7-9.9 39.4l-69.9.6z" class="st4" fill="#fff"/><path d="M469.8 480.5H178.7v-168l3.5-4.5c61-42 180-46.3 235 30" class="st5" fill="#fccf84" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"/><path d="M417.2 338c-55.6-75.9-174-72-235-30l-3.5 4.5v168h291.1S458.9 395 417.2 338z" class="st6" fill="#fccf84"/><path d="M416.8 338.3c-6.4-8.7-13.8-16.6-22-23.5-8.2-6.9-17.3-12.8-26.9-17.7-19.2-9.8-40.4-15.4-61.8-17.4-21.4-2-43.2-.7-64.3 4-10.5 2.3-20.9 5.5-30.8 9.6-10 4.1-19.6 9.1-28.5 15.1l.1-.1-3.5 4.5.1-.3v168l-.5-.5h291.1l-.5.6c-1.8-12.6-4.4-25.1-7.4-37.5-3.1-12.4-6.6-24.6-10.9-36.7-4.2-12-9-23.9-14.7-35.3-2.8-5.7-5.9-11.3-9.1-16.8-3.2-5.5-6.7-10.8-10.4-16zm.8-.6c3.8 5.2 7.3 10.5 10.6 16 3.2 5.5 6.4 11.1 9.2 16.9 5.7 11.5 10.6 23.3 14.9 35.4 4.3 12.1 7.9 24.3 11 36.8 3.1 12.4 5.8 24.9 7.7 37.6.1.7-.4 1.3-1.1 1.4h-.2l-291-.8c-.3 0-.5-.2-.5-.5v-168c0-.1 0-.2.1-.3l3.5-4.5.1-.1c9-6.1 18.6-11.1 28.6-15.2s20.4-7.3 31-9.6c21.1-4.7 43-6.1 64.6-4 21.5 2.1 42.8 7.7 62.2 17.5 9.7 4.9 18.8 10.9 27.1 17.8s15.8 14.9 22.2 23.6z"/><path d="M182.3 479.7V323.5s42.9-30 87.3 15.6 79.6 126 148 110.2c56.4-13-17 21.8-17 21.8l-218.3 8.6z" class="st7" fill="#b88671"/><path d="M179.2 312.7l3.3-4.3c16.5-11.3 37.2-19.9 60.1-24.9l79.2.8c1 .5 9.3 4.6 9 10.1-.2 3.6-4.5 9.2-23.3 15-40.8 12.5-119.2 21.1-126.2 21.8l-2.1-18.5z" class="st7" fill="#b88671"/><path d="M181.1 283.7c-6.4 10.6 1.1 24.3 1.1 24.3l11.7-7.5-12.8-16.8z" fill="#a6725c" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"/><path d="M646.4 325.7c-.2.2-.4.5-.6.8-4.6 8.1-16.2 13.7-32.9 13.7s-25.8-8.1-25.8-8.1c-65.8 3.5-80.5 51.6-124.5 93.1-44 41.5-131.1 34.9-220.8 17l-7.5 8.8 4.5 29.4s221.6-.5 230.5-.5c-1.6-12.3-2.6-16.4-2.6-16.4 31.7-17.9 49.4-44.9 65.1-74.1 21-39 58-43 58-43s11 7 35 2c17.1-3.5 22.5-14.3 21.6-22.7z" class="st7" fill="#b88671"/><path d="M241.8 392.5c-3.8 0-7-3.1-7.1-6.9l-.2-28c0-3.8 3.1-7 6.9-7.1 3.8 0 7 3.1 7.1 6.9l.2 28c.1 3.9-3 7.1-6.9 7.1zm157.5 0c-3.8.1-7.1-3-7.2-6.8l-.7-28c-.1-3.8 3-7.1 6.8-7.2 3.8-.1 7.1 3 7.2 6.8l.7 28c.1 3.9-2.9 7.1-6.8 7.2z"/><path d="M213.9 482.3c-.4 0-.8-.3-.9-.7-7.6-21.1-3.9-34.2 11.4-40.1 3.1-1.2 6.3-1.8 9.3-1.8 11.5 0 22 8.5 31.3 25.1 1.9-2 6.7-8.4 9.8-23.6 4-20.2 10.2-38.8 28-38.8 4.1 0 7.8 1.8 10.8 5.1 5.8 6.6 8.1 18.7 6.2 33-2.5 18.8-10 39.9-10.1 40.1-.1.4-.5.7-.9.7-.1.1-94.9 1-94.9 1z" class="st4" fill="#fff"/><path d="M302.7 403.5c11 0 19 14 16 37-2.5 18.9-10 39.9-10 39.9l-94.8.9c-8.2-22.8-2.2-33.8 10.8-38.8 2.9-1.1 5.9-1.8 9-1.8 10.3 0 21 7.2 31 25.8 0 0 7-5 11-25s10-38 27-38m0-2c-18.5 0-24.8 19-29 39.6-2.6 12.9-6.4 19.3-8.6 22.1-9.3-16.2-19.9-24.4-31.5-24.4-3.2 0-6.4.6-9.7 1.9-7.5 2.9-12.4 7.6-14.5 14-2.4 7-1.5 16 2.6 27.4.3.8 1 1.3 1.9 1.3l94.8-.9c.8 0 1.6-.5 1.9-1.3.1-.2 7.6-21.3 10.1-40.3 1.9-14.6-.5-26.9-6.5-33.8-3.2-3.7-7.1-5.6-11.5-5.6z"/><path d="M282.8 480.7c7.3-7 11.4-16.5 13.5-23.5 2.1-6.9 6.8-29.2 7.8-36.6.4-3.1 1.9-10.4 6.8-10.4 1 0 2.7.5 3.9 1.1 4.2 6.7 5.4 17 3.7 29.7-2.3 17.4-8.9 36.7-9.9 39.4l-25.8.3zm-69.3.1c-7.1-20-3.6-32.6 10.6-38.1.5-.2.9-.3 1.3-.5-1.5 1.3-2.6 3.2-3.4 5.3-2.4 6.3-.9 15.2 4 24.3 2 3.6 4 6.6 6.1 8.9l-18.6.1z" class="st9" fill="#ebded8"/><path d="M264.8 465.8c-4 4-7 5-7 5" class="st10" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"/><path d="M525.7 476.5s20-65 22-72 15-17 44-15 44 12 45 21c.6 5.1-1 13-2 18s-12 48-12 48h-97z" class="st5" fill="#fccf84" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"/><path d="M550.8 475.7l18-59.1c2.3.6 13.2 3.2 27.4 3.2 5.1 0 10.1-.3 14.9-1 16.8-2.2 21.9-3.9 25.1-8.9v.3c.6 5.1-1 13.1-2 17.8-.9 4.7-10.8 43.3-11.9 47.6h-71.5v.1z" class="st7" fill="#b88671"/><path d="M548.9 401.8c-2.2 2.7 4.8 11.7 23.8 15.7s44 1 53-1 10.6-7.9 10.6-7.9m-49 11.1c-.6 10.8 3.4 14.8 7.4 14.8s8.5-6.6 8.3-15.1m-2.4 10.6c1.1 5.5 6.1 5.5 9.1 4.5s6-5 5-16m-.7 10.9c1.6 4.1 5.9 4.1 8.7 3.2 3-1 6-5 5-16" class="st10" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"/><path d="M364.5 264.6c1.4-18.7-12.6-35.1-31.3-36.5-.7-.1-1.5-.1-2.2-.1-5.2-11.8-16.5-20.4-30.2-21.4-9-.7-17.5 2-24.2 7-3.2-1.4-6.6-2.3-10.3-2.6-11.9-.9-22.8 5.1-28.7 14.6-25.3-2.1-53.4 5.5-59 30.9-6.1 27.6 5.1 42.5 25 49.4 18.5 6.5 41.1 8.4 52.7 8.8 13.2.4 41.2-1.7 62.2-8.5 13-4.2 24.7-10.8 26-11.3 14.6-8.7 18.8-14.4 20-30.3z" class="st11" fill="#e0b37d"/><path d="M364.5 264.6c1.4-18.7-12.6-35.1-31.3-36.5-.7-.1-1.5-.1-2.2-.1-5.2-11.8-16.5-20.4-30.2-21.4-9-.7-17.5 2-24.2 7-3.2-1.4-6.6-2.3-10.3-2.6-11.9-.9-22.8 5.1-28.7 14.6-25.3-2.1-53.4 5.5-59 30.9-6.1 27.6 5.1 42.5 25 49.4 18.5 6.5 41.1 8.4 52.7 8.8 13.2.4 41.2-1.7 62.2-8.5 13-4.2 24.7-10.8 26-11.3 14.6-8.7 18.8-14.4 20-30.3z" class="st11" fill="#e0b37d"/><path d="M355.3 266.5c-2.1-17.9-8.8-23.1-21.6-26.6.5 5.9-.4 9.5-.7 10.7-.6 2.4-1.6 4.2-3.1 4.2-1 0-1.9-.7-2.2-1.8-.2-.7-.4-1.6-.6-2.8-.4-2.1-1-5.3-2.5-10.3-3.6-12.7-15.3-18.4-25.3-18.4-3.7 0-7.5 1.1-10.4 2.5 12.1 15.4 3.5 31.3 1.6 34.5-3.1 5.3-8.9 6-9.1 6l-.8.1c-1.2.1-1.7-.6-.9-1.2.8-.6 1.9-1.6 2.3-2.9.9-4 1.5-11.4-1.7-21.6-3.2-10-14.4-17.3-26.6-17.3-5.5 0-11 1.5-15.7 4.4l-.1.1h-.2c-2.6-.2-5.3-.3-7.9-.3-27.4 0-46.3 11.5-50.5 30.8-5.5 24.8 2.8 41.9 24.7 49.5 20.8 7.3 45.4 8.4 52.5 8.6h3.4c15.5 0 40.5-3.2 58.7-9 10.6-3.4 20.5-8.5 24.2-10.4.9-.5 1.5-.8 1.6-.8 2.6-1.5 2.3-1.3 4.1-2.6 4.3-4.7 8-15.2 6.8-25.4z" class="st12" fill="#a6725c"/><path d="M288.7 261c3.5-4.6 5.7-10.2 6.1-16.3 1-13.4-6.7-26-18.3-31.1" class="st10" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"/><path d="M331.4 227.9c2.5 5.9 3.3 12.4 2.5 18.7 0 .1-.1.1-.1.1-.1 0-.1-.1-.1-.1.6-6.3-.5-12.6-3.2-18.3-.1-.3 0-.5.2-.7.3-.1.6 0 .7.3z"/><path d="M237.9 226.2c-4.1 7.2-3.8 14.9-5 20.8-.8 3.7-5.7 14.4-12.7 19.3" class="st10" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"/><path d="M367.7 358.5c0 16 18 30 40 30s37-8 58-34 58-50 88-53 48 5 48 5 7-15 19-11 10 16 8 20c0 0 7-5 14 2s6 26-18 31-35-2-35-2-37 4-58 43-42 72-101 88" class="st6" fill="#fccf84"/><path d="M368.2 358.5c.1 2.8.7 5.6 1.8 8.2.3.6.6 1.3 1 1.9l.5.9.6.9c.4.6.8 1.2 1.2 1.7l1.4 1.6c.4.6 1 1 1.5 1.5l1.5 1.5c1.1.9 2.1 1.8 3.4 2.6l1.8 1.2 1.9 1c1.2.7 2.5 1.3 3.8 1.9 5.2 2.3 10.9 3.4 16.5 3.7 5.7.2 11.4-.2 17-1.4 5.5-1.2 10.8-3.4 15.6-6.4 4.9-3 9.3-6.6 13.4-10.5 1-1 2.1-2 3.1-3l3-3.1c1.9-2.2 3.9-4.3 5.7-6.5 1.8-2.2 3.8-4.4 5.7-6.7.9-1.1 2-2.1 3-3.2s2-2.2 3.1-3.2c8.3-8.2 17.4-15.7 27.3-22 9.8-6.3 20.2-11.9 31.3-15.7 2.7-1 5.6-1.8 8.4-2.6 1.4-.4 2.9-.6 4.3-1l2.2-.5 2.2-.3c1.5-.2 2.9-.5 4.4-.6l4.4-.3c2.9-.1 5.8-.2 8.8-.2 5.8.1 11.7.5 17.5 1.5 2.9.5 5.8 1 8.6 1.8 2.8.7 5.6 1.6 8.4 2.7l-.7.2c1.9-3.7 4.4-7 7.9-9.5 1.7-1.2 3.7-2.1 5.8-2.4 2.1-.3 4.3 0 6.2.7 2 .7 3.8 1.7 5.4 3.1 1.6 1.4 2.7 3.3 3.4 5.2.7 2 .9 4.1.7 6.2-.1 2.1-.6 4.1-1.5 6.1l-.7-.6c1.8-1.1 3.8-1.7 5.9-1.8 2.1 0 4.2.5 5.9 1.6 1.8 1.1 3.3 2.5 4.4 4.2l.8 1.3.6 1.4c.2.5.3 1 .4 1.5.1.5.3 1 .3 1.5.6 4-.2 8.2-2.2 11.8-2 3.5-5.1 6.3-8.6 8.3-3.5 2-7.4 3.2-11.2 4.1-3.9.8-7.8 1.4-11.8 1.6-4 .2-8 .2-11.9-.3-2-.3-3.9-.6-5.9-1.2-1.9-.6-3.8-1.2-5.6-2.2l.3.1c-4.3.6-8.6 1.9-12.8 3.4-4.1 1.5-8.2 3.4-12 5.6-7.7 4.3-14.6 10-20.5 16.6-2.9 3.3-5.6 6.8-8 10.5-2.4 3.7-4.4 7.6-6.6 11.5-4.3 7.8-8.7 15.6-13.5 23.1-4.9 7.5-10.3 14.6-16.4 21.2l-2.3 2.4c-.8.8-1.5 1.6-2.4 2.4l-4.9 4.6c-3.5 2.9-6.9 5.8-10.6 8.3l-2.7 2c-.9.6-1.9 1.2-2.9 1.8-1.9 1.2-3.8 2.4-5.8 3.5-4 2.1-7.9 4.3-12.1 6l-3.1 1.4-1.5.7c-.5.2-1 .4-1.6.6l-6.3 2.3c-2.1.8-4.2 1.4-6.4 2.1l-6.4 2c-.5.1-1-.1-1.1-.6-.1-.5.1-1 .6-1.1l6.4-1.9c2.1-.7 4.3-1.2 6.3-2l6.2-2.3c.5-.2 1-.4 1.6-.6l1.5-.7 3-1.3c4.1-1.7 8-3.8 11.9-5.8 1.9-1.1 3.8-2.3 5.7-3.4.9-.6 1.9-1.1 2.8-1.8l2.7-1.9c3.7-2.5 7.1-5.3 10.5-8.1l4.9-4.5c.8-.7 1.6-1.6 2.3-2.4l2.3-2.4c6-6.5 11.4-13.6 16.3-21s9.3-15.1 13.6-22.9c2.1-3.9 4.2-7.9 6.7-11.6 2.5-3.7 5.2-7.3 8.2-10.6 6-6.6 13.1-12.3 20.9-16.7 3.9-2.2 8-4.1 12.2-5.6 4.2-1.5 8.5-2.8 13-3.4.1 0 .2 0 .3.1 1.6.9 3.5 1.6 5.4 2.1 1.9.5 3.8.9 5.7 1.1 3.9.5 7.8.6 11.7.3 7.8-.7 15.8-1.8 22.6-5.6 3.3-2 6.3-4.6 8.2-8 2-3.3 2.7-7.3 2.1-11.1 0-.5-.2-.9-.3-1.4-.1-.5-.2-.9-.4-1.4l-.5-1.3-.7-1.2c-1-1.6-2.5-2.9-4.1-3.9-1.6-1-3.5-1.5-5.4-1.5-1.9 0-3.8.6-5.3 1.6-.2.2-.5.1-.7-.2-.1-.1-.1-.3 0-.5.8-1.7 1.3-3.7 1.4-5.7.1-2-.1-4-.7-5.8-.6-1.8-1.7-3.5-3.1-4.8-1.5-1.3-3.2-2.2-5.1-2.9-.9-.3-1.9-.6-2.8-.7-1-.1-1.9-.1-2.9 0-1.9.3-3.7 1.1-5.4 2.2-3.2 2.3-5.7 5.6-7.5 9.1-.1.2-.4.4-.6.2-2.6-1.1-5.4-1.9-8.2-2.6-2.8-.7-5.6-1.3-8.5-1.7-5.7-.9-11.5-1.3-17.3-1.3-5.8 0-11.6.2-17.3 1.1l-2.1.3-2.1.5c-1.4.3-2.8.6-4.2 1-2.8.8-5.6 1.5-8.3 2.6-10.9 3.8-21.2 9.3-30.9 15.6-9.7 6.3-18.7 13.7-26.9 21.9-1.1 1-2 2.1-3 3.1-1 1.1-2 2.1-2.9 3.2-1.9 2.2-3.8 4.4-5.6 6.7-1.8 2.3-3.8 4.4-5.7 6.6l-3 3.2c-1 1.1-2.1 2.1-3.1 3.1-4.2 4-8.7 7.8-13.7 10.8-5 3.1-10.5 5.4-16.2 6.6-5.7 1.2-11.6 1.6-17.5 1.4-5.8-.3-11.7-1.6-17-4-1.3-.6-2.7-1.2-3.9-2l-1.9-1.1-1.8-1.3-.9-.6c-.3-.2-.6-.5-.9-.7l-1.7-1.4-1.6-1.6c-.5-.5-1-1-1.5-1.6l-1.4-1.7c-.4-.6-.8-1.2-1.2-1.9l-.6-.9-.5-1c-.3-.7-.7-1.3-1-2-1.1-2.8-1.7-5.7-1.8-8.7 0-.3.2-.5.5-.5-.4 0-.1.2-.1.5z"/><linearGradient gradientTransform="matrix(1 0 0 -1 0 1080)" y2="628.47382" x2="501.4595" y1="761.37598" x1="522.04169" gradientUnits="userSpaceOnUse" id="g"><stop offset="0" stop-color="#e5b77e"/><stop offset="1" stop-color="#b88671"/></linearGradient><path d="M408.5 480c-13.2-1.7-24.4-9.7-33.3-23.7 39.6-3.4 68.1-12.2 87.7-30.7 12.5-11.8 22.6-24 32.3-35.8 24.1-29.3 45-54.6 91.7-57.2 1.3 1.1 10.5 8.1 26 8.1 15.7 0 28-5 33.1-13.5v.8c0 .3 0 .6-.1 1v.2c0 .3-.1.5-.1.8l-.1.3c0 .3-.1.6-.2.9v.1c-.1.4-.2.7-.3 1l-.1.2c-.1.3-.2.6-.3.8l-.1.3c-.1.3-.3.7-.4 1l-.1.1c-.2.4-.3.6-.5.9l-.2.3c-.2.3-.3.6-.5.8l-.1.2c-.2.3-.4.6-.7 1l-.1.2c-.2.3-.4.6-.6.8l-.2.3-.9.9-.1.1-.8.8-.3.3c-.3.2-.6.5-.9.7l-.2.2c-.4.3-.7.6-1.1.8l-.3.2c-.3.2-.6.4-1 .6l-.4.2c-.4.3-.9.5-1.4.7l-.1.1c-.4.2-.9.4-1.4.6l-.4.2c-.4.2-.8.3-1.3.5l-.3.1c-.5.2-1.1.4-1.7.6l-.4.1c-.5.1-.9.3-1.4.4l-.5.1c-.6.2-1.3.3-1.9.5-5.7 1.2-11.1 1.8-16.2 1.8-12.4 0-18.4-3.7-18.4-3.7l-.1-.1h-.2c-.4 0-37.5 4.5-58.4 43.3-.6 1.1-1.2 2.2-1.7 3.2l-2.4 4.3c-.6 1.1-1.2 2.1-1.8 3.2l-.1.1c-.6 1.1-1.2 2-1.7 3l-.6 1c-.4.7-1.9 3.2-1.9 3.2-.6 1-1.1 1.9-1.7 2.9l-.4.6c-.5.9-1.1 1.7-1.6 2.6l-.7 1.1c-.4.7-.9 1.3-1.3 2l-.7 1.1c-.6.9-1.2 1.8-1.8 2.6l-.5.8c-.5.8-1.1 1.5-1.6 2.3-.2.3-.8 1.1-.8 1.1-.4.6-.9 1.2-1.3 1.8l-.8 1.1c-.6.8-1.2 1.6-1.9 2.4l-.7.9c-.5.7-1.1 1.4-1.7 2-.3.3-.9 1.1-.9 1.1-.5.6-1 1.1-1.4 1.7 0 0-.7.8-.9 1.1-.7.7-1.4 1.5-2 2.2l-.9.9-1.8 1.8-.9.9-.2.2c-.5.5-1 1-1.6 1.5l-.1.1c-.3.3-.6.6-1 .9-.8.7-1.5 1.4-2.3 2.1-.3.3-.6.5-.9.8l-.2.2c-.6.5-1.3 1.1-1.9 1.6-.4.3-.8.6-1.2 1-.6.5-1.2.9-1.8 1.4l-.2.2c-.3.3-.6.5-1 .7-.9.7-1.8 1.3-2.7 2-.3.2-.5.4-.8.5l-.4.3c-.7.5-1.4 1-2.2 1.5-.4.3-.8.5-1.2.8-.7.4-1.3.9-2 1.3l-.3.2c-.4.2-.7.5-1.1.7-1.1.6-2.1 1.3-3.2 1.9-11.1 6.3-23.5 11.2-37.8 15.1-.1.1-4.5 2.1-11.1 3h-11v-.2z" fill="url(#g)"/><path d="M570 334.7c4.9-.8 6.4-3.3 9.2-3.8 3.2-.6 5.4 0 7.7 1.8 2.3 1.7 2.2 4.4 2.2 4.4l-7 2.8-12.1-5.2z" class="st11" fill="#e0b37d"/><path d="M236.6 421c-.6 7.7-9.4 8.9-21.8 8.9s-20.8-.8-21.4-8.5c-.6-7.7 8-11.2 21.4-11.2 13.3-.1 22.4 3.1 21.8 10.8z" class="st12" fill="#a6725c"/><path d="M590.4 423.3c-.5 2.8 3.2 3.7 5.6 3.7 2.4 0 3.9-1.3 4-3 .2-1.7-1.2-2.7-3.6-2.7-2.4 0-5.6-.3-6 2zm18.7-2.3c-1.4.1-3.2.1-4.4.6 0 1.4-.1 2.8-.4 4.2 1.2.9 3.2 1.1 4.7 1 2.4-.1 3.8-1.5 3.8-3.3.1-1.8-1.3-2.7-3.7-2.5zm12.8-1.3c-1.4.2-3.1.3-4.3.8.1 1.4 0 2.8-.2 4.2 1.3.8 3.3.9 4.8.7 2.4-.3 3.7-1.8 3.6-3.5-.1-1.7-1.5-2.5-3.9-2.2z" class="st6" fill="#fccf84"/><path d="M269.2 314.5c6.5-1 13-1.5 19.5-2.4 6.5-.9 12.9-2 19.2-3.5 6.3-1.5 12.6-3.4 18.6-5.9 3-1.2 6-2.5 8.9-3.9 1.5-.7 2.9-1.4 4.4-2.2 1.5-.7 2.8-1.5 4.4-2.2h-.1c3.3-2 6.6-4.1 9.6-6.6 1.5-1.2 2.8-2.6 4.1-4.1 1.2-1.5 2.2-3.1 3-4.8 1.6-3.5 2.3-7.3 2.8-11.2.5-3.9.5-7.7-.1-11.5-.7-3.8-2-7.5-3.9-10.8-1.9-3.3-4.4-6.3-7.4-8.8-5.9-5-13.5-7.9-21.2-8h-.3l-.1-.3c-2.2-4.8-5.4-9.2-9.4-12.7-2-1.7-4.2-3.2-6.6-4.5-2.3-1.2-4.8-2.2-7.4-2.9-5.1-1.4-10.6-1.6-15.8-.6-5.2 1-10.2 3.2-14.5 6.4l-.2.2-.3-.1c-3.3-1.5-6.9-2.4-10.6-2.6-3.6-.2-7.3.2-10.8 1.3-1.8.5-3.4 1.3-5.1 2.1-1.6.9-3.2 1.8-4.6 3-2.9 2.2-5.3 5-7.3 8.1l-.2.3h-.3c-11.1-.9-22.5 0-33 3.7-5.2 1.9-10.2 4.5-14.4 8.1-4.2 3.6-7.5 8.3-9.4 13.4-1 2.6-1.6 5.3-2.1 8l-.4 2.1-.3 2.1c-.2 1.4-.4 2.8-.4 4.2-.3 5.5.2 11.2 2.1 16.4.9 2.6 2.3 5 3.8 7.4.4.6.9 1.1 1.3 1.6s.8 1.1 1.4 1.6c1 1 1.9 2 3 2.9 4.2 3.6 9.2 6.2 14.4 8.4-5.4-1.6-10.6-4.1-15-7.7-1.1-.9-2.1-1.9-3.1-2.9-.5-.5-.9-1.1-1.4-1.6-.4-.6-.9-1.1-1.3-1.7-1.6-2.4-3-4.8-3.9-7.6-2-5.4-2.6-11.1-2.3-16.8 0-1.4.2-2.8.4-4.2l.2-2.1.4-2.1c.5-2.8 1.1-5.6 2.1-8.2 2-5.3 5.4-10.1 9.7-13.9 4.3-3.8 9.4-6.5 14.7-8.4 10.7-3.8 22.3-4.6 33.5-3.6l-.5.2c2-3.2 4.5-6.1 7.5-8.3 1.5-1.2 3.1-2.1 4.7-3.1 1.7-.8 3.4-1.6 5.2-2.1 3.6-1.2 7.4-1.5 11.2-1.3 3.8.2 7.5 1.1 10.9 2.6l-.5.1c4.4-3.2 9.5-5.5 14.9-6.5s11-.9 16.2.6c2.6.7 5.2 1.7 7.6 3 2.4 1.3 4.7 2.8 6.8 4.6 4.2 3.5 7.4 8.1 9.7 13l-.5-.3c8 0 15.9 3 22 8.1 3 2.6 5.7 5.6 7.7 9.1s3.4 7.3 4.1 11.2c.7 3.9.7 8 .2 11.9-.5 3.9-1.2 7.9-2.9 11.6-.8 1.8-1.9 3.5-3.2 5.1-1.3 1.5-2.7 3-4.2 4.2-3 2.6-6.4 4.7-9.8 6.7h-.1c-1.4.7-2.9 1.5-4.3 2.2-1.5.7-2.9 1.5-4.4 2.2-3 1.4-6 2.7-9 3.9-6.1 2.5-12.4 4.4-18.8 5.9s-12.9 2.6-19.4 3.5c-6.3.5-12.9 1.2-19.4 1zm341.8-5.8c2.4.4 4.8.9 7.1 1.7 2.3.7 4.6 1.8 6.7 2.9 2.2 1.1 4.2 2.5 6.1 4.1 1.9 1.5 3.7 3.3 5.1 5.2v.2h-.1c-1.9-1.6-3.7-3.2-5.6-4.6-1.9-1.5-4-2.7-6-3.9-2.1-1.2-4.3-2.2-6.5-3-2.2-.9-4.5-1.6-6.9-2.3-.1 0-.1-.1-.1-.1l.2-.2z"/></g></g><g transform="translate(-184 -205.1)"><defs><path id="h" d="M184 151h494.79999v321H184z"/></defs><clipPath id="i"><use height="100%" width="100%" xlink:href="#h" overflow="visible"/></clipPath><g clip-path="url(#i)"><path d="M270.6 223.8c1-.7 2.1-1.3 3.2-1.7 1.1-.4 2.3-.8 3.5-1 1.2-.2 2.4-.4 3.6-.4 1.2 0 2.4 0 3.6.2-2.4.3-4.7.6-7.1 1.1-1.2.2-2.3.5-3.5.8-1 .3-2.1.7-3.3 1z" class="st15" fill="#fce79c"/></g></g><g transform="translate(-184 -205.1)"><defs><path id="j" d="M184 151h494.79999v321H184z"/></defs><clipPath id="k"><use height="100%" width="100%" xlink:href="#j" overflow="visible"/></clipPath><g clip-path="url(#k)"><path d="M317 225.4c1.7-.9 3.6-1.4 5.5-1.4 1 0 1.9.1 2.8.3.9.2 1.8.5 2.6 1.1-1.9-.2-3.7-.3-5.5-.3-.9 0-1.8 0-2.7.1l-2.7.2z" class="st15" fill="#fce79c"/></g></g></svg> \ No newline at end of file diff --git a/app/javascript/images/mailer/icon_cached.png b/app/javascript/images/mailer/icon_cached.png new file mode 100644 index 000000000..e62c064c8 --- /dev/null +++ b/app/javascript/images/mailer/icon_cached.png Binary files differdiff --git a/app/javascript/images/mailer/icon_done.png b/app/javascript/images/mailer/icon_done.png new file mode 100644 index 000000000..0d2ef0cb8 --- /dev/null +++ b/app/javascript/images/mailer/icon_done.png Binary files differdiff --git a/app/javascript/images/mailer/icon_email.png b/app/javascript/images/mailer/icon_email.png new file mode 100644 index 000000000..aae9d2bb9 --- /dev/null +++ b/app/javascript/images/mailer/icon_email.png Binary files differdiff --git a/app/javascript/images/mailer/icon_grade.png b/app/javascript/images/mailer/icon_grade.png new file mode 100644 index 000000000..895b57d0a --- /dev/null +++ b/app/javascript/images/mailer/icon_grade.png Binary files differdiff --git a/app/javascript/images/mailer/icon_lock_open.png b/app/javascript/images/mailer/icon_lock_open.png new file mode 100644 index 000000000..9f62eadc2 --- /dev/null +++ b/app/javascript/images/mailer/icon_lock_open.png Binary files differdiff --git a/app/javascript/images/mailer/icon_person_add.png b/app/javascript/images/mailer/icon_person_add.png new file mode 100644 index 000000000..3453060ae --- /dev/null +++ b/app/javascript/images/mailer/icon_person_add.png Binary files differdiff --git a/app/javascript/images/mailer/icon_reply.png b/app/javascript/images/mailer/icon_reply.png new file mode 100644 index 000000000..8bce4955c --- /dev/null +++ b/app/javascript/images/mailer/icon_reply.png Binary files differdiff --git a/app/javascript/images/mailer/logo_full.png b/app/javascript/images/mailer/logo_full.png new file mode 100644 index 000000000..1c4f33287 --- /dev/null +++ b/app/javascript/images/mailer/logo_full.png Binary files differdiff --git a/app/javascript/images/mailer/logo_transparent.png b/app/javascript/images/mailer/logo_transparent.png new file mode 100644 index 000000000..8fda4f67f --- /dev/null +++ b/app/javascript/images/mailer/logo_transparent.png Binary files differdiff --git a/app/javascript/mastodon/actions/onboarding.js b/app/javascript/mastodon/actions/onboarding.js new file mode 100644 index 000000000..a161c50ef --- /dev/null +++ b/app/javascript/mastodon/actions/onboarding.js @@ -0,0 +1,14 @@ +import { openModal } from './modal'; +import { changeSetting, saveSettings } from './settings'; + +export function showOnboardingOnce() { + return (dispatch, getState) => { + const alreadySeen = getState().getIn(['settings', 'onboarded']); + + if (!alreadySeen) { + dispatch(openModal('ONBOARDING')); + dispatch(changeSetting(['onboarded'], true)); + dispatch(saveSettings()); + } + }; +}; diff --git a/app/javascript/mastodon/containers/mastodon.js b/app/javascript/mastodon/containers/mastodon.js index 8ae3b727a..d1710445b 100644 --- a/app/javascript/mastodon/containers/mastodon.js +++ b/app/javascript/mastodon/containers/mastodon.js @@ -2,6 +2,7 @@ import React from 'react'; import { Provider } from 'react-redux'; import PropTypes from 'prop-types'; import configureStore from '../store/configureStore'; +import { showOnboardingOnce } from '../actions/onboarding'; import { BrowserRouter, Route } from 'react-router-dom'; import { ScrollContext } from 'react-router-scroll-4'; import UI from '../features/ui'; @@ -39,6 +40,8 @@ export default class Mastodon extends React.PureComponent { const handlerUrl = window.location.protocol + '//' + window.location.host + '/intent?uri=%s'; window.setTimeout(() => navigator.registerProtocolHandler('web+mastodon', handlerUrl, 'Mastodon'), 5 * 60 * 1000); } + + store.dispatch(showOnboardingOnce()); } componentWillUnmount () { diff --git a/app/javascript/mastodon/features/ui/components/modal_root.js b/app/javascript/mastodon/features/ui/components/modal_root.js index dbfb46ee7..5839ba40a 100644 --- a/app/javascript/mastodon/features/ui/components/modal_root.js +++ b/app/javascript/mastodon/features/ui/components/modal_root.js @@ -9,6 +9,7 @@ import VideoModal from './video_modal'; import BoostModal from './boost_modal'; import ConfirmationModal from './confirmation_modal'; import { + OnboardingModal, MuteModal, ReportModal, EmbedModal, @@ -17,6 +18,7 @@ import { const MODAL_COMPONENTS = { 'MEDIA': () => Promise.resolve({ default: MediaModal }), + 'ONBOARDING': OnboardingModal, 'VIDEO': () => Promise.resolve({ default: VideoModal }), 'BOOST': () => Promise.resolve({ default: BoostModal }), 'CONFIRM': () => Promise.resolve({ default: ConfirmationModal }), diff --git a/app/javascript/mastodon/features/ui/components/onboarding_modal.js b/app/javascript/mastodon/features/ui/components/onboarding_modal.js new file mode 100644 index 000000000..9b713cf9e --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/onboarding_modal.js @@ -0,0 +1,324 @@ +import React from 'react'; +import { connect } from 'react-redux'; +import PropTypes from 'prop-types'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import ReactSwipeableViews from 'react-swipeable-views'; +import classNames from 'classnames'; +import Permalink from '../../../components/permalink'; +import ComposeForm from '../../compose/components/compose_form'; +import Search from '../../compose/components/search'; +import NavigationBar from '../../compose/components/navigation_bar'; +import ColumnHeader from './column_header'; +import { List as ImmutableList } from 'immutable'; +import { me } from '../../../initial_state'; + +const noop = () => { }; + +const messages = defineMessages({ + home_title: { id: 'column.home', defaultMessage: 'Home' }, + notifications_title: { id: 'column.notifications', defaultMessage: 'Notifications' }, + local_title: { id: 'column.community', defaultMessage: 'Local timeline' }, + federated_title: { id: 'column.public', defaultMessage: 'Federated timeline' }, +}); + +const PageOne = ({ acct, domain }) => ( + <div className='onboarding-modal__page onboarding-modal__page-one'> + <div className='onboarding-modal__page-one__lead'> + <h1><FormattedMessage id='onboarding.page_one.welcome' defaultMessage='Welcome to Mastodon!' /></h1> + <p><FormattedMessage id='onboarding.page_one.federation' defaultMessage='Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.' /></p> + </div> + + <div className='onboarding-modal__page-one__extra'> + <div className='display-case'> + <div className='display-case__label'> + <FormattedMessage id='onboarding.page_one.full_handle' defaultMessage='Your full handle' /> + </div> + + <div className='display-case__case'> + @{acct}@{domain} + </div> + </div> + + <p><FormattedMessage id='onboarding.page_one.handle_hint' defaultMessage='This is what you would tell your friends to search for.' /></p> + </div> + </div> +); + +PageOne.propTypes = { + acct: PropTypes.string.isRequired, + domain: PropTypes.string.isRequired, +}; + +const PageTwo = ({ myAccount }) => ( + <div className='onboarding-modal__page onboarding-modal__page-two'> + <div className='figure non-interactive'> + <div className='pseudo-drawer'> + <NavigationBar account={myAccount} /> + + <ComposeForm + text='Awoo! #introductions' + suggestions={ImmutableList()} + mentionedDomains={[]} + spoiler={false} + onChange={noop} + onSubmit={noop} + onPaste={noop} + onPickEmoji={noop} + onChangeSpoilerText={noop} + onClearSuggestions={noop} + onFetchSuggestions={noop} + onSuggestionSelected={noop} + showSearch + /> + </div> + </div> + + <p><FormattedMessage id='onboarding.page_two.compose' defaultMessage='Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.' /></p> + </div> +); + +PageTwo.propTypes = { + myAccount: ImmutablePropTypes.map.isRequired, +}; + +const PageThree = ({ myAccount }) => ( + <div className='onboarding-modal__page onboarding-modal__page-three'> + <div className='figure non-interactive'> + <Search + value='' + onChange={noop} + onSubmit={noop} + onClear={noop} + onShow={noop} + /> + + <div className='pseudo-drawer'> + <NavigationBar account={myAccount} /> + </div> + </div> + + <p><FormattedMessage id='onboarding.page_three.search' defaultMessage='Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.' values={{ illustration: <Permalink to='/timelines/tag/illustration' href='/tags/illustration'>#illustration</Permalink>, introductions: <Permalink to='/timelines/tag/introductions' href='/tags/introductions'>#introductions</Permalink> }} /></p> + <p><FormattedMessage id='onboarding.page_three.profile' defaultMessage='Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.' /></p> + </div> +); + +PageThree.propTypes = { + myAccount: ImmutablePropTypes.map.isRequired, +}; + +const PageFour = ({ domain, intl }) => ( + <div className='onboarding-modal__page onboarding-modal__page-four'> + <div className='onboarding-modal__page-four__columns'> + <div className='row'> + <div> + <div className='figure non-interactive'><ColumnHeader icon='home' type={intl.formatMessage(messages.home_title)} /></div> + <p><FormattedMessage id='onboarding.page_four.home' defaultMessage='The home timeline shows posts from people you follow.' /></p> + </div> + + <div> + <div className='figure non-interactive'><ColumnHeader icon='bell' type={intl.formatMessage(messages.notifications_title)} /></div> + <p><FormattedMessage id='onboarding.page_four.notifications' defaultMessage='The notifications column shows when someone interacts with you.' /></p> + </div> + </div> + + <div className='row'> + <div> + <div className='figure non-interactive' style={{ marginBottom: 0 }}><ColumnHeader icon='users' type={intl.formatMessage(messages.local_title)} /></div> + </div> + + <div> + <div className='figure non-interactive' style={{ marginBottom: 0 }}><ColumnHeader icon='globe' type={intl.formatMessage(messages.federated_title)} /></div> + </div> + </div> + + <p><FormattedMessage id='onboarding.page_five.public_timelines' defaultMessage='The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.' values={{ domain }} /></p> + </div> + </div> +); + +PageFour.propTypes = { + domain: PropTypes.string.isRequired, + intl: PropTypes.object.isRequired, +}; + +const PageSix = ({ admin, domain }) => { + let adminSection = ''; + + if (admin) { + adminSection = ( + <p> + <FormattedMessage id='onboarding.page_six.admin' defaultMessage="Your instance's admin is {admin}." values={{ admin: <Permalink href={admin.get('url')} to={`/accounts/${admin.get('id')}`}>@{admin.get('acct')}</Permalink> }} /> + <br /> + <FormattedMessage id='onboarding.page_six.read_guidelines' defaultMessage="Please read {domain}'s {guidelines}!" values={{ domain, guidelines: <a href='/about/more' target='_blank'><FormattedMessage id='onboarding.page_six.guidelines' defaultMessage='community guidelines' /></a> }} /> + </p> + ); + } + + return ( + <div className='onboarding-modal__page onboarding-modal__page-six'> + <h1><FormattedMessage id='onboarding.page_six.almost_done' defaultMessage='Almost done...' /></h1> + {adminSection} + <p><FormattedMessage id='onboarding.page_six.github' defaultMessage='Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.' values={{ github: <a href='https://github.com/tootsuite/mastodon' target='_blank' rel='noopener'>GitHub</a> }} /></p> + <p><FormattedMessage id='onboarding.page_six.apps_available' defaultMessage='There are {apps} available for iOS, Android and other platforms.' values={{ apps: <a href='https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md' target='_blank' rel='noopener'><FormattedMessage id='onboarding.page_six.various_app' defaultMessage='mobile apps' /></a> }} /></p> + <p><em><FormattedMessage id='onboarding.page_six.appetoot' defaultMessage='Bon Appetoot!' /></em></p> + </div> + ); +}; + +PageSix.propTypes = { + admin: ImmutablePropTypes.map, + domain: PropTypes.string.isRequired, +}; + +const mapStateToProps = state => ({ + myAccount: state.getIn(['accounts', me]), + admin: state.getIn(['accounts', state.getIn(['meta', 'admin'])]), + domain: state.getIn(['meta', 'domain']), +}); + +@connect(mapStateToProps) +@injectIntl +export default class OnboardingModal extends React.PureComponent { + + static propTypes = { + onClose: PropTypes.func.isRequired, + intl: PropTypes.object.isRequired, + myAccount: ImmutablePropTypes.map.isRequired, + domain: PropTypes.string.isRequired, + admin: ImmutablePropTypes.map, + }; + + state = { + currentIndex: 0, + }; + + componentWillMount() { + const { myAccount, admin, domain, intl } = this.props; + this.pages = [ + <PageOne acct={myAccount.get('acct')} domain={domain} />, + <PageTwo myAccount={myAccount} />, + <PageThree myAccount={myAccount} />, + <PageFour domain={domain} intl={intl} />, + <PageSix admin={admin} domain={domain} />, + ]; + }; + + componentDidMount() { + window.addEventListener('keyup', this.handleKeyUp); + } + + componentWillUnmount() { + window.addEventListener('keyup', this.handleKeyUp); + } + + handleSkip = (e) => { + e.preventDefault(); + this.props.onClose(); + } + + handleDot = (e) => { + const i = Number(e.currentTarget.getAttribute('data-index')); + e.preventDefault(); + this.setState({ currentIndex: i }); + } + + handlePrev = () => { + this.setState(({ currentIndex }) => ({ + currentIndex: Math.max(0, currentIndex - 1), + })); + } + + handleNext = () => { + const { pages } = this; + this.setState(({ currentIndex }) => ({ + currentIndex: Math.min(currentIndex + 1, pages.length - 1), + })); + } + + handleSwipe = (index) => { + this.setState({ currentIndex: index }); + } + + handleKeyUp = ({ key }) => { + switch (key) { + case 'ArrowLeft': + this.handlePrev(); + break; + case 'ArrowRight': + this.handleNext(); + break; + } + } + + handleClose = () => { + this.props.onClose(); + } + + render () { + const { pages } = this; + const { currentIndex } = this.state; + const hasMore = currentIndex < pages.length - 1; + + const nextOrDoneBtn = hasMore ? ( + <button onClick={this.handleNext} className='onboarding-modal__nav onboarding-modal__next shake-bottom'> + <FormattedMessage id='onboarding.next' defaultMessage='Next' /> <i className='fa fa-fw fa-chevron-right' /> + </button> + ) : ( + <button onClick={this.handleClose} className='onboarding-modal__nav onboarding-modal__done shake-bottom'> + <FormattedMessage id='onboarding.done' defaultMessage='Done' /> <i className='fa fa-fw fa-check' /> + </button> + ); + + return ( + <div className='modal-root__modal onboarding-modal'> + <ReactSwipeableViews index={currentIndex} onChangeIndex={this.handleSwipe} className='onboarding-modal__pager'> + {pages.map((page, i) => { + const className = classNames('onboarding-modal__page__wrapper', `onboarding-modal__page__wrapper-${i}`, { + 'onboarding-modal__page__wrapper--active': i === currentIndex, + }); + + return ( + <div key={i} className={className}>{page}</div> + ); + })} + </ReactSwipeableViews> + + <div className='onboarding-modal__paginator'> + <div> + <button + onClick={this.handleSkip} + className='onboarding-modal__nav onboarding-modal__skip' + > + <FormattedMessage id='onboarding.skip' defaultMessage='Skip' /> + </button> + </div> + + <div className='onboarding-modal__dots'> + {pages.map((_, i) => { + const className = classNames('onboarding-modal__dot', { + active: i === currentIndex, + }); + + return ( + <div + key={`dot-${i}`} + role='button' + tabIndex='0' + data-index={i} + onClick={this.handleDot} + className={className} + /> + ); + })} + </div> + + <div> + {nextOrDoneBtn} + </div> + </div> + </div> + ); + } + +} diff --git a/app/javascript/mastodon/features/ui/util/async-components.js b/app/javascript/mastodon/features/ui/util/async-components.js index a03c4cefd..d6586680b 100644 --- a/app/javascript/mastodon/features/ui/util/async-components.js +++ b/app/javascript/mastodon/features/ui/util/async-components.js @@ -94,6 +94,10 @@ export function Mutes () { return import(/* webpackChunkName: "features/mutes" */'../../mutes'); } +export function OnboardingModal () { + return import(/* webpackChunkName: "modals/onboarding_modal" */'../components/onboarding_modal'); +} + export function MuteModal () { return import(/* webpackChunkName: "modals/mute_modal" */'../components/mute_modal'); } diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index b1dbaa698..ac25a57a2 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -181,7 +181,8 @@ "onboarding.page_four.home": "The home timeline shows posts from people you follow.", "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", "onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.", - "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Welcome to Mastodon!", "onboarding.page_six.admin": "Your instance's admin is {admin}.", "onboarding.page_six.almost_done": "Almost done...", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index b6435a260..a02211b8a 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -139,6 +139,7 @@ "loading_indicator.label": "加载中……", "media_gallery.toggle_visible": "切换显示/隐藏", "missing_indicator.label": "找不到内容", + "missing_indicator.sublabel": "无法找到此资源", "mute_modal.hide_notifications": "同时隐藏来自这个用户的通知", "navigation_bar.blocks": "被屏蔽的用户", "navigation_bar.community_timeline": "本站时间轴", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "你的“主页”时间轴上显示的是你的关注对象所发布的嘟文。", "onboarding.page_four.notifications": "如果有人与你互动了,他们就会出现在“通知”栏中哦~", "onboarding.page_one.federation": "Mastodon 是由一系列独立的服务器共同打造的强大的社交网络,我们将这些各自独立而又相互连接的服务器叫做“实例”。", - "onboarding.page_one.handle": "你是在 {domain} 上注册的,所以你的完整用户地址是 {handle}。", + "onboarding.page_one.full_handle": "你的完整用户地址", + "onboarding.page_one.handle_hint": "你的朋友们需要这个才能通过搜索功能找到你。", "onboarding.page_one.welcome": "欢迎来到 Mastodon!", "onboarding.page_six.admin": "{admin} 是你所在服务器实例的管理员。", "onboarding.page_six.almost_done": "差不多了……", @@ -197,6 +199,8 @@ "privacy.public.short": "公开", "privacy.unlisted.long": "所有人可见,但不会出现在公共时间轴上", "privacy.unlisted.short": "不公开", + "regeneration_indicator.label": "加载中……", + "regeneration_indicator.sublabel": "你的主页时间轴正在准备中!", "relative_time.days": "{number}天", "relative_time.hours": "{number}时", "relative_time.just_now": "刚刚", diff --git a/app/javascript/styles/mailer.scss b/app/javascript/styles/mailer.scss index b3bcc9209..dbe070f9a 100644 --- a/app/javascript/styles/mailer.scss +++ b/app/javascript/styles/mailer.scss @@ -17,7 +17,7 @@ body { -ms-text-size-adjust: 100%; } -.email_body { +.email-body { td, div, a, @@ -235,6 +235,12 @@ h5 { color: lighten($ui-base-color, 34%); } +.input-cell { + h5 { + margin-top: 4px; + } +} + .input { td { background: darken($ui-base-color, 8%); @@ -512,3 +518,29 @@ ul { min-height: 1024px !important; } } + +@media (max-width: 697px) { + .email-container, + .col-1, + .col-2, + .col-3, + .col-4, + .col-5, + .col-6 { + width: 100% !important; + max-width: none !important; + } + + .email-start { + padding-top: 16px !important; + } + + .email-end { + padding-bottom: 16px !important; + } + + .padded { + padding-left: 0 !important; + padding-right: 0 !important; + } +} diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 89d4b2eba..9e858e9ca 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1419,6 +1419,10 @@ color: $primary-text-color; } + a { + color: inherit; + } + .permalink { text-decoration: none; } @@ -2760,6 +2764,7 @@ flex: 1 1 auto; align-items: center; justify-content: center; + @supports(display: grid) { // hack to fix Chrome <57 contain: strict; } @@ -2805,11 +2810,48 @@ } } -.pulse-loading { +.no-reduce-motion .pulse-loading { transform-origin: center center; animation: heartbeat 1.5s ease-in-out infinite both; } +@keyframes shake-bottom { + 0%, + 100% { + transform: rotate(0deg); + transform-origin: 50% 100%; + } + + 10% { + transform: rotate(2deg); + } + + 20%, + 40%, + 60% { + transform: rotate(-4deg); + } + + 30%, + 50%, + 70% { + transform: rotate(4deg); + } + + 80% { + transform: rotate(-2deg); + } + + 90% { + transform: rotate(2deg); + } +} + +.no-reduce-motion .shake-bottom { + transform-origin: 50% 100%; + animation: shake-bottom 0.8s cubic-bezier(0.455, 0.030, 0.515, 0.955) 2s 2 both; +} + .emoji-picker-dropdown__menu { background: $simple-background-color; position: absolute; @@ -3300,6 +3342,7 @@ z-index: 100; } +.onboarding-modal, .error-modal, .embed-modal { background: $ui-secondary-color; @@ -3310,6 +3353,25 @@ flex-direction: column; } +.onboarding-modal__pager { + height: 80vh; + width: 80vw; + max-width: 520px; + max-height: 470px; + + .react-swipeable-view-container > div { + width: 100%; + height: 100%; + box-sizing: border-box; + display: none; + flex-direction: column; + align-items: center; + justify-content: center; + display: flex; + user-select: text; + } +} + .error-modal__body { height: 80vh; width: 80vw; @@ -3343,6 +3405,23 @@ text-align: center; } +@media screen and (max-width: 550px) { + .onboarding-modal { + width: 100%; + height: 100%; + border-radius: 0; + } + + .onboarding-modal__pager { + width: 100%; + height: auto; + max-width: none; + max-height: none; + flex: 1 1 auto; + } +} + +.onboarding-modal__paginator, .error-modal__footer { flex: 0 0 auto; background: darken($ui-secondary-color, 8%); @@ -3353,20 +3432,35 @@ min-width: 33px; } + .onboarding-modal__nav, .error-modal__nav { color: darken($ui-secondary-color, 34%); - background-color: transparent; border: 0; font-size: 14px; font-weight: 500; - padding: 0; + padding: 10px 25px; line-height: inherit; height: auto; + margin: -10px; + border-radius: 4px; + background-color: transparent; &:hover, &:focus, &:active { color: darken($ui-secondary-color, 38%); + background-color: darken($ui-secondary-color, 16%); + } + + &.onboarding-modal__done, + &.onboarding-modal__next { + color: $ui-base-color; + + &:hover, + &:focus, + &:active { + color: darken($ui-base-color, 4%); + } } } } @@ -3375,6 +3469,239 @@ justify-content: center; } +.onboarding-modal__dots { + flex: 1 1 auto; + display: flex; + align-items: center; + justify-content: center; +} + +.onboarding-modal__dot { + width: 14px; + height: 14px; + border-radius: 14px; + background: darken($ui-secondary-color, 16%); + margin: 0 3px; + cursor: pointer; + + &:hover { + background: darken($ui-secondary-color, 18%); + } + + &.active { + cursor: default; + background: darken($ui-secondary-color, 24%); + } +} + +.onboarding-modal__page__wrapper { + pointer-events: none; + padding: 25px; + padding-bottom: 0; + + &.onboarding-modal__page__wrapper--active { + pointer-events: auto; + } +} + +.onboarding-modal__page { + cursor: default; + line-height: 21px; + + h1 { + font-size: 18px; + font-weight: 500; + color: $ui-base-color; + margin-bottom: 20px; + } + + a { + color: $ui-highlight-color; + + &:hover, + &:focus, + &:active { + color: lighten($ui-highlight-color, 4%); + } + } + + .navigation-bar a { + color: inherit; + } + + p { + font-size: 16px; + color: lighten($ui-base-color, 8%); + margin-top: 10px; + margin-bottom: 10px; + + &:last-child { + margin-bottom: 0; + } + + strong { + font-weight: 500; + background: $ui-base-color; + color: $ui-secondary-color; + border-radius: 4px; + font-size: 14px; + padding: 3px 6px; + + @each $lang in $cjk-langs { + &:lang(#{$lang}) { + font-weight: 700; + } + } + } + } +} + +.onboarding-modal__page__wrapper-0 { + background: url('../images/elephant_ui_greeting.svg') no-repeat left bottom / auto 250px; + height: 100%; + padding: 0; +} + +.onboarding-modal__page-one { + &__lead { + padding: 65px; + padding-top: 45px; + padding-bottom: 0; + margin-bottom: 10px; + + h1 { + font-size: 26px; + line-height: 36px; + margin-bottom: 8px; + } + + p { + margin-bottom: 0; + } + } + + &__extra { + padding-right: 65px; + padding-left: 185px; + text-align: center; + } +} + +.display-case { + text-align: center; + font-size: 15px; + margin-bottom: 15px; + + &__label { + font-weight: 500; + color: $ui-base-color; + margin-bottom: 5px; + text-transform: uppercase; + font-size: 12px; + } + + &__case { + background: $ui-base-color; + color: $ui-secondary-color; + font-weight: 500; + padding: 10px; + border-radius: 4px; + } +} + +.onboarding-modal__page-two, +.onboarding-modal__page-three, +.onboarding-modal__page-four, +.onboarding-modal__page-five { + p { + text-align: left; + } + + .figure { + background: darken($ui-base-color, 8%); + color: $ui-secondary-color; + margin-bottom: 20px; + border-radius: 4px; + padding: 10px; + text-align: center; + font-size: 14px; + box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3); + + .onboarding-modal__image { + border-radius: 4px; + margin-bottom: 10px; + } + + &.non-interactive { + pointer-events: none; + text-align: left; + } + } +} + +.onboarding-modal__page-four__columns { + .row { + display: flex; + margin-bottom: 20px; + + & > div { + flex: 1 1 0; + margin: 0 10px; + + &:first-child { + margin-left: 0; + } + + &:last-child { + margin-right: 0; + } + + p { + text-align: center; + } + } + + &:last-child { + margin-bottom: 0; + } + } + + .column-header { + color: $primary-text-color; + } +} + +@media screen and (max-width: 320px) and (max-height: 600px) { + .onboarding-modal__page p { + font-size: 14px; + line-height: 20px; + } + + .onboarding-modal__page-two .figure, + .onboarding-modal__page-three .figure, + .onboarding-modal__page-four .figure, + .onboarding-modal__page-five .figure { + font-size: 12px; + margin-bottom: 10px; + } + + .onboarding-modal__page-four__columns .row { + margin-bottom: 10px; + } + + .onboarding-modal__page-four__columns .column-header { + padding: 5px; + font-size: 12px; + } +} + +.onboard-sliders { + display: inline-block; + max-width: 30px; + max-height: auto; + margin-left: 10px; +} + <<<<<<< HEAD .onboarding-modal__dots { flex: 1 1 auto; diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml index 85029ec76..ad15754d5 100644 --- a/app/views/layouts/mailer.html.haml +++ b/app/views/layouts/mailer.html.haml @@ -24,7 +24,7 @@ %tr %td.column-cell = link_to root_url do - = image_tag full_pack_url('logo_full.svg'), alt: 'Mastodon', height: 34, class: 'logo' + = image_tag full_pack_url('logo_full.png'), alt: 'Mastodon', height: 34, class: 'logo' = yield @@ -41,15 +41,12 @@ %tr %td.blank-cell.footer .email-row - .col-4 + .col-6 %table.column{ cellspacing: 0, cellpadding: 0 } %tbody %td.column-cell %p= t 'about.hosted_on', domain: site_hostname %p= link_to t('application_mailer.notification_preferences'), settings_notifications_url - .col-2 - %table.column{ cellspacing: 0, cellpadding: 0 } - %tbody %td.column-cell.text-right = link_to root_url do - = image_tag full_pack_url('logo_transparent.svg'), alt: 'Mastodon', height: 24 + = image_tag full_pack_url('logo_transparent.png'), alt: 'Mastodon', height: 24 diff --git a/app/views/notification_mailer/favourite.html.haml b/app/views/notification_mailer/favourite.html.haml index f26b08b18..7d1b494d0 100644 --- a/app/views/notification_mailer/favourite.html.haml +++ b/app/views/notification_mailer/favourite.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('icon_grade.svg'), alt:'' + = image_tag full_pack_url('icon_grade.png'), alt:'' %h1= t 'notification_mailer.favourite.title' %p.lead= t('notification_mailer.favourite.body', name: @account.acct) diff --git a/app/views/notification_mailer/follow.html.haml b/app/views/notification_mailer/follow.html.haml index 1290e2bc4..31a2b7445 100644 --- a/app/views/notification_mailer/follow.html.haml +++ b/app/views/notification_mailer/follow.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('icon_person_add.svg'), alt: '' + = image_tag full_pack_url('icon_person_add.png'), alt: '' %h1= t 'notification_mailer.follow.title' %p.lead= t('notification_mailer.follow.body', name: @account.acct) diff --git a/app/views/notification_mailer/follow_request.html.haml b/app/views/notification_mailer/follow_request.html.haml index 41efeafaf..44f1911c4 100644 --- a/app/views/notification_mailer/follow_request.html.haml +++ b/app/views/notification_mailer/follow_request.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('icon_person_add.svg'), alt: '' + = image_tag full_pack_url('icon_person_add.png'), alt: '' %h1= t 'notification_mailer.follow_request.title' %p.lead= t('notification_mailer.follow_request.body', name: @account.acct) diff --git a/app/views/notification_mailer/mention.html.haml b/app/views/notification_mailer/mention.html.haml index 619c580ce..479fed41c 100644 --- a/app/views/notification_mailer/mention.html.haml +++ b/app/views/notification_mailer/mention.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('icon_reply.svg'), alt: '' + = image_tag full_pack_url('icon_reply.png'), alt: '' %h1= t 'notification_mailer.mention.title' %p.lead= t('notification_mailer.mention.body', name: @status.account.acct) diff --git a/app/views/notification_mailer/reblog.html.haml b/app/views/notification_mailer/reblog.html.haml index 61c6ee6be..85b202cf9 100644 --- a/app/views/notification_mailer/reblog.html.haml +++ b/app/views/notification_mailer/reblog.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('icon_cached.svg'), alt: '' + = image_tag full_pack_url('icon_cached.png'), alt: '' %h1= t 'notification_mailer.reblog.title' %p.lead= t('notification_mailer.reblog.body', name: @account.acct) diff --git a/app/views/user_mailer/confirmation_instructions.ar.text.erb b/app/views/user_mailer/confirmation_instructions.ar.text.erb deleted file mode 100644 index 087c6a9ae..000000000 --- a/app/views/user_mailer/confirmation_instructions.ar.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -مرحبا <%= @resource.email %> ! - -لقد قمت بإنشاء حساب على <%= @instance %>. - -لتأكيد التسجيل يرجى النقر على الرابط التالي : -<%= confirmation_url(@resource, confirmation_token: @token) %> - -يرجى الإطلاع على شروط الإستخدام <%= terms_url %> - -مع أجمل التحيات، - -فريق <%= @instance %> diff --git a/app/views/user_mailer/confirmation_instructions.ca.text.erb b/app/views/user_mailer/confirmation_instructions.ca.text.erb deleted file mode 100644 index 77cc589e6..000000000 --- a/app/views/user_mailer/confirmation_instructions.ca.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Benvingut <%= @resource.email %> ! - -Acabes de crear un compte a <%= @instance %>. - -Per confirmar la subscripció, si us plua fes clic en el següent vincle : -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Si us plau també fes un cop d'ull als nostres termes i condicions <%= terms_url %> - -Sincerament, - -L'equip <%= @instance %> diff --git a/app/views/user_mailer/confirmation_instructions.en.text.erb b/app/views/user_mailer/confirmation_instructions.en.text.erb deleted file mode 100644 index 0419adef0..000000000 --- a/app/views/user_mailer/confirmation_instructions.en.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Welcome <%= @resource.email %> ! - -You just created an account on <%= @instance %>. - -To confirm your inscription, please click on the following link : -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Please also check out our terms and conditions <%= terms_url %> - -Sincerely, - -The <%= @instance %> team \ No newline at end of file diff --git a/app/views/user_mailer/confirmation_instructions.es.text.erb b/app/views/user_mailer/confirmation_instructions.es.text.erb deleted file mode 100644 index e9d83b3f8..000000000 --- a/app/views/user_mailer/confirmation_instructions.es.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -¡Bienvenido, <%= @resource.email %>! - -Acabas de crear una cuenta en <%= @instance %>. - -Para confirmar tu registro, por favor ingresa al siguiente enlace: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Por favor, también revisa nuestros términos y condiciones <%= terms_url %> - -Sinceramente, - -El equipo de <%= @instance %> \ No newline at end of file diff --git a/app/views/user_mailer/confirmation_instructions.fa.text.erb b/app/views/user_mailer/confirmation_instructions.fa.text.erb deleted file mode 100644 index 76727b3be..000000000 --- a/app/views/user_mailer/confirmation_instructions.fa.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -خوش آمدید <%= @resource.email %> ! - -شما الان در <%= @instance %> حساب باز کردید. - -برای تأیید عضویت، لطفاً روی پیوند زیر کلیک کنید: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -لطفاً همچنین شرایط و مقررات استفادهٔ ما را هم بخوانید <%= terms_url %> - -با احترام، - -گردانندگان سرور <%= @instance %> \ No newline at end of file diff --git a/app/views/user_mailer/confirmation_instructions.fi.text.erb b/app/views/user_mailer/confirmation_instructions.fi.text.erb deleted file mode 100644 index 796913abb..000000000 --- a/app/views/user_mailer/confirmation_instructions.fi.text.erb +++ /dev/null @@ -1,5 +0,0 @@ -Tervetuloa <%= @resource.email %>! - -Voit vahvistaa Mastodon tilisi klikkaamalla alla olevaa linkkiä: - -<%= confirmation_url(@resource, confirmation_token: @token) %> diff --git a/app/views/user_mailer/confirmation_instructions.fr.text.erb b/app/views/user_mailer/confirmation_instructions.fr.text.erb deleted file mode 100644 index 7730715f8..000000000 --- a/app/views/user_mailer/confirmation_instructions.fr.text.erb +++ /dev/null @@ -1,14 +0,0 @@ -Bonjour <%= @resource.email %> ! - -Vous venez de vous créer un compte sur <%= @instance %> et nous vous en remercions. - -Pour confirmer votre inscription, merci de cliquer sur le lien suivant : -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Après votre première connexion, vous pourrez accéder à la documentation de l’outil. - -Pour rappel, nos conditions d’utilisation sont indiquées ici <%= terms_url %> - -Amicalement, - -L’équipe <%= @instance %> diff --git a/app/views/user_mailer/confirmation_instructions.he.text.erb b/app/views/user_mailer/confirmation_instructions.he.text.erb deleted file mode 100644 index 8e37fc641..000000000 --- a/app/views/user_mailer/confirmation_instructions.he.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -שלום <%= @resource.email %> ! - -הרגע יצרת חשבון בקהילה <%= @instance %>. - -כדי לוודא את הרשמתך, יש ללחוץ על הקישורית הבאה : -<%= confirmation_url(@resource, confirmation_token: @token) %> - -יש לעבור גם על תנאי השימוש <%= terms_url %> - -בתודה מראש, - -צוות ניהול <%= @instance %> \ No newline at end of file diff --git a/app/views/user_mailer/confirmation_instructions.html.haml b/app/views/user_mailer/confirmation_instructions.html.haml index 0f999bcbc..1f088a16f 100644 --- a/app/views/user_mailer/confirmation_instructions.html.haml +++ b/app/views/user_mailer/confirmation_instructions.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('icon_email.svg'), alt: '' + = image_tag full_pack_url('icon_email.png'), alt: '' %h1= t 'devise.mailer.confirmation_instructions.title' diff --git a/app/views/user_mailer/confirmation_instructions.id.text.erb b/app/views/user_mailer/confirmation_instructions.id.text.erb deleted file mode 100644 index 0486c3c5c..000000000 --- a/app/views/user_mailer/confirmation_instructions.id.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Selamat datang <%= @resource.email %> ! - -Anda baru saja membuat akun di <%= @instance %>. - -Untuk mengkonfirmasi, silakan klik link berikut ini : -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Silakan cek <%= terms_url %> kami - -Hormat kami, - -Tim <%= @instance %> diff --git a/app/views/user_mailer/confirmation_instructions.it.text.erb b/app/views/user_mailer/confirmation_instructions.it.text.erb deleted file mode 100644 index ce9411173..000000000 --- a/app/views/user_mailer/confirmation_instructions.it.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Benvenuto <%= @resource.email %> ! - -Hai appena creato un account su <%= @instance %>. - -er confermare la tua iscrizione, fai clic sul seguente link : -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Per piacere leggi anche i nostri termini e condizioni <%= terms_url %> - -Sinceramente, - -Il team <%= @instance %> \ No newline at end of file diff --git a/app/views/user_mailer/confirmation_instructions.ja.text.erb b/app/views/user_mailer/confirmation_instructions.ja.text.erb deleted file mode 100644 index 99868ba8a..000000000 --- a/app/views/user_mailer/confirmation_instructions.ja.text.erb +++ /dev/null @@ -1,11 +0,0 @@ -ようこそ<%= @resource.email %>さん - -<%= @instance %>にアカウントが作成されました。 - -以下のリンクをクリックしてMastodonアカウントのメールアドレスを確認してください。 - -<%= confirmation_url(@resource, confirmation_token: @token) %> - -また、インスタンスの<%= link_to '利用規約', terms_url %>についてもご確認ください。 - -<%= @instance %> チーム diff --git a/app/views/user_mailer/confirmation_instructions.ko.text.erb b/app/views/user_mailer/confirmation_instructions.ko.text.erb deleted file mode 100644 index c46400f07..000000000 --- a/app/views/user_mailer/confirmation_instructions.ko.text.erb +++ /dev/null @@ -1,10 +0,0 @@ -안녕하세요 <%= @resource.email %> 님! - -<%= @instance %>에 새로 계정을 만들었습니다. - -아래 링크를 눌러 회원가입을 완료 하세요. -<%= confirmation_url(@resource, confirmation_token: @token) %> - -약관도 확인 바랍니다. <%= terms_url %> - -<%= @instance %> 드림 diff --git a/app/views/user_mailer/confirmation_instructions.nl.text.erb b/app/views/user_mailer/confirmation_instructions.nl.text.erb deleted file mode 100644 index 3c14896b3..000000000 --- a/app/views/user_mailer/confirmation_instructions.nl.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Welkom <%= @resource.email %> ! - -Je hebt zojuist een account aangemaakt op <%= @instance %>. - -Klik op de volgende link om jouw registratie te bevestigen : -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Lees ook onze gebruikersvoorwaarden op <%= terms_url %> - -Vriendelijke groet, - -De beheerder(s) van <%= @instance %> diff --git a/app/views/user_mailer/confirmation_instructions.no.text.erb b/app/views/user_mailer/confirmation_instructions.no.text.erb deleted file mode 100644 index 3739c99d4..000000000 --- a/app/views/user_mailer/confirmation_instructions.no.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Velkommen <%= @resource.email %> ! - -Du har akkurat opprettet en konto på <%= @instance %>. - -For å bekrefte innskriving i manntallet vennligst trykk på følgende lenke : -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Vennligst også les våre brukervilkår <%= terms_url %> - -Med vennlig hilsen, - -Gjengen bak <%= @instance %> diff --git a/app/views/user_mailer/confirmation_instructions.oc.text.erb b/app/views/user_mailer/confirmation_instructions.oc.text.erb deleted file mode 100644 index fe04fe3d0..000000000 --- a/app/views/user_mailer/confirmation_instructions.oc.text.erb +++ /dev/null @@ -1,14 +0,0 @@ -Bonjorn <%= @resource.email %> ! - -Venètz de vos crear un compte sus <%= @instance %> e vos mercegem :) - -er confirmar vòstra inscripcion, mercés de clicar sul ligam seguent : -<%= link_to 'Confirmar mon compte', confirmation_url(@resource, confirmation_token: @token) %> - -Aprèp vòstra primièra connexion, poiretz accedir a la documentacion de l’aisina. - -Pensatz tanben de gaitar nòstres <%= link_to 'tèrmes e condicions d\'utilizacion', terms_url %>. - -Amistosament, - -La còla <%= @instance %> diff --git a/app/views/user_mailer/confirmation_instructions.pl.text.erb b/app/views/user_mailer/confirmation_instructions.pl.text.erb deleted file mode 100644 index f20082e16..000000000 --- a/app/views/user_mailer/confirmation_instructions.pl.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Witaj, <%= @resource.email %>! - -Właśnie utworzyłeś konto na instancji <%= @instance %>. - -Aby aktywować konto, odwiedź poniższy link: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Pamiętaj przeczytać nasz regulamin i zasady użytkowania: <%= terms_url %> - -Z pozdrowieniami, - -Zespół <%= @instance %> diff --git a/app/views/user_mailer/confirmation_instructions.pt-BR.text.erb b/app/views/user_mailer/confirmation_instructions.pt-BR.text.erb deleted file mode 100644 index 578f7acb5..000000000 --- a/app/views/user_mailer/confirmation_instructions.pt-BR.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Boas vindas, <%= @resource.email %>! - -Você acabou de criar uma conta na instância <%= @instance %>. - -Para confirmar o seu cadastro, por favor clique no link a seguir: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Por favor, leia também os nossos termos e condições de uso <%= terms_url %> - -Atenciosamente, - -A equipe da instância <%= @instance %> diff --git a/app/views/user_mailer/confirmation_instructions.ru.text.erb b/app/views/user_mailer/confirmation_instructions.ru.text.erb deleted file mode 100644 index 884f75401..000000000 --- a/app/views/user_mailer/confirmation_instructions.ru.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Добро пожаловать, <%= @resource.email %> ! - -Вы только что завели аккаунт на <%= @instance %>. - -Чтобы подтвердить создание аккаунта, пожалуйста, перейдите по этой ссылке: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Также просим Вас прочитать об условиях использования аккаунта здесь: <%= terms_url %> - -Искренне Ваши, - -Команда <%= @instance %> diff --git a/app/views/user_mailer/confirmation_instructions.sr-Latn.text.erb b/app/views/user_mailer/confirmation_instructions.sr-Latn.text.erb deleted file mode 100644 index 60fe9db0d..000000000 --- a/app/views/user_mailer/confirmation_instructions.sr-Latn.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Dobrodošao <%= @resource.email %> ! - -Upravo ste napravili nalog na instanci <%= @instance %>. - -Da potvrdite Vašu registraciju, molimo Vas kliknite na sledeći link: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Takođe pogledajte i pravila i uslove korišćenja <%= terms_url %> - -S poštovanjem, - -<%= @instance %> tim diff --git a/app/views/user_mailer/confirmation_instructions.sr.text.erb b/app/views/user_mailer/confirmation_instructions.sr.text.erb deleted file mode 100644 index e7cb7e188..000000000 --- a/app/views/user_mailer/confirmation_instructions.sr.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Добродошао <%= @resource.email %> ! - -Управо сте направили налог на инстанци <%= @instance %>. - -Да потврдите Вашу регистрацију, молимо Вас кликните на следећи линк: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Такође погледајте и правила и услове коришћења <%= terms_url %> - -С поштовањем, - -<%= @instance %> тим diff --git a/app/views/user_mailer/confirmation_instructions.sv.text.erb b/app/views/user_mailer/confirmation_instructions.sv.text.erb deleted file mode 100644 index 64ffb9799..000000000 --- a/app/views/user_mailer/confirmation_instructions.sv.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Välkommen <%= @resource.email %> ! - -Du har precis skapat ett konto på <%= @instance %>. - -För att bekräfta din inskrift, vänligen klicka på följande länk : -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Vänligen läs även våra användarvillkor <%= terms_url %> - -Vänliga hälsningar, - -Teamet på <%= @instance %> diff --git a/app/views/user_mailer/confirmation_instructions.text.erb b/app/views/user_mailer/confirmation_instructions.text.erb new file mode 100644 index 000000000..e01eecb27 --- /dev/null +++ b/app/views/user_mailer/confirmation_instructions.text.erb @@ -0,0 +1,12 @@ +<%= t 'devise.mailer.confirmation_instructions.title' %> + +=== + +<%= t 'devise.mailer.confirmation_instructions.explanation', host: site_hostname %> + +=> <%= confirmation_url(@resource, confirmation_token: @token) %> + +<%= strip_tags(t('devise.mailer.confirmation_instructions.extra_html', terms_path: about_more_url, policy_path: terms_url)) %> + +=> <%= about_more_url %> +=> <%= terms_url %> diff --git a/app/views/user_mailer/confirmation_instructions.tr.text.erb b/app/views/user_mailer/confirmation_instructions.tr.text.erb deleted file mode 100644 index 01b1c69e2..000000000 --- a/app/views/user_mailer/confirmation_instructions.tr.text.erb +++ /dev/null @@ -1,13 +0,0 @@ -Aramıza hoşgeldin <%= @resource.email %> - -Bu sunucumuzda yeni bir hesap oluşturduğunu görüyoruz: <%= @instance %>. - -Siz olduğunuzu teyit edebilmemiz için lütfen aşağıdaki linke tıklayınız: - -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Ayrıca kullanım şartları ve koşulları sayfamızı inceleyebilirsin <%= terms_url %> - -En içten dileklerimizle, - -<%= @instance %> ekibi diff --git a/app/views/user_mailer/confirmation_instructions.zh-cn.text.erb b/app/views/user_mailer/confirmation_instructions.zh-cn.text.erb deleted file mode 100644 index 25d901f16..000000000 --- a/app/views/user_mailer/confirmation_instructions.zh-cn.text.erb +++ /dev/null @@ -1,10 +0,0 @@ -<%= @resource.email %>,你好呀! - -你刚刚在 <%= @instance %> 创建了一个帐户呢。 - -点击下面的链接来完成注册啦: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -记得读一读我们的使用条款哦:<%= terms_url %> - -来自 <%= @instance %> 管理团队 \ No newline at end of file diff --git a/app/views/user_mailer/email_changed.en.text.erb b/app/views/user_mailer/email_changed.en.text.erb deleted file mode 100644 index 971972461..000000000 --- a/app/views/user_mailer/email_changed.en.text.erb +++ /dev/null @@ -1,13 +0,0 @@ -Hello <%= @resource.email %>! - -<% if @resource&.unconfirmed_email? %> -We're contacting you to notify you that the email you use on <%= @instance %> is being changed to <%= @resource.unconfirmed_email %>. -<% else %> -We're contacting you to notify you that the email you use on <%= @instance %> has been changed to <%= @resource.email %>. -<% end %> - -If you did not change your email, it is likely that someone has gained access to your account. Please change your password immediately or contact the instance admin if you're locked out of your account. - -Sincerely, - -The <%= @instance %> team diff --git a/app/views/user_mailer/email_changed.html.haml b/app/views/user_mailer/email_changed.html.haml index 45dc06650..7e82f23e4 100644 --- a/app/views/user_mailer/email_changed.html.haml +++ b/app/views/user_mailer/email_changed.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('icon_email.svg'), alt: '' + = image_tag full_pack_url('icon_email.png'), alt: '' %h1= t 'devise.mailer.email_changed.title' %p.lead= t 'devise.mailer.email_changed.explanation' diff --git a/app/views/user_mailer/email_changed.ja.text.erb b/app/views/user_mailer/email_changed.ja.text.erb deleted file mode 100644 index 33ee6d10b..000000000 --- a/app/views/user_mailer/email_changed.ja.text.erb +++ /dev/null @@ -1,11 +0,0 @@ -Hello <%= @resource.email %>! - -<% if @resource&.unconfirmed_email? %> -<%= @instance %>で使っているメールアドレスが<%= @resource.unconfirmed_email %>に変更されようとしています。 -<% else %> -<%= @instance %>で使っているメールアドレスが<%= @resource.email %>に変更されました。 -<% end %> - -メールアドレスを変更した覚えがない場合、誰かがあなたのアカウントにアクセスしたおそれがあります。すぐにパスワードを変更するか、アカウントにアクセスできない場合はインスタンスの管理者に連絡してください。 - -<%= @instance %>チームより diff --git a/app/views/user_mailer/email_changed.oc.text.erb b/app/views/user_mailer/email_changed.oc.text.erb deleted file mode 100644 index 2305ef834..000000000 --- a/app/views/user_mailer/email_changed.oc.text.erb +++ /dev/null @@ -1,13 +0,0 @@ -Bonjorn <%= @resource.email %> ! - -<% if @resource&.unconfirmed_email? %> -Vos contactem per vos senhalar que l’adreça qu’utilizatz per <%= @instance %> es cambiada per aquesta d’aquí <%= @resource.unconfirmed_email %>. -<% else %> -Vos contactem per vos senhalar que l’adreça qu’utilizatz per <%= @instance %> es cambiada per aquesta d’aquí <%= @resource.email %>. -<% end %> - -S’avètz pas demandat aqueste cambiament d’adreça, poiriá arribar que qualqu’un mai aguèsse agut accès a vòstre compte. Mercés de cambiar sulpic vòstre senhal o de contactar vòstre administrator d’instància se l’accès a vòstre compte vos es barrat. - -Amistosament, - -La còla <%= @instance %> diff --git a/app/views/user_mailer/email_changed.pl.text.erb b/app/views/user_mailer/email_changed.pl.text.erb deleted file mode 100644 index 134a79e95..000000000 --- a/app/views/user_mailer/email_changed.pl.text.erb +++ /dev/null @@ -1,13 +0,0 @@ -Witaj, <%= @resource.email %>! - -<% if @resource&.unconfirmed_email? %> -Informujemy, że e-mail używany przez Ciebie na <%= @instance %> został zmieniony na <%= @resource.unconfirmed_email %>. -<% else %> -Informujemy, że e-mail używany przez Ciebie na <%= @instance %> został zmieniony na <%= @resource.email %>. -<% end %> - -Jeżeli to nie Ty, prawdopodobnie ktoś uzyskał dostęp do Twojego konta. Zalecana jest natychmiastowa zmiana hasła lub skontaktowanie się z administratorem, jeżeli nie masz dostępu do swojego konta. - -Z pozdrowieniami, - -Zespół <%= @instance %> diff --git a/app/views/user_mailer/email_changed.text.erb b/app/views/user_mailer/email_changed.text.erb new file mode 100644 index 000000000..2b58415f5 --- /dev/null +++ b/app/views/user_mailer/email_changed.text.erb @@ -0,0 +1,9 @@ +<%= t 'devise.mailer.email_changed.title' %> + +=== + +<%= t 'devise.mailer.email_changed.explanation' %> + +<%= @resource.unconfirmed_email %> + +<%= t 'devise.mailer.email_changed.extra' %> diff --git a/app/views/user_mailer/email_changed.zh-cn.text.erb b/app/views/user_mailer/email_changed.zh-cn.text.erb deleted file mode 100644 index d59ac58c4..000000000 --- a/app/views/user_mailer/email_changed.zh-cn.text.erb +++ /dev/null @@ -1,11 +0,0 @@ -<%= @resource.email %>,你好呀! - -<% if @resource&.unconfirmed_email? %> -我们发送这封邮件是为了提醒你,你在 <%= @instance %> 上使用的电子邮件地址即将变更为 <%= @resource.unconfirmed_email %>。 -<% else %> -我们发送这封邮件是为了提醒你,你在 <%= @instance %> 上使用的电子邮件地址已经变更为 <%= @resource.unconfirmed_email %>。 -<% end %> - -如果你并没有请求更改你的电子邮件地址,则他人很有可能已经入侵你的帐户。请立即更改你的密码;如果你已经无法访问你的帐户,请联系实例的管理员请求协助。 - -来自 <%= @instance %> 管理团队 diff --git a/app/views/user_mailer/password_change.ar.text.erb b/app/views/user_mailer/password_change.ar.text.erb deleted file mode 100644 index ae0161f31..000000000 --- a/app/views/user_mailer/password_change.ar.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -صباح الخير <%= @resource.email %> ! - -نود أن نخبرك أنه قد تم تعديل كلمة مرور ماستدون الخاصة بك بنجاح. diff --git a/app/views/user_mailer/password_change.ca.text.erb b/app/views/user_mailer/password_change.ca.text.erb deleted file mode 100644 index c2fdfc82c..000000000 --- a/app/views/user_mailer/password_change.ca.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Hola <%= @resource.email %>! - -Aquest correu es per a notificar-te que la teva contrasenya a mastodont.cat ha canviat. diff --git a/app/views/user_mailer/password_change.en.text.erb b/app/views/user_mailer/password_change.en.text.erb deleted file mode 100644 index 3ae461c97..000000000 --- a/app/views/user_mailer/password_change.en.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Hello <%= @resource.email %>! - -We're contacting you to notify you that your password on <%= @instance %> has been changed. diff --git a/app/views/user_mailer/password_change.es.text.erb b/app/views/user_mailer/password_change.es.text.erb deleted file mode 100644 index 192faf9ad..000000000 --- a/app/views/user_mailer/password_change.es.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -¡Hola, <%= @resource.email %>! - -Te contactamos para notificarte que tu contraseña en <%= @instance %> ha sido modificada. \ No newline at end of file diff --git a/app/views/user_mailer/password_change.fa.text.erb b/app/views/user_mailer/password_change.fa.text.erb deleted file mode 100644 index 0c2995958..000000000 --- a/app/views/user_mailer/password_change.fa.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -سلام <%= @resource.email %>! - -این پیغام برای این است که به شما بگوییم رمز شما در ماستدون تغییر کرده است. diff --git a/app/views/user_mailer/password_change.fi.text.erb b/app/views/user_mailer/password_change.fi.text.erb deleted file mode 100644 index d90c3fdeb..000000000 --- a/app/views/user_mailer/password_change.fi.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Hei <%= @resource.email %>! - -Lähetämme tämän viestin ilmoittaaksemme että salasanasi on vaihdettu. diff --git a/app/views/user_mailer/password_change.fr.text.erb b/app/views/user_mailer/password_change.fr.text.erb deleted file mode 100644 index f068f1cd6..000000000 --- a/app/views/user_mailer/password_change.fr.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Bonjour <%= @resource.email %> ! - -Nous vous contactons pour vous informer que votre mot de passe sur Mastodon a bien été modifié. diff --git a/app/views/user_mailer/password_change.he.text.erb b/app/views/user_mailer/password_change.he.text.erb deleted file mode 100644 index 1f601c6b2..000000000 --- a/app/views/user_mailer/password_change.he.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -שלום <%= @resource.email %>! - -רצינו להודיע לך שסיסמתך במסטודון אצלנו הוחלפה. diff --git a/app/views/user_mailer/password_change.html.haml b/app/views/user_mailer/password_change.html.haml index 2e9377dff..26314a217 100644 --- a/app/views/user_mailer/password_change.html.haml +++ b/app/views/user_mailer/password_change.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('icon_lock_open.svg'), alt: '' + = image_tag full_pack_url('icon_lock_open.png'), alt: '' %h1= t 'devise.mailer.password_change.title' %p.lead= t 'devise.mailer.password_change.explanation' diff --git a/app/views/user_mailer/password_change.id.text.erb b/app/views/user_mailer/password_change.id.text.erb deleted file mode 100644 index 1a67fd407..000000000 --- a/app/views/user_mailer/password_change.id.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Hai <%= @resource.email %>! - -Kami menghubungi anda untuk memberitahu bahwa kata sandi anda di Mastodon telah diubah. diff --git a/app/views/user_mailer/password_change.it.text.erb b/app/views/user_mailer/password_change.it.text.erb deleted file mode 100644 index ea187670e..000000000 --- a/app/views/user_mailer/password_change.it.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Ciao <%= @resource.email %>! - -Ti stiamo contattando per avvisarti che la tua password su Mastodon è stata cambiata. diff --git a/app/views/user_mailer/password_change.ja.text.erb b/app/views/user_mailer/password_change.ja.text.erb deleted file mode 100644 index aa29b9b2b..000000000 --- a/app/views/user_mailer/password_change.ja.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -こんにちは<%= @resource.email %>さん - -Mastodonアカウントのパスワードが変更されました。 diff --git a/app/views/user_mailer/password_change.nl.text.erb b/app/views/user_mailer/password_change.nl.text.erb deleted file mode 100644 index 33accd99c..000000000 --- a/app/views/user_mailer/password_change.nl.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Hallo <%= @resource.email %>! - -Hierbij laten we jou weten dat jouw wachtwoord op Mastodon is veranderd. diff --git a/app/views/user_mailer/password_change.no.text.erb b/app/views/user_mailer/password_change.no.text.erb deleted file mode 100644 index 1707976c1..000000000 --- a/app/views/user_mailer/password_change.no.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Hei <%= @resource.email %>! - -Ditt Mastodon-passord har blitt endret. diff --git a/app/views/user_mailer/password_change.oc.text.erb b/app/views/user_mailer/password_change.oc.text.erb deleted file mode 100644 index 9fe9116d9..000000000 --- a/app/views/user_mailer/password_change.oc.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Bonjorn <%= @resource.email %> ! - -Vos contactem per vos avisar qu’avèm ben cambiat vòstre senhal Mastodon. diff --git a/app/views/user_mailer/password_change.pl.text.erb b/app/views/user_mailer/password_change.pl.text.erb deleted file mode 100644 index bd2efee0f..000000000 --- a/app/views/user_mailer/password_change.pl.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Witaj, <%= @resource.email %>! - -Informujemy, że ostatnio zmieniono Twoje hasło na <%= @instance %>. diff --git a/app/views/user_mailer/password_change.pt-BR.text.erb b/app/views/user_mailer/password_change.pt-BR.text.erb deleted file mode 100644 index eb7368ba9..000000000 --- a/app/views/user_mailer/password_change.pt-BR.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Olá, <%= @resource.email %>! - -Estamos te contatando para te notificar que a sua senha na instância <%= @instance %> foi modificada. diff --git a/app/views/user_mailer/password_change.ru.text.erb b/app/views/user_mailer/password_change.ru.text.erb deleted file mode 100644 index 6a3556dae..000000000 --- a/app/views/user_mailer/password_change.ru.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Здравствуйте, <%= @resource.email %>! - -Мы пишем, чтобы оповестить Вас о смене пароля на Вашем аккаунте Mastodon. diff --git a/app/views/user_mailer/password_change.sr-Latn.text.erb b/app/views/user_mailer/password_change.sr-Latn.text.erb deleted file mode 100644 index 6e0666d8d..000000000 --- a/app/views/user_mailer/password_change.sr-Latn.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Zdravo <%= @resource.email %>! - -Želimo samo da Vas obavestimo da je Vaša lozinka na Mastodont instanci <%= @instance %> promenjena. diff --git a/app/views/user_mailer/password_change.sr.text.erb b/app/views/user_mailer/password_change.sr.text.erb deleted file mode 100644 index 9082201c0..000000000 --- a/app/views/user_mailer/password_change.sr.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Здраво <%= @resource.email %>! - -Желимо само да Вас обавестимо да је Ваша лозинка на Мастодонт инстанци <%= @instance %> промењена. diff --git a/app/views/user_mailer/password_change.sv.text.erb b/app/views/user_mailer/password_change.sv.text.erb deleted file mode 100644 index b6df73226..000000000 --- a/app/views/user_mailer/password_change.sv.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -Hej <%= @resource.email %>! - -Vi kontaktar dig för att meddela dig att ditt lösenord på <%= @instance %> har blivit ändrat. diff --git a/app/views/user_mailer/password_change.text.erb b/app/views/user_mailer/password_change.text.erb new file mode 100644 index 000000000..77a37894e --- /dev/null +++ b/app/views/user_mailer/password_change.text.erb @@ -0,0 +1,7 @@ +<%= t 'devise.mailer.password_change.title' %> + +=== + +<%= t 'devise.mailer.password_change.explanation' %> + +<%= t 'devise.mailer.password_change.extra' %> diff --git a/app/views/user_mailer/password_change.th.text.erb b/app/views/user_mailer/password_change.th.text.erb deleted file mode 100644 index 0d28a207c..000000000 --- a/app/views/user_mailer/password_change.th.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -สวัสดี <%= @resource.email %>! - -เราติดต่อมาเพื่อแจ้งให้คุณทราบว่า พาสเวิร์ดของคุณถูกเปลี่ยนแล้ว diff --git a/app/views/user_mailer/password_change.tr.text.erb b/app/views/user_mailer/password_change.tr.text.erb deleted file mode 100644 index 873c5f962..000000000 --- a/app/views/user_mailer/password_change.tr.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Merhaba <%= @resource.email %>! - -<%= @instance %>'deki parolanızın değiştirildiğini hatırlatmak isteriz. - -En içten dileklerimizle, - -<%= @instance %> ekibi - diff --git a/app/views/user_mailer/password_change.zh-cn.text.erb b/app/views/user_mailer/password_change.zh-cn.text.erb deleted file mode 100644 index dbc065173..000000000 --- a/app/views/user_mailer/password_change.zh-cn.text.erb +++ /dev/null @@ -1,3 +0,0 @@ -<%= @resource.email %>,你好呀! - -提醒一下,你在 <%= @instance %> 上的密码被更改了哦。 diff --git a/app/views/user_mailer/reconfirmation_instructions.en.text.erb b/app/views/user_mailer/reconfirmation_instructions.en.text.erb deleted file mode 100644 index c1c735b3a..000000000 --- a/app/views/user_mailer/reconfirmation_instructions.en.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Hello <%= @resource.unconfirmed_email %>! - -You requested a change to the email address you use on <%= @instance %>. - -To confirm your new email, please click on the following link: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Please also check out our terms and conditions <%= terms_url %> - -Sincerely, - -The <%= @instance %> team diff --git a/app/views/user_mailer/reconfirmation_instructions.html.haml b/app/views/user_mailer/reconfirmation_instructions.html.haml index 3ae226093..e3be8e295 100644 --- a/app/views/user_mailer/reconfirmation_instructions.html.haml +++ b/app/views/user_mailer/reconfirmation_instructions.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('icon_email.svg'), alt: '' + = image_tag full_pack_url('icon_email.png'), alt: '' %h1= t 'devise.mailer.reconfirmation_instructions.title' %p.lead= t 'devise.mailer.reconfirmation_instructions.explanation' diff --git a/app/views/user_mailer/reconfirmation_instructions.ja.text.erb b/app/views/user_mailer/reconfirmation_instructions.ja.text.erb deleted file mode 100644 index 5326e4512..000000000 --- a/app/views/user_mailer/reconfirmation_instructions.ja.text.erb +++ /dev/null @@ -1,10 +0,0 @@ -こんにちは<%= @resource.unconfirmed_email %>さん - -<%= @instance %>で使っているメールアドレスの変更をあなたがリクエストしました。 - -新しいメールアドレスを確認するには次のリンクをクリックしてください: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -また利用規約もご確認ください <%= terms_url %> - -<%= @instance %>チームより diff --git a/app/views/user_mailer/reconfirmation_instructions.oc.text.erb b/app/views/user_mailer/reconfirmation_instructions.oc.text.erb deleted file mode 100644 index 6f174bb3e..000000000 --- a/app/views/user_mailer/reconfirmation_instructions.oc.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Bonjorn <%= @resource.unconfirmed_email %> ! - -Avètz demandat a cambiar vòstra adreça de corrièl qu’utilizatz per <%= @instance %>. - -Per confirmar vòstra novèla adreça, mercés de clicar lo ligam seguent : -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Mercés tanben de gaitar nòstres <%= link_to 'terms and conditions', terms_url %>. - -Amistosament, - -La còla <%= @instance %> diff --git a/app/views/user_mailer/reconfirmation_instructions.pl.text.erb b/app/views/user_mailer/reconfirmation_instructions.pl.text.erb deleted file mode 100644 index 032718f81..000000000 --- a/app/views/user_mailer/reconfirmation_instructions.pl.text.erb +++ /dev/null @@ -1,12 +0,0 @@ -Witaj, <%= @resource.unconfirmed_email %>! - -Dokonano próby zmiany adresu e-mail, którego używasz na <%= @instance %>. - -Aby potwierdzić posiadanie tego adresu e-mail, kliknij na poniższy odnośnik: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -Pamiętaj o przeczytaniu naszych zasad użytkowania: <%= terms_url %> - -Z pozdrowieniami, - -Zespół <%= @instance %> diff --git a/app/views/user_mailer/reconfirmation_instructions.text.erb b/app/views/user_mailer/reconfirmation_instructions.text.erb new file mode 100644 index 000000000..b5e530251 --- /dev/null +++ b/app/views/user_mailer/reconfirmation_instructions.text.erb @@ -0,0 +1,9 @@ +<%= t 'devise.mailer.reconfirmation_instructions.title' %> + +=== + +<%= t 'devise.mailer.reconfirmation_instructions.explanation' %> + +=> <%= confirmation_url(@resource, confirmation_token: @token) %> + +<%= t 'devise.mailer.reconfirmation_instructions.extra' %> diff --git a/app/views/user_mailer/reconfirmation_instructions.zh-cn.text.erb b/app/views/user_mailer/reconfirmation_instructions.zh-cn.text.erb deleted file mode 100644 index 977d78137..000000000 --- a/app/views/user_mailer/reconfirmation_instructions.zh-cn.text.erb +++ /dev/null @@ -1,10 +0,0 @@ -<%= @resource.email %>,你好呀! - -你正在更改你在 <%= @instance %> 使用的电子邮件地址。 - -点击下面的链接以确认操作: -<%= confirmation_url(@resource, confirmation_token: @token) %> - -记得读一读我们的使用条款哦:<%= terms_url %> - -来自 <%= @instance %> 管理团队 diff --git a/app/views/user_mailer/reset_password_instructions.ar.text.erb b/app/views/user_mailer/reset_password_instructions.ar.text.erb deleted file mode 100644 index 0dfc85a36..000000000 --- a/app/views/user_mailer/reset_password_instructions.ar.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -صباح الخير <%= @resource.email %>! - -لقد طلب أحدهم رابط تعديل كلمة مرور ماستدون الخاصة بك. يمكنك المتابعة و مواصلة التعديل على الرابط التالي. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -يمكنك تجاهل هذه الرسالة إن لم تكن من طلب ذلك. -لن يتم تعديل كلمة المرور الخاصة بك و ستبقى نفسها إلا إذا قمت بالضغط على الرابط أعلاه. diff --git a/app/views/user_mailer/reset_password_instructions.ca.text.erb b/app/views/user_mailer/reset_password_instructions.ca.text.erb deleted file mode 100644 index ca4c494c3..000000000 --- a/app/views/user_mailer/reset_password_instructions.ca.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Hola <%= @resource.email %>! - -Algú ha sol·licitat un enllaç per canviar la contrasenya a mastodont.cat. Això es pot fer a través del següent enllaç. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Si no has sol·licitat aquest canvi, si us plau, ignora aquest correu. -La teva contrasenya no canviarà fins que accedeix a l'enllaç de dalt per crear-ne una de nova. diff --git a/app/views/user_mailer/reset_password_instructions.en.text.erb b/app/views/user_mailer/reset_password_instructions.en.text.erb deleted file mode 100644 index 7ed22dc2c..000000000 --- a/app/views/user_mailer/reset_password_instructions.en.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Hello <%= @resource.email %>! - -Someone has requested a link to change your password on <%= @instance %>. You can do this through the link below. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -If you didn't request this, please ignore this email. -Your password won't change until you access the link above and create a new one. diff --git a/app/views/user_mailer/reset_password_instructions.es.text.erb b/app/views/user_mailer/reset_password_instructions.es.text.erb deleted file mode 100644 index 8abafcc99..000000000 --- a/app/views/user_mailer/reset_password_instructions.es.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -¡Hola, <%= @resource.email %>! - -Alguien pidió un enlace para cambiar tu contraseña en <%= @instance %>. Puedes hacer esto con el siguiente enlace. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Si no fuiste tú, por favor ignora este mensaje. -Tu contraseña no cambiará hasta que ingreses al enlace y crees una nueva. diff --git a/app/views/user_mailer/reset_password_instructions.fa.text.erb b/app/views/user_mailer/reset_password_instructions.fa.text.erb deleted file mode 100644 index 0b01ba906..000000000 --- a/app/views/user_mailer/reset_password_instructions.fa.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -سلام <%= @resource.email %>! - -یک نفر درخواست کرده تا رمز شما در ماستدون عوض شود. برای این کار روی پیوند زیر کلیک کنید. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -اگر شما چنین درخواستی ندادهاید، لطفاً این ایمیل را نادیده بگیرید. -تا وقتی که شما پیوند بالا را نبینید و رمز تازهای نسازید، رمز شما عوض نخواهد شد. diff --git a/app/views/user_mailer/reset_password_instructions.fi.text.erb b/app/views/user_mailer/reset_password_instructions.fi.text.erb deleted file mode 100644 index c826d5fc8..000000000 --- a/app/views/user_mailer/reset_password_instructions.fi.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Hei <%= @resource.email %>! - -Joku on pyytänyt salasanvaihto Mastodonissa. Voit tehdä sen allaolevassa linkissä. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Jos et pyytänyt vaihtoa, poista tämä viesti. -Salasanaasi ei vaihdeta ennen kuin menet ylläolevaan linkkiin ja luot uuden. diff --git a/app/views/user_mailer/reset_password_instructions.fr.text.erb b/app/views/user_mailer/reset_password_instructions.fr.text.erb deleted file mode 100644 index 07fa3644a..000000000 --- a/app/views/user_mailer/reset_password_instructions.fr.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Bonjour <%= @resource.email %> ! - -Quelqu’un a demandé à réinitialiser votre mot de passe sur Mastodon. Vous pouvez effectuer la réinitialisation en cliquant sur le lien ci-dessous. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Si vous n’êtes pas à l’origine de cette demande, vous pouvez ignorer ce message. -Votre mot de passe ne sera pas modifié tant que vous n’accéderez pas au lien ci-dessus et n’en choisirez pas un nouveau. diff --git a/app/views/user_mailer/reset_password_instructions.he.text.erb b/app/views/user_mailer/reset_password_instructions.he.text.erb deleted file mode 100644 index 63c96c06b..000000000 --- a/app/views/user_mailer/reset_password_instructions.he.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -שלום <%= @resource.email %>! - -מישהו ביקש לינק להחלפת סיסמתך במסטודון. באפשרותך לעשות זאת ע"י בלחיצה על הקישורית שבהמשך. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -אם בקשה זו לא הגיעה ממך, אפשר להתעלם מההודעה. -סיסמתך לא תוחלף לפני שהקישורית תיפתח בדפדפן וסיסמא חדשה תוכנס. diff --git a/app/views/user_mailer/reset_password_instructions.html.haml b/app/views/user_mailer/reset_password_instructions.html.haml index c0e6775d4..5d9ce6a75 100644 --- a/app/views/user_mailer/reset_password_instructions.html.haml +++ b/app/views/user_mailer/reset_password_instructions.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('icon_lock_open.svg'), alt: '' + = image_tag full_pack_url('icon_lock_open.png'), alt: '' %h1= t 'devise.mailer.reset_password_instructions.title' %p.lead= t 'devise.mailer.reset_password_instructions.explanation' diff --git a/app/views/user_mailer/reset_password_instructions.id.text.erb b/app/views/user_mailer/reset_password_instructions.id.text.erb deleted file mode 100644 index cd7cfc373..000000000 --- a/app/views/user_mailer/reset_password_instructions.id.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Hai <%= @resource.email %>! - -Seseorang telah melakukan permintaan link untuk merubah kata sandi anda di Mastodon. Anda bisa melakukan ini melalui link dibawah ini. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Jika anda tidak memintanya, mohon abaikan email ini. -Password anda tidak akan diubah kecuali anda mengakses link di atas dan menggantinya. diff --git a/app/views/user_mailer/reset_password_instructions.it.text.erb b/app/views/user_mailer/reset_password_instructions.it.text.erb deleted file mode 100644 index 1de485c2e..000000000 --- a/app/views/user_mailer/reset_password_instructions.it.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Ciao <%= @resource.email %>! - -Qualcuno ha richiesto un link per cambiare la tua password su Mastodon. Lo puoi fare tramite il link qui sotto. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Se non l'hai richiesto tu, ignora questa email. -La tua password non verrà cambiata finché non accedi al link qui sopra e ne crei una nuova. diff --git a/app/views/user_mailer/reset_password_instructions.ja.text.erb b/app/views/user_mailer/reset_password_instructions.ja.text.erb deleted file mode 100644 index 9ed607b58..000000000 --- a/app/views/user_mailer/reset_password_instructions.ja.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -こんにちは<%= @resource.email %>さん - -Mastodonアカウントのパスワードの変更がリクエストされました。以下のリンクをクリックして操作を完了できます。 - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -このメールに身に覚えのない場合は無視してください。 -上記のリンクにアクセスし、変更をしない限りパスワードは変更されません。 diff --git a/app/views/user_mailer/reset_password_instructions.nl.text.erb b/app/views/user_mailer/reset_password_instructions.nl.text.erb deleted file mode 100644 index eda133db2..000000000 --- a/app/views/user_mailer/reset_password_instructions.nl.text.erb +++ /dev/null @@ -1,9 +0,0 @@ -Hallo <%= @resource.email %>! - -Er heeft iemand een nieuw wachtwoord aangevraagd voor Mastodon. Je kan op de link hieronder klikken om jouw wachtwo -ord te veranderen. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Je kan deze e-mail negeren wanneer jij dit niet hebt aangevraagd. -Jouw wachtwoord blijft onveranderd wanneer je niet op bovenstaande link klikt. diff --git a/app/views/user_mailer/reset_password_instructions.no.text.erb b/app/views/user_mailer/reset_password_instructions.no.text.erb deleted file mode 100644 index 387dc7c3e..000000000 --- a/app/views/user_mailer/reset_password_instructions.no.text.erb +++ /dev/null @@ -1,9 +0,0 @@ - -Hei <%= @resource.email %>! - -Noen har forespurt en lenke til å bytte passord på din Mastodon-bruker. Du kan gjøre det ved å følge lenken under. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Hvis du ikke vil endre ditt passord kan du ignorere denne epost. -Passordet ditt blir ikke endret før du følger lenken over og endrer det. diff --git a/app/views/user_mailer/reset_password_instructions.oc.text.erb b/app/views/user_mailer/reset_password_instructions.oc.text.erb deleted file mode 100644 index 5a5219589..000000000 --- a/app/views/user_mailer/reset_password_instructions.oc.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Bonjorn <%= @resource.email %> ! - -Qualqu’un a demandat la reïnicializacion de vòstre senhal per Mastodon. Podètz realizar la reïnicializacion en clicant sul ligam çai-jos.</p> - -<%= link_to 'Modificar mon senhal', edit_password_url(@resource, reset_password_token: @token) %> - -S’avètz pas res demandat, fasquètz pas cas a aqueste corrièl. -Vòstre senhal cambiarà pas se clicatz pas sul ligam e que ne causissètz pas un novèl. diff --git a/app/views/user_mailer/reset_password_instructions.pl.text.erb b/app/views/user_mailer/reset_password_instructions.pl.text.erb deleted file mode 100644 index 2b34afc48..000000000 --- a/app/views/user_mailer/reset_password_instructions.pl.text.erb +++ /dev/null @@ -1,9 +0,0 @@ -Witaj, <%= @resource.email %>! - -Ktoś próbował zmienić Twoje hasło na <%= @instance %>. Możesz zrobić to klikając w -poniższy link. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Jeżeli to nie Ty, zignoruj ten e-mail. -Twoje hasło nie zostanie zmienione, dopóki nie użyjesz linku z podobnej wiadomości. diff --git a/app/views/user_mailer/reset_password_instructions.pt-BR.text.erb b/app/views/user_mailer/reset_password_instructions.pt-BR.text.erb deleted file mode 100644 index 2abff0c0d..000000000 --- a/app/views/user_mailer/reset_password_instructions.pt-BR.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Olá, <%= @resource.email %>! - -Alguém solicitou um link para mudar a sua senha na instância <%= @instance %>. Você pode fazer isso através do link abaixo: - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Se você não solicitou isso, por favor ignore este e-mail. -A senha não será modificada até que você acesse o link acima e crie uma nova. diff --git a/app/views/user_mailer/reset_password_instructions.ru.text.erb b/app/views/user_mailer/reset_password_instructions.ru.text.erb deleted file mode 100644 index 4ede067ab..000000000 --- a/app/views/user_mailer/reset_password_instructions.ru.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Здравствуйте, <%= @resource.email %>! - -Кто-то отправил запрос о сбросе пароля для Вашего аккаунта Mastodon. Вы можете использовать для этого следующую ссылку: - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Если Вы не запрашивали сброс пароля, пожалуйста, проигнорируйте это сообщение. -Ваш пароль не будет изменен, пока вы не проследуете по вышеприведенной ссылке и не создадите новый. diff --git a/app/views/user_mailer/reset_password_instructions.sr-Latn.text.erb b/app/views/user_mailer/reset_password_instructions.sr-Latn.text.erb deleted file mode 100644 index 31707dee1..000000000 --- a/app/views/user_mailer/reset_password_instructions.sr-Latn.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Zdravo <%= @resource.email %>! - -Neko je zatražio link za promenu lozinke na instanci <%= @instance %>. Ovo možete uraditi preko linka ispod. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Ignorišite ovu poruku, ako niste Vi bili ti koji ste zatražili promenu lozinke. -Lozinka se neće promeniti sve dok ne kliknete link iznad i ne napravite novu lozinku. diff --git a/app/views/user_mailer/reset_password_instructions.sr.text.erb b/app/views/user_mailer/reset_password_instructions.sr.text.erb deleted file mode 100644 index 86ea32b05..000000000 --- a/app/views/user_mailer/reset_password_instructions.sr.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Здраво <%= @resource.email %>! - -Неко је затражио линк за промену лозинке на инстанци <%= @instance %>. Ово можете урадити преко линка испод. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Игноришите ову поруку, ако нисте Ви били ти који сте затражили промену лозинке. -Лозинка се неће променити све док не кликнете линк изнад и не направите нову лозинку. diff --git a/app/views/user_mailer/reset_password_instructions.sv.text.erb b/app/views/user_mailer/reset_password_instructions.sv.text.erb deleted file mode 100644 index 946426119..000000000 --- a/app/views/user_mailer/reset_password_instructions.sv.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Hej <%= @resource.email %>! - -Någon har begärt en länk för att ändra ditt lösenord på <%= @instance %>. Du kan göra det genom länken nedan. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Om du inte begärt detta, ignorerar du det här e-postmeddelandet. -Ditt lösenord ändras inte förrän du öppnar länken ovan och skapar ett nytt. diff --git a/app/views/user_mailer/reset_password_instructions.text.erb b/app/views/user_mailer/reset_password_instructions.text.erb new file mode 100644 index 000000000..4fbef16ee --- /dev/null +++ b/app/views/user_mailer/reset_password_instructions.text.erb @@ -0,0 +1,9 @@ +<%= t 'devise.mailer.reset_password_instructions.title' %> + +=== + +<%= t 'devise.mailer.reset_password_instructions.explanation' %> + +=> <%= edit_password_url(@resource, reset_password_token: @token) %> + +<%= t 'devise.mailer.reset_password_instructions.extra' %> diff --git a/app/views/user_mailer/reset_password_instructions.th.text.erb b/app/views/user_mailer/reset_password_instructions.th.text.erb deleted file mode 100644 index fe73b0165..000000000 --- a/app/views/user_mailer/reset_password_instructions.th.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -Hello <%= @resource.email %>! - -Someone has requested a link to change your password on Mastodon. You can do this through the link below. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -If you didn't request this, please ignore this email. -Your password won't change until you access the link above and create a new one. diff --git a/app/views/user_mailer/reset_password_instructions.tr.text.erb b/app/views/user_mailer/reset_password_instructions.tr.text.erb deleted file mode 100644 index a0b84b9a4..000000000 --- a/app/views/user_mailer/reset_password_instructions.tr.text.erb +++ /dev/null @@ -1,13 +0,0 @@ -Merhaba <%= @resource.email %> - -Biri <%= @instance %> üzerinden sizin hesabınız için parola değişim isteği gönderdi. Aşağıdaki linke tıklayarak bunu gerçekleştirebilirsiniz. - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -Eğer bu isteği siz göndermediyseniz, lütfen bu e-postayı görmezden geliniz. -Siz bu linke tıklayıp yeni bir parola girene kadar parolanız değişmeyecektir. - -En içten dileklerimizle, - -<%= @instance %> ekibi - diff --git a/app/views/user_mailer/reset_password_instructions.zh-cn.text.erb b/app/views/user_mailer/reset_password_instructions.zh-cn.text.erb deleted file mode 100644 index f7cd88847..000000000 --- a/app/views/user_mailer/reset_password_instructions.zh-cn.text.erb +++ /dev/null @@ -1,8 +0,0 @@ -<%= @resource.email %>,你好呀! - -有人想修改你在 <%= @instance %> 上的密码呢。如果你确实想修改密码的话,点击下面的链接吧: - -<%= edit_password_url(@resource, reset_password_token: @token) %> - -如果你不想修改密码的话,还请忽略这封邮件哦。 -在你点击上面的链接并修改密码前,你的密码是不会改变的。 diff --git a/app/views/user_mailer/welcome.html.haml b/app/views/user_mailer/welcome.html.haml index 0823efa1a..d734da67d 100644 --- a/app/views/user_mailer/welcome.html.haml +++ b/app/views/user_mailer/welcome.html.haml @@ -17,7 +17,7 @@ %tbody %tr %td - = image_tag full_pack_url('icon_done.svg'), alt: '' + = image_tag full_pack_url('icon_done.png'), alt: '' %h1= t 'user_mailer.welcome.title', name: @resource.account.username %p.lead= t 'user_mailer.welcome.explanation' @@ -30,7 +30,7 @@ %table.content-section{ cellspacing: 0, cellpadding: 0 } %tbody %tr - %td.content-cell + %td.content-cell.content-start .email-row .col-3 %table.column{ cellspacing: 0, cellpadding: 0 } @@ -46,7 +46,7 @@ %table.column{ cellspacing: 0, cellpadding: 0 } %tbody %tr - %td.column-cell.content-start + %td.column-cell %p= t 'user_mailer.welcome.full_handle_hint', instance: @instance %table.email-table{ cellspacing: 0, cellpadding: 0 } @@ -69,7 +69,7 @@ %table.column{ cellspacing: 0, cellpadding: 0 } %tbody %tr - %td.column-cell + %td.column-cell.padded %table.button.button-small{ align: 'left', cellspacing: 0, cellpadding: 0 } %tbody %tr @@ -89,7 +89,7 @@ %table.column{ cellspacing: 0, cellpadding: 0 } %tbody %tr - %td.column-cell + %td.column-cell.padded %table.button.button-small{ align: 'left', cellspacing: 0, cellpadding: 0 } %tbody %tr @@ -109,7 +109,7 @@ %table.column{ cellspacing: 0, cellpadding: 0 } %tbody %tr - %td.column-cell + %td.column-cell.padded %table.button.button-small{ align: 'left', cellspacing: 0, cellpadding: 0 } %tbody %tr diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml index dd6b48795..4ee021fcc 100644 --- a/config/locales/devise.zh-CN.yml +++ b/config/locales/devise.zh-CN.yml @@ -18,7 +18,7 @@ zh-CN: mailer: confirmation_instructions: action: 验证电子邮件地址 - explanation: 你在 %{host} 上使用这个电子邮件地址创建了一个帐户。只需点击下面的按钮,即可完成激活。如果你并没有创建过帐户,请忽略此邮件。 + explanation: 你在 %{host} 上使用这个电子邮件地址创建了一个帐户。只需点击下面的链接,即可完成激活。如果你并没有创建过帐户,请忽略此邮件。 extra_html: 请记得阅读<a href="%{terms_path}">本实例的相关规定</a>和<a href="%{policy_path}">我们的使用条款</a>。 subject: Mastodon:确认 %{instance} 帐户信息 title: 验证电子邮件地址 @@ -33,13 +33,13 @@ zh-CN: subject: Mastodon:密码已被更改 title: 密码已被重置 reconfirmation_instructions: - explanation: 请确认你的新电子邮件地址以完成更改。 + explanation: 点击下面的链接来确认你的新电子邮件地址。 extra: 如果你并没有请求本次变更,请忽略此邮件。Mastodon 帐户的电子邮件地址只有在你点击上面的链接后才会更改。 subject: Mastodon:确认 %{instance} 电子邮件地址 title: 验证电子邮件地址 reset_password_instructions: action: 更改密码 - explanation: 你正在请求更改帐户的密码。 + explanation: 点击下面的链接来更改帐户的密码。 extra: 如果你并没有请求本次变更,请忽略此邮件。你的密码只有在你点击上面的链接并输入新密码后才会更改。 subject: Mastodon:重置密码信息 title: 重置密码 diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 25cfe5a8a..7deb241a1 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -591,7 +591,7 @@ zh-CN: back: 回到 Mastodon delete: 删除帐户 development: 开发 - edit_profile: 更改个人信息 + edit_profile: 更改个人资料 export: 导出 followers: 已授权的关注者 import: 导入 @@ -712,6 +712,25 @@ zh-CN: recovery_instructions_html: 如果你的手机无法使用,你可以使用下列任意一个恢复代码来重新获得对帐户的访问权。<strong>请妥善保管好你的恢复代码</strong>(例如,你可以将它们打印出来,然后和其他重要的文件放在一起)。 setup: 设置 wrong_code: 输入的认证码无效!请核对一下你的设备显示的时间,如果正确,你可能需要联系一下实例的管理员,让他们校准服务器的时间。 + user_mailer: + welcome: + edit_profile_action: 设置个人资料 + edit_profile_step: 你可以自定义你的个人资料,包括上传头像、横幅图片、更改昵称等等。如果你想在新的关注者关注你之前对他们进行审核,你也可以选择为你的帐户开启保护。 + explanation: 下面是几个小贴士,希望它们能帮到你 + final_action: 开始嘟嘟 + final_step: '开始嘟嘟吧!即便你现在没有关注者,其他人仍然能在本站时间轴或者话题标签等地方看到你的公开嘟文。试着用 #introductions 这个话题标签介绍一下自己吧。' + full_handle: 你的完整用户地址 + full_handle_hint: 你需要把这个告诉你的朋友们,这样他们就能从另一个实例向你发送信息或者关注你。 + review_preferences_action: 更改首选项 + review_preferences_step: 记得调整你的偏好设置,比如你想接收什么类型的邮件,或者你想把你的嘟文可见范围默认设置为什么级别。如果你没有晕动病的话,考虑一下启用“自动播放 GIF 动画”这个选项吧。 + subject: 欢迎来到 Mastodon + tip_bridge_html: 如果你刚从 Twitter 来到这里,你可以在<a href="%{bridge_url}">桥梁站(bridge app)</a>上寻找你的朋友。当然,前提是他们也登录了桥梁站! + tip_federated_timeline: 跨站公共时间轴可以让你一窥更广阔的 Mastodon 网络。不过,由于它只显示你的邻居们所订阅的内容,所以并不是全部。 + tip_following: 默认情况下,你会自动关注你所在实例的管理员。想结交更多有趣的人的话,记得多逛逛本站时间轴和跨站公共时间轴哦。 + tip_local_timeline: 本站时间轴可以让你一窥 %{instance} 上的用户。他们就是离你最近的邻居! + tip_mobile_webapp: 如果你的移动设备浏览器允许你将 Mastodon 添加到主屏幕,你就能够接收推送消息。它就像本地应用一样好使! + tips: 小贴士 + title: "%{name},欢迎你的加入!" users: invalid_email: 输入的电子邮件地址无效 invalid_otp_token: 输入的双重认证代码无效 diff --git a/config/webpack/configuration.js b/config/webpack/configuration.js index a38d9d11d..f6b4d4c61 100644 --- a/config/webpack/configuration.js +++ b/config/webpack/configuration.js @@ -73,7 +73,7 @@ function formatPublicPath(host = '', path = '') { const output = { path: resolve('public', settings.public_output_path), - publicPath: formatPublicPath(env.ASSET_HOST, settings.public_output_path), + publicPath: formatPublicPath(env.ASSET_HOST || env.LOCAL_DOMAIN, settings.public_output_path), }; module.exports = { diff --git a/lib/mastodon/premailer_webpack_strategy.rb b/lib/mastodon/premailer_webpack_strategy.rb index 4ea3ce80c..84d83cc66 100644 --- a/lib/mastodon/premailer_webpack_strategy.rb +++ b/lib/mastodon/premailer_webpack_strategy.rb @@ -2,6 +2,9 @@ module PremailerWebpackStrategy def load(url) + public_path_host = ENV['ASSET_HOST'] || ENV['LOCAL_DOMAIN'] + url = url.gsub(/\A\/\/#{public_path_host}/, '') + if Webpacker.dev_server.running? url = File.join("#{Webpacker.dev_server.protocol}://#{Webpacker.dev_server.host_with_port}", url) HTTP.get(url).to_s diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 5936b5fcf..098ab46ac 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -9,11 +9,11 @@ module Mastodon end def minor - 1 + 2 end def patch - 3 + 0 end def pre @@ -21,7 +21,7 @@ module Mastodon end def flags - '' + 'rc1' end def to_a diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index 9f17993e0..6b430b505 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -23,7 +23,7 @@ describe UserMailer, type: :mailer do it 'renders confirmation instructions' do receiver.update!(locale: nil) - expect(mail.body.encoded).to include receiver.email + expect(mail.body.encoded).to include I18n.t('devise.mailer.confirmation_instructions.title') expect(mail.body.encoded).to include 'spec' expect(mail.body.encoded).to include Rails.configuration.x.local_domain end @@ -38,7 +38,7 @@ describe UserMailer, type: :mailer do it 'renders reconfirmation instructions' do receiver.update!(email: 'new-email@example.com', locale: nil) - expect(mail.body.encoded).to include 'new-email@example.com' + expect(mail.body.encoded).to include I18n.t('devise.mailer.reconfirmation_instructions.title') expect(mail.body.encoded).to include 'spec' expect(mail.body.encoded).to include Rails.configuration.x.local_domain expect(mail.subject).to eq I18n.t('devise.mailer.reconfirmation_instructions.subject', @@ -52,7 +52,7 @@ describe UserMailer, type: :mailer do it 'renders reset password instructions' do receiver.update!(locale: nil) - expect(mail.body.encoded).to include receiver.email + expect(mail.body.encoded).to include I18n.t('devise.mailer.reset_password_instructions.title') expect(mail.body.encoded).to include 'spec' end @@ -65,7 +65,7 @@ describe UserMailer, type: :mailer do it 'renders password change notification' do receiver.update!(locale: nil) - expect(mail.body.encoded).to include receiver.email + expect(mail.body.encoded).to include I18n.t('devise.mailer.password_change.title') end include_examples 'localized subject', @@ -77,7 +77,7 @@ describe UserMailer, type: :mailer do it 'renders email change notification' do receiver.update!(locale: nil) - expect(mail.body.encoded).to include receiver.email + expect(mail.body.encoded).to include I18n.t('devise.mailer.email_changed.title') end include_examples 'localized subject', |