Merge remote-tracking branch 'upstream/develop' into masto-register-app-secret

* upstream/develop:
  Apply suggestion to src/services/entity_normalizer/entity_normalizer.service.js
  i18n/Update Japanese translation
  render modal at the root level using portal
  install portal vue
  Small improve of the who to follow panel layout
  Fix/Small fix in the who to follow page
  remove console spam
  i18n
  wire up user.description with masto api data
  i18n/Add Japanese with kanji (2)
  move drowdown menu to popper
  notification controls: redesign entirely
  entity normalizer: collapse data.pleroma if blocks
  wire up notification settings
  do not miss statusnet_profile_url of mentions
  Translation to Hebrew of everything other than theme_helpers and style.
  Translate up to settings.
  mastoapi login works
This commit is contained in:
Henry Jameson 2019-06-13 00:07:28 +03:00
commit 77511a5338
24 changed files with 1081 additions and 117 deletions

View file

@ -25,6 +25,7 @@
"object-path": "^0.11.3", "object-path": "^0.11.3",
"phoenix": "^1.3.0", "phoenix": "^1.3.0",
"popper.js": "^1.14.7", "popper.js": "^1.14.7",
"portal-vue": "^2.1.4",
"sanitize-html": "^1.13.0", "sanitize-html": "^1.13.0",
"v-click-outside": "^2.1.1", "v-click-outside": "^2.1.1",
"vue": "^2.5.13", "vue": "^2.5.13",

View file

@ -49,6 +49,7 @@
</div> </div>
<chat-panel :floating="true" v-if="currentUser && chat" class="floating-chat mobile-hidden"></chat-panel> <chat-panel :floating="true" v-if="currentUser && chat" class="floating-chat mobile-hidden"></chat-panel>
<UserReportingModal /> <UserReportingModal />
<portal-target name="modal" />
</div> </div>
</template> </template>

View file

@ -62,6 +62,7 @@
.title { .title {
margin-bottom: 0; margin-bottom: 0;
text-align: center;
} }
} }
@ -80,6 +81,7 @@
background-color: var(--lightBg, $fallback--lightBg); background-color: var(--lightBg, $fallback--lightBg);
border-top: 1px solid $fallback--bg; border-top: 1px solid $fallback--bg;
border-top: 1px solid var(--bg, $fallback--bg); border-top: 1px solid var(--bg, $fallback--bg);
display: flex;
justify-content: flex-end; justify-content: flex-end;
button { button {

View file

@ -35,6 +35,7 @@
<style lang="scss"> <style lang="scss">
@import '../../_variables.scss'; @import '../../_variables.scss';
@import '../popper/popper.scss';
.icon-ellipsis { .icon-ellipsis {
cursor: pointer; cursor: pointer;

View file

@ -2,7 +2,7 @@
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<div class="title"> <div class="title">
Interactions {{ $t("nav.interactions") }}
</div> </div>
</div> </div>
<tab-switcher <tab-switcher

View file

@ -26,7 +26,7 @@
}, },
languageNames () { languageNames () {
return _.map(this.languageCodes, ISO6391.getName) return _.map(this.languageCodes, this.getLanguageName)
}, },
language: { language: {
@ -36,6 +36,17 @@
this.$i18n.locale = val this.$i18n.locale = val
} }
} }
},
methods: {
getLanguageName (code) {
const specialLanguageNames = {
'ja': 'Japanese (やさしいにほんご)',
'ja_pedantic': 'Japanese (日本語)',
'zh': 'Chinese (简体中文)'
}
return specialLanguageNames[code] || ISO6391.getName(code)
}
} }
} }
</script> </script>

View file

@ -29,7 +29,7 @@
</a> </a>
</div> </div>
<div class="mobile-notifications" @scroll="onScroll"> <div class="mobile-notifications" @scroll="onScroll">
<Notifications ref="notifications" noHeading="true"/> <Notifications ref="notifications" :noHeading="true"/>
</div> </div>
</div> </div>
<SideDrawer ref="sideDrawer" :logout="logout"/> <SideDrawer ref="sideDrawer" :logout="logout"/>

View file

@ -65,18 +65,20 @@
{{ $t('user_card.admin_menu.moderation') }} {{ $t('user_card.admin_menu.moderation') }}
</button> </button>
</Popper> </Popper>
<portal to="modal">
<DialogModal v-if="showDeleteUserDialog" :onCancel='deleteUserDialog.bind(this, false)'> <DialogModal v-if="showDeleteUserDialog" :onCancel='deleteUserDialog.bind(this, false)'>
<span slot="header">{{ $t('user_card.admin_menu.delete_user') }}</span> <template slot="header">{{ $t('user_card.admin_menu.delete_user') }}</template>
<p>{{ $t('user_card.admin_menu.delete_user_confirmation') }}</p> <p>{{ $t('user_card.admin_menu.delete_user_confirmation') }}</p>
<span slot="footer"> <template slot="footer">
<button @click='deleteUserDialog(false)'> <button class="btn btn-default" @click='deleteUserDialog(false)'>
{{ $t('general.cancel') }} {{ $t('general.cancel') }}
</button> </button>
<button class="danger" @click='deleteUser()'> <button class="btn btn-default danger" @click='deleteUser()'>
{{ $t('user_card.admin_menu.delete_user') }} {{ $t('user_card.admin_menu.delete_user') }}
</button> </button>
</span> </template>
</DialogModal> </DialogModal>
</portal>
</div> </div>
</template> </template>
@ -86,64 +88,6 @@
@import '../../_variables.scss'; @import '../../_variables.scss';
@import '../popper/popper.scss'; @import '../popper/popper.scss';
.dropdown-menu {
display: block;
padding: .5rem 0;
font-size: 1rem;
text-align: left;
list-style: none;
max-width: 100vw;
z-index: 10;
box-shadow: 1px 1px 4px rgba(0,0,0,.6);
box-shadow: var(--panelShadow);
border: none;
border-radius: $fallback--btnRadius;
border-radius: var(--btnRadius, $fallback--btnRadius);
background-color: $fallback--bg;
background-color: var(--bg, $fallback--bg);
.dropdown-divider {
height: 0;
margin: .5rem 0;
overflow: hidden;
border-top: 1px solid $fallback--border;
border-top: 1px solid var(--border, $fallback--border);
}
.dropdown-item {
line-height: 21px;
margin-right: 5px;
overflow: auto;
display: block;
padding: .25rem 1.0rem .25rem 1.5rem;
clear: both;
font-weight: 400;
text-align: inherit;
white-space: normal;
border: none;
border-radius: 0px;
background-color: transparent;
box-shadow: none;
width: 100%;
height: 100%;
&-icon {
padding-left: 0.5rem;
i {
margin-right: 0.25rem;
}
}
&:hover {
// TODO: improve the look on breeze themes
background-color: $fallback--fg;
background-color: var(--btn, $fallback--fg);
box-shadow: none;
}
}
}
.menu-checkbox { .menu-checkbox {
float: right; float: right;
min-width: 22px; min-width: 22px;

View file

@ -35,7 +35,6 @@ const Notifications = {
return unseenNotificationsFromStore(this.$store) return unseenNotificationsFromStore(this.$store)
}, },
visibleNotifications () { visibleNotifications () {
console.log(this.filterMode)
return visibleNotificationsFromStore(this.$store, this.filterMode) return visibleNotificationsFromStore(this.$store, this.filterMode)
}, },
unseenCount () { unseenCount () {

View file

@ -68,3 +68,60 @@
margin-right: 0; margin-right: 0;
} }
.dropdown-menu {
display: block;
padding: .5rem 0;
font-size: 1rem;
text-align: left;
list-style: none;
max-width: 100vw;
z-index: 10;
box-shadow: 1px 1px 4px rgba(0,0,0,.6);
box-shadow: var(--panelShadow);
border: none;
border-radius: $fallback--btnRadius;
border-radius: var(--btnRadius, $fallback--btnRadius);
background-color: $fallback--bg;
background-color: var(--bg, $fallback--bg);
.dropdown-divider {
height: 0;
margin: .5rem 0;
overflow: hidden;
border-top: 1px solid $fallback--border;
border-top: 1px solid var(--border, $fallback--border);
}
.dropdown-item {
line-height: 21px;
margin-right: 5px;
overflow: auto;
display: block;
padding: .25rem 1.0rem .25rem 1.5rem;
clear: both;
font-weight: 400;
text-align: inherit;
white-space: normal;
border: none;
border-radius: 0px;
background-color: transparent;
box-shadow: none;
width: 100%;
height: 100%;
&-icon {
padding-left: 0.5rem;
i {
margin-right: 0.25rem;
}
}
&:hover {
// TODO: improve the look on breeze themes
background-color: $fallback--fg;
background-color: var(--btn, $fallback--fg);
box-shadow: none;
}
}
}

View file

@ -55,7 +55,8 @@ const UserSettings = {
changePasswordInputs: [ '', '', '' ], changePasswordInputs: [ '', '', '' ],
changedPassword: false, changedPassword: false,
changePasswordError: false, changePasswordError: false,
activeTab: 'profile' activeTab: 'profile',
notificationSettings: this.$store.state.users.currentUser.notification_settings
} }
}, },
created () { created () {
@ -128,6 +129,10 @@ const UserSettings = {
this.$store.commit('setCurrentUser', user) this.$store.commit('setCurrentUser', user)
}) })
}, },
updateNotificationSettings () {
this.$store.state.api.backendInteractor
.updateNotificationSettings({ settings: this.notificationSettings })
},
changeVis (visibility) { changeVis (visibility) {
this.newDefaultScope = visibility this.newDefaultScope = visibility
}, },

View file

@ -44,6 +44,7 @@
<scope-selector <scope-selector
:showAll="true" :showAll="true"
:userDefault="newDefaultScope" :userDefault="newDefaultScope"
:initialScope="newDefaultScope"
:onScopeChange="changeVis"/> :onScopeChange="changeVis"/>
</div> </div>
</div> </div>
@ -167,6 +168,43 @@
</div> </div>
</div> </div>
<div :label="$t('settings.notifications')" v-if="pleromaBackend">
<div class="setting-item">
<div class="select-multiple">
<span class="label">{{$t('settings.notification_setting')}}</span>
<ul class="option-list">
<li>
<input type="checkbox" id="notification-setting-follows" v-model="notificationSettings.follows">
<label for="notification-setting-follows">
{{$t('settings.notification_setting_follows')}}
</label>
</li>
<li>
<input type="checkbox" id="notification-setting-followers" v-model="notificationSettings.followers">
<label for="notification-setting-followers">
{{$t('settings.notification_setting_followers')}}
</label>
</li>
<li>
<input type="checkbox" id="notification-setting-non-follows" v-model="notificationSettings.non_follows">
<label for="notification-setting-non-follows">
{{$t('settings.notification_setting_non_follows')}}
</label>
</li>
<li>
<input type="checkbox" id="notification-setting-non-followers" v-model="notificationSettings.non_followers">
<label for="notification-setting-non-followers">
{{$t('settings.notification_setting_non_followers')}}
</label>
</li>
</ul>
</div>
<p>{{$t('settings.notification_mutes')}}</p>
<p>{{$t('settings.notification_blocks')}}</p>
<button class="btn btn-default" @click="updateNotificationSettings">{{$t('general.submit')}}</button>
</div>
</div>
<div :label="$t('settings.data_import_export_tab')" v-if="pleromaBackend"> <div :label="$t('settings.data_import_export_tab')" v-if="pleromaBackend">
<div class="setting-item"> <div class="setting-item">
<h2>{{$t('settings.follow_import')}}</h2> <h2>{{$t('settings.follow_import')}}</h2>

