1
0
mirror of https://github.com/tooot-app/app synced 2025-06-05 22:19:13 +02:00

Merge branch 'main' into candidate

This commit is contained in:
xmflsct
2022-12-15 01:41:53 +01:00
146 changed files with 2299 additions and 938 deletions

View File

@ -1,7 +1,10 @@
Enjoy toooting! This version includes following improvements and fixes:
- Added 🇺🇦 Slava Ukraini
- Automatic setting detected language when tooting
- Remember public timeline type selection
- Show diffing of edit history
- Allow hiding boosts and replies in home timeline
- Support toot in RTL languages
- Added notification for admins
- Fix whole word filter matching
- Fix tablet cannot delete toot drafts

View File

@ -1,7 +1,10 @@
toooting愉快此版本包括以下改进和修复
- 增加 🇺🇦 Slava Ukraini
- 自动识别发嘟语言
- 记住上次公共时间轴选项
- 显示编辑历史的差异
- 关注列表可隐藏转嘟和回复
- 新增管理员推送通知
- 支持嘟文右到左文字
- 修复过滤整词功能
- 修复平板不能删除草稿

View File

@ -86,6 +86,7 @@
E69EBACE28DF28560057EDEC /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/InfoPlist.strings; sourceTree = "<group>"; };
E6A4895D293C1F740047951A /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/InfoPlist.strings; sourceTree = "<group>"; };
E6C8B26628F5F9FC0062CF2E /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
E6D64C7A294A90840098F3AC /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/InfoPlist.strings; sourceTree = "<group>"; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
/* End PBXFileReference section */
@ -298,6 +299,7 @@
sv,
nl,
ca,
uk,
);
mainGroup = 83CBB9F61A601CBA00E9B192;
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
@ -530,6 +532,7 @@
E63E7FF0292A828100C76FD4 /* sv */,
E6217B7E293C1EBF00B1755E /* nl */,
E6A4895D293C1F740047951A /* ca */,
E6D64C7A294A90840098F3AC /* uk */,
);
name = InfoPlist.strings;
sourceTree = "<group>";

View File

@ -0,0 +1,2 @@
"NSPhotoLibraryAddUsageDescription" = "Дозвольте tooot зберігати зображення у вашій папці фотоапарата";
"NSPhotoLibraryUsageDescription" = "Дозвольте tooot зберігати зображення у вашій папці фотоапарата";

View File

@ -93,6 +93,7 @@
"react-redux": "^8.0.5",
"redux-persist": "^6.0.0",
"rn-placeholder": "^3.0.3",
"rtl-detect": "^1.0.4",
"valid-url": "^1.0.9",
"zeego": "^0.5.0"
},

4
src/@types/app.d.ts vendored
View File

