Put all localisation into json

This commit is contained in:
Zhiyuan Zheng 2021-03-28 01:12:26 +01:00
parent edc0a1874c
commit 396ed8a80c
No known key found for this signature in database
GPG Key ID: 078A93AB607D85E0
115 changed files with 1474 additions and 1489 deletions

View File

@ -28,13 +28,12 @@ import { useDispatch, useSelector } from 'react-redux'
import * as Sentry from 'sentry-expo'
const Stack = createNativeStackNavigator<Nav.RootStackParamList>()
export const navigationRef = createRef<NavigationContainerRef>()
export interface Props {
localCorrupt?: string
}
export const navigationRef = createRef<NavigationContainerRef>()
const Screens: React.FC<Props> = ({ localCorrupt }) => {
const { t } = useTranslation('common')
const dispatch = useDispatch()

View File

@ -1,37 +1,37 @@
export default {
common: require('./common').default,
common: require('./common'),
local: require('./screens/local').default,
local: require('./screens/local'),
public: require('./screens/public').default,
public: require('./screens/public'),
notifications: require('./screens/notifications').default,
notifications: require('./screens/notifications'),
meRoot: require('./screens/meRoot').default,
meConversations: require('./screens/meConversations').default,
meBookmarks: require('./screens/meBookmarks').default,
meFavourites: require('./screens/meFavourites').default,
meLists: require('./screens/meLists').default,
meListsList: require('./screens/meListsList').default,
meSettings: require('./screens/meSettings').default,
meSettingsFontsize: require('./screens/meSettingsFontsize').default,
meSettingsPush: require('./screens/meSettingsPush').default,
meSwitch: require('./screens/meSwitch').default,
meRoot: require('./screens/meRoot'),
meConversations: require('./screens/meConversations'),
meBookmarks: require('./screens/meBookmarks'),
meFavourites: require('./screens/meFavourites'),
meLists: require('./screens/meLists'),
meListsList: require('./screens/meListsList'),
meSettings: require('./screens/meSettings'),
meSettingsFontsize: require('./screens/meSettingsFontsize'),
meSettingsPush: require('./screens/meSettingsPush'),
meSwitch: require('./screens/meSwitch'),
sharedAccount: require('./screens/sharedAccount').default,
sharedAnnouncements: require('./screens/sharedAnnouncements').default,
sharedAttachments: require('./screens/sharedAttachments').default,
sharedCompose: require('./screens/sharedCompose').default,
sharedSearch: require('./screens/sharedSearch').default,
sharedToot: require('./screens/sharedToot').default,
sharedUsers: require('./screens/sharedUsers').default,
sharedAccount: require('./screens/sharedAccount'),
sharedAnnouncements: require('./screens/sharedAnnouncements'),
sharedAttachments: require('./screens/sharedAttachments'),
sharedCompose: require('./screens/sharedCompose'),
sharedSearch: require('./screens/sharedSearch'),
sharedToot: require('./screens/sharedToot'),
sharedUsers: require('./screens/sharedUsers'),
componentInstance: require('./components/instance').default,
componentParse: require('./components/parse').default,
componentRelationship: require('./components/relationship').default,
componentRelativeTime: require('./components/relativeTime').default,
componentTimeline: require('./components/timeline').default,
componentInstance: require('./components/instance'),
componentParse: require('./components/parse'),
componentRelationship: require('./components/relationship'),
componentRelativeTime: require('./components/relativeTime'),
componentTimeline: require('./components/timeline'),
screenActions: require('./screens/screenActions').default,
screenImageViewer: require('./screens/screenImageViewer').default
screenActions: require('./screens/screenActions'),
screenImageViewer: require('./screens/screenImageViewer')
}

32
src/i18n/en/common.json Normal file
View File

@ -0,0 +1,32 @@
{
"network": {
"disconnected": {
"message": "Lost network connection",
"description": "Please check your phone's network setting"
}
},
"screenshot": {
"title": "Privacy Protection",
"message": "Please do not disclose other user's identity, such as username, avatar, etc. Thank you!",
"button": "Confirm"
},
"index": {
"localCorrupt": "Login expired, please login again"
},
"buttons": {
"apply": "Apply",
"cancel": "Cancel"
},
"toastMessage": {
"success": {
"message": "{{function}} succeed"
},
"warning": {
"message": ""
},
"error": {
"message": "{{function}} failed, please retry"
}
},
"separator": ", "
}

View File

@ -1,33 +0,0 @@
export default {
network: {
disconnected: {
message: 'Lost network connection',
description: "Please check your phone's network setting"
}
},
screenshot: {
title: 'Privacy Protection',
message:
"Please do not disclose other user's identity, such as username, avatar, etc. Thank you!",
button: 'Confirm'
},
index: {
localCorrupt: 'Login expired, please login again'
},
buttons: {
apply: 'Apply',
cancel: 'Cancel'
},
toastMessage: {
success: {
message: '{{function}} succeed'
},
warning: {
message: ''
},
error: {
message: '{{function}} failed, please retry'
}
},
separator: ', '
}

View File

@ -0,0 +1,28 @@
{
"server": {
"textInput": {
"placeholder": "Instance' domain"
},
"button": "Login",
"information": {
"name": "Name",
"accounts": "Users",
"statuses": "Toots",
"domains": "Universes"
},
"disclaimer": {
"base": "Logging in process uses system broswer that, your account information won't be visible to tooot app. Read more ",
"privacy": "privacy policy"
}
},
"update": {
"alert": {
"title": "Logged in to this instance",
"message": "You can login to another account, keeping existing logged in account",
"buttons": {
"cancel": "$t(common:buttons.cancel)",
"continue": "Continue"
}
}
}
}

View File

@ -1,31 +0,0 @@
export default {
server: {
textInput: { placeholder: "Instance' domain" },
privateInstance: 'Private instance, peeping not allowed',
EULA: { base: 'I have read and agreed to ', EULA: 'EULA' },
button: 'Login',
information: {
name: 'Name',
description: { heading: 'Description', expandHint: 'description' },
accounts: 'Users',
statuses: 'Toots',
domains: 'Universes'
},
disclaimer: {
base:
"Logging in process uses system broswer that, your account information won't be visible to tooot app. Read more ",
privacy: 'privacy policy'
}
},
update: {
alert: {
title: 'Logged in to this instance',
message:
'You can login to another account, keeping existing logged in account',
buttons: {
cancel: '$t(common:buttons.cancel)',
continue: 'Continue'
}
}
}
}

View File

@ -0,0 +1,9 @@
{
"HTML": {
"expanded": {
"true": "Fold {{hint}}",
"false": "Expand {{hint}}"
},
"defaultHint": "article"
}
}

View File

@ -1,9 +0,0 @@
export default {
HTML: {
expanded: {
true: 'Fold {{hint}}',
false: 'Expand {{hint}}'
},
defaultHint: 'article'
}
}

View File

@ -0,0 +1,16 @@
{
"follow": {
"function": "Follow user"
},
"block": {
"function": "Block user"
},
"button": {
"error": "Loading error",
"blocked_by": "Blocked by user",
"blocking": "Unblock",
"following": "Unfollow",
"requested": "Withdraw request",
"default": "Follow"
}
}

View File

@ -1,16 +0,0 @@
export default {
follow: {
function: 'Follow user'
},
block: {
function: 'Block user'
},
button: {
error: 'Loading error',
blocked_by: 'Blocked by user',
blocking: 'Unblock',
following: 'Unfollow',
requested: 'Withdraw request',
default: 'Follow'
}
}

View File

@ -0,0 +1,20 @@
{
"strings": {
"prefixAgo": null,
"prefixFromNow": null,
"suffixAgo": "ago",
"suffixFromNow": null,
"seconds": "%d seconds",
"minute": "about a minute",
"minutes": "%d minutes",
"hour": "about an hour",
"hours": "about %d hours",
"day": "a day",
"days": "%d days",
"month": "about a month",
"months": "%d months",
"year": "about a year",
"years": "%d years",
"wordSeparator": " "
}
}

View File

@ -1,21 +0,0 @@
export default {
strings: {
prefixAgo: null,
prefixFromNow: null,
suffixAgo: 'ago',
// suffixFromNow: 'from now',
suffixFromNow: null,
seconds: '%d seconds',
minute: 'about a minute',
minutes: '%d minutes',
hour: 'about an hour',
hours: 'about %d hours',
day: 'a day',
days: '%d days',
month: 'about a month',
months: '%d months',
year: 'about a year',
years: '%d years',
wordSeparator: ' '
}
}

View File

@ -0,0 +1,164 @@
{
"empty": {
"error": {
"message": "Loading error",
"button": "Retry"
},
"success": {
"message": "Timeline empty"
}
},
"end": {
"message": "The end, what about a cup of <0 />"
},
"refresh": {
"fetchPreviousPage": "Newer from here",
"refetch": "To latest"
},
"shared": {
"actioned": {
"pinned": "Pinned",
"favourite": "{{name}} favourited your toot",
"status": "{{name}} just posted",
"follow": "{{name}} followed you",
"follow_request": "{{name}} requested following you",
"poll": "A poll you have voted in has ended",
"reblog": {
"default": "{{name}} boosted",
"notification": "{{name}} boosted your toot"
}
},
"actions": {
"favourited": {
"function": "Favourite toot"
},
"reblogged": {
"function": "Boost toot"
},
"bookmarked": {
"function": "Bookmark toot"
}
},
"actionsUsers": {
"reblogged_by": "$t(sharedUsers:heading.statuses.reblogged_by)",
"favourited_by": "$t(sharedUsers:heading.statuses.favourited_by)"
},
"attachment": {
"sensitive": {
"button": "Show sensitive media"
},
"unsupported": {
"text": "Loading error",
"button": "Try remote link"
}
},
"content": {
"expandHint": "hidden content"
},
"fullConversation": "Read conversations",
"header": {
"shared": {
"application": "Tooted with {{application}}"
},
"conversation": {
"withAccounts": "With",
"delete": {
"function": "Delete direct message"
}
},
"actions": {
"account": {
"heading": "About user",
"mute": {
"function": "Mute user",
"button": "Mute @{{acct}}"
},
"block": {
"function": "Block user",
"button": "Block @{{acct}}"
},
"reports": {
"function": "Report user",
"button": "Report @{{acct}}"
}
},
"domain": {
"heading": "About instance",
"block": {
"function": "Block instance",
"button": "Block instance {{domain}}"
},
"alert": {
"title": "Confirm blocking {{domain}} ?",
"message": "Mostly you can mute or block certain user.\n\nAfter blocking instance, all its content including followers from this instance will be removed!",
"buttons": {
"confirm": "Confirm blocking",
"cancel": "$t(common:buttons.cancel)"
}
}
},
"share": {
"status": {
"heading": "Share toot",
"button": "Share link to this toot"
},
"account": {
"heading": "Share user",
"button": "Share link to this user"
}
},
"status": {
"heading": "About toot",
"delete": {
"function": "Delete toot",
"button": "Delete this toot"
},
"edit": {
"function": "Delete toot",
"button": "Delete and re-draft",
"alert": {
"title": "Confirm deleting toot?",
"message": "Are you sure to delete and re-draft this toot? All boosts and favourites will be cleared, including all replies.",
"buttons": {
"confirm": "Confirm deleting",
"cancel": "$t(common:buttons.cancel)"
}
}
},
"mute": {
"function": "Mute toot",
"button": {
"positive": "Mute this toot and replies",
"negative": "Unmute this toot and replies"
}
},
"pin": {
"function": "Pin",
"button": {
"positive": "Pin this toot",
"negative": "Unpin this toot"
}
}
}
}
},
"poll": {
"meta": {
"button": {
"vote": "Vote",
"refresh": "Refresh"
},
"count": {
"voters": "{{count}} user voted • ",
"voters_plural": "{{count}} users voted • ",
"votes": "{{count}} vote • ",
"votes_plural": "{{count}} votes • "
},
"expiration": {
"expired": "Vote expired",
"until": "Expires in <0 />"
}
}
}
}
}

View File

@ -1,160 +0,0 @@
export default {
empty: {
error: {
message: 'Loading error',
button: 'Retry'
},
success: {
message: 'Timeline empty'
}
},
end: {
message: 'The end, what about a cup of <0 />'
},
refresh: {
fetchPreviousPage: 'Newer from here',
refetch: 'To latest'
},
shared: {
actioned: {
pinned: 'Pinned',
favourite: '{{name}} favourited your toot',
status: '{{name}} just posted',
follow: '{{name}} followed you',
follow_request: '{{name}} requested following you',
poll: 'A poll you have voted in has ended',
reblog: {
default: '{{name}} boosted',
notification: '{{name}} boosted your toot'
}
},
actions: {
favourited: {
function: 'Favourite toot'
},
reblogged: {
function: 'Boost toot'
},
bookmarked: {
function: 'Bookmark toot'
}
},
actionsUsers: {
reblogged_by: '$t(sharedUsers:heading.statuses.reblogged_by)',
favourited_by: '$t(sharedUsers:heading.statuses.favourited_by)'
},
attachment: {
sensitive: {
button: 'Show sensitive media'
},
unsupported: {
text: 'Loading error',
button: 'Try remote link'
}
},
content: {
expandHint: 'hidden content'
},
fullConversation: 'Read conversations',
header: {
shared: {
application: 'Tooted with {{application}}'
},
conversation: {
withAccounts: 'With',
delete: {
function: 'Delete direct message'
}
},
actions: {
account: {
heading: 'About user',
mute: {
function: 'Mute user',
button: 'Mute @{{acct}}'
},
block: {
function: 'Block user',
button: 'Block @{{acct}}'
},
reports: {
function: 'Report user',
button: 'Report @{{acct}}'
}
},
domain: {
heading: 'About instance',
block: {
function: 'Block instance',
button: 'Block instance {{domain}}'
},
alert: {
title: 'Confirm blocking {{domain}} ?',
message:
'Mostly you can mute or block certain user.\n\nAfter blocking instance, all its content including followers from this instance will be removed!',
buttons: {
confirm: 'Confirm blocking',
cancel: '$t(common:buttons.cancel)'
}
}
},
share: {
status: { heading: 'Share toot', button: 'Share link to this toot' },
account: { heading: 'Share user', button: 'Share link to this user' }
},
status: {
heading: 'About toot',
delete: {
function: 'Delete toot',
button: 'Delete this toot'
},
edit: {
function: 'Delete toot',
button: 'Delete and re-draft',
alert: {
title: 'Confirm deleting toot?',
message:
'Are you sure to delete and re-draft this toot? All boosts and favourites will be cleared, including all replies.',
buttons: {
confirm: 'Confirm deleting',
cancel: '$t(common:buttons.cancel)'
}
}
},
mute: {
function: 'Mute toot',
button: {
positive: 'Mute this toot and replies',
negative: 'Unmute this toot and replies'
}
},
pin: {
function: 'Pin',
button: {
positive: 'Pin this toot',
negative: 'Unpin this toot'
}
}
}
}
},
poll: {
meta: {
button: {
vote: 'Vote',
refresh: 'Refresh'
},
count: {
voters: '{{count}} user voted • ',
voters_plural: '{{count}} users voted • ',
votes: '{{count}} vote • ',
votes_plural: '{{count}} votes • '
},
expiration: {
expired: 'Vote expired',
until: 'Expires in <0 />'
}
}
}
}
}

View File

@ -0,0 +1,3 @@
{
"heading": "Following"
}

View File

@ -1,3 +0,0 @@
export default {
heading: 'Following'
}

View File

@ -0,0 +1,3 @@
{
"heading": "Bookmarks"
}

View File

@ -1,4 +0,0 @@
export default {
heading: 'Bookmarks',
content: {}
}

View File

@ -0,0 +1,3 @@
{
"heading": "Direct Messages"
}

View File

@ -1,4 +0,0 @@
export default {
heading: 'Direct Messages',
content: {}
}

View File

@ -0,0 +1,3 @@
{
"heading": "Favourites"
}

View File

@ -1,4 +0,0 @@
export default {
heading: 'Favourites',
content: {}
}

View File

@ -0,0 +1,3 @@
{
"heading": "Lists"
}

View File

@ -1,4 +0,0 @@
export default {
heading: 'Lists',
content: {}
}

View File

@ -0,0 +1,3 @@
{
"heading": "List: {{list}}"
}

View File

@ -1,4 +0,0 @@
export default {
heading: 'List: {{list}}',
content: {}
}

View File

@ -0,0 +1,31 @@
{
"content": {
"collections": {
"conversations": "$t(meConversations:heading)",
"bookmarks": "$t(meBookmarks:heading)",
"favourites": "$t(meFavourites:heading)",
"lists": "$t(meLists:heading)",
"announcements": {
"heading": "$t(sharedAnnouncements:heading)",
"content": {
"unread": "{{amount}} unread",
"read": "All read",
"empty": "None"
}
}
},
"accountSettings": "Account Settings",
"appSettings": "$t(meSettings:heading)",
"logout": {
"button": "Log out",
"alert": {
"title": "Logging out?",
"message": "After logging out, you need to log in again",
"buttons": {
"logout": "Logout",
"cancel": "$t(common:buttons.cancel)"
}
}
}
}
}

View File

@ -1,31 +0,0 @@
export default {
content: {
collections: {
conversations: '$t(meConversations:heading)',
bookmarks: '$t(meBookmarks:heading)',
favourites: '$t(meFavourites:heading)',
lists: '$t(meLists:heading)',
announcements: {
heading: '$t(sharedAnnouncements:heading)',
content: {
unread: '{{amount}} unread',
read: 'All read',
empty: 'None'
}
}
},
accountSettings: 'Account Settings',
appSettings: '$t(meSettings:heading)',
logout: {
button: 'Log out',
alert: {
title: 'Logging out?',
message: 'After logging out, you need to log in again',
buttons: {
logout: 'Logout',
cancel: '$t(common:buttons.cancel)'
}
}
}
}
}

View File

@ -0,0 +1,65 @@
{
"heading": "Settings",
"content": {
"push": {
"heading": "$t(meSettingsPush:heading)",
"content": {
"enabled": "Enabled",
"disabled": "Disabled"
}
},
"fontsize": {
"heading": "$t(meSettingsFontsize:heading)",
"content": {
"S": "$t(meSettingsFontsize:content.sizes.S)",
"M": "$t(meSettingsFontsize:content.sizes.M)",
"L": "$t(meSettingsFontsize:content.sizes.L)",
"XL": "$t(meSettingsFontsize:content.sizes.XL)",
"XXL": "$t(meSettingsFontsize:content.sizes.XXL)"
}
},
"language": {
"heading": "Language",
"options": {
"en": "English",
"zh-Hans": "简体中文",
"cancel": "$t(common:buttons.cancel)"
}
},
"theme": {
"heading": "Appearance",
"options": {
"auto": "As system",
"light": "Light mode",
"dark": "Dark mode",
"cancel": "$t(common:buttons.cancel)"
}
},
"browser": {
"heading": "Opening link",
"options": {
"internal": "Inside app",
"external": "Use system browser",
"cancel": "$t(common:buttons.cancel)"
}
},
"cache": {
"heading": "Clear cache",
"empty": "Cache empty"
},
"support": {
"heading": "Support tooot"
},
"review": {
"heading": "Review tooot"
},
"contact": {
"heading": "Contact tooot"
},
"analytics": {
"heading": "Help us improve",
"description": "Collecting only non-user relative usage"
},
"version": "Version v{{version}}"
}
}

View File

@ -1,65 +0,0 @@
export default {
heading: 'Settings',
content: {
push: {
heading: '$t(meSettingsPush:heading)',
content: {
enabled: 'Enabled',
disabled: 'Disabled'
}
},
fontsize: {
heading: '$t(meSettingsFontsize:heading)',
content: {
S: '$t(meSettingsFontsize:content.sizes.S)',
M: '$t(meSettingsFontsize:content.sizes.M)',
L: '$t(meSettingsFontsize:content.sizes.L)',
XL: '$t(meSettingsFontsize:content.sizes.XL)',
XXL: '$t(meSettingsFontsize:content.sizes.XXL)'
}
},
language: {
heading: 'Language',
options: {
en: 'English',
'zh-Hans': '简体中文',
cancel: '$t(common:buttons.cancel)'
}
},
theme: {
heading: 'Appearance',
options: {
auto: 'As system',
light: 'Light mode',
dark: 'Dark mode',
cancel: '$t(common:buttons.cancel)'
}
},
browser: {
heading: 'Opening link',
options: {
internal: 'Inside app',
external: 'Use system browser',
cancel: '$t(common:buttons.cancel)'
}
},
cache: {
heading: 'Clear cache',
empty: 'Cache empty'
},
support: {
heading: 'Support tooot'
},
review: {
heading: 'Review tooot'
},
contact: {
heading: 'Contact tooot'
},
analytics: {
heading: 'Help us improve',
description: 'Collecting only non-user relative usage'
},
version: 'Version v{{version}}'
}
}

View File

@ -0,0 +1,15 @@
{
"heading": "Toot Font Size",
"content": {
"showcase": "Example toot",
"demo": "<p>This is a demo toot😊. You can choose from several options from below.<br /><br />This setting only affects the main content of toots, but not other font sizes.</p>",
"availableSizes": "Available sizes",
"sizes": {
"S": "S",
"M": "M - Default",
"L": "L",
"XL": "XL",
"XXL": "XXL"
}
}
}

View File

@ -1,10 +0,0 @@
export default {
heading: 'Toot Font Size',
content: {
showcase: 'Example toot',
demo:
'<p>This is a demo toot😊. You can choose from several options from below.<br /><br />This setting only affects the main content of toots, but not other font sizes.</p>',
availableSizes: 'Available sizes',
sizes: { S: 'S', M: 'M - Default', L: 'L', XL: 'XL', XXL: 'XXL' }
}
}

View File

@ -0,0 +1,40 @@
{
"heading": "Push Notification",
"content": {
"enable": {
"direct": "Enable push notification",
"settings": "Enable in settings"
},
"global": {
"heading": "Enable push notification",
"description": "Messages are routed through tooot's server"
},
"decode": {
"heading": "Show message details",
"description": "Messages routed through tooot's server are encrypted, but you can choose to decode the message on the server. Our server source code is open source, and no log policy."
},
"default": {
"heading": "Default"
},
"follow": {
"heading": "New follower"
},
"favourite": {
"heading": "Favourited"
},
"reblog": {
"heading": "Boosted"
},
"mention": {
"heading": "Mentioned you"
},
"poll": {
"heading": "Poll updates"
},
"howitworks": "Learn how routing works"
},
"error": {
"message": "Push service error",
"description": "Please re-enable push notification in settings"
}
}

View File

@ -1,41 +0,0 @@
export default {
heading: 'Push Notification',
content: {
enable: {
direct: 'Enable push notification',
settings: 'Enable in settings'
},
global: {
heading: 'Enable push notification',
description: "Messages are routed through tooot's server"
},
decode: {
heading: 'Show message details',
description:
"Messages routed through tooot's server are encrypted, but you can choose to decode the message on the server. Our server source code is open source, and no log policy."
},
default: {
heading: 'Default' // Android notification channel name only
},
follow: {
heading: 'New follower'
},
favourite: {
heading: 'Favourited'
},
reblog: {
heading: 'Boosted'
},
mention: {
heading: 'Mentioned you'
},
poll: {
heading: 'Poll updates'
},
howitworks: 'Learn how routing works'
},
error: {
message: 'Push service error',
description: 'Please re-enable push notification in settings'
}
}

View File

@ -0,0 +1,7 @@
{
"heading": "Switch Account",
"content": {
"existing": "Choose from logged in",
"new": "Log in to instance"
}
}

View File

@ -1,7 +0,0 @@
export default {
heading: 'Switch Account',
content: {
existing: 'Choose from logged in',
new: 'Log in to instance'
}
}

View File

@ -0,0 +1,3 @@
{
"heading": "Notifications"
}

View File

@ -1,3 +0,0 @@
export default {
heading: 'Notifications'
}

View File

@ -0,0 +1,8 @@
{
"heading": {
"segments": {
"left": "Federated",
"right": "Local"
}
}
}

View File

@ -1,8 +0,0 @@
export default {
heading: {
segments: {
left: 'Federated',
right: 'Local'
}
}
}

View File

@ -0,0 +1,19 @@
{
"content": {
"button": {
"apply": "$t(common:buttons.apply)",
"cancel": "$t(common:buttons.cancel)"
},
"notificationsFilter": {
"heading": "Show notification types",
"content": {
"follow": "$t(meSettingsPush:content.follow.heading)",
"favourite": "$t(meSettingsPush:content.favourite.heading)",
"reblog": "$t(meSettingsPush:content.reblog.heading)",
"mention": "$t(meSettingsPush:content.mention.heading)",
"poll": "$t(meSettingsPush:content.poll.heading)",
"follow_request": "Follow request"
}
}
}
}

View File

@ -1,19 +0,0 @@
export default {
content: {
button: {
apply: '$t(common:buttons.apply)',
cancel: '$t(common:buttons.cancel)'
},
notificationsFilter: {
heading: 'Show notification types',
content: {
follow: '$t(meSettingsPush:content.follow.heading)',
favourite: '$t(meSettingsPush:content.favourite.heading)',
reblog: '$t(meSettingsPush:content.reblog.heading)',
mention: '$t(meSettingsPush:content.mention.heading)',
poll: '$t(meSettingsPush:content.poll.heading)',
follow_request: 'Follow request'
}
}
}
}

View File

@ -0,0 +1,13 @@
{
"content": {
"options": {
"save": "Save image",
"share": "Share iamge",
"cancel": "$t(common:buttons.cancel)"
},
"save": {
"function": "Saving image",
"success": "Image saved"
}
}
}

View File

@ -1,13 +0,0 @@
export default {
content: {
options: {
save: 'Save image',
share: 'Share iamge',
cancel: '$t(common:buttons.cancel)'
},
save: {
function: 'Saving image',
success: 'Image saved'
}
}
}

View File

@ -0,0 +1,11 @@
{
"content": {
"moved": "User moved",
"created_at": "Registered: {{date}}",
"summary": {
"statuses_count": "{{count}} toots",
"following_count": "$t(sharedUsers:heading.accounts.following)",
"followers_count": "$t(sharedUsers:heading.accounts.followers)"
}
}
}

View File

@ -1,11 +0,0 @@
export default {
content: {
moved: 'User moved',
created_at: 'Registered: {{date}}',
summary: {
statuses_count: '{{count}} toots',
following_count: '$t(sharedUsers:heading.accounts.following)',
followers_count: '$t(sharedUsers:heading.accounts.followers)'
}
}
}

View File

@ -0,0 +1,10 @@
{
"heading": "Announcements",
"content": {
"published": "Published <0 />",
"button": {
"read": "Read",
"unread": "Mark read"
}
}
}

View File

@ -1,10 +0,0 @@
export default {
heading: 'Announcements',
content: {
published: 'Published <0 />',
button: {
read: 'Read',
unread: 'Mark read'
}
}
}

View File

@ -0,0 +1,3 @@
{
"heading": "<0 />\"s <1>media</1>"
}

View File

@ -1,3 +0,0 @@
export default {
heading: '<0 />\'s <1>media</1>'
}

View File

@ -0,0 +1,157 @@
{
"heading": {
"left": {
"button": "Cancel",
"alert": {
"title": "Cancel editing?",
"buttons": {
"save": "Save draft",
"delete": "Delete draft",
"cancel": "Cancel"
}
}
},
"right": {
"button": {
"default": "Toot",
"conversation": "Toot DM",
"reply": "Toot reply",
"edit": "Toot"
},
"alert": {
"default": {
"title": "Tooting failed",
"button": "Try again"
},
"removeReply": {
"title": "Replied toot could not be found",
"description": "Replied toot could have been deleted. Do you want to remove it from your reference?",
"cancel": "$t(common:buttons.cancel)",
"confirm": "Remove reference"
}
}
}
},
"content": {
"root": {
"header": {
"postingAs": "Tooting as @{{acct}}@{{domain}}",
"spoilerInput": {
"placeholder": "Spoiler warning message"
},
"textInput": {
"placeholder": "What's on your mind"
}
},
"footer": {
"attachments": {
"sensitive": "Mark attachments as sensitive"
},
"poll": {
"option": {
"placeholder": {
"single": "Single choice",
"multiple": "Multiple choice"
}
},
"multiple": {
"heading": "Choice type",
"options": {
"single": "Single choice",
"multiple": "Multiple choice",
"cancel": "$t(common:buttons.cancel)"
}
},
"expiration": {
"heading": "Validity",
"options": {
"300": "5 minutes",
"1800": "30 minutes",
"3600": "1 hour",
"21600": "6 hours",
"86400": "1 day",
"259200": "3 days",
"604800": "7 days",
"cancel": "$t(common:buttons.cancel)"
}
}
}
},
"actions": {
"attachment": {
"actions": {
"options": {
"library": "Upload from photo library",
"photo": "Upload with camera",
"cancel": "$t(common:buttons.cancel)"
},
"library": {
"alert": {
"title": "No permission",
"message": "Require photo library read permission to upload",
"buttons": {
"settings": "Update setting",
"cancel": "Cancel"
}
}
},
"photo": {
"alert": {
"title": "No permission",
"message": "Require camera usage permission to upload",
"buttons": {
"settings": "Update setting",
"cancel": "Cancel"
}
}
}
},
"failed": {
"alert": {
"title": "Upload failed",
"button": "Try again"
}
}
},
"visibility": {
"title": "Toot visibility",
"options": {
"public": "Public",
"unlisted": "Unlisted",
"private": "Followers only",
"direct": "Direct message",
"cancel": "$t(common:buttons.cancel)"
}
}
},
"drafts": "Draft ({{count}})",
"drafts_plural": "Drafts ({{count}})"
},
"editAttachment": {
"header": {
"title": "Edit attachment",
"right": {
"failed": {
"title": "Editing failed",
"button": "Try again"
}
}
},
"content": {
"altText": {
"heading": "Describe media for the visually impaired",
"placeholder": "You can add a description, sometimes called alt-text, to your media so they are accessible to even more people, including those who are blind or visually impaired.\n\nGood descriptions are concise, but present what is in your media accurately enough to understand their context."
},
"imageFocus": "Drag the focus circle to update focus point"
}
},
"draftsList": {
"header": {
"title": "Draft"
},
"content": {
"textEmpty": "Content empty"
}
}
}
}

View File

@ -1,159 +0,0 @@
export default {
heading: {
left: {
button: 'Cancel',
alert: {
title: 'Cancel editing?',
buttons: {
save: 'Save draft',
delete: 'Delete draft',
cancel: 'Cancel'
}
}
},
right: {
button: {
default: 'Toot',
conversation: 'Toot DM',
reply: 'Toot reply',
edit: 'Toot'
},
alert: {
default: {
title: 'Tooting failed',
button: 'Try again'
},
removeReply: {
title: 'Replied toot could not be found',
description:
'Replied toot could have been deleted. Do you want to remove it from your reference?',
cancel: '$t(common:buttons.cancel)',
confirm: 'Remove reference'
}
}
}
},
content: {
root: {
header: {
postingAs: 'Tooting as @{{acct}}@{{domain}}',
spoilerInput: {
placeholder: 'Spoiler warning message'
},
textInput: {
placeholder: "What's on your mind"
}
},
footer: {
attachments: {
sensitive: 'Mark attachments as sensitive'
},
poll: {
option: {
placeholder: {
single: 'Single choice',
multiple: 'Multiple choice'
}
},
multiple: {
heading: 'Choice type',
options: {
single: 'Single choice',
multiple: 'Multiple choice',
cancel: '$t(common:buttons.cancel)'
}
},
expiration: {
heading: 'Validity',
options: {
'300': '5 minutes',
'1800': '30 minutes',
'3600': '1 hour',
'21600': '6 hours',
'86400': '1 day',
'259200': '3 days',
'604800': '7 days',
cancel: '$t(common:buttons.cancel)'
}
}
}
},
actions: {
attachment: {
actions: {
options: {
library: 'Upload from photo library',
photo: 'Upload with camera',
cancel: '$t(common:buttons.cancel)'
},
library: {
alert: {
title: 'No permission',
message: 'Require photo library read permission to upload',
buttons: {
settings: 'Update setting',
cancel: 'Cancel'
}
}
},
photo: {
alert: {
title: 'No permission',
message: 'Require camera usage permission to upload',
buttons: {
settings: 'Update setting',
cancel: 'Cancel'
}
}
}
},
failed: {
alert: {
title: 'Upload failed',
button: 'Try again'
}
}
},
visibility: {
title: 'Toot visibility',
options: {
public: 'Public',
unlisted: 'Unlisted',
private: 'Followers only',
direct: 'Direct message',
cancel: '$t(common:buttons.cancel)'
}
}
},
drafts: 'Draft ({{count}})',
drafts_plural: 'Drafts ({{count}})'
},
editAttachment: {
header: {
title: 'Edit attachment',
right: {
failed: {
title: 'Editing failed',
button: 'Try again'
}
}
},
content: {
altText: {
heading: 'Describe media for the visually impaired',
placeholder:
'You can add a description, sometimes called alt-text, to your media so they are accessible to even more people, including those who are blind or visually impaired.\n\nGood descriptions are concise, but present what is in your media accurately enough to understand their context.'
},
imageFocus: 'Drag the focus circle to update focus point'
}
},
draftsList: {
header: {
title: 'Draft'
},
content: {
textEmpty: 'Content empty'
}
}
}
}

View File

@ -0,0 +1,26 @@
{
"content": {
"header": {
"prefix": "Search",
"placeholder": "for..."
},
"empty": {
"general": "Enter keyword to search for <bold>$t(sharedSearch:content.sections.accounts)</bold>、<bold>$t(sharedSearch:content.sections.hashtags)</bold> or <bold>$t(sharedSearch:content.sections.statuses)</bold>",
"advanced": {
"header": "Advanced search",
"example": {
"account": "$t(sharedSearch:content.header.prefix)$t(sharedSearch:content.sections.accounts)",
"hashtag": "$t(sharedSearch:content.header.prefix)$t(sharedSearch:content.sections.hashtags)",
"statusLink": "$t(sharedSearch:content.header.prefix)$t(sharedSearch:content.sections.statuses)",
"accountLink": "$t(sharedSearch:content.header.prefix)$t(sharedSearch:content.sections.accounts)"
}
}
},
"sections": {
"accounts": "User",
"hashtags": "Hashtag",
"statuses": "Toot"
},
"notFound": "Cannot find <bold>{{searchTerm}}</bold> related {{type}}"
}
}

View File

@ -1,31 +0,0 @@
export default {
content: {
header: {
prefix: 'Search',
placeholder: 'for...'
},
empty: {
general:
'Enter keyword to search for <bold>$t(sharedSearch:content.sections.accounts)</bold>、<bold>$t(sharedSearch:content.sections.hashtags)</bold> or <bold>$t(sharedSearch:content.sections.statuses)</bold>',
advanced: {
header: 'Advanced search',
example: {
account:
'$t(sharedSearch:content.header.prefix)$t(sharedSearch:content.sections.accounts)',
hashtag:
'$t(sharedSearch:content.header.prefix)$t(sharedSearch:content.sections.hashtags)',
statusLink:
'$t(sharedSearch:content.header.prefix)$t(sharedSearch:content.sections.statuses)',
accountLink:
'$t(sharedSearch:content.header.prefix)$t(sharedSearch:content.sections.accounts)'
}
}
},
sections: {
accounts: 'User',
hashtags: 'Hashtag',
statuses: 'Toot'
},
notFound: 'Cannot find <bold>{{searchTerm}}</bold> related {{type}}'
}
}

View File

@ -0,0 +1,3 @@
{
"heading": "Discussions"
}

View File

@ -1,3 +0,0 @@
export default {
heading: 'Discussions'
}

View File

@ -0,0 +1,12 @@
{
"heading": {
"accounts": {
"following": "Following {{count}}",
"followers": "{{count}} followers"
},
"statuses": {
"reblogged_by": "{{count}} boosted",
"favourited_by": "{{count}} favourited"
}
}
}

View File

@ -1,12 +0,0 @@
export default {
heading: {
accounts: {
following: 'Following {{count}}',
followers: '{{count}} followers'
},
statuses: {
reblogged_by: '{{count}} boosted',
favourited_by: '{{count}} favourited'
}
}
}

View File

@ -1,37 +1,37 @@
export default {
common: require('./common').default,
common: require('./common'),
local: require('./screens/local').default,
local: require('./screens/local'),
public: require('./screens/public').default,
public: require('./screens/public'),
notifications: require('./screens/notifications').default,
notifications: require('./screens/notifications'),
meRoot: require('./screens/meRoot').default,
meConversations: require('./screens/meConversations').default,
meBookmarks: require('./screens/meBookmarks').default,
meFavourites: require('./screens/meFavourites').default,
meLists: require('./screens/meLists').default,
meListsList: require('./screens/meListsList').default,
meSettings: require('./screens/meSettings').default,
meSettingsFontsize: require('./screens/meSettingsFontsize').default,
meSettingsPush: require('./screens/meSettingsPush').default,
meSwitch: require('./screens/meSwitch').default,
meRoot: require('./screens/meRoot'),
meConversations: require('./screens/meConversations'),
meBookmarks: require('./screens/meBookmarks'),
meFavourites: require('./screens/meFavourites'),
meLists: require('./screens/meLists'),
meListsList: require('./screens/meListsList'),
meSettings: require('./screens/meSettings'),
meSettingsFontsize: require('./screens/meSettingsFontsize'),
meSettingsPush: require('./screens/meSettingsPush'),
meSwitch: require('./screens/meSwitch'),
sharedAccount: require('./screens/sharedAccount').default,
sharedAnnouncements: require('./screens/sharedAnnouncements').default,
sharedAttachments: require('./screens/sharedAttachments').default,
sharedCompose: require('./screens/sharedCompose').default,
sharedSearch: require('./screens/sharedSearch').default,
sharedToot: require('./screens/sharedToot').default,
sharedUsers: require('./screens/sharedUsers').default,
sharedAccount: require('./screens/sharedAccount'),
sharedAnnouncements: require('./screens/sharedAnnouncements'),
sharedAttachments: require('./screens/sharedAttachments'),
sharedCompose: require('./screens/sharedCompose'),
sharedSearch: require('./screens/sharedSearch'),
sharedToot: require('./screens/sharedToot'),
sharedUsers: require('./screens/sharedUsers'),
componentInstance: require('./components/instance').default,
componentParse: require('./components/parse').default,
componentRelationship: require('./components/relationship').default,
componentRelativeTime: require('./components/relativeTime').default,
componentTimeline: require('./components/timeline').default,
componentInstance: require('./components/instance'),
componentParse: require('./components/parse'),
componentRelationship: require('./components/relationship'),
componentRelativeTime: require('./components/relativeTime'),
componentTimeline: require('./components/timeline'),
screenActions: require('./screens/screenActions').default,
screenImageViewer: require('./screens/screenImageViewer').default
screenActions: require('./screens/screenActions'),
screenImageViewer: require('./screens/screenImageViewer')
}

View File

@ -0,0 +1,32 @@
{
"network": {
"disconnected": {
"message": "无法连接到网络",
"description": "请检查手机设置里的网络连接"
}
},
"screenshot": {
"title": "隐私保护",
"message": "请确保不要泄露其它用户的敏感信息,例如用户名、头像等,谢谢!",
"button": "好的"
},
"index": {
"localCorrupt": "登录已过期,请重新登录"
},
"buttons": {
"apply": "应用",
"cancel": "取消"
},
"toastMessage": {
"success": {
"message": "{{function}}成功"
},
"warning": {
"message": ""
},
"error": {
"message": "{{function}}失败,请重试"
}
},
"separator": ""
}

View File

@ -1,32 +0,0 @@
export default {
network: {
disconnected: {
message: '无法连接到网络',
description: '请检查手机设置里的网络连接'
}
},
screenshot: {
title: '隐私保护',
message: '请确保不要泄露其它用户的敏感信息,例如用户名、头像等,谢谢!',
button: '好的'
},
index: {
localCorrupt: '登录已过期,请重新登录'
},
buttons: {
apply: '应用',
cancel: '取消'
},
toastMessage: {
success: {
message: '{{function}}成功'
},
warning: {
message: ''
},
error: {
message: '{{function}}失败,请重试'
}
},
separator: ''
}

View File

@ -0,0 +1,28 @@
{
"server": {
"textInput": {
"placeholder": "输入社区服务器地址"
},
"button": "登录",
"information": {
"name": "社区名称",
"accounts": "用户总数",
"statuses": "嘟文总数",
"domains": "连结总数"
},
"disclaimer": {
"base": "登录过程将使用系统浏览器你的账号登录信息tooot应用无法读取。详见 ",
"privacy": "隐私条款"
}
},
"update": {
"alert": {
"title": "此社区已登录",
"message": "你可以登录同个社区的另一个账号,不影响已登录的账号",
"buttons": {
"cancel": "$t(common:buttons.cancel)",
"continue": "继续"
}
}
}
}

View File

@ -1,30 +0,0 @@
export default {
server: {
textInput: { placeholder: '输入社区服务器地址' },
privateInstance: '非公开社区, 不能围观',
EULA: { base: '我阅读并同意 ', EULA: '最终用户条款' },
button: '登录',
information: {
name: '社区名称',
description: { heading: '社区简介', expandHint: '简介' },
accounts: '用户总数',
statuses: '嘟文总数',
domains: '连结总数'
},
disclaimer: {
base:
'登录过程将使用系统浏览器你的账号登录信息tooot应用无法读取。详见 ',
privacy: '隐私条款'
}
},
update: {
alert: {
title: '此社区已登录',
message: '你可以登录同个社区的另一个账号,不影响已登录的账号',
buttons: {
cancel: '$t(common:buttons.cancel)',
continue: '继续'
}
}
}
}

View File

@ -0,0 +1,9 @@
{
"HTML": {
"expanded": {
"true": "折叠{{hint}}",
"false": "展开{{hint}}"
},
"defaultHint": "全文"
}
}

View File

@ -1,9 +0,0 @@
export default {
HTML: {
expanded: {
true: '折叠{{hint}}',
false: '展开{{hint}}'
},
defaultHint: '全文'
}
}

View File

@ -0,0 +1,16 @@
{
"follow": {
"function": "关注"
},
"block": {
"function": "屏蔽"
},
"button": {
"error": "读取错误",
"blocked_by": "被用户屏蔽",
"blocking": "取消屏蔽",
"following": "取消关注",
"requested": "取消关注请求",
"default": "关注"
}
}

View File

@ -1,16 +0,0 @@
export default {
follow: {
function: '关注'
},
block: {
function: '屏蔽'
},
button: {
error: '读取错误',
blocked_by: '被用户屏蔽',
blocking: '取消屏蔽',
following: '取消关注',
requested: '取消关注请求',
default: '关注'
}
}

View File

@ -0,0 +1,20 @@
{
"strings": {
"prefixAgo": null,
"prefixFromNow": null,
"suffixAgo": "前",
"suffixFromNow": "后",
"seconds": "%d秒",
"minute": "1分钟",
"minutes": "%d分钟",
"hour": "1小时",
"hours": "%d小时",
"day": "1天",
"days": "%d天",
"month": "1个月",
"months": "%d月",
"year": "大约1年",
"years": "%d年",
"wordSeparator": ""
}
}

View File

@ -1,20 +0,0 @@
export default {
strings: {
prefixAgo: null,
prefixFromNow: null,
suffixAgo: '前',
suffixFromNow: '后',
seconds: '%d秒',
minute: '1分钟',
minutes: '%d分钟',
hour: '1小时',
hours: '%d小时',
day: '1天',
days: '%d天',
month: '1个月',
months: '%d月',
year: '大约1年',
years: '%d年',
wordSeparator: ''
}
}

View File

@ -0,0 +1,162 @@
{
"empty": {
"error": {
"message": "加载错误",
"button": "重试"
},
"success": {
"message": "空无一物"
}
},
"end": {
"message": "居然刷到底了,喝杯 <0 /> 吧"
},
"refresh": {
"fetchPreviousPage": "较新于此的嘟嘟",
"refetch": "最新的嘟嘟"
},
"shared": {
"actioned": {
"pinned": "置顶",
"favourite": "{{name}} 喜欢了你的嘟文",
"status": "{{name}} 刚刚发嘟",
"follow": "{{name}} 开始关注你",
"follow_request": "{{name}} 请求关注你",
"poll": "你参与的投票已结束",
"reblog": {
"default": "{{name}} 转嘟了",
"notification": "{{name}} 转嘟了你的嘟文"
}
},
"actions": {
"favourited": {
"function": "喜欢嘟文"
},
"reblogged": {
"function": "转嘟"
},
"bookmarked": {
"function": "喜欢嘟文"
}
},
"actionsUsers": {
"reblogged_by": "$t(sharedUsers:heading.statuses.reblogged_by)",
"favourited_by": "$t(sharedUsers:heading.statuses.favourited_by)"
},
"attachment": {
"sensitive": {
"button": "显示敏感内容"
},
"unsupported": {
"text": "附件读取错误",
"button": "尝试远程链接"
}
},
"content": {
"expandHint": "隐藏内容"
},
"fullConversation": "阅读全部对话",
"header": {
"shared": {
"application": "发自于 {{application}}"
},
"conversation": {
"withAccounts": "与",
"delete": {
"function": "删除私信"
}
},
"actions": {
"account": {
"heading": "关于用户",
"mute": {
"function": "隐藏 @{{acct}} 的嘟文",
"button": "隐藏 @{{acct}} 的嘟文"
},
"block": {
"function": "屏蔽 @{{acct}}",
"button": "屏蔽 @{{acct}}"
},
"reports": {
"function": "举报 @{{acct}}",
"button": "举报 @{{acct}}"
}
},
"domain": {
"heading": "关于社区",
"block": {
"function": "屏蔽社区",
"button": "屏蔽社区 {{domain}}"
},
"alert": {
"title": "确定要屏蔽 {{domain}} 吗?",
"message": "多数情况下,隐藏或屏蔽特定用户即可。\n\n屏蔽之后来自此社区的所有内容将不再出现在你的时间轴里。同时来自该社区的关注者将被移除。请谨慎使用。",
"buttons": {
"confirm": "确定屏蔽整个社区",
"cancel": "$t(common:buttons.cancel)"
}
}
},
"share": {
"status": {
"heading": "分享嘟文",
"button": "分享此条嘟文的链接"
},
"account": {
"heading": "分享用户",
"button": "分享此用户的链接"
}
},
"status": {
"heading": "关于嘟文",
"delete": {
"function": "删除",
"button": "删除此条嘟文"
},
"edit": {
"function": "删除",
"button": "删除并重新编辑此条嘟文",
"alert": {
"title": "确认删除嘟文?",
"message": "确定要删除这条嘟文并重新编辑它吗?所有相关的转嘟和喜欢都会被清除,回复将会失去关联。",
"buttons": {
"confirm": "删除并重新编辑",
"cancel": "$t(common:buttons.cancel)"
}
}
},
"mute": {
"function": "静音",
"button": {
"positive": "静音此条嘟文及对话",
"negative": "取消静音此条嘟文及对话"
}
},
"pin": {
"function": "置顶",
"button": {
"positive": "置顶此条嘟文",
"negative": "取消置顶此条嘟文"
}
}
}
}
},
"poll": {
"meta": {
"button": {
"vote": "投票",
"refresh": "刷新"
},
"count": {
"voters": "已投{{count}}人 • ",
"votes": "已投{{count}}票 • "
},
"expiration": {
"expired": "投票已结束",
"until": "<0 />截止"
}
}
}
}
}

View File

@ -1,158 +0,0 @@
export default {
empty: {
error: {
message: '加载错误',
button: '重试'
},
success: {
message: '空无一物'
}
},
end: {
message: '居然刷到底了,喝杯 <0 /> 吧'
},
refresh: {
fetchPreviousPage: '较新于此的嘟嘟',
refetch: '最新的嘟嘟'
},
shared: {
actioned: {
pinned: '置顶',
favourite: '{{name}} 喜欢了你的嘟文',
status: '{{name}} 刚刚发嘟',
follow: '{{name}} 开始关注你',
follow_request: '{{name}} 请求关注你',
poll: '你参与的投票已结束',
reblog: {
default: '{{name}} 转嘟了',
notification: '{{name}} 转嘟了你的嘟文'
}
},
actions: {
favourited: {
function: '喜欢嘟文'
},
reblogged: {
function: '转嘟'
},
bookmarked: {
function: '喜欢嘟文'
}
},
actionsUsers: {
reblogged_by: '$t(sharedUsers:heading.statuses.reblogged_by)',
favourited_by: '$t(sharedUsers:heading.statuses.favourited_by)'
},
attachment: {
sensitive: {
button: '显示敏感内容'
},
unsupported: {
text: '附件读取错误',
button: '尝试远程链接'
}
},
content: {
expandHint: '隐藏内容'
},
fullConversation: '阅读全部对话',
header: {
shared: {
application: '发自于 {{application}}'
},
conversation: {
withAccounts: '与',
delete: {
function: '删除私信'
}
},
actions: {
account: {
heading: '关于用户',
mute: {
function: '隐藏 @{{acct}} 的嘟文',
button: '隐藏 @{{acct}} 的嘟文'
},
block: {
function: '屏蔽 @{{acct}}',
button: '屏蔽 @{{acct}}'
},
reports: {
function: '举报 @{{acct}}',
button: '举报 @{{acct}}'
}
},
domain: {
heading: '关于社区',
block: {
function: '屏蔽社区',
button: '屏蔽社区 {{domain}}'
},
alert: {
title: '确定要屏蔽 {{domain}} 吗?',
message:
'多数情况下,隐藏或屏蔽特定用户即可。\n\n屏蔽之后来自此社区的所有内容将不再出现在你的时间轴里。同时来自该社区的关注者将被移除。请谨慎使用。',
buttons: {
confirm: '确定屏蔽整个社区',
cancel: '$t(common:buttons.cancel)'
}
}
},
share: {
status: { heading: '分享嘟文', button: '分享此条嘟文的链接' },
account: { heading: '分享用户', button: '分享此用户的链接' }
},
status: {
heading: '关于嘟文',
delete: {
function: '删除',
button: '删除此条嘟文'
},
edit: {
function: '删除',
button: '删除并重新编辑此条嘟文',
alert: {
title: '确认删除嘟文?',
message:
'确定要删除这条嘟文并重新编辑它吗?所有相关的转嘟和喜欢都会被清除,回复将会失去关联。',
buttons: {
confirm: '删除并重新编辑',
cancel: '$t(common:buttons.cancel)'
}
}
},
mute: {
function: '静音',
button: {
positive: '静音此条嘟文及对话',
negative: '取消静音此条嘟文及对话'
}
},
pin: {
function: '置顶',
button: {
positive: '置顶此条嘟文',
negative: '取消置顶此条嘟文'
}
}
}
}
},
poll: {
meta: {
button: {
vote: '投票',
refresh: '刷新'
},
count: {
voters: '已投{{count}}人 • ',
votes: '已投{{count}}票 • '
},
expiration: {
expired: '投票已结束',
until: '<0 />截止'
}
}
}
}
}

View File

@ -0,0 +1,3 @@
{
"heading": "我的关注"
}

View File

@ -1,3 +0,0 @@
export default {
heading: '我的关注'
}

View File

@ -0,0 +1,4 @@
{
"heading": "书签",
"content": {}
}

View File

@ -1,4 +0,0 @@
export default {
heading: '书签',
content: {}
}

View File

@ -0,0 +1,4 @@
{
"heading": "私信",
"content": {}
}

View File

@ -1,4 +0,0 @@
export default {
heading: '私信',
content: {}
}

View File

@ -0,0 +1,4 @@
{
"heading": "喜欢",
"content": {}
}

View File

@ -1,4 +0,0 @@
export default {
heading: '喜欢',
content: {}
}

View File

@ -0,0 +1,4 @@
{
"heading": "列表",
"content": {}
}

View File

@ -1,4 +0,0 @@
export default {
heading: '列表',
content: {}
}

View File

@ -0,0 +1,4 @@
{
"heading": "列表:{{list}}",
"content": {}
}

View File

@ -1,4 +0,0 @@
export default {
heading: '列表:{{list}}',
content: {}
}

View File

@ -0,0 +1,31 @@
{
"content": {
"collections": {
"conversations": "$t(meConversations:heading)",
"bookmarks": "$t(meBookmarks:heading)",
"favourites": "$t(meFavourites:heading)",
"lists": "$t(meLists:heading)",
"announcements": {
"heading": "$t(sharedAnnouncements:heading)",
"content": {
"unread": "{{amount}} 条未读公告",
"read": "无未读公告",
"empty": "无公告"
}
}
},
"accountSettings": "账户设置",
"appSettings": "$t(meSettings:heading)",
"logout": {
"button": "退出当前账号",
"alert": {
"title": "确认退出登录?",
"message": "退出登录后,需要重新认证账号",
"buttons": {
"logout": "退出登录",
"cancel": "$t(common:buttons.cancel)"
}
}
}
}
}

View File

@ -1,31 +0,0 @@
export default {
content: {
collections: {
conversations: '$t(meConversations:heading)',
bookmarks: '$t(meBookmarks:heading)',
favourites: '$t(meFavourites:heading)',
lists: '$t(meLists:heading)',
announcements: {
heading: '$t(sharedAnnouncements:heading)',
content: {
unread: '{{amount}} 条未读公告',
read: '无未读公告',
empty: '无公告'
}
}
},
accountSettings: '账户设置',
appSettings: '$t(meSettings:heading)',
logout: {
button: '退出当前账号',
alert: {
title: '确认退出登录?',
message: '退出登录后,需要重新认证账号',
buttons: {
logout: '退出登录',
cancel: '$t(common:buttons.cancel)'
}
}
}
}
}

View File

@ -0,0 +1,65 @@
{
"heading": "设置",
"content": {
"push": {
"heading": "$t(meSettingsPush:heading)",
"content": {
"enabled": "已开启",
"disabled": "已关闭"
}
},
"fontsize": {
"heading": "$t(meSettingsFontsize:heading)",
"content": {
"S": "$t(meSettingsFontsize:content.sizes.S)",
"M": "$t(meSettingsFontsize:content.sizes.M)",
"L": "$t(meSettingsFontsize:content.sizes.L)",
"XL": "$t(meSettingsFontsize:content.sizes.XL)",
"XXL": "$t(meSettingsFontsize:content.sizes.XXL)"
}
},
"language": {
"heading": "切换语言",
"options": {
"en": "English",
"zh-Hans": "简体中文",
"cancel": "$t(common:buttons.cancel)"
}
},
"theme": {
"heading": "应用外观",
"options": {
"auto": "跟随系统",
"light": "浅色模式",
"dark": "深色模式",
"cancel": "$t(common:buttons.cancel)"
}
},
"browser": {
"heading": "外部链接",
"options": {
"internal": "应用内打开",
"external": "浏览器打开",
"cancel": "$t(common:buttons.cancel)"
}
},
"cache": {
"heading": "清空缓存",
"empty": "暂无缓存"
},
"support": {
"heading": "赞助 tooot 开发"
},
"review": {
"heading": "给 tooot 打分"
},
"contact": {
"heading": "联系 tooot"
},
"analytics": {
"heading": "帮助我们改进",
"description": "收集不与用户相关联的使用信息"
},
"version": "版本 v{{version}}"
}
}

View File

@ -1,65 +0,0 @@
export default {
heading: '设置',
content: {
push: {
heading: '$t(meSettingsPush:heading)',
content: {
enabled: '已开启',
disabled: '已关闭'
}
},
fontsize: {
heading: '$t(meSettingsFontsize:heading)',
content: {
S: '$t(meSettingsFontsize:content.sizes.S)',
M: '$t(meSettingsFontsize:content.sizes.M)',
L: '$t(meSettingsFontsize:content.sizes.L)',
XL: '$t(meSettingsFontsize:content.sizes.XL)',
XXL: '$t(meSettingsFontsize:content.sizes.XXL)'
}
},
language: {
heading: '切换语言',
options: {
en: 'English',
'zh-Hans': '简体中文',
cancel: '$t(common:buttons.cancel)'
}
},
theme: {
heading: '应用外观',
options: {
auto: '跟随系统',
light: '浅色模式',
dark: '深色模式',
cancel: '$t(common:buttons.cancel)'
}
},
browser: {
heading: '外部链接',
options: {
internal: '应用内打开',
external: '浏览器打开',
cancel: '$t(common:buttons.cancel)'
}
},
cache: {
heading: '清空缓存',
empty: '暂无缓存'
},
support: {
heading: '赞助 tooot 开发'
},
review: {
heading: '给 tooot 打分'
},
contact: {
heading: '联系 tooot'
},
analytics: {
heading: '帮助我们改进',
description: '收集不与用户相关联的使用信息'
},
version: '版本 v{{version}}'
}
}

View File

@ -0,0 +1,10 @@
{
"heading": "嘟文字号",
"content": {
"showcase": "嘟文示例",
"demo":
"<p>这是一条测试用的嘟文😊。以下是可供选择的字号,从小号至超大号。<br /><br />这个设置仅会调整嘟文的正文字号,不影响其它字号。</p>",
"availableSizes": "可选字号",
"sizes": { "S": "小号", "M": "默认", "L": "大号", "XL": "特大号", "XXL": "超大号" }
}
}

View File

@ -1,10 +0,0 @@
export default {
heading: '嘟文字号',
content: {
showcase: '嘟文示例',
demo:
'<p>这是一条测试用的嘟文😊。以下是可供选择的字号,从小号至超大号。<br /><br />这个设置仅会调整嘟文的正文字号,不影响其它字号。</p>',
availableSizes: '可选字号',
sizes: { S: '小号', M: '默认', L: '大号', XL: '特大号', XXL: '超大号' }
}
}

View File

@ -0,0 +1,40 @@
{
"heading": "推送通知",
"content": {
"enable": {
"direct": "启用tooot推送通知",
"settings": "去系统设置启用"
},
"global": {
"heading": "启用通知",
"description": "通知消息将经由tooot服务器转发"
},
"decode": {
"heading": "显示通知内容",
"description": "经由tooot服务器中转的通知消息已被加密但可以允许tooot服务器解密并转发消息。tooot消息服务器源码开源且不留存任何日志。"
},
"default": {
"heading": "默认通知"
},
"follow": {
"heading": "新关注者"
},
"favourite": {
"heading": "嘟文被喜欢"
},
"reblog": {
"heading": "嘟文被转嘟"
},
"mention": {
"heading": "嘟文提及你"
},
"poll": {
"heading": "投票更新"
},
"howitworks": "了解通知消息转发如何工作"
},
"error": {
"message": "推送服务错误",
"description": "请在设置中重新尝试启用推送通知"
}
}

View File

@ -1,41 +0,0 @@
export default {
heading: '推送通知',
content: {
enable: {
direct: '启用tooot推送通知',
settings: '去系统设置启用'
},
global: {
heading: '启用通知',
description: '通知消息将经由tooot服务器转发'
},
decode: {
heading: '显示通知内容',
description:
'经由tooot服务器中转的通知消息已被加密但可以允许tooot服务器解密并转发消息。tooot消息服务器源码开源且不留存任何日志。'
},
default: {
heading: '默认通知' // Android notification channel name only
},
follow: {
heading: '新关注者'
},
favourite: {
heading: '嘟文被喜欢'
},
reblog: {
heading: '嘟文被转嘟'
},
mention: {
heading: '嘟文提及你'
},
poll: {
heading: '投票更新'
},
howitworks: '了解通知消息转发如何工作'
},
error: {
message: '推送服务错误',
description: '请在设置中重新尝试启用推送通知'
}
}

View File

@ -0,0 +1,7 @@
{
"heading": "切换账号",
"content": {
"existing": "选择已登录的账号",
"new": "登录新社区"
}
}

View File

@ -1,7 +0,0 @@
export default {
heading: '切换账号',
content: {
existing: '选择已登录的账号',
new: '登录新社区'
}
}

View File

@ -0,0 +1,3 @@
{
"heading": "通知"
}

View File

@ -1,3 +0,0 @@
export default {
heading: '通知'
}

View File

@ -0,0 +1,8 @@
{
"heading": {
"segments": {
"left": "跨站嘟嘟",
"right": "本站嘟嘟"
}
}
}

View File

@ -1,8 +0,0 @@
export default {
heading: {
segments: {
left: '跨站嘟嘟',
right: '本站嘟嘟'
}
}
}

View File

@ -0,0 +1,19 @@
{
"content": {
"button": {
"apply": "$t(common:buttons.apply)",
"cancel": "$t(common:buttons.cancel)"
},
"notificationsFilter": {
"heading": "显示通知",
"content": {
"follow": "$t(meSettingsPush:content.follow.heading)",
"favourite": "$t(meSettingsPush:content.favourite.heading)",
"reblog": "$t(meSettingsPush:content.reblog.heading)",
"mention": "$t(meSettingsPush:content.mention.heading)",
"poll": "$t(meSettingsPush:content.poll.heading)",
"follow_request": "关注请求"
}
}
}
}

View File

@ -1,19 +0,0 @@
export default {
content: {
button: {
apply: '$t(common:buttons.apply)',
cancel: '$t(common:buttons.cancel)'
},
notificationsFilter: {
heading: '显示通知',
content: {
follow: '$t(meSettingsPush:content.follow.heading)',
favourite: '$t(meSettingsPush:content.favourite.heading)',
reblog: '$t(meSettingsPush:content.reblog.heading)',
mention: '$t(meSettingsPush:content.mention.heading)',
poll: '$t(meSettingsPush:content.poll.heading)',
follow_request: '关注请求'
}
}
}
}

View File

@ -0,0 +1,13 @@
{
"content": {
"options": {
"save": "保存图片",
"share": "分享图片",
"cancel": "$t(common:buttons.cancel)"
},
"save": {
"function": "保存图片",
"success": "图片保存成功"
}
}
}

Some files were not shown because too many files have changed in this diff Show More