mirror of
https://github.com/tooot-app/app
synced 2024-12-09 07:36:35 +01:00
Try out clean Crowdin source strings
This commit is contained in:
parent
267832dd15
commit
aab3d8d94d
Before Width: | Height: | Size: 383 KiB After Width: | Height: | Size: 383 KiB |
@ -88,7 +88,8 @@ const App: React.FC = () => {
|
||||
log('log', 'App', 'bootstrapped')
|
||||
if (bootstrapped) {
|
||||
log('log', 'App', 'loading actual app :)')
|
||||
i18n.changeLanguage(getSettingsLanguage(store.getState()))
|
||||
const language = getSettingsLanguage(store.getState())
|
||||
i18n.changeLanguage(language)
|
||||
return (
|
||||
<ActionSheetProvider>
|
||||
<AccessibilityManager>
|
||||
|
@ -35,7 +35,7 @@ export interface Props {
|
||||
}
|
||||
|
||||
const Screens: React.FC<Props> = ({ localCorrupt }) => {
|
||||
const { t } = useTranslation('common')
|
||||
const { t } = useTranslation('screens')
|
||||
const dispatch = useDispatch()
|
||||
const instanceActive = useSelector(getInstanceActive)
|
||||
const { mode, theme } = useTheme()
|
||||
@ -92,7 +92,7 @@ const Screens: React.FC<Props> = ({ localCorrupt }) => {
|
||||
const showLocalCorrect = () => {
|
||||
if (localCorrupt) {
|
||||
displayMessage({
|
||||
message: t('index.localCorrupt'),
|
||||
message: t('localCorrupt.message'),
|
||||
description: localCorrupt.length ? localCorrupt : undefined,
|
||||
type: 'error',
|
||||
mode
|
||||
|
@ -131,7 +131,7 @@ const ComponentInstance: React.FC<Props> = ({
|
||||
{!disableHeaderImage ? (
|
||||
<View style={styles.imageContainer}>
|
||||
<Image
|
||||
source={require('assets/screens/meRoot/welcome.png')}
|
||||
source={require('assets/images/welcome.png')}
|
||||
style={styles.image}
|
||||
/>
|
||||
</View>
|
||||
|
@ -41,7 +41,7 @@ const RelationshipIncoming: React.FC<Props> = ({ id }) => {
|
||||
displayMessage({
|
||||
type: 'error',
|
||||
mode,
|
||||
message: t('common:toastMessage.error.message', {
|
||||
message: t('common:message.error.message', {
|
||||
function: t(`relationship:${type}.function`)
|
||||
}),
|
||||
...(err.status &&
|
||||
|
@ -42,7 +42,7 @@ const RelationshipOutgoing = React.memo(
|
||||
displayMessage({
|
||||
mode,
|
||||
type: 'error',
|
||||
message: t('common:toastMessage.error.message', {
|
||||
message: t('common:message.error.message', {
|
||||
function: t(`${action}.function`)
|
||||
}),
|
||||
...(err.status &&
|
||||
|
@ -85,7 +85,7 @@ const TimelineActions: React.FC<Props> = ({
|
||||
displayMessage({
|
||||
mode,
|
||||
type: 'error',
|
||||
message: t('common:toastMessage.error.message', {
|
||||
message: t('common:message.error.message', {
|
||||
function: t(
|
||||
`shared.actions.${correctParam.payload.property}.function`
|
||||
)
|
||||
|
@ -59,7 +59,7 @@ const HeaderConversation = React.memo(
|
||||
displayMessage({
|
||||
mode,
|
||||
type: 'error',
|
||||
message: t('common:toastMessage.error.message', {
|
||||
message: t('common:message.error.message', {
|
||||
function: t(`shared.header.conversation.delete.function`)
|
||||
}),
|
||||
...(err.status &&
|
||||
|
@ -63,7 +63,7 @@ const TimelinePoll: React.FC<Props> = ({
|
||||
displayMessage({
|
||||
mode,
|
||||
type: 'error',
|
||||
message: t('common:toastMessage.error.message', {
|
||||
message: t('common:message.error.message', {
|
||||
// @ts-ignore
|
||||
function: t(`shared.poll.meta.button.${theParams.payload.type}`)
|
||||
}),
|
||||
@ -269,12 +269,14 @@ const TimelinePoll: React.FC<Props> = ({
|
||||
return (
|
||||
<Text style={[styles.votes, { color: theme.secondary }]}>
|
||||
{t('shared.poll.meta.count.voters', { count: poll.voters_count })}
|
||||
{' • '}
|
||||
</Text>
|
||||
)
|
||||
} else if (poll.votes_count !== null) {
|
||||
return (
|
||||
<Text style={[styles.votes, { color: theme.secondary }]}>
|
||||
{t('shared.poll.meta.count.votes', { count: poll.votes_count })}
|
||||
{' • '}
|
||||
</Text>
|
||||
)
|
||||
}
|
||||
|
@ -1,37 +1,16 @@
|
||||
export default {
|
||||
common: require('./common'),
|
||||
|
||||
local: require('./screens/local'),
|
||||
|
||||
public: require('./screens/public'),
|
||||
|
||||
notifications: require('./screens/notifications'),
|
||||
|
||||
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'),
|
||||
sharedAnnouncements: require('./screens/sharedAnnouncements'),
|
||||
sharedAttachments: require('./screens/sharedAttachments'),
|
||||
sharedCompose: require('./screens/sharedCompose'),
|
||||
sharedSearch: require('./screens/sharedSearch'),
|
||||
sharedToot: require('./screens/sharedToot'),
|
||||
sharedUsers: require('./screens/sharedUsers'),
|
||||
screens: require('./screens'),
|
||||
screenActions: require('./screens/actions'),
|
||||
screenAnnouncements: require('./screens/announcements'),
|
||||
screenCompose: require('./screens/compose'),
|
||||
screenImageViewer: require('./screens/imageViewer'),
|
||||
screenTabs: require('./screens/tabs'),
|
||||
|
||||
componentInstance: require('./components/instance'),
|
||||
componentParse: require('./components/parse'),
|
||||
componentRelationship: require('./components/relationship'),
|
||||
componentRelativeTime: require('./components/relativeTime'),
|
||||
componentTimeline: require('./components/timeline'),
|
||||
|
||||
screenActions: require('./screens/screenActions'),
|
||||
screenImageViewer: require('./screens/screenImageViewer')
|
||||
componentTimeline: require('./components/timeline')
|
||||
}
|
||||
|
@ -1,23 +1,9 @@
|
||||
{
|
||||
"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": {
|
||||
"message": {
|
||||
"success": {
|
||||
"message": "{{function}} succeed"
|
||||
},
|
||||
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"strings": {
|
||||
"prefixAgo": null,
|
||||
"prefixFromNow": null,
|
||||
"prefixAgo": "",
|
||||
"prefixFromNow": "",
|
||||
"suffixAgo": "ago",
|
||||
"suffixFromNow": null,
|
||||
"suffixFromNow": "",
|
||||
"seconds": "%d seconds",
|
||||
"minute": "about a minute",
|
||||
"minutes": "%d minutes",
|
||||
|
@ -149,10 +149,10 @@
|
||||
"refresh": "Refresh"
|
||||
},
|
||||
"count": {
|
||||
"voters": "{{count}} user voted • ",
|
||||
"voters_plural": "{{count}} users voted • ",
|
||||
"votes": "{{count}} vote • ",
|
||||
"votes_plural": "{{count}} votes • "
|
||||
"voters": "{{count}} user voted",
|
||||
"voters_plural": "{{count}} users voted",
|
||||
"votes": "{{count}} vote",
|
||||
"votes_plural": "{{count}} votes"
|
||||
},
|
||||
"expiration": {
|
||||
"expired": "Vote expired",
|
||||
|
20
src/i18n/en/screens.json
Normal file
20
src/i18n/en/screens.json
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"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"
|
||||
},
|
||||
"localCorrupt": {
|
||||
"message": "Login expired, please login again"
|
||||
},
|
||||
"pushError": {
|
||||
"message": "Push service error",
|
||||
"description": "Please re-enable push notification in settings"
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@
|
||||
"published": "Published <0 />",
|
||||
"button": {
|
||||
"read": "Read",
|
||||
"unread": "Mark read"
|
||||
"unread": "Mark as read"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"heading": "Following"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"heading": "Bookmarks"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"heading": "Direct Messages"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"heading": "Favourites"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"heading": "Lists"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"heading": "List: {{list}}"
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
{
|
||||
"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,65 +0,0 @@
|
||||
{
|
||||
"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,15 +0,0 @@
|
||||
{
|
||||
"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,40 +0,0 @@
|
||||
{
|
||||
"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,7 +0,0 @@
|
||||
{
|
||||
"heading": "Switch Account",
|
||||
"content": {
|
||||
"existing": "Choose from logged in",
|
||||
"new": "Log in to instance"
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"heading": "Notifications"
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"heading": {
|
||||
"segments": {
|
||||
"left": "Federated",
|
||||
"right": "Local"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
{
|
||||
"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,3 +0,0 @@
|
||||
{
|
||||
"heading": "<0 />\"s <1>media</1>"
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
{
|
||||
"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,3 +0,0 @@
|
||||
{
|
||||
"heading": "Discussions"
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"heading": {
|
||||
"accounts": {
|
||||
"following": "Following {{count}}",
|
||||
"followers": "{{count}} followers"
|
||||
},
|
||||
"statuses": {
|
||||
"reblogged_by": "{{count}} boosted",
|
||||
"favourited_by": "{{count}} favourited"
|
||||
}
|
||||
}
|
||||
}
|
233
src/i18n/en/screens/tabs.json
Normal file
233
src/i18n/en/screens/tabs.json
Normal file
@ -0,0 +1,233 @@
|
||||
{
|
||||
"tabs": {
|
||||
"local": {
|
||||
"name": "Following"
|
||||
},
|
||||
"public": {
|
||||
"name": "",
|
||||
"segments": {
|
||||
"left": "Federated",
|
||||
"right": "Local"
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"name": "Notifications"
|
||||
},
|
||||
"me": {
|
||||
"name": "About me"
|
||||
}
|
||||
},
|
||||
"me": {
|
||||
"stacks": {
|
||||
"bookmarks": {
|
||||
"name": "Bookmarks"
|
||||
},
|
||||
"conversations": {
|
||||
"name": "Direct Messages"
|
||||
},
|
||||
"favourites": {
|
||||
"name": "Favourites"
|
||||
},
|
||||
"fontSize": {
|
||||
"name": "Toot Font Size"
|
||||
},
|
||||
"lists": {
|
||||
"name": "Lists"
|
||||
},
|
||||
"list": {
|
||||
"name": "List: {{list}}"
|
||||
},
|
||||
"push": {
|
||||
"name": "Push Notification"
|
||||
},
|
||||
"settings": {
|
||||
"name": "Settings"
|
||||
},
|
||||
"switch": {
|
||||
"name": "Switch Account"
|
||||
}
|
||||
},
|
||||
"fontSize": {
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"push": {
|
||||
"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"
|
||||
},
|
||||
"root": {
|
||||
"announcements": {
|
||||
"content": {
|
||||
"unread": "{{amount}} unread",
|
||||
"read": "All read",
|
||||
"empty": "None"
|
||||
}
|
||||
},
|
||||
"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)"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"push": {
|
||||
"heading": "$t(me.stacks.push.name)",
|
||||
"content": {
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled"
|
||||
}
|
||||
},
|
||||
"fontsize": {
|
||||
"heading": "$t(me.stacks.fontSize.name)",
|
||||
"content": {
|
||||
"S": "$t(me.fontSize.sizes.S)",
|
||||
"M": "$t(me.fontSize.sizes.M)",
|
||||
"L": "$t(me.fontSize.sizes.L)",
|
||||
"XL": "$t(me.fontSize.sizes.XL)",
|
||||
"XXL": "$t(me.fontSize.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}}"
|
||||
},
|
||||
"switch": {
|
||||
"existing": "Choose from logged in",
|
||||
"new": "Log in to instance"
|
||||
}
|
||||
},
|
||||
"shared": {
|
||||
"account": {
|
||||
"moved": "User moved",
|
||||
"created_at": "Registered on: {{date}}",
|
||||
"summary": {
|
||||
"statuses_count": "{{count}} toots",
|
||||
"following_count": "$t(shared.users.accounts.following)",
|
||||
"followers_count": "$t(shared.users.accounts.followers)"
|
||||
}
|
||||
},
|
||||
"attachments": {
|
||||
"name": "<0 /><1>\"s media</1>"
|
||||
},
|
||||
"search": {
|
||||
"header": {
|
||||
"prefix": "Searching",
|
||||
"placeholder": "for..."
|
||||
},
|
||||
"empty": {
|
||||
"general": "Enter keyword to search for <bold>$t(screenTabs:shared.search.sections.accounts)</bold>、<bold>$t(screenTabs:shared.search.sections.hashtags)</bold> or <bold>$t(screenTabs:shared.search.sections.statuses)</bold>",
|
||||
"advanced": {
|
||||
"header": "Advanced search",
|
||||
"example": {
|
||||
"account": "$t(shared.search.header.prefix) $t(shared.search.sections.accounts)",
|
||||
"hashtag": "$t(shared.search.header.prefix) $t(shared.search.sections.hashtags)",
|
||||
"statusLink": "$t(shared.search.header.prefix) $t(shared.search.sections.statuses)",
|
||||
"accountLink": "$t(shared.search.header.prefix) $t(shared.search.sections.accounts)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sections": {
|
||||
"accounts": "User",
|
||||
"hashtags": "Hashtag",
|
||||
"statuses": "Toot"
|
||||
},
|
||||
"notFound": "Cannot find <bold>{{searchTerm}}</bold> related {{type}}"
|
||||
},
|
||||
"toot": {
|
||||
"name": "Discussions"
|
||||
},
|
||||
"users": {
|
||||
"accounts": {
|
||||
"following": "Following {{count}}",
|
||||
"followers": "{{count}} followers"
|
||||
},
|
||||
"statuses": {
|
||||
"reblogged_by": "{{count}} boosted",
|
||||
"favourited_by": "{{count}} favourited"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
6
src/i18n/locales.ts
Normal file
6
src/i18n/locales.ts
Normal file
@ -0,0 +1,6 @@
|
||||
const LOCALES = {
|
||||
en: 'English',
|
||||
'zh-Hans': '简体中文'
|
||||
} as {en: string}
|
||||
|
||||
export { LOCALES }
|
@ -1,37 +1,16 @@
|
||||
export default {
|
||||
common: require('./common'),
|
||||
|
||||
local: require('./screens/local'),
|
||||
|
||||
public: require('./screens/public'),
|
||||
|
||||
notifications: require('./screens/notifications'),
|
||||
|
||||
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'),
|
||||
sharedAnnouncements: require('./screens/sharedAnnouncements'),
|
||||
sharedAttachments: require('./screens/sharedAttachments'),
|
||||
sharedCompose: require('./screens/sharedCompose'),
|
||||
sharedSearch: require('./screens/sharedSearch'),
|
||||
sharedToot: require('./screens/sharedToot'),
|
||||
sharedUsers: require('./screens/sharedUsers'),
|
||||
screens: require('./screens'),
|
||||
screenActions: require('./screens/actions'),
|
||||
screenAnnouncements: require('./screens/announcements'),
|
||||
screenCompose: require('./screens/compose'),
|
||||
screenImageViewer: require('./screens/imageViewer'),
|
||||
screenTabs: require('./screens/tabs'),
|
||||
|
||||
componentInstance: require('./components/instance'),
|
||||
componentParse: require('./components/parse'),
|
||||
componentRelationship: require('./components/relationship'),
|
||||
componentRelativeTime: require('./components/relativeTime'),
|
||||
componentTimeline: require('./components/timeline'),
|
||||
|
||||
screenActions: require('./screens/screenActions'),
|
||||
screenImageViewer: require('./screens/screenImageViewer')
|
||||
componentTimeline: require('./components/timeline')
|
||||
}
|
||||
|
@ -1,32 +0,0 @@
|
||||
{
|
||||
"network": {
|
||||
"disconnected": {
|
||||
"message": "无法连接到网络",
|
||||
"description": "请检查手机设置里的网络连接"
|
||||
}
|
||||
},
|
||||
"screenshot": {
|
||||
"title": "隐私保护",
|
||||
"message": "请确保不要泄露其它用户的敏感信息,例如用户名、头像等,谢谢!",
|
||||
"button": "好的"
|
||||
},
|
||||
"index": {
|
||||
"localCorrupt": "登录已过期,请重新登录"
|
||||
},
|
||||
"buttons": {
|
||||
"apply": "应用",
|
||||
"cancel": "取消"
|
||||
},
|
||||
"toastMessage": {
|
||||
"success": {
|
||||
"message": "{{function}}成功"
|
||||
},
|
||||
"warning": {
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"message": "{{function}}失败,请重试"
|
||||
}
|
||||
},
|
||||
"separator": ","
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
{
|
||||
"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,9 +0,0 @@
|
||||
{
|
||||
"HTML": {
|
||||
"expanded": {
|
||||
"true": "折叠{{hint}}",
|
||||
"false": "展开{{hint}}"
|
||||
},
|
||||
"defaultHint": "全文"
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{
|
||||
"follow": {
|
||||
"function": "关注"
|
||||
},
|
||||
"block": {
|
||||
"function": "屏蔽"
|
||||
},
|
||||
"button": {
|
||||
"error": "读取错误",
|
||||
"blocked_by": "被用户屏蔽",
|
||||
"blocking": "取消屏蔽",
|
||||
"following": "取消关注",
|
||||
"requested": "取消关注请求",
|
||||
"default": "关注"
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"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,162 +0,0 @@
|
||||
{
|
||||
"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,3 +0,0 @@
|
||||
{
|
||||
"heading": "我的关注"
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"heading": "书签",
|
||||
"content": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"heading": "私信",
|
||||
"content": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"heading": "喜欢",
|
||||
"content": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"heading": "列表",
|
||||
"content": {}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"heading": "列表:{{list}}",
|
||||
"content": {}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
{
|
||||
"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,65 +0,0 @@
|
||||
{
|
||||
"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,10 +0,0 @@
|
||||
{
|
||||
"heading": "嘟文字号",
|
||||
"content": {
|
||||
"showcase": "嘟文示例",
|
||||
"demo":
|
||||
"<p>这是一条测试用的嘟文😊。以下是可供选择的字号,从小号至超大号。<br /><br />这个设置仅会调整嘟文的正文字号,不影响其它字号。</p>",
|
||||
"availableSizes": "可选字号",
|
||||
"sizes": { "S": "小号", "M": "默认", "L": "大号", "XL": "特大号", "XXL": "超大号" }
|
||||
}
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
{
|
||||
"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,7 +0,0 @@
|
||||
{
|
||||
"heading": "切换账号",
|
||||
"content": {
|
||||
"existing": "选择已登录的账号",
|
||||
"new": "登录新社区"
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"heading": "通知"
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"heading": {
|
||||
"segments": {
|
||||
"left": "跨站嘟嘟",
|
||||
"right": "本站嘟嘟"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||