View file

@ -20,7 +20,8 @@ const WhoToFollow = {
id: 0, id: 0,
name: i.display_name, name: i.display_name,
screen_name: i.acct, screen_name: i.acct,
profile_image_url: i.avatar || '/images/avi.png' profile_image_url: i.avatar || '/images/avi.png',
profile_image_url_original: i.avatar || '/images/avi.png'
} }
this.users.push(user) this.users.push(user)

View file

@ -6,14 +6,18 @@
{{$t('who_to_follow.who_to_follow')}} {{$t('who_to_follow.who_to_follow')}}
</div> </div>
</div> </div>
<div class="panel-body who-to-follow"> <div class="who-to-follow">
<span v-for="user in usersToFollow"> <p v-for="user in usersToFollow" class="who-to-follow-items">
<img v-bind:src="user.img" /> <img v-bind:src="user.img" />
<router-link v-bind:to="userProfileLink(user.id, user.name)"> <router-link v-bind:to="userProfileLink(user.id, user.name)">
{{user.name}} {{user.name}}
</router-link><br /> </router-link><br />
</span> </p>
<img v-bind:src="$store.state.instance.logo"> <router-link :to="{ name: 'who-to-follow' }">{{$t('who_to_follow.more')}}</router-link> <p class="who-to-follow-more">
<router-link :to="{ name: 'who-to-follow' }">
{{$t('who_to_follow.more')}}
</router-link>
</p>
</div> </div>
</div> </div>
</div> </div>
@ -30,11 +34,19 @@
height: 32px; height: 32px;
} }
.who-to-follow { .who-to-follow {
padding: 0.5em 1em 0.5em 1em; padding: 0em 1em;
margin: 0px; margin: 0px;
line-height: 40px; }
.who-to-follow-items {
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
padding: 0px;
margin: 1em 0em;
}
.who-to-follow-more {
padding: 0px;
margin: 1em 0em;
text-align: center;
} }
</style> </style>

View file