@ -8,9 +8,7 @@ declare namespace App {
| 'Hashtag'
| 'List'
| 'Toot'
| 'Account_Default'
| 'Account_All'
| 'Account_Attachments'
| 'Account'
| 'Conversations'
| 'Bookmarks'
| 'Favourites'

View File

@ -3,6 +3,7 @@ declare module 'htmlparser2-without-node-native'
declare module 'react-native-feather'
declare module 'react-native-htmlview'
declare module 'react-native-toast-message'
declare module 'rtl-detect'
declare module '@helpers/features' {
const features: { feature: string; version: number; reference?: string }[]

View File

@ -47,9 +47,27 @@ const apiGeneral = async <T = unknown>({
...(body && { data: body })
})
.then(response => {
return Promise.resolve({
body: response.data
})
let links: {
prev?: { id: string; isOffset: boolean }
next?: { id: string; isOffset: boolean }
} = {}
if (response.headers?.link) {
const linksParsed = response.headers.link.matchAll(
new RegExp('[?&](.*?_id|offset)=(.*?)>; *rel="(.*?)"', 'gi')
)
for (const link of linksParsed) {
switch (link[3]) {
case 'prev':
links.prev = { id: link[2], isOffset: link[1].includes('offset') }
break
case 'next':
links.next = { id: link[2], isOffset: link[1].includes('offset') }
break
}
}
}
return Promise.resolve({ body: response.data, links })
})
.catch(handleError())
}

View File

@ -1,6 +1,4 @@
import Icon from '@components/Icon'
import CustomText from '@components/Text'
import { StyleConstants } from '@utils/styles/constants'
import { useTheme } from '@utils/styles/ThemeManager'
import React from 'react'
import { View } from 'react-native'
@ -9,16 +7,10 @@ export interface Props {
content?: string
inverted?: boolean
onPress?: () => void
dropdown?: boolean
}
// Used for Android mostly
const HeaderCenter: React.FC<Props> = ({
content,
inverted = false,
onPress,
dropdown = false
}) => {
const HeaderCenter: React.FC<Props> = ({ content, inverted = false, onPress }) => {
const { colors } = useTheme()
return (
@ -33,13 +25,6 @@ const HeaderCenter: React.FC<Props> = ({
children={content}
{...(onPress && { onPress })}
/>
<Icon
name='ChevronDown'
size={StyleConstants.Font.Size.M}
color={colors.primaryDefault}
style={{ marginLeft: StyleConstants.Spacing.XS, opacity: dropdown ? undefined : 0 }}
strokeWidth={3}
/>
</View>
)
}

View File

@ -11,6 +11,7 @@ export interface Props {
fill?: string
strokeWidth?: number
style?: StyleProp<ViewStyle>
crossOut?: boolean
}
const Icon: React.FC<Props> = ({
@ -20,7 +21,8 @@ const Icon: React.FC<Props> = ({
color,
fill,
strokeWidth = 2,
style
style,
crossOut = false
}) => {
return (
<View
@ -42,6 +44,17 @@ const Icon: React.FC<Props> = ({
fill,
strokeWidth
})}
{crossOut ? (
<View
style={{
position: 'absolute',
transform: [{ rotate: '45deg' }],
width: size * 1.35,
borderBottomColor: color,
borderBottomWidth: strokeWidth
}}
/>
) : null}
</View>
)
}

View File

@ -13,7 +13,7 @@ import { useTheme } from '@utils/styles/ThemeManager'
import { isEqual } from 'lodash'
import React, { useCallback, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { Platform, Pressable, View } from 'react-native'
import { Platform, Pressable, TextStyleIOS, View } from 'react-native'
import HTMLView from 'react-native-htmlview'
import { useSelector } from 'react-redux'
@ -154,6 +154,7 @@ const renderNode = ({
export interface Props {
content: string
size?: 'S' | 'M' | 'L'
textStyles?: TextStyleIOS
adaptiveSize?: boolean
emojis?: Mastodon.Emoji[]
mentions?: Mastodon.Mention[]
@ -171,6 +172,7 @@ const ParseHTML = React.memo(
({
content,
size = 'M',
textStyles,
adaptiveSize = false,
emojis,
mentions,
@ -196,7 +198,7 @@ const ParseHTML = React.memo(
const navigation = useNavigation<StackNavigationProp<TabLocalStackParamList>>()
const route = useRoute()
const { colors, theme } = useTheme()
const { t, i18n } = useTranslation('componentParse')
const { t } = useTranslation('componentParse')
if (!expandHint) {
expandHint = t('HTML.defaultHint')
}
@ -294,6 +296,7 @@ const ParseHTML = React.memo(
}
}}
style={{
...textStyles,
height: numberOfLines === 1 && !expanded ? 0 : undefined
}}
numberOfLines={
@ -304,7 +307,7 @@ const ParseHTML = React.memo(
</View>
)
},
[theme, i18n.language]
[theme]
)
return (

View File

@ -30,8 +30,8 @@ const RelationshipOutgoing = React.memo(
haptics('Success')
queryClient.setQueryData<Mastodon.Relationship[]>(queryKeyRelationship, [res])
if (action === 'block') {
const queryKey: QueryKeyTimeline = ['Timeline', { page: 'Following' }]
queryClient.invalidateQueries(queryKey)
const queryKey = ['Timeline', { page: 'Following' }]
queryClient.invalidateQueries({ queryKey, exact: false })
}
},
onError: (err: any, { payload: { action } }) => {

View File

@ -2,7 +2,9 @@ import { ParseHTML } from '@components/Parse'
import { getInstanceAccount } from '@utils/slices/instancesSlice'
import React, { useContext } from 'react'
import { useTranslation } from 'react-i18next'
import { Platform } from 'react-native'
import { useSelector } from 'react-redux'
import { isRtlLang } from 'rtl-detect'
import StatusContext from './Context'
export interface Props {
@ -31,6 +33,11 @@ const TimelineContent: React.FC<Props> = ({ notificationOwnToot = false, setSpoi
numberOfLines={999}
highlighted={highlighted}
disableDetails={disableDetails}
textStyles={
Platform.OS === 'ios' && status.language && isRtlLang(status.language)
? { writingDirection: 'rtl' }
: undefined
}
/>
<ParseHTML
content={status.content}
@ -50,6 +57,11 @@ const TimelineContent: React.FC<Props> = ({ notificationOwnToot = false, setSpoi
setSpoilerExpanded={setSpoilerExpanded}
highlighted={highlighted}
disableDetails={disableDetails}
textStyles={
Platform.OS === 'ios' && status.language && isRtlLang(status.language)
? { writingDirection: 'rtl' }
: undefined
}
/>
</>
) : (
@ -62,6 +74,11 @@ const TimelineContent: React.FC<Props> = ({ notificationOwnToot = false, setSpoi
tags={status.tags}
numberOfLines={highlighted || inThread ? 999 : notificationOwnToot ? 2 : undefined}
disableDetails={disableDetails}
textStyles={
Platform.OS === 'ios' && status.language && isRtlLang(status.language)
? { writingDirection: 'rtl' }
: undefined
}
/>
)}
</>

View File

@ -37,7 +37,7 @@ const TimelineFeedback = () => {
onPress={() =>
navigation.push('Tab-Shared-Users', {
reference: 'statuses',
id: status.id,
status,
type: 'reblogged_by',
count: status.reblogs_count
})
@ -59,7 +59,7 @@ const TimelineFeedback = () => {
onPress={() =>
navigation.push('Tab-Shared-Users', {
reference: 'statuses',
id: status.id,
status,
type: 'favourited_by',
count: status.favourites_count
})

View File

@ -45,6 +45,7 @@ export const shouldFilter = ({
status: Mastodon.Status
queryKey: QueryKeyTimeline
}): string | null => {
const page = queryKey[1]
const instance = getInstance(store.getState())
const ownAccount = getInstanceAccount(store.getState())?.id === status.account?.id
@ -93,11 +94,11 @@ export const shouldFilter = ({
}
}
switch (queryKey[1].page) {
switch (page.page) {
case 'Following':
case 'Local':
case 'List':
case 'Account_Default':
case 'Account':
if (filter.context.includes('home')) {
checkFilter(filter)
}

View File

@ -1,5 +1,4 @@
import menuAccount from '@components/contextMenu/account'
import menuInstance from '@components/contextMenu/instance'
import menuShare from '@components/contextMenu/share'
import menuStatus from '@components/contextMenu/status'
import Icon from '@components/Icon'
@ -31,7 +30,6 @@ const TimelineHeaderAndroid: React.FC = () => {
queryKey
})
const mStatus = menuStatus({ status, queryKey, rootQueryKey })
const mInstance = menuInstance({ status, queryKey, rootQueryKey })
return (
<View style={{ position: 'absolute', top: 0, right: 0 }}>
@ -77,16 +75,6 @@ const TimelineHeaderAndroid: React.FC = () => {
))}
</DropdownMenu.Group>
))}
{mInstance.map((mGroup, index) => (
<DropdownMenu.Group key={index}>
{mGroup.map(menu => (
<DropdownMenu.Item key={menu.key} {...menu.item}>
<DropdownMenu.ItemTitle children={menu.title} />
</DropdownMenu.Item>
))}
</DropdownMenu.Group>
))}
</DropdownMenu.Content>
</DropdownMenu.Root>
) : null}

View File

@ -1,5 +1,4 @@
import menuAccount from '@components/contextMenu/account'
import menuInstance from '@components/contextMenu/instance'
import menuShare from '@components/contextMenu/share'
import menuStatus from '@components/contextMenu/status'
import Icon from '@components/Icon'
@ -38,7 +37,6 @@ const TimelineHeaderDefault: React.FC = () => {
queryKey
})
const mStatus = menuStatus({ status, queryKey, rootQueryKey })
const mInstance = menuInstance({ status, queryKey, rootQueryKey })
return (
<View style={{ flex: 1, flexDirection: 'row' }}>
@ -116,17 +114,6 @@ const TimelineHeaderDefault: React.FC = () => {
))}
</DropdownMenu.Group>
))}
{mInstance.map((mGroup, index) => (
<DropdownMenu.Group key={index}>
{mGroup.map(menu => (
<DropdownMenu.Item key={menu.key} {...menu.item}>
<DropdownMenu.ItemTitle children={menu.title} />
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
</DropdownMenu.Item>
))}
</DropdownMenu.Group>
))}
</DropdownMenu.Content>
</DropdownMenu.Root>
</Pressable>

View File

@ -33,7 +33,7 @@ const TimelinePoll: React.FC = () => {
const poll = status.poll
const { colors, theme } = useTheme()
const { t, i18n } = useTranslation('componentTimeline')
const { t } = useTranslation('componentTimeline')
const [allOptions, setAllOptions] = useState(new Array(status.poll.options.length).fill(false))
@ -127,7 +127,7 @@ const TimelinePoll: React.FC = () => {
)
}
}
}, [theme, i18n.language, poll.expired, poll.voted, allOptions, mutation.isLoading])
}, [theme, poll.expired, poll.voted, allOptions, mutation.isLoading])
const isSelected = useCallback(
(index: number): string =>

View File

@ -50,7 +50,7 @@ const menuAccount = ({
setEnabled(true)
}
}, [openChange, enabled])
const { data, isFetching } = useRelationshipQuery({ id: account.id, options: { enabled } })
const { data, isFetched } = useRelationshipQuery({ id: account.id, options: { enabled } })
const queryClient = useQueryClient()
const timelineMutation = useTimelineMutation({
@ -99,8 +99,8 @@ const menuAccount = ({
haptics('Success')
queryClient.setQueryData<Mastodon.Relationship[]>(queryKeyRelationship, [res])
if (action === 'block') {
const queryKey: QueryKeyTimeline = ['Timeline', { page: 'Following' }]
queryClient.invalidateQueries(queryKey)
const queryKey = ['Timeline', { page: 'Following' }]
queryClient.invalidateQueries({ queryKey, exact: false })
}
},
onError: (err: any, { payload: { action } }) => {
@ -131,7 +131,7 @@ const menuAccount = ({
type: 'outgoing',
payload: { action: 'follow', state: !data?.requested ? data.following : true }
}),
disabled: !data || isFetching,
disabled: !data || !isFetched,
destructive: false,
hidden: false
},
@ -152,9 +152,9 @@ const menuAccount = ({
key: 'account-list',
item: {
onSelect: () => navigation.navigate('Tab-Shared-Account-In-Lists', { account }),
disabled: Platform.OS !== 'android' ? !data || isFetching : false,
disabled: Platform.OS !== 'android' ? !data || !isFetched : false,
destructive: false,
hidden: isFetching ? false : !data?.following
hidden: !isFetched || !data?.following
},
title: t('account.inLists'),
icon: 'checklist'
@ -169,7 +169,7 @@ const menuAccount = ({
id: account.id,
payload: { property: 'mute', currentValue: data?.muting }
}),
disabled: Platform.OS !== 'android' ? !data || isFetching : false,
disabled: Platform.OS !== 'android' ? !data || !isFetched : false,
destructive: false,
hidden: false
},
@ -192,7 +192,7 @@ const menuAccount = ({
id: account.id,
payload: { property: 'block', currentValue: data?.blocking }
}),
disabled: Platform.OS !== 'android' ? !data || isFetching : false,
disabled: Platform.OS !== 'android' ? !data || !isFetched : false,
destructive: !data?.blocking,
hidden: false
},

View File

@ -5,6 +5,7 @@
"cancel": "Cancel·la",
"discard": "Descarta",
"continue": "Continua",
"create": "Crea",
"delete": "Esborra",
"done": "Fet"
},

View File

@ -1,7 +1,7 @@
{
"server": {
"textInput": {
"placeholder": "Domini de la instància"
"placeholder": ""
},
"button": "Inicia la sessió",
"information": {

View File

@ -30,7 +30,9 @@
"default": "{{name}} ha impulsat",
"notification": "{{name}} ha impulsat la teva publicació"
},
"update": "L'impuls ha sigut editat"
"update": "L'impuls ha sigut editat",
"admin.sign_up": "",
"admin.report": ""
},
"actions": {
"reply": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "Afegeix aquesta publicació a marcadors",
"function": "Afegeix la publicació a marcadors"
}
},
"openReport": ""
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": "Text alternatiu"
},
"notificationsFilter": {
"heading": "Mostra els tipus de notificació",
"content": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Sol·licitud de seguiment",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Publicació d'usuaris subscrits",
"update": "L'impuls ha sigut editat"
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "Cancel·la",
"alert": {
"title": "Voleu cancel·lar l'edició?",
"buttons": {
"save": "Desa l'esborrany",
"delete": "Esborra l'esborrany",
"cancel": "Cancel·la"
"delete": "Esborra l'esborrany"
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": "Seguint"
"name": "Seguint",
"options": {
"showBoosts": "",
"showReplies": ""
}
},
"public": {
"name": "",
"segments": {
"left": "Federat",
"right": "Local"
"federated": "Federat",
"local": "Local",
"trending": "En tendència"
}
},
"notifications": {
"name": "Notificacions"
},
"me": {
"name": "Sobre mi"
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "Filtra",
"accessibilityHint": "Filtra els tipus de notificacions"
"accessibilityHint": "Filtra els tipus de notificacions",
"title": "Mostra les notificacions",
"options": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Sol·licitud de seguiment",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Publicació d'usuaris subscrits",
"update": "L'impuls ha sigut editat",
"admin.sign_up": "$t(screenTabs:me.push.admin.sign_up.heading)",
"admin.report": "$t(screenTabs:me.push.admin.report.heading)"
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": "Favorits"
},
"followedTags": {
"name": "Etiquetes seguides"
},
"fontSize": {
"name": "Mida de la font de la publicació"
},
@ -53,7 +70,7 @@
"name": "Usuaris a la llista: {{list}}"
},
"listAdd": {
"name": "Afegeix a la llista"
"name": "Crea una llista"
},
"listEdit": {
"name": "Edita els detalls de la llista"
@ -179,8 +196,8 @@
"settings": "Activa'ls a la configuració"
},
"missingServerKey": {
"message": "",
"description": ""
"message": "Servidor mal configurat per a les notificacions push",
"description": "Si us plau, contacta amb l'administrador del teu servidor per a configurar el suport de notificacions push"
},
"global": {
"heading": "Activa per {{acct}}",
@ -214,6 +231,12 @@
"status": {
"heading": "Publicació d'usuaris subscrits"
},
"admin.sign_up": {
"heading": "Administració: Registra"
},
"admin.report": {
"heading": "Administració: denúncies"
},
"howitworks": "Aprèn com funciona"
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "Habilitat",
"disabled": "Deshabilitat"
}
"content_true": "Habilitat",
"content_false": "Deshabilitat"
},
"update": {
"title": "Actualitza a la última versió"
@ -290,9 +311,6 @@
"support": {
"heading": "Dona suport al tooot"
},
"review": {
"heading": "Valora al tooot"
},
"contact": {
"heading": "Contacta al tooot"
},
@ -330,7 +348,7 @@
"notInLists": "Altres llistes"
},
"attachments": {
"name": "Multimèdia de <0 /><1></1>"
"name": ""
},
"hashtag": {
"follow": "Segueix",

View File

@ -5,6 +5,7 @@
"cancel": "",
"discard": "",
"continue": "",
"create": "",
"delete": "",
"done": ""
},

View File

@ -30,7 +30,9 @@
"default": "",
"notification": ""
},
"update": ""
"update": "",
"admin.sign_up": "",
"admin.report": ""
},
"actions": {
"reply": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "",
"function": ""
}
},
"openReport": ""
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": ""
},
"notificationsFilter": {
"heading": "",
"content": {
"follow": "",
"follow_request": "",
"favourite": "",
"reblog": "",
"mention": "",
"poll": "",
"status": "",
"update": ""
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "",
"alert": {
"title": "",
"buttons": {
"save": "",
"delete": "",
"cancel": ""
"delete": ""
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": ""
"name": "",
"options": {
"showBoosts": "",
"showReplies": ""
}
},
"public": {
"name": "",
"segments": {
"left": "",
"right": ""
"federated": "",
"local": "",
"trending": ""
}
},
"notifications": {
"name": ""
},
"me": {
"name": ""
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "",
"accessibilityHint": ""
"accessibilityHint": "",
"title": "",
"options": {
"follow": "",
"follow_request": "",
"favourite": "",
"reblog": "",
"mention": "",
"poll": "",
"status": "",
"update": "",
"admin.sign_up": "",
"admin.report": ""
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": ""
},
"followedTags": {
"name": ""
},
"fontSize": {
"name": ""
},
@ -214,6 +231,12 @@
"status": {
"heading": ""
},
"admin.sign_up": {
"heading": ""
},
"admin.report": {
"heading": ""
},
"howitworks": ""
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "",
"disabled": ""
}
"content_true": "",
"content_false": ""
},
"update": {
"title": ""
@ -290,9 +311,6 @@
"support": {
"heading": ""
},
"review": {
"heading": ""
},
"contact": {
"heading": ""
},

View File

@ -5,8 +5,9 @@
"cancel": "Abbrechen",
"discard": "Abbrechen",
"continue": "Weiter",
"create": "Erstellen",
"delete": "Löschen",
"done": ""
"done": "Fertig"
},
"customEmoji": {
"accessibilityLabel": "Eigenes Emoji {{emoji}}"

View File

@ -6,7 +6,7 @@
"action_false": "Folgen",
"action_true": "Nutzer entfolgen"
},
"inLists": "",
"inLists": "Konten in Listen verwalten",
"mute": {
"action_false": "Profil stummschalten",
"action_true": "Stummschaltung des Nutzers aufheben"

View File

@ -1,7 +1,7 @@
{
"server": {
"textInput": {
"placeholder": "Instanz"
"placeholder": "Domain der Instanz"
},
"button": "Login",
"information": {

View File

@ -30,7 +30,9 @@
"default": "{{name}} hat geboostet",
"notification": "{{name}} hat deinen Tröt geboostet"
},
"update": "Boost wurde bearbeitet"
"update": "Boost wurde bearbeitet",
"admin.sign_up": "{{name}} ist der Instanz beigetreten",
"admin.report": "{{name}} hat gemeldet:"
},
"actions": {
"reply": {
@ -42,7 +44,7 @@
"options": {
"title": "Boost-Sichtbarkeit ändern",
"public": "Öffentlicher Boost",
"unlisted": "Boost entfernen"
"unlisted": "Privater Boost"
}
},
"favourited": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "Lesezeichen hinzufügen",
"function": "Lesezeichen setzen"
}
},
"openReport": ""
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": "Alternativtext"
},
"notificationsFilter": {
"heading": "Benachrichtigungsart anzeigen",
"content": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Followeranfrage",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Tröt eines abonnierten Nutzers",
"update": "Boost wurde bearbeitet"
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "Abbrechen",
"alert": {
"title": "Bearbeitung abbrechen?",
"buttons": {
"save": "Entwurf speichern",
"delete": "Entwurf löschen",
"cancel": "Abbrechen"
"delete": "Entwurf löschen"
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": "Gefolgt"
"name": "Gefolgt",
"options": {
"showBoosts": "",
"showReplies": ""
}
},
"public": {
"name": "",
"segments": {
"left": "Föderiert",
"right": "Lokal"
"federated": "Föderiert",
"local": "Lokal",
"trending": "Im Trend"
}
},
"notifications": {
"name": "Benachrichtigungen"
},
"me": {
"name": "Über mich"
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "Filter",
"accessibilityHint": "Angezeigte Benachrichtigungstypen filtern"
"accessibilityHint": "Angezeigte Benachrichtigungstypen filtern",
"title": "Benachrichtigungen anzeigen",
"options": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Followeranfrage",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Tröt eines abonnierten Nutzers",
"update": "Boost wurde bearbeitet",
"admin.sign_up": "$t(screenTabs:me.push.admin.sign_up.heading)",
"admin.report": "$t(screenTabs:me.push.admin.report.heading)"
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": "Favoriten"
},
"followedTags": {
"name": "Abonnierte Hashtags"
},
"fontSize": {
"name": "Schriftgröße"
},
@ -53,7 +70,7 @@
"name": "Benutzer in dieser Liste: {{list}}"
},
"listAdd": {
"name": "Eine Liste hinzufügen"
"name": "Eine Liste erstellen"
},
"listEdit": {
"name": "Listendetails bearbeiten"
@ -179,8 +196,8 @@
"settings": "In den Einstellungen aktivieren"
},
"missingServerKey": {
"message": "",
"description": ""
"message": "Server ist nicht für Push-Benachrichtigungen konfiguriert",
"description": "Bitte kontaktiere den Administrator deiner Instanz, um Push-Benachrichtigungen zu ermöglichen"
},
"global": {
"heading": "Aktivieren für {{acct}}",
@ -214,6 +231,12 @@
"status": {
"heading": "Toot eines abonnierten Nutzers"
},
"admin.sign_up": {
"heading": "Admin: Registrierung"
},
"admin.report": {
"heading": "Admin: Meldungen"
},
"howitworks": "Erfahre, wie das Routing funktioniert"
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "Aktiviert",
"disabled": "Deaktiviert"
}
"content_true": "Aktiviert",
"content_false": "Deaktiviert"
},
"update": {
"title": "Auf neueste Version aktualisiert"
@ -290,9 +311,6 @@
"support": {
"heading": "Unterstütze Tooot"
},
"review": {
"heading": "Tooot überprüfen"
},
"contact": {
"heading": "Nimm Kontakt mit tooot auf"
},
@ -325,12 +343,12 @@
"suspended": "Konto wurde von den Instanzmoderation gesperrt"
},
"accountInLists": {
"name": "",
"inLists": "",
"notInLists": ""
"name": "Listen, in denen @{{username}} aufgeführt ist",
"inLists": "In Listen",
"notInLists": "Andere Listen"
},
"attachments": {
"name": "<0 /><1>\"s Medien</1>"
"name": "<0 /><1>'s Medien</1>"
},
"hashtag": {
"follow": "Folgen",

View File

@ -1,7 +1,11 @@
{
"tabs": {
"local": {
"name": "Following"
"name": "Following",
"options": {
"showBoosts": "Show boosts",
"showReplies": "Show replies"
}
},
"public": {
"segments": {
@ -391,7 +395,8 @@
"statuses": {
"reblogged_by": "{{count}} boosted",
"favourited_by": "{{count}} favourited"
}
},
"resultIncomplete": "Results from a remote instance is incomplete"
}
}
}

View File

@ -5,6 +5,7 @@
"cancel": "Cancelar",
"discard": "Descartar",
"continue": "Continuar",
"create": "Crear",
"delete": "Borrar",
"done": "Hecho"
},

View File

@ -1,7 +1,7 @@
{
"server": {
"textInput": {
"placeholder": "Dominio de la instancia"
"placeholder": ""
},
"button": "Iniciar sesión",
"information": {

View File

@ -30,7 +30,9 @@
"default": "{{name}} ha impulsado",
"notification": "{{name}} ha impulsado tu toot"
},
"update": "El impulso ha sido editado"
"update": "El impulso ha sido editado",
"admin.sign_up": "",
"admin.report": ""
},
"actions": {
"reply": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "Añadir este toot en marcadores",
"function": "Añadir toot a marcadores"
}
},
"openReport": ""
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": "Texto alternativo"
},
"notificationsFilter": {
"heading": "Mostrar tipos de notificación",
"content": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Solicitud de seguimiento",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Toot de usuarios suscritos",
"update": "El impulso ha sido editado"
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "Cancelar",
"alert": {
"title": "¿Cancelar edición?",
"buttons": {
"save": "Guardar borrador",
"delete": "Eliminar borrador",
"cancel": "Cancelar"
"delete": "Eliminar borrador"
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": "Siguiendo"
"name": "Siguiendo",
"options": {
"showBoosts": "",
"showReplies": ""
}
},
"public": {
"name": "",
"segments": {
"left": "Federado",
"right": "Local"
"federated": "Federado",
"local": "Local",
"trending": "En tendencia"
}
},
"notifications": {
"name": "Notificaciones"
},
"me": {
"name": "Sobre mí"
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "Filtrar",
"accessibilityHint": "Filtrar tipos de notificación"
"accessibilityHint": "Filtrar tipos de notificación",
"title": "Mostrar las notificaciones",
"options": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Solicitud de seguimiento",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Toot de usuarios suscritos",
"update": "El impulso ha sido editado",
"admin.sign_up": "$t(screenTabs:me.push.admin.sign_up.heading)",
"admin.report": "$t(screenTabs:me.push.admin.report.heading)"
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": "Favoritos"
},
"followedTags": {
"name": "Hashtags seguidos"
},
"fontSize": {
"name": "Tamaño de fuente"
},
@ -53,7 +70,7 @@
"name": "Usuarios en la lista: {{list}}"
},
"listAdd": {
"name": "Añadir una lista"
"name": "Crea una lista"
},
"listEdit": {
"name": "Editar detalles de lista"
@ -179,8 +196,8 @@
"settings": "Activar en Ajustes"
},
"missingServerKey": {
"message": "",
"description": ""
"message": "Servidor mal configurado para las notificaciones push",
"description": "Por favor, contacte con el administrador de su servidor para configurar el soporte de notificaciones push"
},
"global": {
"heading": "Habilitar para {{acct}}",
@ -214,6 +231,12 @@
"status": {
"heading": "Toot de usuarios suscritos"
},
"admin.sign_up": {
"heading": "Administración: Registrarse"
},
"admin.report": {
"heading": "Administración: denuncias"
},
"howitworks": "Más información sobre las notificaciones push"
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "Habilitado",
"disabled": "Deshabilitado"
}
"content_true": "Habilitado",
"content_false": "Deshabilitado"
},
"update": {
"title": "Actualizar a la última versión"
@ -290,9 +311,6 @@
"support": {
"heading": "Apoyar tooot"
},
"review": {
"heading": "Valorar tooot"
},
"contact": {
"heading": "Contactar tooot"
},
@ -330,7 +348,7 @@
"notInLists": "Otras listas"
},
"attachments": {
"name": "Multimedia de <0 /><1></1>"
"name": ""
},
"hashtag": {
"follow": "Seguir",

View File

@ -3,8 +3,9 @@
"OK": "Ok",
"apply": "Confirmer",
"cancel": "Annuler",
"discard": "",
"continue": "",
"discard": "Ne pas tenir compte",
"continue": "Continuer",
"create": "",
"delete": "",
"done": ""
},
@ -24,7 +25,7 @@
},
"separator": ", ",
"discard": {
"title": "",
"message": ""
"title": "Modifications non sauvegardées",
"message": "Votre modification n'a pas été enregistrée. Voulez-vous annuler l'enregistrement des modifications ?"
}
}

View File

@ -3,7 +3,7 @@
"account": {
"title": "Actions de l'utilisateur",
"following": {
"action_false": "",
"action_false": "Suivre l'utilisateur",
"action_true": ""
},
"inLists": "",
@ -20,7 +20,7 @@
}
},
"at": {
"direct": "",
"direct": "Message direct",
"public": ""
},
"copy": {

View File

@ -1,7 +1,7 @@
{
"server": {
"textInput": {
"placeholder": "Domaine d'instance"
"placeholder": ""
},
"button": "Connexion",
"information": {

View File

@ -30,7 +30,9 @@
"default": "{{name}} a partagé",
"notification": "{{name}} a partagé votre message"
},
"update": "Le reblog a été modifié"
"update": "Le reblog a été modifié",
"admin.sign_up": "",
"admin.report": ""
},
"actions": {
"reply": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "Ajouter ce pouet aux signets",
"function": "Pouet de signet"
}
},
"openReport": ""
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": "Texte de remplacement"
},
"notificationsFilter": {
"heading": "Afficher les notifications",
"content": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Demande d'abonnement",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Pouet des utilisateurs abonnés",
"update": "Le reblog a été modifié"
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "Abandonner",
"alert": {
"title": "Annuler lédition?",
"buttons": {
"save": "Enregistrer comme brouillon",
"delete": "Supprimer le brouillon",
"cancel": "Abandonner"
"delete": "Supprimer le brouillon"
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": "Suit"
"name": "Suit",
"options": {
"showBoosts": "",
"showReplies": ""
}
},
"public": {
"name": "",
"segments": {
"left": "Fédéré",
"right": "Local"
"federated": "Fédéré",
"local": "Local",
"trending": ""
}
},
"notifications": {
"name": "Notifications"
},
"me": {
"name": "À propos de moi"
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "Filtrer",
"accessibilityHint": "Filtrer les types de notifications affichés"
"accessibilityHint": "Filtrer les types de notifications affichés",
"title": "",
"options": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Demande d'abonnement",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Pouet des utilisateurs inscrits",
"update": "Le reblog a été modifié",
"admin.sign_up": "$t(screenTabs:me.push.admin.sign_up.heading)",
"admin.report": "$t(screenTabs:me.push.admin.report.heading)"
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": "Favoris"
},
"followedTags": {
"name": ""
},
"fontSize": {
"name": "Taille de la police de Pouet"
},
@ -214,6 +231,12 @@
"status": {
"heading": "Pouet des utilisateurs inscrits"
},
"admin.sign_up": {
"heading": ""
},
"admin.report": {
"heading": ""
},
"howitworks": "Apprenez comment cela fonctionne"
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "Activé",
"disabled": "Désactivé"
}
"content_true": "Activé",
"content_false": "Désactivé"
},
"update": {
"title": "Mettre à jour vers la dernière version"
@ -290,9 +311,6 @@
"support": {
"heading": "Support de tooot"
},
"review": {
"heading": "Examiner le tooot"
},
"contact": {
"heading": "Contacter tooot"
},
@ -330,7 +348,7 @@
"notInLists": ""
},
"attachments": {
"name": "<0 /><1>\"s media</1>"
"name": ""
},
"hashtag": {
"follow": "Suivre",

View File

@ -12,6 +12,7 @@ import ko from '@root/i18n/ko'
import nl from '@root/i18n/nl'
import pt_BR from '@root/i18n/pt_BR'
import sv from '@root/i18n/sv'
import uk from '@root/i18n/uk'
import vi from '@root/i18n/vi'
import zh_Hans from '@root/i18n/zh-Hans'
import zh_Hant from '@root/i18n/zh-Hant'
@ -31,6 +32,7 @@ import '@formatjs/intl-pluralrules/locale-data/ko'
import '@formatjs/intl-pluralrules/locale-data/nl'
import '@formatjs/intl-pluralrules/locale-data/pt'
import '@formatjs/intl-pluralrules/locale-data/sv'
import '@formatjs/intl-pluralrules/locale-data/uk'
import '@formatjs/intl-pluralrules/locale-data/vi'
import '@formatjs/intl-pluralrules/locale-data/zh'
@ -46,6 +48,7 @@ import '@formatjs/intl-numberformat/locale-data/ko'
import '@formatjs/intl-numberformat/locale-data/nl'
import '@formatjs/intl-numberformat/locale-data/pt'
import '@formatjs/intl-numberformat/locale-data/sv'
import '@formatjs/intl-numberformat/locale-data/uk'
import '@formatjs/intl-numberformat/locale-data/vi'
import '@formatjs/intl-numberformat/locale-data/zh-Hans'
import '@formatjs/intl-numberformat/locale-data/zh-Hant'
@ -62,6 +65,7 @@ import '@formatjs/intl-datetimeformat/locale-data/ko'
import '@formatjs/intl-datetimeformat/locale-data/nl'
import '@formatjs/intl-datetimeformat/locale-data/pt'
import '@formatjs/intl-datetimeformat/locale-data/sv'
import '@formatjs/intl-datetimeformat/locale-data/uk'
import '@formatjs/intl-datetimeformat/locale-data/vi'
import '@formatjs/intl-datetimeformat/locale-data/zh-Hans'
import '@formatjs/intl-datetimeformat/locale-data/zh-Hant'
@ -79,6 +83,7 @@ import '@formatjs/intl-relativetimeformat/locale-data/ko'
import '@formatjs/intl-relativetimeformat/locale-data/nl'
import '@formatjs/intl-relativetimeformat/locale-data/pt'
import '@formatjs/intl-relativetimeformat/locale-data/sv'
import '@formatjs/intl-relativetimeformat/locale-data/uk'
import '@formatjs/intl-relativetimeformat/locale-data/vi'
import '@formatjs/intl-relativetimeformat/locale-data/zh-Hans'
import '@formatjs/intl-relativetimeformat/locale-data/zh-Hant'
@ -102,6 +107,7 @@ i18n.use(initReactI18next).init({
nl,
'pt-BR': pt_BR,
sv,
uk,
vi,
'zh-Hans': zh_Hans,
'zh-Hant': zh_Hant

View File

@ -3,8 +3,9 @@
"OK": "OK",
"apply": "Applica",
"cancel": "Annulla",
"discard": "",
"continue": "",
"discard": "Scarta",
"continue": "Continua",
"create": "",
"delete": "",
"done": ""
},
@ -24,7 +25,7 @@
},
"separator": ", ",
"discard": {
"title": "",
"message": ""
"title": "Modifiche non salvate",
"message": "Le tue modifiche non sono state salvate. Vuoi scartarle?"
}
}

View File

@ -3,7 +3,7 @@
"account": {
"title": "Azioni utente",
"following": {
"action_false": "",
"action_false": "Segui utente",
"action_true": ""
},
"inLists": "",
@ -20,7 +20,7 @@
}
},
"at": {
"direct": "",
"direct": "Messaggio diretto",
"public": ""
},
"copy": {

View File

@ -1,7 +1,7 @@
{
"server": {
"textInput": {
"placeholder": "Dominio dell'istanza"
"placeholder": ""
},
"button": "Accedi",
"information": {

View File

@ -30,7 +30,9 @@
"default": "{{name}} ha ricondiviso",
"notification": "{{name}} ha ricondiviso il tuo toot"
},
"update": "Il link è stato modificato"
"update": "Il link è stato modificato",
"admin.sign_up": "",
"admin.report": ""
},
"actions": {
"reply": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "Aggiungi questo toot ai segnalibri",
"function": "Aggiungi toot ai segnalibri"
}
},
"openReport": ""
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": "Testo descrittivo"
},
"notificationsFilter": {
"heading": "Filtra notifiche per tipo",
"content": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Richiesta di seguirti",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Toot da utenti seguiti",
"update": "Retoot ha subito una modifica"
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "Annulla",
"alert": {
"title": "Scartare il toot?",
"buttons": {
"save": "Salva bozza",
"delete": "Elimina bozza",
"cancel": "Annulla"
"delete": "Elimina bozza"
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": "Home"
"name": "Home",
"options": {
"showBoosts": "",
"showReplies": ""
}
},
"public": {
"name": "",
"segments": {
"left": "Federazione",
"right": "Locale"
"federated": "Federazione",
"local": "Locale",
"trending": ""
}
},
"notifications": {
"name": "Notifiche"
},
"me": {
"name": "Profilo"
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "Filtri",
"accessibilityHint": "Filtra le notifiche mostrate per tipo"
"accessibilityHint": "Filtra le notifiche mostrate per tipo",
"title": "",
"options": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Richiesta di seguirti",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Toot da utenti seguiti",
"update": "Il link è stato modificato",
"admin.sign_up": "$t(screenTabs:me.push.admin.sign_up.heading)",
"admin.report": "$t(screenTabs:me.push.admin.report.heading)"
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": "Apprezzati"
},
"followedTags": {
"name": ""
},
"fontSize": {
"name": "Grandezza del testo dei toot"
},
@ -214,6 +231,12 @@
"status": {
"heading": "Toot da utenti seguiti"
},
"admin.sign_up": {
"heading": ""
},
"admin.report": {
"heading": ""
},
"howitworks": "Scopri come funziona il traversamento dei messaggi"
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "Abilitato",
"disabled": "Disabilitato"
}
"content_true": "Abilitato",
"content_false": "Disabilitato"
},
"update": {
"title": "Aggiorna all'ultima versione"
@ -290,9 +311,6 @@
"support": {
"heading": "Supporta tooot"
},
"review": {
"heading": "Recensisci tooot"
},
"contact": {
"heading": "Contatta tooot"
},
@ -330,7 +348,7 @@
"notInLists": ""
},
"attachments": {
"name": "Media di <0 /><1>\"</1>"
"name": ""
},
"hashtag": {
"follow": "Segui",

View File

@ -5,6 +5,7 @@
"cancel": "キャンセル",
"discard": "変更を破棄",
"continue": "続ける",
"create": "",
"delete": "削除",
"done": "完了"
},

View File

@ -30,7 +30,9 @@
"default": "{{name}}さんがブースト",
"notification": "{{name}}さんがあなたのトゥートをブーストしました"
},
"update": "ブーストしたトゥートが編集されました"
"update": "ブーストしたトゥートが編集されました",
"admin.sign_up": "{{name}} がインスタンスに参加しました",
"admin.report": ""
},
"actions": {
"reply": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "このトゥートをブックマークに追加",
"function": "ブックマークトゥート"
}
},
"openReport": ""
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": "代替テキスト"
},
"notificationsFilter": {
"heading": "通知の種類を表示",
"content": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "フォローリクエスト",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "購読中のユーザーからのトゥート",
"update": "リブログが編集されました"
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "キャンセル",
"alert": {
"title": "編集をキャンセルしますか?",
"buttons": {
"save": "下書きを保存",
"delete": "下書きを削除",
"cancel": "キャンセル"
"delete": "下書きを削除"
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": "ホーム"
"name": "ホーム",
"options": {
"showBoosts": "",
"showReplies": ""
}
},
"public": {
"name": "",
"segments": {
"left": "連合",
"right": "ローカル"
"federated": "連合",
"local": "ローカル",
"trending": "トレンド"
}
},
"notifications": {
"name": "通知"
},
"me": {
"name": "私について"
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "フィルター",
"accessibilityHint": "表示される通知の種類をフィルターする"
"accessibilityHint": "表示される通知の種類をフィルターする",
"title": "",
"options": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "フォローリクエスト",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "購読したユーザーのトゥート",
"update": "ブーストしたトゥートが編集されました",
"admin.sign_up": "$t(screenTabs:me.push.admin.sign_up.heading)",
"admin.report": "$t(screenTabs:me.push.admin.report.heading)"
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": "お気に入り"
},
"followedTags": {
"name": ""
},
"fontSize": {
"name": "トゥートのフォントサイズ"
},
@ -53,7 +70,7 @@
"name": "リスト {{list}} のユーザー"
},
"listAdd": {
"name": "リストに追加"
"name": ""
},
"listEdit": {
"name": "リストの詳細を編集"
@ -214,6 +231,12 @@
"status": {
"heading": "購読したユーザーのトゥート"
},
"admin.sign_up": {
"heading": ""
},
"admin.report": {
"heading": ""
},
"howitworks": "通知到達(routing)のしくみを学ぶ"
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "効",
"disabled": "無効"
}
"content_true": "有効",
"content_false": "効"
},
"update": {
"title": "最新バージョンへのアップデート"
@ -290,9 +311,6 @@
"support": {
"heading": "tooot をサポート"
},
"review": {
"heading": "tooot をレビュー"
},
"contact": {
"heading": "tooot に関する連絡"
},
@ -330,7 +348,7 @@
"notInLists": "その他のリスト"
},
"attachments": {
"name": "<0 /><1>\" のメディア</1>"
"name": "<0 /><1>のメディア</1>"
},
"hashtag": {
"follow": "フォロー",

View File

@ -5,6 +5,7 @@
"cancel": "취소",
"discard": "취소",
"continue": "계속",
"create": "",
"delete": "삭제",
"done": "완료"
},

