forked from AkkomaGang/akkoma-fe
Merge branch 'develop' into stable
This commit is contained in:
commit
e530c2b462
17 changed files with 168 additions and 55 deletions
|
@ -469,7 +469,7 @@ textarea,
|
|||
color: $fallback--lightText;
|
||||
color: var(--inputText, $fallback--lightText);
|
||||
font-family: sans-serif;
|
||||
font-family: var(--inputFont, sans-serif);
|
||||
font-family: var(--interfaceFont, sans-serif);
|
||||
font-size: 1em;
|
||||
margin: 0;
|
||||
box-sizing: border-box;
|
||||
|
|
|
@ -114,7 +114,7 @@
|
|||
svg {
|
||||
width: 22px;
|
||||
margin-right: 0.75rem;
|
||||
color: var(--menuPopoverIcon, $fallback--icon)
|
||||
color: var(--popoverIcon, $fallback--icon)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -291,12 +291,14 @@
|
|||
>
|
||||
{{ $t('post_status.post') }}
|
||||
</button>
|
||||
<!-- touchstart is used to keep the OSK at the same position after a message send -->
|
||||
<!-- To keep the OSK at the same position after a message send, -->
|
||||
<!-- @touchstart.stop.prevent was used. But while OSK position is -->
|
||||
<!-- quirky, accidental mobile posts caused by the workaround -->
|
||||
<!-- when people tried to scroll were a more serious bug. -->
|
||||
<button
|
||||
v-else
|
||||
:disabled="uploadingFiles || disableSubmit"
|
||||
class="btn button-default"
|
||||
@touchstart.stop.prevent="postStatus($event, newStatus)"
|
||||
@click.stop.prevent="postStatus($event, newStatus)"
|
||||
>
|
||||
{{ $t('post_status.post') }}
|
||||
|
|
|
@ -38,7 +38,7 @@ label.Select {
|
|||
margin: 0;
|
||||
padding: 0 2em 0 .2em;
|
||||
font-family: sans-serif;
|
||||
font-family: var(--inputFont, sans-serif);
|
||||
font-family: var(--interfaceFont, sans-serif);
|
||||
font-size: 1em;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
>
|
||||
{{ $t('settings.settings_profile_force_sync') }}
|
||||
</button>
|
||||
|
||||
</p>
|
||||
<div
|
||||
@click="toggleExpandedSettings"
|
||||
|
|
|
@ -12,6 +12,7 @@ import InterfaceLanguageSwitcher from 'src/components/interface_language_switche
|
|||
import BooleanSetting from '../helpers/boolean_setting.vue'
|
||||
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
||||
import localeService from 'src/services/locale/locale.service.js'
|
||||
import ChoiceSetting from '../helpers/choice_setting.vue'
|
||||
|
||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
import {
|
||||
|
@ -46,9 +47,16 @@ const ProfileTab = {
|
|||
emailLanguage: this.$store.state.users.currentUser.language || '',
|
||||
newPostTTLDays: this.$store.state.users.currentUser.status_ttl_days,
|
||||
expirePosts: this.$store.state.users.currentUser.status_ttl_days !== null,
|
||||
userAcceptsDirectMessagesFrom: this.$store.state.users.currentUser.accepts_direct_messages_from,
|
||||
userAcceptsDirectMessagesFromOptions: ["everybody", "nobody", "people_i_follow"].map(mode => ({
|
||||
key: mode,
|
||||
value: mode,
|
||||
label: this.$t(`settings.user_accepts_direct_messages_from_${mode}`)
|
||||
}))
|
||||
}
|
||||
},
|
||||
components: {
|
||||
ChoiceSetting,
|
||||
ScopeSelector,
|
||||
ImageCropper,
|
||||
EmojiInput,
|
||||
|
@ -126,7 +134,8 @@ const ProfileTab = {
|
|||
fields_attributes: this.newFields.filter(el => el != null),
|
||||
bot: this.bot,
|
||||
show_role: this.showRole,
|
||||
status_ttl_days: this.expirePosts ? this.newPostTTLDays : -1
|
||||
status_ttl_days: this.expirePosts ? this.newPostTTLDays : -1,
|
||||
accepts_direct_messages_from: this.userAcceptsDirectMessagesFrom
|
||||
/* eslint-enable camelcase */
|
||||
}
|
||||
|
||||
|
|
|
@ -89,6 +89,15 @@
|
|||
{{ $t('settings.bot') }}
|
||||
</Checkbox>
|
||||
</p>
|
||||
<p>
|
||||
<ChoiceSetting
|
||||
id="userAcceptsDirectMessagesFrom"
|
||||
path="userAcceptsDirectMessagesFrom"
|
||||
:options="userAcceptsDirectMessagesFromOptions"
|
||||
>
|
||||
{{ $t('settings.user_accepts_direct_messages_from') }}
|
||||
</ChoiceSetting>
|
||||
</p>
|
||||
<p>
|
||||
<Checkbox v-model="expirePosts">
|
||||
{{ $t('settings.expire_posts_enabled') }}
|
||||
|
@ -102,6 +111,9 @@
|
|||
class="expire-posts-days"
|
||||
:placeholder="$t('settings.expire_posts_input_placeholder')"
|
||||
/>
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
<interface-language-switcher
|
||||
|
|
|
@ -89,6 +89,10 @@
|
|||
margin: 1em 1em 0;
|
||||
}
|
||||
|
||||
.presets {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.tab-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
|
|
@ -16,22 +16,6 @@
|
|||
>{{ $t("nav.home_timeline") }}</span>
|
||||
</router-link>
|
||||
</li>
|
||||
<li v-if="bubbleTimelineVisible">
|
||||
<router-link
|
||||
class="menu-item"
|
||||
:to="{ name: 'bubble-timeline' }"
|
||||
>
|
||||
<FAIcon
|
||||
fixed-width
|
||||
class="fa-scale-110 fa-old-padding "
|
||||
icon="circle"
|
||||
/>
|
||||
<span
|
||||
:title="$t('nav.bubble_timeline_description')"
|
||||
:aria-label="$t('nav.bubble_timeline_description')"
|
||||
>{{ $t("nav.bubble_timeline") }}</span>
|
||||
</router-link>
|
||||
</li>
|
||||
<li v-if="publicTimelineVisible">
|
||||
<router-link
|
||||
class="menu-item"
|
||||
|
@ -48,6 +32,22 @@
|
|||
>{{ $t("nav.public_tl") }}</span>
|
||||
</router-link>
|
||||
</li>
|
||||
<li v-if="bubbleTimelineVisible">
|
||||
<router-link
|
||||
class="menu-item"
|
||||
:to="{ name: 'bubble-timeline' }"
|
||||
>
|
||||
<FAIcon
|
||||
fixed-width
|
||||
class="fa-scale-110 fa-old-padding "
|
||||
icon="circle"
|
||||
/>
|
||||
<span
|
||||
:title="$t('nav.bubble_timeline_description')"
|
||||
:aria-label="$t('nav.bubble_timeline_description')"
|
||||
>{{ $t("nav.bubble_timeline") }}</span>
|
||||
</router-link>
|
||||
</li>
|
||||
<li v-if="federatedTimelineVisible">
|
||||
<router-link
|
||||
class="menu-item"
|
||||
|
|
|
@ -929,6 +929,10 @@
|
|||
"user_profile_default_tab": "Default Tab on User Profile",
|
||||
"user_profiles": "User Profiles",
|
||||
"user_settings": "User Settings",
|
||||
"user_accepts_direct_messages_from": "Accept DMs From",
|
||||
"user_accepts_direct_messages_from_everybody": "Everybody",
|
||||
"user_accepts_direct_messages_from_nobody": "Nobody",
|
||||
"user_accepts_direct_messages_from_people_i_follow": "People I follow",
|
||||
"valid_until": "Valid until",
|
||||
"values": {
|
||||
"false": "no",
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
"mrf": {
|
||||
"federation": "フェデレーション",
|
||||
"keyword": {
|
||||
"is_replaced_by": "→",
|
||||
"keyword_policies": "キーワードポリシー",
|
||||
"reject": "おことわり",
|
||||
"replace": "おきかえ"
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"about": {
|
||||
"bubble_instances": "Instancje lokalnej bańki",
|
||||
"bubble_instances_description": "Instancje wybrane przez administratorów w celu przedstawienia okolicy tej instancji",
|
||||
"mrf": {
|
||||
"federation": "Federacja",
|
||||
"keyword": {
|
||||
|
@ -16,12 +18,15 @@
|
|||
"accept_desc": "Ta instancja akceptuje tylko posty z wymienionych instancji:",
|
||||
"ftl_removal": "Usunięcie z „Całej znanej sieci”",
|
||||
"ftl_removal_desc": "Ta instancja usuwa wymienionych instancje z „Całej znanej sieci”:",
|
||||
"instance": "Instacja",
|
||||
"media_nsfw": "Multimedia ustawione jako wrażliwe",
|
||||
"media_nsfw_desc": "Ta instancja wymusza, by multimedia z wymienionych instancji były ustawione jako wrażliwe:",
|
||||
"media_removal": "Usuwanie multimediów",
|
||||
"media_removal_desc": "Ta instancja usuwa multimedia z postów od wymienionych instancji:",
|
||||
"not_applicable": "N/A",
|
||||
"quarantine": "Kwarantanna",
|
||||
"quarantine_desc": "Ta instancja wysyła tylko publiczne posty do wymienionych instancji:",
|
||||
"quarantine_desc": "Ta instancja nie wysyła postów do wymienionych instancji:",
|
||||
"reason": "Powód",
|
||||
"reject": "Odrzucanie",
|
||||
"reject_desc": "Ta instancja odrzuca posty z wymienionych instancji:",
|
||||
"simple_policies": "Zasady specyficzne dla instancji"
|
||||
|
@ -29,6 +34,27 @@
|
|||
},
|
||||
"staff": "Administracja"
|
||||
},
|
||||
"announcements": {
|
||||
"all_day_prompt": "Jest to całodzienne wydarzenie",
|
||||
"cancel_edit_action": "Anuluj",
|
||||
"close_error": "Zamknij",
|
||||
"delete_action": "Usuń",
|
||||
"edit_action": "Edytuj",
|
||||
"end_time_display": "Kończy się o: {time}",
|
||||
"end_time_prompt": "Koniec: ",
|
||||
"inactive_message": "To ogłoszenie jest nieaktywne",
|
||||
"mark_as_read_action": "Oznacz jako przeczytane",
|
||||
"page_header": "Ogłoszenia",
|
||||
"post_action": "Wyślij",
|
||||
"post_error": "Błąd: {error}",
|
||||
"post_form_header": "Wyślij ogłoszenie",
|
||||
"post_placeholder": "Zawartość ogłoszenia",
|
||||
"published_time_display": "Opublikowano o {time}",
|
||||
"start_time_display": "Zaczyna się o: {time}",
|
||||
"start_time_prompt": "Początek: ",
|
||||
"submit_edit_action": "Wyślij",
|
||||
"title": "Ogłoszenie"
|
||||
},
|
||||
"chats": {
|
||||
"chats": "Czaty",
|
||||
"delete": "Usuń",
|
||||
|
@ -58,6 +84,7 @@
|
|||
"keep_open": "Zostaw selektor otwarty",
|
||||
"load_all": "Ładuję wszystkie {emojiAmount} emoji",
|
||||
"load_all_hint": "Załadowano pierwsze {saneAmount} emoji, Załadowanie wszystkich emoji może spowodować problemy z wydajnością.",
|
||||
"recent": "Ostatnio używane",
|
||||
"search_emoji": "Wyszukaj emoji",
|
||||
"stickers": "Naklejki",
|
||||
"unicode": "Emoji unicode"
|
||||
|
@ -837,4 +864,4 @@
|
|||
"more": "Więcej",
|
||||
"who_to_follow": "Propozycje obserwacji"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
54
src/i18n/tr.json
Normal file
54
src/i18n/tr.json
Normal file
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"about": {
|
||||
"bubble_instances": "Yerel Balon Örnekleri",
|
||||
"bubble_instances_description": "Yöneticiler tarafından bu örneğin yerel alanını temsil etmesi için seçilen örnekler",
|
||||
"mrf": {
|
||||
"federation": "Federasyon",
|
||||
"keyword": {
|
||||
"ftl_removal": "\"Bilinen Tüm Ağ\" Zaman Çizelgesinden Kaldırma",
|
||||
"is_replaced_by": "→",
|
||||
"keyword_policies": "Anahtar kelime politikaları",
|
||||
"reject": "Reddetmek",
|
||||
"replace": "Yer değiştirmek"
|
||||
},
|
||||
"mrf_policies": "Etkinleştirilmiş MRF politikaları",
|
||||
"mrf_policies_desc": "MRF ilkeleri, örneğin federasyon davranışını manipüle eder. Aşağıdaki politikalar etkinleştirildi:",
|
||||
"simple": {
|
||||
"accept": "Kabul etmek",
|
||||
"accept_desc": "Bu örnek yalnızca aşağıdaki örneklerden gelen mesajları kabul eder:",
|
||||
"ftl_removal": "\"Bilinen Ağ\" Zaman Çizelgesinden Kaldırma",
|
||||
"ftl_removal_desc": "Bu örnek, şu örnekleri \"Bilinen Ağ\" zaman çizelgesinden kaldırır:",
|
||||
"instance": "Örnek",
|
||||
"media_nsfw": "Medya hassas olarak ayarlandı",
|
||||
"media_nsfw_desc": "Bu örnek, medyayı aşağıdaki örneklerdeki gönderilerde hassas olarak ayarlanmasına zorlar:",
|
||||
"media_removal": "Medya Kaldırma",
|
||||
"media_removal_desc": "Bu örnek, aşağıdaki örneklerdeki yayınlardan medyayı kaldırır:",
|
||||
"not_applicable": "Yok",
|
||||
"quarantine": "Karantina",
|
||||
"quarantine_desc": "Bu örnek, aşağıdaki örneklere gönderi göndermeyecek:",
|
||||
"reason": "Sebep",
|
||||
"reject": "Reddetmek",
|
||||
"reject_desc": "Bu örnek, aşağıdaki örneklerden gelen mesajları kabul etmeyecektir:",
|
||||
"simple_policies": "Örneğe özgü politikalar"
|
||||
}
|
||||
},
|
||||
"staff": "Kadro"
|
||||
},
|
||||
"announcements": {
|
||||
"all_day_prompt": "Bu tüm gün süren bir etkinlik",
|
||||
"cancel_edit_action": "İptal etmek",
|
||||
"close_error": "Kapalı",
|
||||
"delete_action": "Sil",
|
||||
"edit_action": "Düzenle",
|
||||
"end_time_display": "{time} saatinde biter",
|
||||
"end_time_prompt": "Bitiş zamanı: ",
|
||||
"inactive_message": "Bu duyuru etkin değil",
|
||||
"mark_as_read_action": "Okundu olarak işaretle",
|
||||
"page_header": "Duyurular",
|
||||
"post_action": "Post",
|
||||
"post_error": "Hata: {error}",
|
||||
"post_form_header": "Post sonrası",
|
||||
"post_placeholder": "Duyuru içeriği",
|
||||
"published_time_display": "{time} tarihinde yayınlandı"
|
||||
}
|
||||
}
|
|
@ -84,6 +84,7 @@
|
|||
"keep_open": "选择器保持打开",
|
||||
"load_all": "加载全部 {emojiAmount} 个表情符号中",
|
||||
"load_all_hint": "已加载前 {saneAmount} 个表情符号,加载全部表情符号可能会带来性能问题。",
|
||||
"recent": "最近使用",
|
||||
"search_emoji": "搜索表情符号",
|
||||
"stickers": "贴纸",
|
||||
"unicode": "Unicode 表情符号"
|
||||
|
@ -732,7 +733,7 @@
|
|||
"settings": "设置",
|
||||
"settings_profile": "设置配置文件",
|
||||
"settings_profile_creation": "创建新的配置文件",
|
||||
"settings_profile_creation_new_name_label": "名字",
|
||||
"settings_profile_creation_new_name_label": "名称",
|
||||
"settings_profile_creation_submit": "创建",
|
||||
"settings_profile_currently": "目前使用 {name}(版本:{version})",
|
||||
"settings_profile_delete": "删除",
|
||||
|
@ -920,7 +921,7 @@
|
|||
"type_domains_to_mute": "搜索需要静音的域名",
|
||||
"upload_a_photo": "上传照片",
|
||||
"useStreamingApi": "实时接收帖文和通知",
|
||||
"useStreamingApiWarning": "(不推荐使用,试验性,已知会跳过一些帖文)",
|
||||
"useStreamingApiWarning": "十分炫酷推荐使用。要是崩了试试刷新?",
|
||||
"use_at_icon": "将 {'@'} 符号显示为图标而不是文本",
|
||||
"use_blurhash": "对NSFW的缩略图使用模糊处理",
|
||||
"use_contain_fit": "生成缩略图时不要裁剪附件",
|
||||
|
|
|
@ -90,6 +90,7 @@ export const parseUser = (data) => {
|
|||
output.friends_count = data.following_count
|
||||
|
||||
output.bot = data.bot
|
||||
output.accepts_direct_messages_from = data.accepts_direct_messages_from
|
||||
output.follow_requests_count = data.follow_requests_count
|
||||
if (data.akkoma) {
|
||||
output.instance = data.akkoma.instance
|
||||
|
|
|
@ -7,14 +7,18 @@ export const applyTheme = (input) => {
|
|||
const body = document.body
|
||||
body.classList.add('hidden')
|
||||
|
||||
const styleEl = document.getElementById('theme-holder')
|
||||
const styleSheet = styleEl.sheet
|
||||
/** @type {CSSStyleSheet} */
|
||||
const styleSheet = document.getElementById('theme-holder').sheet
|
||||
|
||||
for (let i = styleSheet.cssRules.length; i--; ) {
|
||||
styleSheet.deleteRule(0)
|
||||
}
|
||||
|
||||
styleSheet.insertRule(
|
||||
`:root { ${rules.radii}; ${rules.colors}; ${rules.shadows}; ${rules.fonts}; }`,
|
||||
0
|
||||
)
|
||||
|
||||
styleSheet.toString()
|
||||
styleSheet.insertRule(`:root { ${rules.radii} }`, 'index-max')
|
||||
styleSheet.insertRule(`:root { ${rules.colors} }`, 'index-max')
|
||||
styleSheet.insertRule(`:root { ${rules.shadows} }`, 'index-max')
|
||||
styleSheet.insertRule(`:root { ${rules.fonts} }`, 'index-max')
|
||||
body.classList.remove('hidden')
|
||||
}
|
||||
|
||||
|
|
|
@ -70,31 +70,21 @@
|
|||
"buttonHover": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": "2",
|
||||
"blur": "5",
|
||||
"spread": 0,
|
||||
"y": 2,
|
||||
"blur": 3,
|
||||
"spread": -2,
|
||||
"color": "#494949",
|
||||
"alpha": "0.1"
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": "2",
|
||||
"blur": "0",
|
||||
"spread": "20",
|
||||
"color": "#ffffff",
|
||||
"alpha": "1",
|
||||
"inset": true
|
||||
"alpha": "0.5"
|
||||
}
|
||||
],
|
||||
"buttonPressed": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"blur": "4",
|
||||
"spread": "0",
|
||||
"y": 2,
|
||||
"blur": 3,
|
||||
"spread": -3,
|
||||
"color": "#494949",
|
||||
"alpha": "0.8",
|
||||
"inset": false
|
||||
"alpha": "0.5"
|
||||
}
|
||||
],
|
||||
"avatarStatus": [
|
||||
|
@ -138,14 +128,18 @@
|
|||
]
|
||||
},
|
||||
"opacity": {
|
||||
"underlay": "1",
|
||||
"underlay": 0,
|
||||
"border": "0"
|
||||
},
|
||||
"colors": {
|
||||
"bg": "#ffffff",
|
||||
"fg": "#f6f6f6",
|
||||
"text": "#494949",
|
||||
"underlay": "#ffffff",
|
||||
"text": "#222222",
|
||||
"underlay": "#f1f2f3",
|
||||
"wallpaper": "#f1f2f3",
|
||||
"selectedMenu": "#f1f2f3",
|
||||
"selectedMenuPopover": "#f1f2f3",
|
||||
"selectedPost": "#f1f2f3",
|
||||
"link": "#788ca1",
|
||||
"accent": "#97a0aa",
|
||||
"cBlue": "#788ca1",
|
||||
|
@ -156,6 +150,7 @@
|
|||
"border": "#ffffff",
|
||||
"icon": "#b6c9c4",
|
||||
"panel": "#ffffff",
|
||||
"topBar": "#ffffff",
|
||||
"topBarText": "#4b4b4b"
|
||||
},
|
||||
"radii": {
|
||||
|
|
Loading…
Reference in a new issue