@ -277,6 +277,13 @@
"true": "yes" "true": "yes"
}, },
"notifications": "Notifications", "notifications": "Notifications",
"notification_setting": "Receive notifications from:",
"notification_setting_follows": "Users you follow",
"notification_setting_non_follows": "Users you do not follow",
"notification_setting_followers": "Users who follow you",
"notification_setting_non_followers": "Users who do not follow you",
"notification_mutes": "To stop receiving notifications from a specific user, use a mute.",
"notification_blocks": "Blocking a user stops all notifications as well as unsubscribes them.",
"enable_web_push_notifications": "Enable web push notifications", "enable_web_push_notifications": "Enable web push notifications",
"style": { "style": {
"switcher": { "switcher": {

View file

@ -2,6 +2,10 @@
"chat": { "chat": {
"title": "צ'אט" "title": "צ'אט"
}, },
"exporter": {
"export": "ייצוא",
"processing": "מעבד, בקרוב תופיע אפשרות להוריד את הקובץ"
},
"features_panel": { "features_panel": {
"chat": "צ'אט", "chat": "צ'אט",
"gopher": "גופר", "gopher": "גופר",
@ -17,23 +21,53 @@
}, },
"general": { "general": {
"apply": "החל", "apply": "החל",
"submit": "שלח" "submit": "שלח",
"more": "עוד",
"generic_error": "קרתה שגיאה",
"optional": "לבחירה",
"show_more": "הראה עוד",
"show_less": "הראה פחות",
"cancel": "בטל"
},
"image_cropper": {
"crop_picture": "חתוך תמונה",
"save": "שמור",
"save_without_cropping": "שמור בלי לחתוך",
"cancel": "בטל"
},
"importer": {
"submit": "שלח",
"success": "ייובא בהצלחה.",
"error": "אירעתה שגיאה בזמן ייבוא קובץ זה."
}, },
"login": { "login": {
"login": "התחבר", "login": "התחבר",
"description": "היכנס עם OAuth",
"logout": "התנתק", "logout": "התנתק",
"password": "סיסמה", "password": "סיסמה",
"placeholder": "למשל lain", "placeholder": "למשל lain",
"register": "הירשם", "register": "הירשם",
"username": "שם המשתמש" "username": "שם המשתמש",
"hint": "הירשם על מנת להצטרף לדיון"
},
"media_modal": {
"previous": "הקודם",
"next": "הבא"
}, },
"nav": { "nav": {
"about": "על-אודות",
"back": "חזור",
"chat": "צ'אט מקומי", "chat": "צ'אט מקומי",
"friend_requests": "בקשות עקיבה", "friend_requests": "בקשות עקיבה",
"mentions": "אזכורים", "mentions": "אזכורים",
"interactions": "אינטרקציות",
"dms": "הודעות ישירות",
"public_tl": "ציר הזמן הציבורי", "public_tl": "ציר הזמן הציבורי",
"timeline": "ציר הזמן", "timeline": "ציר הזמן",
"twkn": "כל הרשת הידועה" "twkn": "כל הרשת הידועה",
"user_search": "חיפוש משתמש",
"who_to_follow": "אחרי מי לעקוב",
"preferences": "העדפות"
}, },
"notifications": { "notifications": {
"broken_favorite": "סטאטוס לא ידוע, מחפש...", "broken_favorite": "סטאטוס לא ידוע, מחפש...",
@ -42,19 +76,35 @@
"load_older": "טען התראות ישנות", "load_older": "טען התראות ישנות",
"notifications": "התראות", "notifications": "התראות",
"read": "קרא!", "read": "קרא!",
"repeated_you": "חזר על הסטטוס שלך" "repeated_you": "חזר על הסטטוס שלך",
"no_more_notifications": "לא עוד התראות"
},
"interactions": {
"favs_repeats": "חזרות ומועדפים",
"follows": "עוקבים חדשים",
"load_older": "טען אינטרקציות ישנות"
}, },
"post_status": { "post_status": {
"new_status": "פרסם סטאטוס חדש",
"account_not_locked_warning": "המשתמש שלך אינו {0}. כל אחד יכול לעקוב אחריך ולראות את ההודעות לעוקבים-בלבד שלך.", "account_not_locked_warning": "המשתמש שלך אינו {0}. כל אחד יכול לעקוב אחריך ולראות את ההודעות לעוקבים-בלבד שלך.",
"account_not_locked_warning_link": "נעול", "account_not_locked_warning_link": "נעול",
"attachments_sensitive": "סמן מסמכים מצורפים כלא בטוחים לצפייה", "attachments_sensitive": "סמן מסמכים מצורפים כלא בטוחים לצפייה",
"content_type": { "content_type": {
"text/plain": "טקסט פשוט" "text/plain": "טקסט פשוט",
"text/html": "HTML",
"text/markdown": "Markdown",
"text/bbcode": "BBCode"
}, },
"content_warning": "נושא (נתון לבחירה)", "content_warning": "נושא (נתון לבחירה)",
"default": "הרגע נחת ב-ל.א.", "default": "הרגע נחת ב-ל.א.",
"direct_warning": "הודעה זו תהיה זמינה רק לאנשים המוזכרים.", "direct_warning_to_all": "הודעה זו תהיה נראית לכל המשתמשים המוזכרים.",
"direct_warning_to_first_only": "הודעה זו תהיה נראית לכל המשתמשים במוזכרים בתחילת ההודעה בלבד.",
"posting": "מפרסם", "posting": "מפרסם",
"scope_notice": {
"public": "הודעה זו תהיה נראית לכולם",
"private": "הודעה זו תהיה נראית לעוקבים שלך בלבד",
"unlisted": "הודעה זו לא תהיה נראית בציר זמן הציבורי או בכל הרשת הידועה"
},
"scope": { "scope": {
"direct": "ישיר - שלח לאנשים המוזכרים בלבד", "direct": "ישיר - שלח לאנשים המוזכרים בלבד",
"private": "עוקבים-בלבד - שלח לעוקבים בלבד", "private": "עוקבים-בלבד - שלח לעוקבים בלבד",
@ -68,9 +118,26 @@
"fullname": "שם תצוגה", "fullname": "שם תצוגה",
"password_confirm": "אישור סיסמה", "password_confirm": "אישור סיסמה",
"registration": "הרשמה", "registration": "הרשמה",
"token": "טוקן הזמנה" "token": "טוקן הזמנה",
"captcha": "אימות אנוש",
"new_captcha": "לחץ על התמונה על מנת לקבל אימות אנוש חדש",
"username_placeholder": "למשל lain",
"fullname_placeholder": "למשל Lain Iwakura",
"bio_placeholder": "למשל\nהיי, אני ליין.\nאני ילדת אנימה שגרה בפרוורי יפן. אולי אתם מכירים אותי מהWired.",
"validations": {
"username_required": "לא יכול להישאר ריק",
"fullname_required": "לא יכול להישאר ריק",
"email_required": "לא יכול להישאר ריק",
"password_required": "לא יכול להישאר ריק",
"password_confirmation_required": "לא יכול להישאר ריק",
"password_confirmation_match": "צריך להיות דומה לסיסמה"
}
},
"selectable_list": {
"select_all": "בחר הכל"
}, },
"settings": { "settings": {
"app_name": "שם האפליקציה",
"attachmentRadius": "צירופים", "attachmentRadius": "צירופים",
"attachments": "צירופים", "attachments": "צירופים",
"autoload": "החל טעינה אוטומטית בגלילה לתחתית הדף", "autoload": "החל טעינה אוטומטית בגלילה לתחתית הדף",
@ -79,6 +146,12 @@
"avatarRadius": "תמונות פרופיל", "avatarRadius": "תמונות פרופיל",
"background": "רקע", "background": "רקע",
"bio": "אודות", "bio": "אודות",
"block_export": "ייצוא חסימות",
"block_export_button": "ייצוא חסימות אל קובץ csv",
"block_import": "ייבוא חסימות",
"block_import_error": "שגיאה בייבוא החסימות",
"blocks_imported": "החסימות יובאו! ייקח מעט זמן לעבד אותן.",
"blocks_tab": "חסימות",
"btnRadius": "כפתורים", "btnRadius": "כפתורים",
"cBlue": "כחול (תגובה, עקיבה)", "cBlue": "כחול (תגובה, עקיבה)",
"cGreen": "ירוק (חזרה)", "cGreen": "ירוק (חזרה)",
@ -88,6 +161,7 @@
"change_password_error": "הייתה בעיה בשינוי סיסמתך.", "change_password_error": "הייתה בעיה בשינוי סיסמתך.",
"changed_password": "סיסמה שונתה בהצלחה!", "changed_password": "סיסמה שונתה בהצלחה!",
"collapse_subject": "מזער הודעות עם נושאים", "collapse_subject": "מזער הודעות עם נושאים",
"composing": "מרכיב",
"confirm_new_password": "אשר סיסמה", "confirm_new_password": "אשר סיסמה",
"current_avatar": "תמונת הפרופיל הנוכחית שלך", "current_avatar": "תמונת הפרופיל הנוכחית שלך",
"current_password": "סיסמה נוכחית", "current_password": "סיסמה נוכחית",
@ -98,21 +172,35 @@
"delete_account_description": "מחק לצמיתות את המשתמש שלך ואת כל הודעותיך.", "delete_account_description": "מחק לצמיתות את המשתמש שלך ואת כל הודעותיך.",
"delete_account_error": "הייתה בעיה במחיקת המשתמש. אם זה ממשיך, אנא עדכן את מנהל השרת שלך.", "delete_account_error": "הייתה בעיה במחיקת המשתמש. אם זה ממשיך, אנא עדכן את מנהל השרת שלך.",
"delete_account_instructions": "הכנס את סיסמתך בקלט למטה על מנת לאשר מחיקת משתמש.", "delete_account_instructions": "הכנס את סיסמתך בקלט למטה על מנת לאשר מחיקת משתמש.",
"avatar_size_instruction": "הגודל המינימלי המומלץ לתמונות פרופיל הוא 150x150 פיקסלים.",
"export_theme": "שמור ערכים", "export_theme": "שמור ערכים",
"filtering": "סינון", "filtering": "סינון",
"filtering_explanation": "כל הסטטוסים הכוללים את המילים הללו יושתקו, אחד לשורה", "filtering_explanation": "כל הסטטוסים הכוללים את המילים הללו יושתקו, אחד לשורה",
"follow_export": "יצוא עקיבות", "follow_export": "יצוא עקיבות",
"follow_export_button": "ייצא את הנעקבים שלך לקובץ csv", "follow_export_button": "ייצא את הנעקבים שלך לקובץ csv",
"follow_export_processing": "טוען. בקרוב תתבקש להוריד את הקובץ את הקובץ שלך",
"follow_import": "יבוא עקיבות", "follow_import": "יבוא עקיבות",
"follow_import_error": "שגיאה בייבוא נעקבים.", "follow_import_error": "שגיאה בייבוא נעקבים.",
"follows_imported": "נעקבים יובאו! ייקח זמן מה לעבד אותם.", "follows_imported": "נעקבים יובאו! ייקח זמן מה לעבד אותם.",
"foreground": "חזית", "foreground": "חזית",
"general": "כללי",
"hide_attachments_in_convo": "החבא צירופים בשיחות", "hide_attachments_in_convo": "החבא צירופים בשיחות",
"hide_attachments_in_tl": "החבא צירופים בציר הזמן", "hide_attachments_in_tl": "החבא צירופים בציר הזמן",
"hide_muted_posts": "הסתר הודעות של משתמשים מושתקים",
"max_thumbnails": "מספר מירבי של תמונות ממוזערות להודעה",
"hide_isp": "הסתר פאנל-צד",
"preload_images": "טען תמונות מראש",
"use_one_click_nsfw": "פתח תמונות לא-בטוחות-לעבודה עם לחיצה אחת בלבד",
"hide_post_stats": "הסתר נתוני הודעה (למשל, מספר החזרות)",
"hide_user_stats": "הסתר נתוני משתמש (למשל, מספר העוקבים)",
"hide_filtered_statuses": "מסתר סטטוסים מסוננים",
"import_blocks_from_a_csv_file": "ייבא חסימות מקובץ csv",
"import_followers_from_a_csv_file": "ייבא את הנעקבים שלך מקובץ csv", "import_followers_from_a_csv_file": "ייבא את הנעקבים שלך מקובץ csv",
"import_theme": "טען ערכים", "import_theme": "טען ערכים",
"inputRadius": "שדות קלט", "inputRadius": "שדות קלט",
"checkboxRadius": "תיבות סימון",
"instance_default": "(default: {value})",
"instance_default_simple": "(default)",
"interface": "ממשק",
"interfaceLanguage": "שפת הממשק", "interfaceLanguage": "שפת הממשק",
"invalid_theme_imported": "הקובץ הנבחר אינו תמה הנתמכת ע\"י פלרומה. שום שינויים לא נעשו לתמה שלך.", "invalid_theme_imported": "הקובץ הנבחר אינו תמה הנתמכת ע\"י פלרומה. שום שינויים לא נעשו לתמה שלך.",
"limited_availability": "לא זמין בדפדפן שלך", "limited_availability": "לא זמין בדפדפן שלך",
@ -120,6 +208,9 @@
"lock_account_description": "הגבל את המשתמש לעוקבים מאושרים בלבד", "lock_account_description": "הגבל את המשתמש לעוקבים מאושרים בלבד",
"loop_video": "נגן סרטונים ללא הפסקה", "loop_video": "נגן סרטונים ללא הפסקה",
"loop_video_silent_only": "נגן רק סרטונים חסרי קול ללא הפסקה", "loop_video_silent_only": "נגן רק סרטונים חסרי קול ללא הפסקה",
"mutes_tab": "השתקות",
"play_videos_in_modal": "נגן סרטונים ישירות בנגן המדיה",
"use_contain_fit": "אל תחתוך את הצירוף בתמונות הממוזערות",
"name": "שם", "name": "שם",
"name_bio": "שם ואודות", "name_bio": "שם ואודות",
"new_password": "סיסמה חדשה", "new_password": "סיסמה חדשה",
@ -128,6 +219,13 @@
"notification_visibility_likes": "לייקים", "notification_visibility_likes": "לייקים",
"notification_visibility_mentions": "אזכורים", "notification_visibility_mentions": "אזכורים",
"notification_visibility_repeats": "חזרות", "notification_visibility_repeats": "חזרות",
"no_rich_text_description": "הסר פורמט טקסט עשיר מכל ההודעות",
"no_blocks": "ללא חסימות",
"no_mutes": "ללא השתקות",
"hide_follows_description": "אל תראה אחרי מי אני עוקב",
"hide_followers_description": "אל תראה מי עוקב אחרי",
"show_admin_badge": "הראה סמל מנהל בפרופיל שלי",
"show_moderator_badge": "הראה סמל צוות בפרופיל שלי",
"nsfw_clickthrough": "החל החבאת צירופים לא בטוחים לצפיה בעת עבודה בעזרת לחיצת עכבר", "nsfw_clickthrough": "החל החבאת צירופים לא בטוחים לצפיה בעת עבודה בעזרת לחיצת עכבר",
"oauth_tokens": "אסימוני OAuth", "oauth_tokens": "אסימוני OAuth",
"token": "אסימון", "token": "אסימון",
@ -146,18 +244,43 @@
"reply_visibility_all": "הראה את כל התגובות", "reply_visibility_all": "הראה את כל התגובות",
"reply_visibility_following": "הראה תגובות שמופנות אליי או לעקובים שלי בלבד", "reply_visibility_following": "הראה תגובות שמופנות אליי או לעקובים שלי בלבד",
"reply_visibility_self": "הראה תגובות שמופנות אליי בלבד", "reply_visibility_self": "הראה תגובות שמופנות אליי בלבד",
"autohide_floating_post_button": "החבא אוטומטית את הכפתור הודעה חדשה (נייד)",
"saving_err": "שגיאה בשמירת הגדרות",
"saving_ok": "הגדרות נשמרו",
"search_user_to_block": "חפש משתמש לחסימה",
"search_user_to_mute": "חפש משתמש להשתקה",
"security_tab": "ביטחון", "security_tab": "ביטחון",
"scope_copy": "העתק תחום הודעה בתגובה להודעה (הודעות ישירות תמיד מועתקות)",
"minimal_scopes_mode": "צמצם אפשרויות בחירה לתחום הודעה",
"set_new_avatar": "קבע תמונת פרופיל חדשה", "set_new_avatar": "קבע תמונת פרופיל חדשה",
"set_new_profile_background": "קבע רקע פרופיל חדש", "set_new_profile_background": "קבע רקע פרופיל חדש",
"set_new_profile_banner": "קבע כרזת פרופיל חדשה", "set_new_profile_banner": "קבע כרזת פרופיל חדשה",
"settings": "הגדרות", "settings": "הגדרות",
"subject_input_always_show": "תמיד הראה את שדה הנושא",
"subject_line_behavior": "העתק נושא בתגובה",
"subject_line_email": "כמו אימייל: \"re: נושא\"",
"subject_line_mastodon": "כמו מסטודון: העתק כפי שזה",
"subject_line_noop": "אל תעתיק",
"post_status_content_type": "שלח את סוג תוכן ההודעה",
"stop_gifs": "נגן-בעת-ריחוף GIFs", "stop_gifs": "נגן-בעת-ריחוף GIFs",
"streaming": "החל זרימת הודעות אוטומטית בעת גלילה למעלה הדף", "streaming": "החל זרימת הודעות אוטומטית בעת גלילה למעלה הדף",
"text": "טקסט", "text": "טקסט",
"theme": "תמה", "theme": "תמה",
"theme_help": "השתמש בקודי צבע הקס (#אדום-אדום-ירוק-ירוק-כחול-כחול) על מנת להתאים אישית את תמת הצבע שלך.", "theme_help": "השתמש בקודי צבע הקס (#אדום-אדום-ירוק-ירוק-כחול-כחול) על מנת להתאים אישית את תמת הצבע שלך.",
"tooltipRadius": "טולטיפ \\ התראות", "tooltipRadius": "טולטיפ \\ התראות",
"user_settings": "הגדרות משתמש" "upload_a_photo": "העלה תמונה",
"user_settings": "הגדרות משתמש",
"values": {
"false": "לא",
"true": "כן"
},
"notifications": "התראות",
"enable_web_push_notifications": "אפשר התראות web push",
"version": {
"title": "גרסה",
"backend_version": "גרסת קצה אחורי",
"frontend_version": "גרסת קצה קדמי"
}
}, },
"timeline": { "timeline": {
"collapse": "מוטט", "collapse": "מוטט",
@ -167,29 +290,107 @@
"no_retweet_hint": "ההודעה מסומנת כ\"לעוקבים-בלבד\" ולא ניתן לחזור עליה", "no_retweet_hint": "ההודעה מסומנת כ\"לעוקבים-בלבד\" ולא ניתן לחזור עליה",
"repeated": "חזר", "repeated": "חזר",
"show_new": "הראה חדש", "show_new": "הראה חדש",
"up_to_date": "עדכני" "up_to_date": "עדכני",
"no_more_statuses": "אין עוד סטטוסים",
"no_statuses": "אין סטטוסים"
},
"status": {
"favorites": "מועדפים",
"repeats": "חזרות",
"delete": "מחק סטטוס",
"pin": "הצמד לפרופיל",
"unpin": "הסר הצמדה מהפרופיל",
"pinned": "מוצמד",
"delete_confirm": "האם באמת למחוק סטטוס זה?",
"reply_to": "הגב ל",
"replies_list": "תגובות:"
}, },
"user_card": { "user_card": {
"approve": "אשר", "approve": "אשר",
"block": "חסימה", "block": "חסימה",
"blocked": "חסום!", "blocked": "חסום!",
"deny": "דחה", "deny": "דחה",
"favorites": "מועדפים",
"follow": "עקוב", "follow": "עקוב",
"follow_sent": "בקשה נשלחה!",
"follow_progress": "מבקש...",
"follow_again": "שלח בקשה שוב?",
"follow_unfollow": "בטל עקיבה",
"followees": "נעקבים", "followees": "נעקבים",
"followers": "עוקבים", "followers": "עוקבים",
"following": "עוקב!", "following": "עוקב!",
"follows_you": "עוקב אחריך!", "follows_you": "עוקב אחריך!",
"its_you": "זה אתה!",
"media": "מדיה",
"mute": "השתק", "mute": "השתק",
"muted": "מושתק", "muted": "מושתק",
"per_day": "ליום", "per_day": "ליום",
"remote_follow": "עקיבה מרחוק", "remote_follow": "עקיבה מרחוק",
"statuses": "סטטוסים" "report": "דווח",
"statuses": "סטטוסים",
"unblock": "הסר חסימה",
"unblock_progress": "מסיר חסימה...",
"block_progress": "חוסם...",
"unmute": "הסר השתקה",
"unmute_progress": "מסיר השתקה...",
"mute_progress": "משתיק...",
"admin_menu": {
"moderation": "ניהול (צוות)",
"grant_admin": "הפוך למנהל",
"revoke_admin": "הסר מנהל",
"grant_moderator": "הפוך לצוות",
"revoke_moderator": "הסר צוות",
"activate_account": "הפעל משתמש",
"deactivate_account": "השבת משתמש",
"delete_account": "מחק משתמש",
"force_nsfw": "סמן את כל ההודעות בתור לא-מתאימות-לעבודה",
"strip_media": "הסר מדיה מההודעות",
"force_unlisted": "הפוך הודעות ללא רשומות",
"sandbox": "הפוך הודעות לנראות לעוקבים-בלבד",
"disable_remote_subscription": "אל תאפשר עקיבה של המשתמש מאינסטנס אחר",
"disable_any_subscription": "אל תאפשר עקיבה של המשתמש בכלל",
"quarantine": "אל תאפשר פדרציה של ההודעות של המשתמש",
"delete_user": "מחק משתמש",
"delete_user_confirmation": "בטוח? פעולה זו הינה בלתי הפיכה."
}
}, },
"user_profile": { "user_profile": {
"timeline_title": "ציר זמן המשתמש" "timeline_title": "ציר זמן המשתמש",
"profile_does_not_exist": "סליחה, פרופיל זה אינו קיים.",
"profile_loading_error": "סליחה, הייתה שגיאה בטעינת הפרופיל."
},
"user_reporting": {
"title": "מדווח על {0}",
"add_comment_description": "הדיווח ישלח לצוות האינסטנס. אפשר להסביר למה הנך מדווחים על משתמש זה למטה:",
"additional_comments": "תגובות נוספות",
"forward_description": "המשתמש משרת אחר. לשלוח לשם עותק של הדיווח?",
"forward_to": "העבר ל {0}",
"submit": "הגש",
"generic_error": "קרתה שגיאה בעת עיבוד הבקשה."
}, },
"who_to_follow": { "who_to_follow": {
"more": "עוד", "more": "עוד",
"who_to_follow": "אחרי מי לעקוב" "who_to_follow": "אחרי מי לעקוב"
},
"tool_tip": {
"media_upload": "העלה מדיה",
"repeat": "חזור",
"reply": "הגב",
"favorite": "מועדף",
"user_settings": "הגדרות משתמש"
},
"upload":{
"error": {
"base": "העלאה נכשלה.",
"file_too_big": "קובץ גדול מדי [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",
"default": "נסה שוב אחר כך"
},
"file_size_units": {
"B": "B",
"KiB": "KiB",
"MiB": "MiB",
"GiB": "GiB",
"TiB": "TiB"
}
} }
} }

View file

@ -2,6 +2,10 @@
"chat": { "chat": {
"title": "チャット" "title": "チャット"
}, },
"exporter": {
"export": "エクスポート",
"processing": "おまちください。しばらくすると、あなたのファイルをダウンロードするように、メッセージがでます。"
},
"features_panel": { "features_panel": {
"chat": "チャット", "chat": "チャット",
"gopher": "Gopher", "gopher": "Gopher",
@ -19,7 +23,22 @@
"apply": "てきよう", "apply": "てきよう",
"submit": "そうしん", "submit": "そうしん",
"more": "つづき", "more": "つづき",
"generic_error": "エラーになりました" "generic_error": "エラーになりました",
"optional": "かかなくてもよい",
"show_more": "つづきをみる",
"show_less": "たたむ",
"cancel": "キャンセル"
},
"image_cropper": {
"crop_picture": "がぞうをきりぬく",
"save": "セーブ",
"save_without_cropping": "きりぬかずにセーブ",
"cancel": "キャンセル"
},
"importer": {
"submit": "そうしん",
"success": "インポートできました。",
"error": "インポートがエラーになりました。"
}, },
"login": { "login": {
"login": "ログイン", "login": "ログイン",
@ -31,12 +50,17 @@
"username": "ユーザーめい", "username": "ユーザーめい",
"hint": "はなしあいにくわわるには、ログインしてください" "hint": "はなしあいにくわわるには、ログインしてください"
}, },
"media_modal": {
"previous": "まえ",
"next": "つぎ"
},
"nav": { "nav": {
"about": "これはなに?", "about": "これはなに?",
"back": "もどる", "back": "もどる",
"chat": "ローカルチャット", "chat": "ローカルチャット",
"friend_requests": "フォローリクエスト", "friend_requests": "フォローリクエスト",
"mentions": "メンション", "mentions": "メンション",
"interactions": "やりとり",
"dms": "ダイレクトメッセージ", "dms": "ダイレクトメッセージ",
"public_tl": "パブリックタイムライン", "public_tl": "パブリックタイムライン",
"timeline": "タイムライン", "timeline": "タイムライン",
@ -55,18 +79,33 @@
"repeated_you": "あなたのステータスがリピートされました", "repeated_you": "あなたのステータスがリピートされました",
"no_more_notifications": "つうちはありません" "no_more_notifications": "つうちはありません"
}, },
"interactions": {
"favs_repeats": "リピートとおきにいり",
"follows": "あたらしいフォロー",
"load_older": "ふるいやりとりをみる"
},
"post_status": { "post_status": {
"new_status": "とうこうする", "new_status": "とうこうする",
"account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。", "account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。",
"account_not_locked_warning_link": "ロックされたアカウント", "account_not_locked_warning_link": "ロックされたアカウント",
"attachments_sensitive": "ファイルをNSFWにする", "attachments_sensitive": "ファイルをNSFWにする",
"content_type": { "content_type": {
"text/plain": "プレーンテキスト" "text/plain": "プレーンテキスト",
"text/html": "HTML",
"text/markdown": "Markdown",
"text/bbcode": "BBCode"
}, },
"content_warning": "せつめい (かかなくてもよい)", "content_warning": "せつめい (かかなくてもよい)",
"default": "はねだくうこうに、つきました。", "default": "はねだくうこうに、つきました。",
"direct_warning_to_all": "このとうこうは、メンションされたすべてのユーザーが、みることができます。",
"direct_warning_to_first_only": "このとうこうは、メッセージのはじめでメンションされたユーザーだけが、みることができます。",
"direct_warning": "このステータスは、メンションされたユーザーだけが、よむことができます。", "direct_warning": "このステータスは、メンションされたユーザーだけが、よむことができます。",
"posting": "とうこう", "posting": "とうこう",
"scope_notice": {
"public": "このとうこうは、だれでもみることができます",
"private": "このとうこうは、あなたのフォロワーだけが、みることができます",
"unlisted": "このとうこうは、パブリックタイムラインと、つながっているすべてのネットワークでは、みることができません"
},
"scope": { "scope": {
"direct": "ダイレクト: メンションされたユーザーのみにとどきます。", "direct": "ダイレクト: メンションされたユーザーのみにとどきます。",
"private": "フォロワーげんてい: フォロワーのみにとどきます。", "private": "フォロワーげんてい: フォロワーのみにとどきます。",
@ -83,6 +122,9 @@
"token": "しょうたいトークン", "token": "しょうたいトークン",
"captcha": "CAPTCHA", "captcha": "CAPTCHA",
"new_captcha": "もじがよめないときは、がぞうをクリックすると、あたらしいがぞうになります", "new_captcha": "もじがよめないときは、がぞうをクリックすると、あたらしいがぞうになります",
"username_placeholder": "れい: lain",
"fullname_placeholder": "れい: いわくら れいん",
"bio_placeholder": "れい:\nごきげんよう。わたしはれいん。\nわたしはアニメのおんなのこで、にほんのベッドタウンにすんでいます。ワイヤードで、わたしにあったことが、あるかもしれませんね。",
"validations": { "validations": {
"username_required": "なにかかいてください", "username_required": "なにかかいてください",
"fullname_required": "なにかかいてください", "fullname_required": "なにかかいてください",
@ -92,7 +134,11 @@
"password_confirmation_match": "パスワードがちがいます" "password_confirmation_match": "パスワードがちがいます"
} }
}, },
"selectable_list": {
"select_all": "すべてえらぶ"
},
"settings": { "settings": {
"app_name": "アプリのなまえ",
"attachmentRadius": "ファイル", "attachmentRadius": "ファイル",
"attachments": "ファイル", "attachments": "ファイル",
"autoload": "したにスクロールしたとき、じどうてきによみこむ。", "autoload": "したにスクロールしたとき、じどうてきによみこむ。",
@ -101,6 +147,12 @@
"avatarRadius": "アバター", "avatarRadius": "アバター",
"background": "バックグラウンド", "background": "バックグラウンド",
"bio": "プロフィール", "bio": "プロフィール",
"block_export": "ブロックのエクスポート",
"block_export_button": "ブロックをCSVファイルにエクスポート",
"block_import": "ブロックのインポート",
"block_import_error": "ブロックのインポートがエラーになりました",
"blocks_imported": "ブロックをインポートしました! じっさいにブロックするまでには、もうしばらくかかります。",
"blocks_tab": "ブロック",
"btnRadius": "ボタン", "btnRadius": "ボタン",
"cBlue": "リプライとフォロー", "cBlue": "リプライとフォロー",
"cGreen": "リピート", "cGreen": "リピート",
@ -135,12 +187,15 @@
"general": "ぜんぱん", "general": "ぜんぱん",
"hide_attachments_in_convo": "スレッドのファイルをかくす", "hide_attachments_in_convo": "スレッドのファイルをかくす",
"hide_attachments_in_tl": "タイムラインのファイルをかくす", "hide_attachments_in_tl": "タイムラインのファイルをかくす",
"hide_muted_posts": "ミュートしたユーザーのとうこうをかくす",
"max_thumbnails": "ひとつのとうこうにいれられるサムネイルのかず",
"hide_isp": "インスタンススペシフィックパネルをかくす", "hide_isp": "インスタンススペシフィックパネルをかくす",
"preload_images": "がぞうをさきよみする", "preload_images": "がぞうをさきよみする",
"use_one_click_nsfw": "NSFWなファイルを1クリックでひらく", "use_one_click_nsfw": "NSFWなファイルを1クリックでひらく",
"hide_post_stats": "とうこうのとうけいをかくす (れい: おきにいりのかず)", "hide_post_stats": "とうこうのとうけいをかくす (れい: おきにいりのかず)",
"hide_user_stats": "ユーザーのとうけいをかくす (れい: フォロワーのかず)", "hide_user_stats": "ユーザーのとうけいをかくす (れい: フォロワーのかず)",
"hide_filtered_statuses": "フィルターされたとうこうをかくす", "hide_filtered_statuses": "フィルターされたとうこうをかくす",
"import_blocks_from_a_csv_file": "CSVファイルからブロックをインポートする",
"import_followers_from_a_csv_file": "CSVファイルからフォローをインポートする", "import_followers_from_a_csv_file": "CSVファイルからフォローをインポートする",
"import_theme": "ロード", "import_theme": "ロード",
"inputRadius": "インプットフィールド", "inputRadius": "インプットフィールド",
@ -155,6 +210,7 @@
"lock_account_description": "あなたがみとめたひとだけ、あなたのアカウントをフォローできる", "lock_account_description": "あなたがみとめたひとだけ、あなたのアカウントをフォローできる",
"loop_video": "ビデオをくりかえす", "loop_video": "ビデオをくりかえす",
"loop_video_silent_only": "おとのないビデオだけくりかえす", "loop_video_silent_only": "おとのないビデオだけくりかえす",
"mutes_tab": "ミュート",
"play_videos_in_modal": "ビデオをメディアビューアーでみる", "play_videos_in_modal": "ビデオをメディアビューアーでみる",
"use_contain_fit": "がぞうのサムネイルを、きりぬかない", "use_contain_fit": "がぞうのサムネイルを、きりぬかない",
"name": "なまえ", "name": "なまえ",
@ -166,16 +222,18 @@
"notification_visibility_mentions": "メンション", "notification_visibility_mentions": "メンション",
"notification_visibility_repeats": "リピート", "notification_visibility_repeats": "リピート",
"no_rich_text_description": "リッチテキストをつかわない", "no_rich_text_description": "リッチテキストをつかわない",
"no_blocks": "ブロックしていません",
"no_mutes": "ミュートしていません",
"hide_follows_description": "フォローしているひとをみせない", "hide_follows_description": "フォローしているひとをみせない",
"hide_followers_description": "フォロワーをみせない", "hide_followers_description": "フォロワーをみせない",
"show_admin_badge": "アドミンのしるしをみる", "show_admin_badge": "アドミンのしるしをみる",
"show_moderator_badge": "モデレーターのしるしをみる", "show_moderator_badge": "モデレーターのしるしをみる",
"nsfw_clickthrough": "NSFWなファイルをかくす", "nsfw_clickthrough": "NSFWなファイルをかくす",
"oauth_tokens": "OAuthトークン", "oauth_tokens": "OAuthトークン",
"token": "トークン", "token": "トークン",
"refresh_token": "トークンを更新", "refresh_token": "トークンをリフレッシュ",
"valid_until": "まで有効", "valid_until": "おわりのとき",
"revoke_token": "取り消す", "revoke_token": "とりけす",
"panelRadius": "パネル", "panelRadius": "パネル",
"pause_on_unfocused": "タブにフォーカスがないときストリーミングをとめる", "pause_on_unfocused": "タブにフォーカスがないときストリーミングをとめる",
"presets": "プリセット", "presets": "プリセット",
@ -188,10 +246,14 @@
"reply_visibility_all": "すべてのリプライをみる", "reply_visibility_all": "すべてのリプライをみる",
"reply_visibility_following": "わたしにあてられたリプライと、フォローしているひとからのリプライをみる", "reply_visibility_following": "わたしにあてられたリプライと、フォローしているひとからのリプライをみる",
"reply_visibility_self": "わたしにあてられたリプライをみる", "reply_visibility_self": "わたしにあてられたリプライをみる",
"autohide_floating_post_button": "あたらしいとうこうのボタンを、じどうてきにかくす (モバイル)",
"saving_err": "せっていをセーブできませんでした", "saving_err": "せっていをセーブできませんでした",
"saving_ok": "せっていをセーブしました", "saving_ok": "せっていをセーブしました",
"search_user_to_block": "ブロックしたいひとを、ここでけんさくできます",
"search_user_to_mute": "ミュートしたいひとを、ここでけんさくできます",
"security_tab": "セキュリティ", "security_tab": "セキュリティ",
"scope_copy": "リプライするとき、こうかいはんいをコピーする (DMのこうかいはんいは、つねにコピーされます)", "scope_copy": "リプライするとき、こうかいはんいをコピーする (DMのこうかいはんいは、つねにコピーされます)",
"minimal_scopes_mode": "こうかいはんいせんたくオプションを、ちいさくする",
"set_new_avatar": "あたらしいアバターをせっていする", "set_new_avatar": "あたらしいアバターをせっていする",
"set_new_profile_background": "あたらしいプロフィールのバックグラウンドをせっていする", "set_new_profile_background": "あたらしいプロフィールのバックグラウンドをせっていする",
"set_new_profile_banner": "あたらしいプロフィールバナーを設定する", "set_new_profile_banner": "あたらしいプロフィールバナーを設定する",
@ -209,6 +271,7 @@
"theme_help": "カラーテーマをカスタマイズできます", "theme_help": "カラーテーマをカスタマイズできます",
"theme_help_v2_1": "チェックボックスをONにすると、コンポーネントごとに、いろと、とうめいどを、オーバーライドできます。「すべてクリア」ボタンをおすと、すべてのオーバーライドを、やめます。", "theme_help_v2_1": "チェックボックスをONにすると、コンポーネントごとに、いろと、とうめいどを、オーバーライドできます。「すべてクリア」ボタンをおすと、すべてのオーバーライドを、やめます。",
"theme_help_v2_2": "バックグラウンドとテキストのコントラストをあらわすアイコンがあります。マウスをホバーすると、くわしいせつめいがでます。とうめいないろをつかっているときは、もっともわるいばあいのコントラストがしめされます。", "theme_help_v2_2": "バックグラウンドとテキストのコントラストをあらわすアイコンがあります。マウスをホバーすると、くわしいせつめいがでます。とうめいないろをつかっているときは、もっともわるいばあいのコントラストがしめされます。",
"upload_a_photo": "がぞうをアップロード",
"tooltipRadius": "ツールチップとアラート", "tooltipRadius": "ツールチップとアラート",
"user_settings": "ユーザーせってい", "user_settings": "ユーザーせってい",
"values": { "values": {
@ -216,6 +279,13 @@
"true": "はい" "true": "はい"
}, },
"notifications": "つうち", "notifications": "つうち",
"notification_setting": "つうちをうけとる:",
"notification_setting_follows": "あなたがフォローしているひとから",
"notification_setting_non_follows": "あなたがフォローしていないひとから",
"notification_setting_followers": "あなたをフォローしているひとから",
"notification_setting_non_followers": "あなたをフォローしていないひとから",
"notification_mutes": "あるユーザーからのつうちをとめるには、ミュートしてください。",
"notification_blocks": "ブロックしているユーザーからのつうちは、すべてとまります。",
"enable_web_push_notifications": "ウェブプッシュつうちをゆるす", "enable_web_push_notifications": "ウェブプッシュつうちをゆるす",
"style": { "style": {
"switcher": { "switcher": {
@ -325,6 +395,11 @@
"checkbox": "りようきやくを、よみました", "checkbox": "りようきやくを、よみました",
"link": "ハイパーリンク" "link": "ハイパーリンク"
} }
},
"version": {
"title": "バージョン",
"backend_version": "バックエンドのバージョン",
"frontend_version": "フロントエンドのバージョン"
} }
}, },
"timeline": { "timeline": {
@ -336,7 +411,19 @@
"repeated": "リピート", "repeated": "リピート",
"show_new": "よみこみ", "show_new": "よみこみ",
"up_to_date": "さいしん", "up_to_date": "さいしん",
"no_more_statuses": "これでおわりです" "no_more_statuses": "これでおわりです",
"no_statuses": "ありません"
},
"status": {
"favorites": "おきにいり",
"repeats": "リピート",
"delete": "ステータスをけす",
"pin": "プロフィールにピンどめする",
"unpin": "プロフィールにピンどめするのをやめる",
"pinned": "ピンどめ",
"delete_confirm": "ほんとうに、このステータスを、けしてもいいですか?",
"reply_to": "へんしん:",
"replies_list": "へんしん:"
}, },
"user_card": { "user_card": {
"approve": "うけいれ", "approve": "うけいれ",
@ -359,10 +446,47 @@
"muted": "ミュートしています!", "muted": "ミュートしています!",
"per_day": "/日", "per_day": "/日",
"remote_follow": "リモートフォロー", "remote_follow": "リモートフォロー",
"statuses": "ステータス" "report": "つうほう",
"statuses": "ステータス",
"unblock": "ブロックをやめる",
"unblock_progress": "ブロックをとりけしています...",
"block_progress": "ブロックしています...",
"unmute": "ミュートをやめる",
"unmute_progress": "ミュートをとりけしています...",
"mute_progress": "ミュートしています...",
"admin_menu": {
"moderation": "モデレーション",
"grant_admin": "アドミンにする",
"revoke_admin": "アドミンをやめさせる",
"grant_moderator": "モデレーターにする",
"revoke_moderator": "モデレーターをやめさせる",
"activate_account": "アカウントをアクティブにする",
"deactivate_account": "アカウントをアクティブでなくする",
"delete_account": "アカウントをけす",
"force_nsfw": "すべてのとうこうをNSFWにする",
"strip_media": "とうこうからメディアをなくす",
"force_unlisted": "とうこうをアンリステッドにする",
"sandbox": "とうこうをフォロワーのみにする",
"disable_remote_subscription": "ほかのインスタンスからフォローされないようにする",
"disable_any_subscription": "フォローされないようにする",
"quarantine": "ほかのインスタンスのユーザーのとうこうをとめる",
"delete_user": "ユーザーをけす",
"delete_user_confirmation": "あなたは、ほんとうに、きはたしかですか? これは、とりけすことが、できません。"
}
}, },
"user_profile": { "user_profile": {
"timeline_title": "ユーザータイムライン" "timeline_title": "ユーザータイムライン",
"profile_does_not_exist": "ごめんなさい。このプロフィールは、そんざいしません。",
"profile_loading_error": "ごめんなさい。プロフィールのロードがエラーになりました。"
},
"user_reporting": {
"title": "つうほうする: {0}",
"add_comment_description": "このつうほうは、あなたのインスタンスのモデレーターに、おくられます。このアカウントを、つうほうするりゆうを、せつめいすることができます:",
"additional_comments": "ついかのコメント",
"forward_description": "このアカウントは、ほかのインスタンスのものです。そのインスタンスにも、このつうほうのコピーを、おくりますか?",
"forward_to": "コピーをおくる: {0}",
"submit": "そうしん",
"generic_error": "あなたのリクエストをうけつけようとしましたが、エラーになってしまいました。"
}, },
"who_to_follow": { "who_to_follow": {
"more": "くわしく", "more": "くわしく",

516
src/i18n/ja_pedantic.json Normal file
View file

@ -0,0 +1,516 @@
{
"chat": {
"title": "チャット"
},
"exporter": {
"export": "エクスポート",
"processing": "処理中です。処理が完了すると、ファイルをダウンロードするよう指示があります。"
},
"features_panel": {
"chat": "チャット",
"gopher": "Gopher",
"media_proxy": "メディアプロクシ",
"scope_options": "公開範囲選択",
"text_limit": "文字の数",
"title": "有効な機能",
"who_to_follow": "おすすめユーザー"
},
"finder": {
"error_fetching_user": "ユーザー検索がエラーになりました。",
"find_user": "ユーザーを探す"
},
"general": {
"apply": "適用",
"submit": "送信",
"more": "続き",
"generic_error": "エラーになりました",
"optional": "省略可",
"show_more": "もっと見る",
"show_less": "たたむ",
"cancel": "キャンセル"
},
"image_cropper": {
"crop_picture": "画像を切り抜く",
"save": "保存",
"save_without_cropping": "切り抜かずに保存",
"cancel": "キャンセル"
},
"importer": {
"submit": "送信",
"success": "正常にインポートされました。",
"error": "このファイルをインポートするとき、エラーが発生しました。"
},
"login": {
"login": "ログイン",
"description": "OAuthでログイン",
"logout": "ログアウト",
"password": "パスワード",
"placeholder": "例: lain",
"register": "登録",
"username": "ユーザー名",
"hint": "会話に加わるには、ログインしてください"
},
"media_modal": {
"previous": "前",
"next": "次"
},
"nav": {
"about": "このインスタンスについて",
"back": "戻る",
"chat": "ローカルチャット",
"friend_requests": "フォローリクエスト",
"mentions": "通知",
"interactions": "インタラクション",
"dms": "ダイレクトメッセージ",
"public_tl": "パブリックタイムライン",
"timeline": "タイムライン",
"twkn": "接続しているすべてのネットワーク",
"user_search": "ユーザーを探す",
"who_to_follow": "おすすめユーザー",
"preferences": "設定"
},
"notifications": {
"broken_favorite": "ステータスが見つかりません。探しています...",
"favorited_you": "あなたのステータスがお気に入りされました",
"followed_you": "フォローされました",
"load_older": "古い通知をみる",
"notifications": "通知",
"read": "読んだ!",
"repeated_you": "あなたのステータスがリピートされました",
"no_more_notifications": "通知はありません"
},
"interactions": {
"favs_repeats": "リピートとお気に入り",
"follows": "新しいフォロワー",
"load_older": "古いインタラクションを見る"
},
"post_status": {
"new_status": "投稿する",
"account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、誰でも、フォロワー限定のステータスを読むことができます。",
"account_not_locked_warning_link": "ロックされたアカウント",
"attachments_sensitive": "ファイルをNSFWにする",
"content_type": {
"text/plain": "プレーンテキスト",
"text/html": "HTML",
"text/markdown": "Markdown",
"text/bbcode": "BBCode"
},
"content_warning": "説明 (省略可)",
"default": "羽田空港に着きました。",
"direct_warning_to_all": "この投稿は、メンションされたすべてのユーザーが、見ることができます。",
"direct_warning_to_first_only": "この投稿は、メッセージの冒頭でメンションされたユーザーだけが、見ることができます。",
"direct_warning": "このステータスは、メンションされたユーザーだけが、読むことができます。",
"posting": "投稿",
"scope_notice": {
"public": "この投稿は、誰でも見ることができます",
"private": "この投稿は、あなたのフォロワーだけが、見ることができます。",
"unlisted": "この投稿は、パブリックタイムラインと、接続しているすべてのネットワークには、表示されません。"
},
"scope": {
"direct": "ダイレクト: メンションされたユーザーのみに届きます。",
"private": "フォロワーげんてい: フォロワーのみに届きます。",
"public": "パブリック: パブリックタイムラインに届きます。",
"unlisted": "アンリステッド: パブリックタイムラインに届きません。"
}
},
"registration": {
"bio": "プロフィール",
"email": "Eメール",
"fullname": "スクリーンネーム",
"password_confirm": "パスワードの確認",
"registration": "登録",
"token": "招待トークン",
"captcha": "CAPTCHA",
"new_captcha": "文字が読めないときは、画像をクリックすると、新しい画像になります",
"username_placeholder": "例: lain",
"fullname_placeholder": "例: 岩倉玲音",
"bio_placeholder": "例:\nこんにちは。私は玲音。\n私はアニメのキャラクターで、日本の郊外に住んでいます。私をWiredで見たことがあるかもしれません。",
"validations": {
"username_required": "必須",
"fullname_required": "必須",
"email_required": "必須",
"password_required": "必須",
"password_confirmation_required": "必須",
"password_confirmation_match": "パスワードが違います"
}
},
"selectable_list": {
"select_all": "すべて選択"
},
"settings": {
"app_name": "アプリの名称",
"attachmentRadius": "ファイル",
"attachments": "ファイル",
"autoload": "下にスクロールしたとき、自動的に読み込む。",
"avatar": "アバター",
"avatarAltRadius": "通知のアバター",
"avatarRadius": "アバター",
"background": "バックグラウンド",
"bio": "プロフィール",
"block_export": "ブロックのエクスポート",
"block_export_button": "ブロックをCSVファイルにエクスポートする",
"block_import": "ブロックのインポート",
"block_import_error": "ブロックのインポートに失敗しました",
"blocks_imported": "ブロックをインポートしました! 実際に処理されるまでに、しばらく時間がかかります。",
"blocks_tab": "ブロック",
"btnRadius": "ボタン",
"cBlue": "返信とフォロー",
"cGreen": "リピート",
"cOrange": "お気に入り",
"cRed": "キャンセル",
"change_password": "パスワードを変える",
"change_password_error": "パスワードを変えることが、できなかったかもしれません。",
"changed_password": "パスワードが、変わりました!",
"collapse_subject": "説明のある投稿をたたむ",
"composing": "投稿",
"confirm_new_password": "新しいパスワードの確認",
"current_avatar": "現在のアバター",
"current_password": "現在のパスワード",
"current_profile_banner": "現在のプロフィールバナー",
"data_import_export_tab": "インポートとエクスポート",
"default_vis": "デフォルトの公開範囲",
"delete_account": "アカウントを消す",
"delete_account_description": "あなたのアカウントとメッセージが、消えます。",
"delete_account_error": "アカウントを消すことが、できなかったかもしれません。インスタンスの管理者に、連絡してください。",
"delete_account_instructions": "本当にアカウントを消してもいいなら、パスワードを入力してください。",
"avatar_size_instruction": "アバターの大きさは、150×150ピクセルか、それよりも大きくするといいです。",
"export_theme": "保存",
"filtering": "フィルタリング",
"filtering_explanation": "これらの言葉を含むすべてのものがミュートされます。1行に1つの言葉を書いてください。",
"follow_export": "フォローのエクスポート",
"follow_export_button": "エクスポート",
"follow_export_processing": "お待ちください。まもなくファイルをダウンロードできます。",
"follow_import": "フォローのインポート",
"follow_import_error": "フォローのインポートがエラーになりました。",
"follows_imported": "フォローがインポートされました! 少し時間がかかるかもしれません。",
"foreground": "フォアグラウンド",
"general": "全般",
"hide_attachments_in_convo": "スレッドのファイルを隠す",
"hide_attachments_in_tl": "タイムラインのファイルを隠す",
"hide_muted_posts": "ミュートしているユーザーの投稿を隠す",
"max_thumbnails": "投稿に含まれるサムネイルの最大数",
"hide_isp": "インスタンス固有パネルを隠す",
"preload_images": "画像を先読みする",
"use_one_click_nsfw": "NSFWなファイルを1クリックで開く",
"hide_post_stats": "投稿の統計を隠す (例: お気に入りの数)",
"hide_user_stats": "ユーザーの統計を隠す (例: フォロワーの数)",
"hide_filtered_statuses": "フィルターされた投稿を隠す",
"import_blocks_from_a_csv_file": "CSVファイルからブロックをインポートする",
"import_followers_from_a_csv_file": "CSVファイルからフォローをインポートする",
"import_theme": "ロード",
"inputRadius": "インプットフィールド",
"checkboxRadius": "チェックボックス",
"instance_default": "(デフォルト: {value})",
"instance_default_simple": "(デフォルト)",
"interface": "インターフェース",
"interfaceLanguage": "インターフェースの言語",
"invalid_theme_imported": "このファイルはPleromaのテーマではありません。テーマは変更されませんでした。",
"limited_availability": "あなたのブラウザではできません",
"links": "リンク",
"lock_account_description": "あなたが認めた人だけ、あなたのアカウントをフォローできる",
"loop_video": "ビデオを繰り返す",
"loop_video_silent_only": "音のないビデオだけ繰り返す",
"mutes_tab": "ミュート",
"play_videos_in_modal": "ビデオをメディアビューアーで見る",
"use_contain_fit": "画像のサムネイルを、切り抜かない",
"name": "名前",
"name_bio": "名前とプロフィール",
"new_password": "新しいパスワード",
"notification_visibility": "表示する通知",
"notification_visibility_follows": "フォロー",
"notification_visibility_likes": "お気に入り",
"notification_visibility_mentions": "メンション",
"notification_visibility_repeats": "リピート",
"no_rich_text_description": "リッチテキストを使わない",
"no_blocks": "ブロックはありません",
"no_mutes": "ミュートはありません",
"hide_follows_description": "フォローしている人を見せない",
"hide_followers_description": "フォロワーを見せない",
"show_admin_badge": "管理者のバッジを見せる",
"show_moderator_badge": "モデレーターのバッジを見せる",
"nsfw_clickthrough": "NSFWなファイルを隠す",
"oauth_tokens": "OAuthトークン",
"token": "トークン",
"refresh_token": "トークンを更新",
"valid_until": "まで有効",
"revoke_token": "取り消す",
"panelRadius": "パネル",
"pause_on_unfocused": "タブにフォーカスがないときストリーミングを止める",
"presets": "プリセット",
"profile_background": "プロフィールのバックグラウンド",
"profile_banner": "プロフィールバナー",
"profile_tab": "プロフィール",
"radii_help": "インターフェースの丸さを設定する。",
"replies_in_timeline": "タイムラインのリプライ",
"reply_link_preview": "カーソルを重ねたとき、リプライのプレビューを見る",
"reply_visibility_all": "すべてのリプライを見る",
"reply_visibility_following": "私に宛てられたリプライと、フォローしている人からのリプライを見る",
"reply_visibility_self": "私に宛てられたリプライを見る",
"autohide_floating_post_button": "新しい投稿ボタンを自動的に隠す (モバイル)",
"saving_err": "設定を保存できませんでした",
"saving_ok": "設定を保存しました",
"search_user_to_block": "ブロックしたいユーザーを検索",
"search_user_to_mute": "ミュートしたいユーザーを検索",
"security_tab": "セキュリティ",
"scope_copy": "返信するとき、公開範囲をコピーする (DMの公開範囲は、常にコピーされます)",
"minimal_scopes_mode": "公開範囲選択オプションを最小にする",
"set_new_avatar": "新しいアバターを設定する",
"set_new_profile_background": "新しいプロフィールのバックグラウンドを設定する",
"set_new_profile_banner": "新しいプロフィールバナーを設定する",
"settings": "設定",
"subject_input_always_show": "サブジェクトフィールドをいつでも表示する",
"subject_line_behavior": "返信するときサブジェクトをコピーする",
"subject_line_email": "メール風: \"re: サブジェクト\"",
"subject_line_mastodon": "マストドン風: そのままコピー",
"subject_line_noop": "コピーしない",
"post_status_content_type": "投稿のコンテントタイプ",
"stop_gifs": "カーソルを重ねたとき、GIFを動かす",
"streaming": "上までスクロールしたとき、自動的にストリーミングする",
"text": "文字",
"theme": "テーマ",
"theme_help": "カラーテーマをカスタマイズできます",
"theme_help_v2_1": "チェックボックスをONにすると、コンポーネントごとに、色と透明度をオーバーライドできます。「すべてクリア」ボタンを押すと、すべてのオーバーライドをやめます。",
"theme_help_v2_2": "バックグラウンドとテキストのコントラストを表すアイコンがあります。マウスをホバーすると、詳しい説明が出ます。透明な色を使っているときは、最悪の場合のコントラストが示されます。",
"tooltipRadius": "ツールチップとアラート",
"upload_a_photo": "画像をアップロード",
"user_settings": "ユーザー設定",
"values": {
"false": "いいえ",
"true": "はい"
},
"notifications": "通知",
"notification_setting": "通知を受け取る:",
"notification_setting_follows": "あなたがフォローしているユーザーから",
"notification_setting_non_follows": "あなたがフォローしていないユーザーから",
"notification_setting_followers": "あなたをフォローしているユーザーから",
"notification_setting_non_followers": "あなたをフォローしていないユーザーから",
"notification_mutes": "特定のユーザーからの通知を止めるには、ミュートしてください。",
"notification_blocks": "ブロックしているユーザーからの通知は、すべて止まります。",
"enable_web_push_notifications": "ウェブプッシュ通知を許可する",
"style": {
"switcher": {
"keep_color": "色を残す",
"keep_shadows": "影を残す",
"keep_opacity": "透明度を残す",
"keep_roundness": "丸さを残す",
"keep_fonts": "フォントを残す",
"save_load_hint": "「残す」オプションをONにすると、テーマを選んだときとロードしたとき、現在の設定を残します。また、テーマをエクスポートするとき、これらのオプションを維持します。すべてのチェックボックスをOFFにすると、テーマをエクスポートしたとき、すべての設定を保存します。",
"reset": "リセット",
"clear_all": "すべてクリア",
"clear_opacity": "透明度をクリア"
},
"common": {
"color": "色",
"opacity": "透明度",
"contrast": {
"hint": "コントラストは {ratio} です。{level}。({context})",
"level": {
"aa": "AAレベルガイドライン (ミニマル) を満たします",
"aaa": "AAAレベルガイドライン (レコメンデッド) を満たします。",
"bad": "ガイドラインを満たしません。"
},
"context": {
"18pt": "大きい (18ポイント以上) テキスト",
"text": "テキスト"
}
}
},
"common_colors": {
"_tab_label": "共通",
"main": "共通の色",
"foreground_hint": "「詳細」タブで、もっと細かく設定できます",
"rgbo": "アイコンとアクセントとバッジ"
},
"advanced_colors": {
"_tab_label": "詳細",
"alert": "アラートのバックグラウンド",
"alert_error": "エラー",
"badge": "バッジのバックグラウンド",
"badge_notification": "通知",
"panel_header": "パネルヘッダー",
"top_bar": "トップバー",
"borders": "境界",
"buttons": "ボタン",
"inputs": "インプットフィールド",
"faint_text": "薄いテキスト"
},
"radii": {
"_tab_label": "丸さ"
},
"shadows": {
"_tab_label": "光と影",
"component": "コンポーネント",
"override": "オーバーライド",
"shadow_id": "影 #{value}",
"blur": "ぼかし",
"spread": "広がり",
"inset": "内側",
"hint": "影の設定では、色の値として --variable を使うことができます。これはCSS3変数です。ただし、透明度の設定は、効かなくなります。",
"filter_hint": {
"always_drop_shadow": "ブラウザーがサポートしていれば、常に {0} が使われます。",
"drop_shadow_syntax": "{0} は、{1} パラメーターと {2} キーワードをサポートしていません。",
"avatar_inset": "内側の影と外側の影を同時に使うと、透明なアバターの表示が乱れます。",
"spread_zero": "広がりが 0 よりも大きな影は、0 と同じです。",
"inset_classic": "内側の影は {0} を使います。"
},
"components": {
"panel": "パネル",
"panelHeader": "パネルヘッダー",
"topBar": "トップバー",
"avatar": "ユーザーアバター (プロフィール)",
"avatarStatus": "ユーザーアバター (投稿)",
"popup": "ポップアップとツールチップ",
"button": "ボタン",
"buttonHover": "ボタン (ホバー)",
"buttonPressed": "ボタン (押されているとき)",
"buttonPressedHover": "ボタン (ホバー、かつ、押されているとき)",
"input": "インプットフィールド"
}
},
"fonts": {
"_tab_label": "フォント",
"help": "「カスタム」を選んだときは、システムにあるフォントの名前を、正しく入力してください。",
"components": {
"interface": "インターフェース",
"input": "インプットフィールド",
"post": "投稿",
"postCode": "等幅 (投稿がリッチテキストであるとき)"
},
"family": "フォント名",
"size": "大きさ (px)",
"weight": "太さ",
"custom": "カスタム"
},
"preview": {
"header": "プレビュー",
"content": "本文",
"error": "エラーの例",
"button": "ボタン",
"text": "これは{0}と{1}の例です。",
"mono": "monospace",
"input": "羽田空港に着きました。",
"faint_link": "とても助けになるマニュアル",
"fine_print": "私たちの{0}を、読まないでください!",
"header_faint": "エラーではありません",
"checkbox": "利用規約を読みました",
"link": "ハイパーリンク"
}
},
"version": {
"title": "バージョン",
"backend_version": "バックエンドのバージョン",
"frontend_version": "フロントエンドのバージョン"
}
},
"timeline": {
"collapse": "たたむ",
"conversation": "スレッド",
"error_fetching": "読み込みがエラーになりました",
"load_older": "古いステータス",
"no_retweet_hint": "投稿を「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります",
"repeated": "リピート",
"show_new": "読み込み",
"up_to_date": "最新",
"no_more_statuses": "これで終わりです",
"no_statuses": "ステータスはありません"
},
"status": {
"favorites": "お気に入り",
"repeats": "リピート",
"delete": "ステータスを削除",
"pin": "プロフィールにピン留め",
"unpin": "プロフィールのピン留めを外す",
"pinned": "ピン留め",
"delete_confirm": "本当にこのステータスを削除してもよろしいですか?",
"reply_to": "返信",
"replies_list": "返信:"
},
"user_card": {
"approve": "受け入れ",
"block": "ブロック",
"blocked": "ブロックしています!",
"deny": "お断り",
"favorites": "お気に入り",
"follow": "フォロー",
"follow_sent": "リクエストを送りました!",
"follow_progress": "リクエストしています…",
"follow_again": "再びリクエストを送りますか?",
"follow_unfollow": "フォローをやめる",
"followees": "フォロー",
"followers": "フォロワー",
"following": "フォローしています!",
"follows_you": "フォローされました!",
"its_you": "これはあなたです!",
"media": "メディア",
"mute": "ミュート",
"muted": "ミュートしています!",
"per_day": "/日",
"remote_follow": "リモートフォロー",
"report": "通報",
"statuses": "ステータス",
"unblock": "ブロック解除",
"unblock_progress": "ブロックを解除しています...",
"block_progress": "ブロックしています...",
"unmute": "ミュート解除",
"unmute_progress": "ミュートを解除しています...",
"mute_progress": "ミュートしています...",
"admin_menu": {
"moderation": "モデレーション",
"grant_admin": "管理者権限を付与",
"revoke_admin": "管理者権限を解除",
"grant_moderator": "モデレーター権限を付与",
"revoke_moderator": "モデレーター権限を解除",
"activate_account": "アカウントをアクティブにする",
"deactivate_account": "アカウントをアクティブでなくする",
"delete_account": "アカウントを削除",
"force_nsfw": "すべての投稿をNSFWにする",
"strip_media": "投稿からメディアを除去する",
"force_unlisted": "投稿を未収載にする",
"sandbox": "投稿をフォロワーのみにする",
"disable_remote_subscription": "他のインスタンスからフォローされないようにする",
"disable_any_subscription": "フォローされないようにする",
"quarantine": "他のインスタンスからの投稿を止める",
"delete_user": "ユーザーを削除",
"delete_user_confirmation": "あなたの精神状態に何か問題はございませんか? この操作を取り消すことはできません。"
}
},
"user_profile": {
"timeline_title": "ユーザータイムライン",
"profile_does_not_exist": "申し訳ない。このプロフィールは存在しません。",
"profile_loading_error": "申し訳ない。プロフィールの読み込みがエラーになりました。"
},
"user_reporting": {
"title": "通報する: {0}",
"add_comment_description": "この通報は、あなたのインスタンスのモデレーターに送られます。このアカウントを通報する理由を説明することができます:",
"additional_comments": "追加のコメント",
"forward_description": "このアカウントは他のサーバーに置かれています。この通報のコピーをリモートのサーバーに送りますか?",
"forward_to": "転送する: {0}",
"submit": "送信",
"generic_error": "あなたのリクエストを処理しようとしましたが、エラーになりました。"
},
"who_to_follow": {
"more": "詳細",
"who_to_follow": "おすすめユーザー"
},
"tool_tip": {
"media_upload": "メディアをアップロード",
"repeat": "リピート",
"reply": "返信",
"favorite": "お気に入り",
"user_settings": "ユーザー設定"
},
"upload":{
"error": {
"base": "アップロードに失敗しました。",
"file_too_big": "ファイルが大きすぎます [{filesize} {filesizeunit} / {allowedsize} {allowedsizeunit}]",
"default": "しばらくしてから試してください"
},
"file_size_units": {
"B": "B",
"KiB": "KiB",
"MiB": "MiB",
"GiB": "GiB",
"TiB": "TiB"
}
}
}

View file

@ -23,6 +23,7 @@ const messages = {
hu: require('./hu.json'), hu: require('./hu.json'),
it: require('./it.json'), it: require('./it.json'),
ja: require('./ja.json'), ja: require('./ja.json'),
ja_pedantic: require('./ja_pedantic.json'),
ko: require('./ko.json'), ko: require('./ko.json'),
nb: require('./nb.json'), nb: require('./nb.json'),
nl: require('./nl.json'), nl: require('./nl.json'),

View file

@ -24,6 +24,7 @@ import messages from './i18n/messages.js'
import VueChatScroll from 'vue-chat-scroll' import VueChatScroll from 'vue-chat-scroll'
import VueClickOutside from 'v-click-outside' import VueClickOutside from 'v-click-outside'
import PortalVue from 'portal-vue'
import afterStoreSetup from './boot/after_store.js' import afterStoreSetup from './boot/after_store.js'
@ -42,6 +43,7 @@ Vue.use(VueTimeago, {
Vue.use(VueI18n) Vue.use(VueI18n)
Vue.use(VueChatScroll) Vue.use(VueChatScroll)
Vue.use(VueClickOutside) Vue.use(VueClickOutside)
Vue.use(PortalVue)
const i18n = new VueI18n({ const i18n = new VueI18n({
// By default, use the browser locale, we will update it if neccessary // By default, use the browser locale, we will update it if neccessary

View file

@ -1,5 +1,4 @@
/* eslint-env browser */ /* eslint-env browser */
const LOGIN_URL = '/api/account/verify_credentials.json'
const BG_UPDATE_URL = '/api/qvitter/update_background_image.json' const BG_UPDATE_URL = '/api/qvitter/update_background_image.json'
const EXTERNAL_PROFILE_URL = '/api/externalprofile/show.json' const EXTERNAL_PROFILE_URL = '/api/externalprofile/show.json'
const QVITTER_USER_NOTIFICATIONS_READ_URL = '/api/qvitter/statuses/notifications/read.json' const QVITTER_USER_NOTIFICATIONS_READ_URL = '/api/qvitter/statuses/notifications/read.json'
@ -15,7 +14,9 @@ const PERMISSION_GROUP_URL = (screenName, right) => `/api/pleroma/admin/users/${
const ACTIVATION_STATUS_URL = screenName => `/api/pleroma/admin/users/${screenName}/activation_status` const ACTIVATION_STATUS_URL = screenName => `/api/pleroma/admin/users/${screenName}/activation_status`
const ADMIN_USERS_URL = '/api/pleroma/admin/users' const ADMIN_USERS_URL = '/api/pleroma/admin/users'
const SUGGESTIONS_URL = '/api/v1/suggestions' const SUGGESTIONS_URL = '/api/v1/suggestions'
const NOTIFICATION_SETTINGS_URL = '/api/pleroma/notification_settings'
const MASTODON_LOGIN_URL = '/api/v1/accounts/verify_credentials'
const MASTODON_REGISTRATION_URL = '/api/v1/accounts' const MASTODON_REGISTRATION_URL = '/api/v1/accounts'
const MASTODON_USER_FAVORITES_TIMELINE_URL = '/api/v1/favourites' const MASTODON_USER_FAVORITES_TIMELINE_URL = '/api/v1/favourites'
const MASTODON_USER_NOTIFICATIONS_URL = '/api/v1/notifications' const MASTODON_USER_NOTIFICATIONS_URL = '/api/v1/notifications'
@ -97,6 +98,21 @@ const promisedRequest = ({ method, url, payload, credentials, headers = {} }) =>
}) })
} }
const updateNotificationSettings = ({credentials, settings}) => {
const form = new FormData()
each(settings, (value, key) => {
form.append(key, value)
})
return fetch(NOTIFICATION_SETTINGS_URL, {
headers: authHeaders(credentials),
method: 'PUT',
body: form
})
.then((data) => data.json())
}
const updateAvatar = ({credentials, avatar}) => { const updateAvatar = ({credentials, avatar}) => {
const form = new FormData() const form = new FormData()
form.append('avatar', avatar) form.append('avatar', avatar)
@ -507,8 +523,7 @@ const fetchPinnedStatuses = ({ id, credentials }) => {
} }
const verifyCredentials = (user) => { const verifyCredentials = (user) => {
return fetch(LOGIN_URL, { return fetch(MASTODON_LOGIN_URL, {
method: 'POST',
headers: authHeaders(user) headers: authHeaders(user)
}) })
.then((response) => { .then((response) => {
@ -520,6 +535,7 @@ const verifyCredentials = (user) => {
} }
} }
}) })
.then((data) => data.error ? data : parseUser(data)) .then((data) => data.error ? data : parseUser(data))
} }
@ -777,7 +793,8 @@ const apiService = {
markNotificationsAsSeen, markNotificationsAsSeen,
fetchFavoritedByUsers, fetchFavoritedByUsers,
fetchRebloggedByUsers, fetchRebloggedByUsers,
reportUser reportUser,
updateNotificationSettings
} }
export default apiService export default apiService

View file

@ -87,6 +87,10 @@ const backendInteractorService = (credentials) => {
return apiService.deleteUser({screen_name, credentials}) return apiService.deleteUser({screen_name, credentials})
} }
const updateNotificationSettings = ({settings}) => {
return apiService.updateNotificationSettings({credentials, settings})
}
const fetchMutes = () => apiService.fetchMutes({credentials}) const fetchMutes = () => apiService.fetchMutes({credentials})
const muteUser = (id) => apiService.muteUser({credentials, id}) const muteUser = (id) => apiService.muteUser({credentials, id})
const unmuteUser = (id) => apiService.unmuteUser({credentials, id}) const unmuteUser = (id) => apiService.unmuteUser({credentials, id})
@ -171,7 +175,8 @@ const backendInteractorService = (credentials) => {
favorite, favorite,
unfavorite, unfavorite,
retweet, retweet,
unretweet unretweet,
updateNotificationSettings
} }
return backendInteractorServiceInstance return backendInteractorServiceInstance

View file

@ -33,6 +33,7 @@ export const parseUser = (data) => {
if (masto) { if (masto) {
output.screen_name = data.acct output.screen_name = data.acct
output.statusnet_profile_url = data.url
// There's nothing else to get // There's nothing else to get
if (mastoShort) { if (mastoShort) {
@ -42,7 +43,7 @@ export const parseUser = (data) => {
output.name = data.display_name output.name = data.display_name
output.name_html = addEmojis(data.display_name, data.emojis) output.name_html = addEmojis(data.display_name, data.emojis)
// output.description = ??? missing output.description = data.note
output.description_html = addEmojis(data.note, data.emojis) output.description_html = addEmojis(data.note, data.emojis)
// Utilize avatar_static for gif avatars? // Utilize avatar_static for gif avatars?
@ -56,8 +57,6 @@ export const parseUser = (data) => {
output.bot = data.bot output.bot = data.bot
output.statusnet_profile_url = data.url
if (data.pleroma) { if (data.pleroma) {
const relationship = data.pleroma.relationship const relationship = data.pleroma.relationship
@ -72,6 +71,23 @@ export const parseUser = (data) => {
moderator: data.pleroma.is_moderator, moderator: data.pleroma.is_moderator,
admin: data.pleroma.is_admin admin: data.pleroma.is_admin
} }
// TODO: Clean up in UI? This is duplication from what BE does for qvitterapi
if (output.rights.admin) {
output.role = 'admin'
} else if (output.rights.moderator) {
output.role = 'moderator'
} else {
output.role = 'member'
}
}
if (data.source) {
output.description = data.source.note
output.default_scope = data.source.privacy
if (data.source.pleroma) {
output.no_rich_text = data.source.pleroma.no_rich_text
output.show_role = data.source.pleroma.show_role
}
} }
// TODO: handle is_local // TODO: handle is_local
@ -106,8 +122,6 @@ export const parseUser = (data) => {
output.muted = data.muted output.muted = data.muted
// QVITTER ONLY FOR NOW
// Really only applies to logged in user, really.. I THINK
if (data.rights) { if (data.rights) {
output.rights = { output.rights = {
moderator: data.rights.delete_others_notice, moderator: data.rights.delete_others_notice,
@ -135,15 +149,16 @@ export const parseUser = (data) => {
if (data.pleroma) { if (data.pleroma) {
output.follow_request_count = data.pleroma.follow_request_count output.follow_request_count = data.pleroma.follow_request_count
}
if (data.pleroma) {
output.tags = data.pleroma.tags output.tags = data.pleroma.tags
output.deactivated = data.pleroma.deactivated output.deactivated = data.pleroma.deactivated
output.notification_settings = data.pleroma.notification_settings
} }
output.tags = output.tags || [] output.tags = output.tags || []
output.rights = output.rights || {} output.rights = output.rights || {}
output.notification_settings = output.notification_settings || {}
return output return output
} }

View file

@ -6101,6 +6101,10 @@ popper.js@^1.14.7:
version "1.14.7" version "1.14.7"
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.7.tgz#e31ec06cfac6a97a53280c3e55e4e0c860e7738e" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.7.tgz#e31ec06cfac6a97a53280c3e55e4e0c860e7738e"
portal-vue@^2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/portal-vue/-/portal-vue-2.1.4.tgz#1fc679d77e294dc8d026f1eb84aa467de11b392e"
posix-character-classes@^0.1.0: posix-character-classes@^0.1.0:
version "0.1.1" version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"