View File

@ -20,8 +20,8 @@
}
},
"at": {
"direct": "",
"public": ""
"direct": "개인 메시지",
"public": "공개 메시지"
},
"copy": {
"action": "툿 복사",

View File

@ -1,7 +1,7 @@
{
"server": {
"textInput": {
"placeholder": "인스턴스의 도메인"
"placeholder": ""
},
"button": "로그인",
"information": {

View File

@ -30,7 +30,9 @@
"default": "{{name}} 님이 부스트했어요",
"notification": "{{name}} 님이 내 툿을 부스트했어요"
},
"update": "리블로그가 수정됨"
"update": "부스트한 툿이 수정됨",
"admin.sign_up": "",
"admin.report": ""
},
"actions": {
"reply": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "툿 북마크에 추가",
"function": "툿 북마크"
}
},
"openReport": ""
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": "대체 텍스트"
},
"notificationsFilter": {
"heading": "알림 종류 표시",
"content": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "팔로우 요청",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "구독한 사용자의 툿",
"update": "리블로그가 수정되었습니다."
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "취소",
"alert": {
"title": "작성을 취소할까요?",
"buttons": {
"save": "임시 저장",
"delete": "임시 저장한 내용 삭제",
"cancel": "취소"
"delete": "임시 저장한 내용 삭제"
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": "팔로우 중"
"name": "팔로우 중",
"options": {
"showBoosts": "",
"showReplies": ""
}
},
"public": {
"name": "",
"segments": {
"left": "연합",
"right": "로컬"
"federated": "연합",
"local": "로컬",
"trending": ""
}
},
"notifications": {
"name": "알림"
},
"me": {
"name": "내 소개"
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "필터",
"accessibilityHint": "받는 알림 종류 선택"
"accessibilityHint": "받는 알림 종류 선택",
"title": "",
"options": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "팔로우 요청",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "구독한 사용자의 툿",
"update": "부스트한 툿이 수정됨",
"admin.sign_up": "$t(screenTabs:me.push.admin.sign_up.heading)",
"admin.report": "$t(screenTabs:me.push.admin.report.heading)"
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": "즐겨찾기"
},
"followedTags": {
"name": ""
},
"fontSize": {
"name": "툿 폰트 크기"
},
@ -53,7 +70,7 @@
"name": "{{list}} 리스트의 사용자"
},
"listAdd": {
"name": "리스트에 추가"
"name": ""
},
"listEdit": {
"name": "리스트 상세 편집"
@ -179,8 +196,8 @@
"settings": "설정에서 활성화"
},
"missingServerKey": {
"message": "",
"description": ""
"message": "서버가 푸시를 지원하지 않음",
"description": "서버 관리자에게 푸시 알림을 지원하도록 문의해주세요"
},
"global": {
"heading": "{{acct}} 활성화",
@ -214,6 +231,12 @@
"status": {
"heading": "구독한 사용자의 툿"
},
"admin.sign_up": {
"heading": ""
},
"admin.report": {
"heading": ""
},
"howitworks": "메시지 라우팅 방식 더 알아보기"
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "활성화됨",
"disabled": "비활성화됨"
}
"content_true": "활성화됨",
"content_false": "활성화됨"
},
"update": {
"title": "최신 버전으로 업데이트"
@ -290,9 +311,6 @@
"support": {
"heading": "tooot 기부"
},
"review": {
"heading": "tooot 리뷰"
},
"contact": {
"heading": "tooot 연락"
},
@ -330,7 +348,7 @@
"notInLists": "다른 리스트"
},
"attachments": {
"name": "<0 /><1>의 미디어</1>"
"name": ""
},
"hashtag": {
"follow": "팔로우",

View File

@ -10,6 +10,7 @@ const LOCALES = {
nl: 'Nederlands',
'pt-br': 'Português (Brasil)',
sv: 'Svenska',
uk: 'українська',
vi: 'Tiếng Việt',
'zh-hans': '简体中文',
'zh-hant': '繁體中文'

View File

@ -5,6 +5,7 @@
"cancel": "Annuleer",
"discard": "Verwijder",
"continue": "Ga verder",
"create": "Maak",
"delete": "Verwijder",
"done": "Gereed"
},

View File

@ -30,7 +30,9 @@
"default": "{{name}} boostte",
"notification": "{{name}} boostte jouw toot"
},
"update": "De reblog is bewerkt"
"update": "De reblog is bewerkt",
"admin.sign_up": "{{name}} heeft zich aangesloten bij de instantie",
"admin.report": "{{name}} rapporteerde:"
},
"actions": {
"reply": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "Toot toevoegen aan bladwijzers",
"function": "Voeg deze toot toe aan bladwijzers"
}
},
"openReport": "Rapportage openen"
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": "Alternatieve tekst"
},
"notificationsFilter": {
"heading": "Melding soorten weergeven",
"content": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Volgverzoek",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Toot van geabonneerde gebruikers",
"update": "De reblog is bewerkt"
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "Annuleer",
"alert": {
"title": "Bewerken annuleren?",
"buttons": {
"save": "Concept opslaan",
"delete": "Concept verwijderen",
"cancel": "Annuleer"
"delete": "Concept verwijderen"
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": "Volgend"
"name": "Volgend",
"options": {
"showBoosts": "",
"showReplies": ""
}
},
"public": {
"name": "",
"segments": {
"left": "Globaal",
"right": "Lokaal"
"federated": "Globaal",
"local": "Lokaal",
"trending": "Trending"
}
},
"notifications": {
"name": "Meldingen"
},
"me": {
"name": "Over mij"
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "Filter",
"accessibilityHint": "Filter getoonde meldingstypes"
"accessibilityHint": "Filter getoonde meldingstypes",
"title": "Notificaties weergeven",
"options": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Volgverzoek",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Toot van geabonneerde gebruikers",
"update": "De reblog is bewerkt",
"admin.sign_up": "$t(screenTabs:me.push.admin.sign_up.heading)",
"admin.report": "$t(screenTabs:me.push.admin.report.heading)"
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": "Favorieten"
},
"followedTags": {
"name": "Gevolgde hashtags"
},
"fontSize": {
"name": "Grootte van lettertype"
},
@ -53,7 +70,7 @@
"name": "Gebruikers in de lijst: {{list}}"
},
"listAdd": {
"name": "Lijst toevoegen"
"name": "Lijst aanmaken"
},
"listEdit": {
"name": "Lijstdetails bewerken"
@ -179,8 +196,8 @@
"settings": "Inschakelen in instellingen"
},
"missingServerKey": {
"message": "",
"description": ""
"message": "Server is verkeerd geconfigureerd voor push",
"description": "Neem contact op met de serverbeheerder om push-ondersteuning te configureren"
},
"global": {
"heading": "Inschakelen voor {{acct}}",
@ -214,6 +231,12 @@
"status": {
"heading": "Toot van geabonneerde gebruikers"
},
"admin.sign_up": {
"heading": "Admin: registreren"
},
"admin.report": {
"heading": "Admin: rapporten"
},
"howitworks": "Leer hoe het werkt"
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "Ingeschakeld",
"disabled": "Uitgeschakeld"
}
"content_true": "Ingeschakeld",
"content_false": "Uitgeschakeld"
},
"update": {
"title": "Bijwerken naar de laatste versie"
@ -290,9 +311,6 @@
"support": {
"heading": "Tooot ondersteunen"
},
"review": {
"heading": "Tooot beoordelen"
},
"contact": {
"heading": "Tooot contacteren"
},
@ -330,7 +348,7 @@
"notInLists": "Andere lijsten"
},
"attachments": {
"name": "<0 /><1>\"s media</1>"
"name": "<0 /><1>'s media</1>"
},
"hashtag": {
"follow": "Volg",

View File

@ -3,9 +3,10 @@
"OK": "Ok",
"apply": "Zastosuj",
"cancel": "Anuluj",
"discard": "",
"continue": "",
"delete": "",
"discard": "Anuluj",
"continue": "Dalej",
"create": "",
"delete": "Usuń",
"done": ""
},
"customEmoji": {
@ -24,7 +25,7 @@
},
"separator": ", ",
"discard": {
"title": "",
"message": ""
"title": "Zmiany nie zostały zapisane",
"message": "Wyjść bez zapisania zmian?"
}
}

