mirror of
https://github.com/tooot-app/app
synced 2025-02-18 04:40:57 +01:00
Put all localisation into json
This commit is contained in:
parent
edc0a1874c
commit
396ed8a80c
@ -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()
|
||||
|
@ -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
32
src/i18n/en/common.json
Normal 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": ", "
|
||||
}
|
@ -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: ', '
|
||||
}
|
28
src/i18n/en/components/instance.json
Normal file
28
src/i18n/en/components/instance.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
9
src/i18n/en/components/parse.json
Normal file
9
src/i18n/en/components/parse.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"HTML": {
|
||||
"expanded": {
|
||||
"true": "Fold {{hint}}",
|
||||
"false": "Expand {{hint}}"
|
||||
},
|
||||
"defaultHint": "article"
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
export default {
|
||||
HTML: {
|
||||
expanded: {
|
||||
true: 'Fold {{hint}}',
|
||||
false: 'Expand {{hint}}'
|
||||
},
|
||||
defaultHint: 'article'
|
||||
}
|
||||
}
|
16
src/i18n/en/components/relationship.json
Normal file
16
src/i18n/en/components/relationship.json
Normal 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"
|
||||
}
|
||||
}
|
@ -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'
|
||||
}
|
||||
}
|
20
src/i18n/en/components/relativeTime.json
Normal file
20
src/i18n/en/components/relativeTime.json
Normal 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": " "
|
||||
}
|
||||
}
|
@ -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: ' '
|
||||
}
|
||||
}
|
164
src/i18n/en/components/timeline.json
Normal file
164
src/i18n/en/components/timeline.json
Normal 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 />"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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 />'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
3
src/i18n/en/screens/local.json
Normal file
3
src/i18n/en/screens/local.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"heading": "Following"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
export default {
|
||||
heading: 'Following'
|
||||
}
|
3
src/i18n/en/screens/meBookmarks.json
Normal file
3
src/i18n/en/screens/meBookmarks.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"heading": "Bookmarks"
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
export default {
|
||||
heading: 'Bookmarks',
|
||||
content: {}
|
||||
}
|
3
src/i18n/en/screens/meConversations.json
Normal file
3
src/i18n/en/screens/meConversations.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"heading": "Direct Messages"
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
export default {
|
||||
heading: 'Direct Messages',
|
||||
content: {}
|
||||
}
|
3
src/i18n/en/screens/meFavourites.json
Normal file
3
src/i18n/en/screens/meFavourites.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"heading": "Favourites"
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
export default {
|
||||
heading: 'Favourites',
|
||||
content: {}
|
||||
}
|
3
src/i18n/en/screens/meLists.json
Normal file
3
src/i18n/en/screens/meLists.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"heading": "Lists"
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
export default {
|
||||
heading: 'Lists',
|
||||
content: {}
|
||||
}
|
3
src/i18n/en/screens/meListsList.json
Normal file
3
src/i18n/en/screens/meListsList.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"heading": "List: {{list}}"
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
export default {
|
||||
heading: 'List: {{list}}',
|
||||
content: {}
|
||||
}
|
31
src/i18n/en/screens/meRoot.json
Normal file
31
src/i18n/en/screens/meRoot.json
Normal 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)"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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)'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
65
src/i18n/en/screens/meSettings.json
Normal file
65
src/i18n/en/screens/meSettings.json
Normal 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}}"
|
||||
}
|
||||
}
|
@ -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}}'
|
||||
}
|
||||
}
|
15
src/i18n/en/screens/meSettingsFontsize.json
Normal file
15
src/i18n/en/screens/meSettingsFontsize.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
@ -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' }
|
||||
}
|
||||
}
|
40
src/i18n/en/screens/meSettingsPush.json
Normal file
40
src/i18n/en/screens/meSettingsPush.json
Normal 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"
|
||||
}
|
||||
}
|
@ -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'
|
||||
}
|
||||
}
|
7
src/i18n/en/screens/meSwitch.json
Normal file
7
src/i18n/en/screens/meSwitch.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"heading": "Switch Account",
|
||||
"content": {
|
||||
"existing": "Choose from logged in",
|
||||
"new": "Log in to instance"
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
export default {
|
||||
heading: 'Switch Account',
|
||||
content: {
|
||||
existing: 'Choose from logged in',
|
||||
new: 'Log in to instance'
|
||||
}
|
||||
}
|
3
src/i18n/en/screens/notifications.json
Normal file
3
src/i18n/en/screens/notifications.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"heading": "Notifications"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
export default {
|
||||
heading: 'Notifications'
|
||||
}
|
8
src/i18n/en/screens/public.json
Normal file
8
src/i18n/en/screens/public.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"heading": {
|
||||
"segments": {
|
||||
"left": "Federated",
|
||||
"right": "Local"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
export default {
|
||||
heading: {
|
||||
segments: {
|
||||
left: 'Federated',
|
||||
right: 'Local'
|
||||
}
|
||||
}
|
||||
}
|
19
src/i18n/en/screens/screenActions.json
Normal file
19
src/i18n/en/screens/screenActions.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
13
src/i18n/en/screens/screenImageViewer.json
Normal file
13
src/i18n/en/screens/screenImageViewer.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
@ -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'
|
||||
}
|
||||
}
|
||||
}
|
11
src/i18n/en/screens/sharedAccount.json
Normal file
11
src/i18n/en/screens/sharedAccount.json
Normal 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)"
|
||||
}
|
||||
}
|
||||
}
|
@ -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)'
|
||||
}
|
||||
}
|
||||
}
|
10
src/i18n/en/screens/sharedAnnouncements.json
Normal file
10
src/i18n/en/screens/sharedAnnouncements.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"heading": "Announcements",
|
||||
"content": {
|
||||
"published": "Published <0 />",
|
||||
"button": {
|
||||
"read": "Read",
|
||||
"unread": "Mark read"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
export default {
|
||||
heading: 'Announcements',
|
||||
content: {
|
||||
published: 'Published <0 />',
|
||||
button: {
|
||||
read: 'Read',
|
||||
unread: 'Mark read'
|
||||
}
|
||||
}
|
||||
}
|
3
src/i18n/en/screens/sharedAttachments.json
Normal file
3
src/i18n/en/screens/sharedAttachments.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"heading": "<0 />\"s <1>media</1>"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
export default {
|
||||
heading: '<0 />\'s <1>media</1>'
|
||||
}
|
157
src/i18n/en/screens/sharedCompose.json
Normal file
157
src/i18n/en/screens/sharedCompose.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
26
src/i18n/en/screens/sharedSearch.json
Normal file
26
src/i18n/en/screens/sharedSearch.json
Normal 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}}"
|
||||
}
|
||||
}
|
@ -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}}'
|
||||
}
|
||||
}
|
3
src/i18n/en/screens/sharedToot.json
Normal file
3
src/i18n/en/screens/sharedToot.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"heading": "Discussions"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
export default {
|
||||
heading: 'Discussions'
|
||||
}
|
12
src/i18n/en/screens/sharedUsers.json
Normal file
12
src/i18n/en/screens/sharedUsers.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"heading": {
|
||||
"accounts": {
|
||||
"following": "Following {{count}}",
|
||||
"followers": "{{count}} followers"
|
||||
},
|
||||
"statuses": {
|
||||
"reblogged_by": "{{count}} boosted",
|
||||
"favourited_by": "{{count}} favourited"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
export default {
|
||||
heading: {
|
||||
accounts: {
|
||||
following: 'Following {{count}}',
|
||||
followers: '{{count}} followers'
|
||||
},
|
||||
statuses: {
|
||||
reblogged_by: '{{count}} boosted',
|
||||
favourited_by: '{{count}} favourited'
|
||||
}
|
||||
}
|
||||
}
|
@ -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/zh-Hans/common.json
Normal file
32
src/i18n/zh-Hans/common.json
Normal 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": ","
|
||||
}
|
@ -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: ','
|
||||
}
|
28
src/i18n/zh-Hans/components/instance.json
Normal file
28
src/i18n/zh-Hans/components/instance.json
Normal 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": "继续"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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: '继续'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
9
src/i18n/zh-Hans/components/parse.json
Normal file
9
src/i18n/zh-Hans/components/parse.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"HTML": {
|
||||
"expanded": {
|
||||
"true": "折叠{{hint}}",
|
||||
"false": "展开{{hint}}"
|
||||
},
|
||||
"defaultHint": "全文"
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
export default {
|
||||
HTML: {
|
||||
expanded: {
|
||||
true: '折叠{{hint}}',
|
||||
false: '展开{{hint}}'
|
||||
},
|
||||
defaultHint: '全文'
|
||||
}
|
||||
}
|
16
src/i18n/zh-Hans/components/relationship.json
Normal file
16
src/i18n/zh-Hans/components/relationship.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"follow": {
|
||||
"function": "关注"
|
||||
},
|
||||
"block": {
|
||||
"function": "屏蔽"
|
||||
},
|
||||
"button": {
|
||||
"error": "读取错误",
|
||||
"blocked_by": "被用户屏蔽",
|
||||
"blocking": "取消屏蔽",
|
||||
"following": "取消关注",
|
||||
"requested": "取消关注请求",
|
||||
"default": "关注"
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
export default {
|
||||
follow: {
|
||||
function: '关注'
|
||||
},
|
||||
block: {
|
||||
function: '屏蔽'
|
||||
},
|
||||
button: {
|
||||
error: '读取错误',
|
||||
blocked_by: '被用户屏蔽',
|
||||
blocking: '取消屏蔽',
|
||||
following: '取消关注',
|
||||
requested: '取消关注请求',
|
||||
default: '关注'
|
||||
}
|
||||
}
|
20
src/i18n/zh-Hans/components/relativeTime.json
Normal file
20
src/i18n/zh-Hans/components/relativeTime.json
Normal 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": ""
|
||||
}
|
||||
}
|
@ -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: ''
|
||||
}
|
||||
}
|
162
src/i18n/zh-Hans/components/timeline.json
Normal file
162
src/i18n/zh-Hans/components/timeline.json
Normal 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 />截止"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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 />截止'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
3
src/i18n/zh-Hans/screens/local.json
Normal file
3
src/i18n/zh-Hans/screens/local.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"heading": "我的关注"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
export default {
|
||||
heading: '我的关注'
|
||||
}
|
4
src/i18n/zh-Hans/screens/meBookmarks.json
Normal file
4
src/i18n/zh-Hans/screens/meBookmarks.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"heading": "书签",
|
||||
"content": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
export default {
|
||||
heading: '书签',
|
||||
content: {}
|
||||
}
|
4
src/i18n/zh-Hans/screens/meConversations.json
Normal file
4
src/i18n/zh-Hans/screens/meConversations.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"heading": "私信",
|
||||
"content": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
export default {
|
||||
heading: '私信',
|
||||
content: {}
|
||||
}
|
4
src/i18n/zh-Hans/screens/meFavourites.json
Normal file
4
src/i18n/zh-Hans/screens/meFavourites.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"heading": "喜欢",
|
||||
"content": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
export default {
|
||||
heading: '喜欢',
|
||||
content: {}
|
||||
}
|
4
src/i18n/zh-Hans/screens/meLists.json
Normal file
4
src/i18n/zh-Hans/screens/meLists.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"heading": "列表",
|
||||
"content": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
export default {
|
||||
heading: '列表',
|
||||
content: {}
|
||||
}
|
4
src/i18n/zh-Hans/screens/meListsList.json
Normal file
4
src/i18n/zh-Hans/screens/meListsList.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"heading": "列表:{{list}}",
|
||||
"content": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
export default {
|
||||
heading: '列表:{{list}}',
|
||||
content: {}
|
||||
}
|
31
src/i18n/zh-Hans/screens/meRoot.json
Normal file
31
src/i18n/zh-Hans/screens/meRoot.json
Normal 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)"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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)'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
65
src/i18n/zh-Hans/screens/meSettings.json
Normal file
65
src/i18n/zh-Hans/screens/meSettings.json
Normal 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}}"
|
||||
}
|
||||
}
|
@ -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}}'
|
||||
}
|
||||
}
|
10
src/i18n/zh-Hans/screens/meSettingsFontsize.json
Normal file
10
src/i18n/zh-Hans/screens/meSettingsFontsize.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"heading": "嘟文字号",
|
||||
"content": {
|
||||
"showcase": "嘟文示例",
|
||||
"demo":
|
||||
"<p>这是一条测试用的嘟文😊。以下是可供选择的字号,从小号至超大号。<br /><br />这个设置仅会调整嘟文的正文字号,不影响其它字号。</p>",
|
||||
"availableSizes": "可选字号",
|
||||
"sizes": { "S": "小号", "M": "默认", "L": "大号", "XL": "特大号", "XXL": "超大号" }
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
export default {
|
||||
heading: '嘟文字号',
|
||||
content: {
|
||||
showcase: '嘟文示例',
|
||||
demo:
|
||||
'<p>这是一条测试用的嘟文😊。以下是可供选择的字号,从小号至超大号。<br /><br />这个设置仅会调整嘟文的正文字号,不影响其它字号。</p>',
|
||||
availableSizes: '可选字号',
|
||||
sizes: { S: '小号', M: '默认', L: '大号', XL: '特大号', XXL: '超大号' }
|
||||
}
|
||||
}
|
40
src/i18n/zh-Hans/screens/meSettingsPush.json
Normal file
40
src/i18n/zh-Hans/screens/meSettingsPush.json
Normal 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": "请在设置中重新尝试启用推送通知"
|
||||
}
|
||||
}
|
@ -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: '请在设置中重新尝试启用推送通知'
|
||||
}
|
||||
}
|
7
src/i18n/zh-Hans/screens/meSwitch.json
Normal file
7
src/i18n/zh-Hans/screens/meSwitch.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"heading": "切换账号",
|
||||
"content": {
|
||||
"existing": "选择已登录的账号",
|
||||
"new": "登录新社区"
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
export default {
|
||||
heading: '切换账号',
|
||||
content: {
|
||||
existing: '选择已登录的账号',
|
||||
new: '登录新社区'
|
||||
}
|
||||
}
|
3
src/i18n/zh-Hans/screens/notifications.json
Normal file
3
src/i18n/zh-Hans/screens/notifications.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"heading": "通知"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
export default {
|
||||
heading: '通知'
|
||||
}
|
8
src/i18n/zh-Hans/screens/public.json
Normal file
8
src/i18n/zh-Hans/screens/public.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"heading": {
|
||||
"segments": {
|
||||
"left": "跨站嘟嘟",
|
||||
"right": "本站嘟嘟"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
export default {
|
||||
heading: {
|
||||
segments: {
|
||||
left: '跨站嘟嘟',
|
||||
right: '本站嘟嘟'
|
||||
}
|
||||
}
|
||||
}
|
19
src/i18n/zh-Hans/screens/screenActions.json
Normal file
19
src/i18n/zh-Hans/screens/screenActions.json
Normal 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": "关注请求"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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: '关注请求'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
13
src/i18n/zh-Hans/screens/screenImageViewer.json
Normal file
13
src/i18n/zh-Hans/screens/screenImageViewer.json
Normal 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
Loading…
x
Reference in New Issue
Block a user