1
0
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:
Zhiyuan Zheng 2021-03-28 23:31:10 +02:00
parent 267832dd15
commit aab3d8d94d
No known key found for this signature in database
GPG Key ID: 078A93AB607D85E0
106 changed files with 462 additions and 1219 deletions

View File

Before

Width:  |  Height:  |  Size: 383 KiB

After

Width:  |  Height:  |  Size: 383 KiB

View File

@ -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>

View File

@ -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

View File

@ -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>

View File

@ -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 &&

View File

@ -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 &&

View File

@ -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`
)

View File

@ -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 &&

View File

@ -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>
)
}

View File

@ -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')
}

View File

@ -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"
},

View File

@ -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",

View File

@ -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
View 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"
}
}

View File

@ -4,7 +4,7 @@
"published": "Published <0 />",
"button": {
"read": "Read",
"unread": "Mark read"
"unread": "Mark as read"
}
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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)"
}
}
}
}
}

View File

@ -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}}"
}
}

View File

@ -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"
}
}
}

View File

@ -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"
}
}

View File

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

View File

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

View File

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

View File

@ -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)"
}
}
}

View File

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

View File

@ -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}}"
}
}

View File

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

View File

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

View 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
View File

@ -0,0 +1,6 @@
const LOCALES = {
en: 'English',
'zh-Hans': '简体中文'
} as {en: string}
export { LOCALES }

View File

@ -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')
}

View File

@ -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": ""
}

View File

@ -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": "继续"
}
}
}
}

View File

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

View File

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

View File

@ -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": ""
}
}

View File

@ -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 />截止"
}
}
}
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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)"
}
}
}
}
}

View File

@ -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}}"
}
}

View File

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

View File

@ -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": "请在设置中重新尝试启用推送通知"
}
}

View File

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

View File

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

View File

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

View File

@ -1,19 +0,0 @@