View File

@ -3,8 +3,8 @@
"account": {
"title": "",
"following": {
"action_false": "",
"action_true": ""
"action_false": "Obserwuj",
"action_true": "Przestań obserwować"
},
"inLists": "",
"mute": {
@ -16,7 +16,7 @@
"action_true": ""
},
"reports": {
"action": ""
"action": "Zgłoś i zablokuj"
}
},
"at": {

View File

@ -30,7 +30,9 @@
"default": "",
"notification": ""
},
"update": ""
"update": "",
"admin.sign_up": "{{name}} dołącza do instancji",
"admin.report": ""
},
"actions": {
"reply": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "",
"function": ""
}
},
"openReport": ""
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": ""
},
"notificationsFilter": {
"heading": "",
"content": {
"follow": "",
"follow_request": "",
"favourite": "",
"reblog": "",
"mention": "",
"poll": "",
"status": "",
"update": ""
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "",
"alert": {
"title": "",
"buttons": {
"save": "",
"delete": "",
"cancel": ""
"delete": ""
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": ""
"name": "",
"options": {
"showBoosts": "",
"showReplies": ""
}
},
"public": {
"name": "",
"segments": {
"left": "",
"right": ""
"federated": "",
"local": "",
"trending": ""
}
},
"notifications": {
"name": ""
},
"me": {
"name": ""
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "",
"accessibilityHint": ""
"accessibilityHint": "",
"title": "",
"options": {
"follow": "",
"follow_request": "",
"favourite": "",
"reblog": "",
"mention": "",
"poll": "",
"status": "",
"update": "",
"admin.sign_up": "",
"admin.report": ""
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": ""
},
"followedTags": {
"name": ""
},
"fontSize": {
"name": ""
},
@ -50,13 +67,13 @@
"name": ""
},
"listAccounts": {
"name": ""
"name": "Użytkownicy: {{list}}"
},
"listAdd": {
"name": ""
},
"listEdit": {
"name": ""
"name": "Edycja listy"
},
"lists": {
"name": ""
@ -97,27 +114,27 @@
}
},
"listAccounts": {
"heading": "",
"error": "",
"empty": ""
"heading": "Zarządzanie użytkownikami",
"error": "Usuń z listy",
"empty": "Brak użytkowników na liście"
},
"listEdit": {
"heading": "",
"title": "",
"heading": "Edytuj szczegóły",
"title": "Nazwa listy",
"repliesPolicy": {
"heading": "",
"heading": "Odpowiedzi będą widoczne dla:",
"options": {
"none": "",
"list": "",
"followed": ""
"none": "Nikogo",
"list": "Członków listy",
"followed": "Wszystkich obserwowanych"
}
}
},
"listDelete": {
"heading": "",
"heading": "Usuń listę",
"confirm": {
"title": "",
"message": ""
"title": "Usunąć listę \"{{list}}\"?",
"message": "Nie będzie można cofnąć tej czynności."
}
},
"profile": {
@ -214,6 +231,12 @@
"status": {
"heading": ""
},
"admin.sign_up": {
"heading": ""
},
"admin.report": {
"heading": ""
},
"howitworks": ""
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "",
"disabled": ""
}
"content_true": "",
"content_false": ""
},
"update": {
"title": ""
@ -290,9 +311,6 @@
"support": {
"heading": ""
},
"review": {
"heading": ""
},
"contact": {
"heading": ""
},
@ -356,7 +374,7 @@
}
},
"trending": {
"tags": ""
"tags": "Popularne tagi"
}
},
"sections": {

View File

@ -3,8 +3,9 @@
"OK": "OK",
"apply": "Aplicar",
"cancel": "Cancelar",
"discard": "",
"continue": "",
"discard": "Descartar",
"continue": "Continuar",
"create": "",
"delete": "",
"done": ""
},
@ -24,7 +25,7 @@
},
"separator": ", ",
"discard": {
"title": "",
"message": ""
"title": "Alterações não salvas",
"message": "Sua alteração não foi salva. Descartar as alterações?"
}
}

View File

@ -3,7 +3,7 @@
"account": {
"title": "Ações do Usuário",
"following": {
"action_false": "",
"action_false": "Seguir usuário",
"action_true": ""
},
"inLists": "",
@ -20,7 +20,7 @@
}
},
"at": {
"direct": "",
"direct": "Mensagem Direta",
"public": ""
},
"copy": {

View File

@ -1,7 +1,7 @@
{
"server": {
"textInput": {
"placeholder": "Domínio da instância"
"placeholder": ""
},
"button": "Entrar",
"information": {

View File

@ -30,7 +30,9 @@
"default": "{{name}} boostou",
"notification": "{{name}} deu boost no teu toot"
},
"update": "Toot foi editado"
"update": "Toot foi editado",
"admin.sign_up": "",
"admin.report": ""
},
"actions": {
"reply": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "Adicionar este toot aos favoritos",
"function": "Salvos"
}
},
"openReport": ""
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": "Texto Alternativo"
},
"notificationsFilter": {
"heading": "Exibir notificações",
"content": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Seguidores pendentes",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Toot de usuários inscritos",
"update": "Toot foi editado"
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "Cancelar",
"alert": {
"title": "Cancelar edições?",
"buttons": {
"save": "Salvar rascunho",
"delete": "Apagar rascunho",
"cancel": "Cancelar"
"delete": "Apagar rascunho"
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": "Seguindo"
"name": "Seguindo",
"options": {
"showBoosts": "",
"showReplies": ""
}
},
"public": {
"name": "",
"segments": {
"left": "Global",
"right": "Local"
"federated": "Global",
"local": "Local",
"trending": ""
}
},
"notifications": {
"name": "Notificações"
},
"me": {
"name": "Sobre mim"
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "Filtro",
"accessibilityHint": "Filtrar notificações por tipos"
"accessibilityHint": "Filtrar notificações por tipos",
"title": "",
"options": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Solicitações de seguidores pendentes",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Toot de usuários inscritos",
"update": "Toot foi editado",
"admin.sign_up": "$t(screenTabs:me.push.admin.sign_up.heading)",
"admin.report": "$t(screenTabs:me.push.admin.report.heading)"
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": "Favoritos"
},
"followedTags": {
"name": ""
},
"fontSize": {
"name": "Tamanho da fonte do Toot"
},
@ -214,6 +231,12 @@
"status": {
"heading": "Toot de usuários inscritos"
},
"admin.sign_up": {
"heading": ""
},
"admin.report": {
"heading": ""
},
"howitworks": "Saiba como funciona o roteamento"
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "Habilitado",
"disabled": "Desabilitado"
}
"content_true": "Habilitado",
"content_false": "Desabilitado"
},
"update": {
"title": "Atualize para a versão mais recente"
@ -290,9 +311,6 @@
"support": {
"heading": "Suporte tooot"
},
"review": {
"heading": "Revisar tooot"
},
"contact": {
"heading": "Contatar tooot"
},
@ -322,7 +340,7 @@
"default": "Toots",
"all": "Toots e respostas"
},
"suspended": ""
"suspended": "Conta suspensa pelos moderadores do seu servidor"
},
"accountInLists": {
"name": "",
@ -330,7 +348,7 @@
"notInLists": ""
},
"attachments": {
"name": "<0 /><1>\"s mídia</1>"
"name": ""
},
"hashtag": {
"follow": "Seguir",

View File

@ -5,6 +5,7 @@
"cancel": "Avbryt",
"discard": "Kasta bort",
"continue": "Fortsätt",
"create": "Skapa",
"delete": "Radera",
"done": "Klar"
},

View File

@ -30,7 +30,9 @@
"default": "{{name}} boostade",
"notification": "{{name}} boostade ditt inlägg"
},
"update": "Boosten har redigerats"
"update": "Boosten har redigerats",
"admin.sign_up": "{{name}} registrerade sig på servern",
"admin.report": "{{name}} rapporterade:"
},
"actions": {
"reply": {
@ -52,7 +54,8 @@
"bookmarked": {
"accessibilityLabel": "Lägg till detta inlägg till dina bokmärken",
"function": "Bokmärk inlägg"
}
},
"openReport": "Öppna rapport"
},
"actionsUsers": {
"reblogged_by": {

View File

@ -2,19 +2,6 @@
"content": {
"altText": {
"heading": "Alternativtext"
},
"notificationsFilter": {
"heading": "Visa notistyper",
"content": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Följarförfrågning",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Inlägg från följda användare",
"update": "Boosten har redigerats"
}
}
}
}

View File

@ -1,13 +1,11 @@
{
"heading": {
"left": {
"button": "Avbryt",
"alert": {
"title": "Avbryt redigering?",
"buttons": {
"save": "Spara utkast",
"delete": "Ta bort utkast",
"cancel": "Avbryt"
"delete": "Ta bort utkast"
}
}
},

View File

@ -1,20 +1,21 @@
{
"tabs": {
"local": {
"name": "Följer"
"name": "Följer",
"options": {
"showBoosts": "Visa boostar",
"showReplies": "Visa svar"
}
},
"public": {
"name": "",
"segments": {
"left": "Federerat",
"right": "Lokalt"
"federated": "Federerat",
"local": "Lokalt",
"trending": "Trendar"
}
},
"notifications": {
"name": "Notiser"
},
"me": {
"name": "Om mig"
}
},
"common": {
@ -24,9 +25,22 @@
}
},
"notifications": {
"filter": {
"filters": {
"accessibilityLabel": "Filter",
"accessibilityHint": "Filtrera visade notistyper"
"accessibilityHint": "Filtrera visade notistyper",
"title": "Visa notifikationer",
"options": {
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Följarförfrågning",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Inlägg från följda användare",
"update": "Boosten har redigerats",
"admin.sign_up": "$t(screenTabs:me.push.admin.sign_up.heading)",
"admin.report": "$t(screenTabs:me.push.admin.report.heading)"
}
}
},
"me": {
@ -40,6 +54,9 @@
"favourites": {
"name": "Favoriter"
},
"followedTags": {
"name": "Följda hashtaggar"
},
"fontSize": {
"name": "Storlek på teckensnitt i inlägg"
},
@ -53,7 +70,7 @@
"name": "Användare i listan: {{list}}"
},
"listAdd": {
"name": "Lägg till en lista"
"name": "Skapa en lista"
},
"listEdit": {
"name": "Redigera listans detaljer"
@ -179,8 +196,8 @@
"settings": "Aktivera i inställningar"
},
"missingServerKey": {
"message": "",
"description": ""
"message": "Servern är felkonfigurerad för push",
"description": "Kontakta din serveradministratör och be dem konfigurera stöd för push"
},
"global": {
"heading": "Aktivera för {{acct}}",
@ -214,6 +231,12 @@
"status": {
"heading": "Inlägg från följda användare"
},
"admin.sign_up": {
"heading": "Admin: registrera dig"
},
"admin.report": {
"heading": "Admin: rapporter"
},
"howitworks": "Läs om hur routing fungerar"
},
"root": {
@ -225,10 +248,8 @@
}
},
"push": {
"content": {
"enabled": "Aktiverad",
"disabled": "Inaktiverad"
}
"content_true": "Aktiverad",
"content_false": "Inaktiverad"
},
"update": {
"title": "Uppdatera till senaste versionen"
@ -290,9 +311,6 @@
"support": {
"heading": "Stöd tooot"
},
"review": {
"heading": "Recensera tooot"
},
"contact": {
"heading": "Kontakta tooot"
},

31
src/i18n/uk/common.json Normal file
View File

@ -0,0 +1,31 @@
{
"buttons": {
"OK": "OK",
"apply": "Застосувати",
"cancel": "Скасувати",
"discard": "Відхилити",
"continue": "Продовжити",
"create": "Створити",
"delete": "Видалити",
"done": "Готово"
},
"customEmoji": {
"accessibilityLabel": "Власні емодзі {{emoji}}"
},
"message": {
"success": {
"message": "{{function}} успішно"
},
"warning": {
"message": ""
},
"error": {
"message": "{{function}} не вдалося, спробуйте ще раз"
}
},
"separator": ", ",
"discard": {
"title": "Зміни не збережено",
"message": "Зміни не збережено. Зберегти зміни?"
}
}

View File

@ -0,0 +1,85 @@
{
"accessibilityHint": "Дії для цього дмуху, наприклад, його опублікованого користувача, дмуху",
"account": {
"title": "Дії користувача",
"following": {
"action_false": "Підписатися на користувача",
"action_true": "Відписатися від користувача"
},
"inLists": "Керувати списками",
"mute": {
"action_false": "Заглушити користувача",
"action_true": "Зняти заглушення з користувача"
},
"block": {
"action_false": "Заблокувати користувача",
"action_true": "Розблокувати користувача"
},
"reports": {
"action": "Повідомити та заблокувати користувача"
}
},
"at": {
"direct": "Особисті повідомлення",
"public": "Публічне повідомлення"
},
"copy": {
"action": "Скопіювати дмух",
"succeed": "Скопійовано"
},
"instance": {
"title": "Дія інстанса",
"block": {
"action": "Заблокувати інстанс {{instance}}",
"alert": {
"title": "Підтверджуєте блокування інстанса {{instance}}?",
"message": "Здебільшого ви можете вимкнути звук або заблокувати певного користувача.\n\nПісля блокування інстансу весь її контент, включаючи підписників, буде видалено!",
"buttons": {
"confirm": "Підтвердити"
}
}
}
},
"share": {
"status": {
"action": "Поділитися дмухом"
},
"account": {
"action": "Поділитися користувачем"
}
},
"status": {
"title": "Дії дмуха",
"edit": {
"action": "Редагувати дмух"
},
"delete": {
"action": "Видалити дмух",
"alert": {
"title": "Видалити?",
"message": "Всі передмухи і уподобання будуть очищені, включаючи всі відповіді.",
"buttons": {
"confirm": "Підтвердити"
}
}
},
"deleteEdit": {
"action": "Видалити дмух та репост",
"alert": {
"title": "Підтвердьте видалення та повторне розміщення?",
"message": "Всі передмухи і уподобання будуть очищені, включаючи всі відповіді.",
"buttons": {
"confirm": "Підтвердити"
}
}
},
"mute": {
"action_false": "Заглушити дмух та відповіді",
"action_true": "Увімкнути дмух та відповіді"
},
"pin": {
"action_false": "Прикріпити дмух",
"action_true": "Відкріпити дмух"
}
}
}

View File

@ -0,0 +1,3 @@
{
"frequentUsed": "Часто використовувані"
}

View File

@ -0,0 +1,26 @@
{
"server": {
"textInput": {
"placeholder": "Домен інстансу"
},
"button": "Увійти",
"information": {
"name": "Назва",
"accounts": "Користувачі",
"statuses": "Дмухи",
"domains": "Універси"
},
"disclaimer": {
"base": "Для входу в систему використовується системний браузер, тому інформація про ваш обліковий запис не буде видимою для додатку tooot."
},
"terms": {
"base": "Увійшовши в систему, ви приймаєте <0>політику конфіденційності</0> та <1>умови надання послуг</1>."
}
},
"update": {
"alert": {
"title": "Вхід виконано",
"message": "Ви можете увійти під іншим обліковим записом, зберігши існуючий обліковий запис"
}
}
}

View File

@ -0,0 +1,10 @@
{
"title": "Вибір джерела медіа",
"message": "Дані медіа-EXIF не завантажені",
"options": {
"image": "Завантажити фотографії",
"image_max": "Завантажити фотографії (макс. {{max}})",
"video": "Завантажити відео",
"video_max": "Завантажити відео (макс. {{max}})"
}
}

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