Compare commits

..

211 Commits

Author SHA1 Message Date
sk
937304f27b improve profile metadata editor styles 2023-08-24 00:05:36 +02:00
sk
6b4ce0ea69 hide roles when in edit mode 2023-08-23 23:48:42 +02:00
sk
7f0c4860f8 clean up code 2023-08-23 23:47:06 +02:00
sk
9b4c70a5ed fix jumping profile layout
closes sk22#656
2023-08-23 23:46:23 +02:00
sk
49137273ae clean up code 2023-08-23 23:38:45 +02:00
sk
647e3e5e85 progress indicator for emoji reactions 2023-08-23 23:38:12 +02:00
sk
4920bf63e3 oops. accidentally removed a setting 2023-08-23 23:12:11 +02:00
sk
0afcdb2cdf emoji reactions for announcements! 2023-08-23 22:56:11 +02:00
sk
d96c3c3c8a fix paddings around dummys, text and spoilers
closes sk22#638
2023-08-23 22:12:14 +02:00
sk
f5e5408d70 Merge remote-tracking branch 'upstream/master' 2023-08-23 20:02:06 +02:00
sk
d62899c990 fix reaction data and binding inconsistencies 2023-08-23 19:49:07 +02:00
Grishka
e5bdeba1d7 Fix strings 2023-08-23 00:44:40 +03:00
Grishka
8d7db7774f Merge branch 'l10n_master' 2023-08-23 00:40:45 +03:00
Grishka
78d22c670c Fix reporting 2023-08-23 00:40:38 +03:00
Eugen Rochko
0a679109f5 New translations strings.xml (Arabic) 2023-08-22 17:14:41 +02:00
Eugen Rochko
e843142b7e New translations strings.xml (Arabic) 2023-08-22 13:15:25 +02:00
Eugen Rochko
72e728f655 New translations strings.xml (French) 2023-08-22 13:15:23 +02:00
Eugen Rochko
ef56792f56 New translations strings.xml (Arabic) 2023-08-22 11:39:27 +02:00
Eugen Rochko
504a6959e8 New translations strings.xml (French) 2023-08-22 11:39:25 +02:00
sk
6054a3d65c Merge remote-tracking branch 'weblate/main' 2023-08-21 22:43:23 +02:00
sk
f50eac02d8 move adding reactions to reactions item 2023-08-21 22:40:19 +02:00
snerk
9634db9061 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 20.8% (75 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/nn/
2023-08-21 22:40:19 +02:00
snerk
97e3e283dd Translated using Weblate (Norwegian Nynorsk)
Currently translated at 18.8% (68 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/nn/
2023-08-21 22:40:19 +02:00
snerk
f1e233569b Added translation using Weblate (Norwegian Nynorsk) 2023-08-21 22:40:19 +02:00
alextecplayz
04dd637fa9 Translated using Weblate (Romanian)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ro/
2023-08-21 22:40:19 +02:00
gallegonovato
c48a4105a9 Translated using Weblate (Spanish)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/es/
2023-08-21 22:40:19 +02:00
EndermanCo
aac53d949b Translated using Weblate (Persian)
Currently translated at 38.8% (7 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/fa/
2023-08-21 22:40:19 +02:00
EndermanCo
9bb4e5b467 Translated using Weblate (Persian)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fa/
2023-08-21 22:40:19 +02:00
0eoc
fb0391d5cd Translated using Weblate (Russian)
Currently translated at 61.1% (11 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/ru/
2023-08-21 22:40:19 +02:00
ihor_ck
e4d898c903 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/uk/
2023-08-21 22:40:19 +02:00
Linerly
da222f75bb Translated using Weblate (Indonesian)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/id/
2023-08-21 22:40:19 +02:00
Choukajohn
25fbd91eb3 Translated using Weblate (French)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fr/
2023-08-21 22:40:19 +02:00
0eoc
d458cca7bf Translated using Weblate (Russian)
Currently translated at 96.1% (323 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ru/
2023-08-21 22:40:19 +02:00
gallegonovato
3933a61b5a Translated using Weblate (Spanish)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/es/
2023-08-21 22:40:19 +02:00
Codeberg Translate
29092bbf36 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/
2023-08-21 22:40:19 +02:00
edxkl
a33d2578c9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.4% (17 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/pt_BR/
2023-08-21 22:40:19 +02:00
edxkl
9afe4b5ac6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.3% (327 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/pt_BR/
2023-08-21 22:40:19 +02:00
EndermanCo
6782006b05 Translated using Weblate (Persian)
Currently translated at 27.7% (5 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/fa/
2023-08-21 22:40:19 +02:00
0eoc
90bdbefd48 Translated using Weblate (Russian)
Currently translated at 61.1% (11 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/ru/
2023-08-21 22:40:19 +02:00
gicorada
b7bcf1082e Translated using Weblate (Italian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/it/
2023-08-21 22:40:19 +02:00
EndermanCo
ba9bbc5b6e Translated using Weblate (Persian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fa/
2023-08-21 22:40:19 +02:00
0eoc
0fecfbd50c Translated using Weblate (Russian)
Currently translated at 81.2% (273 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ru/
2023-08-21 22:40:19 +02:00
gallegonovato
0031dc6119 Translated using Weblate (Spanish)
Currently translated at 99.1% (333 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/es/
2023-08-21 22:40:19 +02:00
EndermanCo
79e606698e Translated using Weblate (Persian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fa/
2023-08-21 22:40:19 +02:00
EndermanCo
3c9fc43780 Translated using Weblate (Persian)
Currently translated at 98.5% (331 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fa/
2023-08-21 22:40:19 +02:00
ihor_ck
adb9b7394a Translated using Weblate (Ukrainian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/uk/
2023-08-21 22:40:19 +02:00
Eryk Michalak
6191fdfaef Translated using Weblate (Polish)
Currently translated at 91.3% (307 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/pl/
2023-08-21 22:40:19 +02:00
Linerly
446754e8a6 Translated using Weblate (Indonesian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/id/
2023-08-21 22:40:19 +02:00
Choukajohn
30c67b0b39 Translated using Weblate (French)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fr/
2023-08-21 22:40:19 +02:00
Hudobni Volk
1043ea7b11 Translated using Weblate (Slovenian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/sl/
2023-08-21 22:40:19 +02:00
alextecplayz
b449bcd006 Translated using Weblate (Romanian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ro/
2023-08-21 22:40:19 +02:00
EndermanCo
a9d513b564 Translated using Weblate (Persian)
Currently translated at 98.5% (330 of 335 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fa/
2023-08-21 22:40:19 +02:00
Hudobni Volk
5cef527810 Translated using Weblate (Slovenian)
Currently translated at 61.1% (11 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/sl/
2023-08-21 22:40:19 +02:00
ganjibaiemade
8bb907747d Translated using Weblate (Chinese (Traditional))
Currently translated at 18.2% (61 of 335 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/zh_Hant/
2023-08-21 22:40:19 +02:00
Hudobni Volk
9c889f8df3 Translated using Weblate (Slovenian)
Currently translated at 100.0% (335 of 335 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/sl/
2023-08-21 22:40:19 +02:00
Linerly
cbc164d844 Translated using Weblate (Indonesian)
Currently translated at 100.0% (335 of 335 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/id/
2023-08-21 22:40:19 +02:00
Eugen Rochko
b8e3060887 New translations strings.xml (Arabic) 2023-08-21 21:00:00 +02:00
Eugen Rochko
1aa1ede421 New translations strings.xml (Arabic) 2023-08-21 20:03:05 +02:00
Eugen Rochko
480dba7629 New translations strings.xml (Arabic) 2023-08-21 19:05:39 +02:00
Eugen Rochko
9b9c66a149 New translations strings.xml (Arabic) 2023-08-21 17:43:00 +02:00
Eugen Rochko
0f5eb923ee New translations strings.xml (Arabic) 2023-08-21 16:13:06 +02:00
snerk
7f521b3129 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 100.0% (369 of 369 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/nn/
2023-08-21 09:41:52 +00:00
EndermanCo
9ce217d1f2 Translated using Weblate (Persian)
Currently translated at 100.0% (369 of 369 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fa/
2023-08-21 09:41:51 +00:00
ihor_ck
7b1bd3ccad Translated using Weblate (Ukrainian)
Currently translated at 100.0% (369 of 369 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/uk/
2023-08-21 09:41:51 +00:00
Oliebol
13b1cbde6b Translated using Weblate (Dutch)
Currently translated at 82.9% (306 of 369 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/nl/
2023-08-21 09:41:51 +00:00
Linerly
8d898a1a78 Translated using Weblate (Indonesian)
Currently translated at 100.0% (369 of 369 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/id/
2023-08-21 09:41:51 +00:00
Choukajohn
51c2890ede Translated using Weblate (French)
Currently translated at 100.0% (369 of 369 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fr/
2023-08-21 09:41:51 +00:00
gallegonovato
03642faa9c Translated using Weblate (Spanish)
Currently translated at 100.0% (369 of 369 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/es/
2023-08-21 09:41:51 +00:00
sk22
084c6e1e59 Translated using Weblate (German)
Currently translated at 94.5% (349 of 369 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/de/
2023-08-21 09:41:51 +00:00
Eugen Rochko
90ed28e7a0 New translations strings.xml (French) 2023-08-20 17:34:05 +01:00
Eugen Rochko
d2b45c1c84 New translations strings.xml (Swedish) 2023-08-20 12:43:05 +01:00
Eugen Rochko
a119ba5f80 New translations strings.xml (Danish) 2023-08-19 17:08:25 +01:00
Eugen Rochko
8c1191a08f New translations strings.xml (Danish) 2023-08-19 16:09:27 +01:00
Eugen Rochko
4275d596e6 New translations strings.xml (Thai) 2023-08-19 12:46:09 +01:00
snerk
2709d5226d Translated using Weblate (Norwegian Nynorsk)
Currently translated at 21.6% (78 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/nn/
2023-08-18 16:18:22 +00:00
snerk
8f613e3255 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 20.8% (75 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/nn/
2023-08-18 16:18:22 +00:00
snerk
6831e846cf Translated using Weblate (Norwegian Nynorsk)
Currently translated at 18.8% (68 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/nn/
2023-08-18 16:18:22 +00:00
snerk
034eb9427d Added translation using Weblate (Norwegian Nynorsk) 2023-08-18 16:18:22 +00:00
alextecplayz
f73c325db3 Translated using Weblate (Romanian)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ro/
2023-08-18 16:18:22 +00:00
gallegonovato
5e2b11c504 Translated using Weblate (Spanish)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/es/
2023-08-18 16:18:22 +00:00
EndermanCo
ec13133431 Translated using Weblate (Persian)
Currently translated at 38.8% (7 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/fa/
2023-08-18 16:18:22 +00:00
EndermanCo
a8a56a3ed8 Translated using Weblate (Persian)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fa/
2023-08-18 16:18:22 +00:00
0eoc
4e9c7c4de2 Translated using Weblate (Russian)
Currently translated at 61.1% (11 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/ru/
2023-08-18 16:18:22 +00:00
ihor_ck
ffb7894098 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/uk/
2023-08-18 16:18:22 +00:00
Linerly
0d9520ac45 Translated using Weblate (Indonesian)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/id/
2023-08-18 16:18:22 +00:00
Choukajohn
be852e57df Translated using Weblate (French)
Currently translated at 100.0% (360 of 360 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fr/
2023-08-18 16:18:22 +00:00
0eoc
157b38b8ae Translated using Weblate (Russian)
Currently translated at 96.1% (323 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ru/
2023-08-18 16:18:22 +00:00
gallegonovato
83196a1a0d Translated using Weblate (Spanish)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/es/
2023-08-18 16:18:22 +00:00
Codeberg Translate
306225b054 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/
2023-08-18 16:18:22 +00:00
edxkl
6efc71d8d2 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.4% (17 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/pt_BR/
2023-08-18 16:18:21 +00:00
edxkl
cc4cd4d3f8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.3% (327 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/pt_BR/
2023-08-18 16:18:21 +00:00
EndermanCo
00e3292205 Translated using Weblate (Persian)
Currently translated at 27.7% (5 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/fa/
2023-08-18 16:18:21 +00:00
0eoc
316952423c Translated using Weblate (Russian)
Currently translated at 61.1% (11 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/ru/
2023-08-18 16:18:21 +00:00
gicorada
61c2abd014 Translated using Weblate (Italian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/it/
2023-08-18 16:18:21 +00:00
EndermanCo
ee5f299b90 Translated using Weblate (Persian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fa/
2023-08-18 16:18:21 +00:00
0eoc
f153846381 Translated using Weblate (Russian)
Currently translated at 81.2% (273 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ru/
2023-08-18 16:18:21 +00:00
gallegonovato
0656db0858 Translated using Weblate (Spanish)
Currently translated at 99.1% (333 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/es/
2023-08-18 16:18:21 +00:00
EndermanCo
7f250cb8df Translated using Weblate (Persian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fa/
2023-08-18 16:18:21 +00:00
EndermanCo
a1e73eca89 Translated using Weblate (Persian)
Currently translated at 98.5% (331 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fa/
2023-08-18 16:18:21 +00:00
ihor_ck
1dc6936da6 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/uk/
2023-08-18 16:18:21 +00:00
Eryk Michalak
0431d80a8d Translated using Weblate (Polish)
Currently translated at 91.3% (307 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/pl/
2023-08-18 16:18:21 +00:00
Linerly
eaa78093f7 Translated using Weblate (Indonesian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/id/
2023-08-18 16:18:21 +00:00
Choukajohn
25b7151fde Translated using Weblate (French)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fr/
2023-08-18 16:18:21 +00:00
Hudobni Volk
0438b579b6 Translated using Weblate (Slovenian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/sl/
2023-08-18 16:18:21 +00:00
alextecplayz
afa50a4e8c Translated using Weblate (Romanian)
Currently translated at 100.0% (336 of 336 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ro/
2023-08-18 16:18:21 +00:00
EndermanCo
85bdb0067b Translated using Weblate (Persian)
Currently translated at 98.5% (330 of 335 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fa/
2023-08-18 16:18:21 +00:00
Hudobni Volk
760cbc7f9a Translated using Weblate (Slovenian)
Currently translated at 61.1% (11 of 18 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/sl/
2023-08-18 16:18:21 +00:00
ganjibaiemade
d0e34fcd90 Translated using Weblate (Chinese (Traditional))
Currently translated at 18.2% (61 of 335 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/zh_Hant/
2023-08-18 16:18:21 +00:00
Hudobni Volk
da434b9a9b Translated using Weblate (Slovenian)
Currently translated at 100.0% (335 of 335 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/sl/
2023-08-18 16:18:21 +00:00
Linerly
48863dd510 Translated using Weblate (Indonesian)
Currently translated at 100.0% (335 of 335 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/id/
2023-08-18 16:18:21 +00:00
FineFindus
2ca34278f9 build: add F-Droid flavor (#760)
* build: add fdroid flavor

* feat: disable fcm registration in f-droid flavor
2023-08-18 18:15:57 +02:00
Jacoco
a79779f813 Emoji Reactions Support (#645)
* Display Pleroma emoji reactions

* Interact with existing Pleroma emoji reactions

* Setting for emoji reaction support

* Setting for displaying reactions in timelines

* More horizontal padding on reactions display item

* List accounts who reacted

* Arbitrary emoji reaction from status footer

* Hide custom emoji keyboard when emoji is selected

* Clear preferences before applying
All preferences get written anyways so nothing will be lost

* Reset react visibility state on bind

* Fix custom emoji turning black when reacting

* Load reactions when a new one is added

* Emoji reactions grid

* Load custom emoji in reactions list fragment

* New reaction toast messages and Unicode emoji regex

* Make custom emoji picker for reactions scrollable

* Scroll down to show custom emoji picker when reacting

* Divider after reaction custom emoji picker

* Animate react button opacity back in

* fix plural strings

* re-implement reactions using horizontal recycler view

* update reactions with event

* tweak emoji font size

* tweak button styles (a tiny bit)

* change footer react button behavior

* fix emoji reaction status item padding

* move emoji reactions below content items

* add content description and tooltip

* use custom emoji keyboard to enter unicode emoji

* fix reactions clearing on status counter updates

* fix space next to emoji reactions not clickable

* make compatible with glitch-soc

* Remove now unused EmojiReactionsView class

* improve handling of reaction padding

---------

Co-authored-by: sk <sk22@mailbox.org>
2023-08-18 18:14:33 +02:00
Eugen Rochko
cc83f2baf3 New translations strings.xml (Danish) 2023-08-18 01:51:02 +01:00
Eugen Rochko
728496b831 New translations strings.xml (Danish) 2023-08-18 00:06:12 +01:00
Eugen Rochko
bbc99162c6 New translations strings.xml (Danish) 2023-08-17 16:47:55 +01:00
Eugen Rochko
eed3af9e3e New translations strings.xml (Arabic) 2023-08-16 22:54:50 +02:00
Eugen Rochko
50187ff376 New translations strings.xml (Arabic) 2023-08-16 21:48:52 +02:00
Eugen Rochko
5f30919fb4 New translations strings.xml (Arabic) 2023-08-16 18:38:58 +02:00
Eugen Rochko
14c3cfac85 New translations strings.xml (French) 2023-08-16 15:50:45 +02:00
Eugen Rochko
e978f02765 New translations strings.xml (French) 2023-08-16 14:09:02 +02:00
Eugen Rochko
8d877c480f New translations strings.xml (French) 2023-08-16 12:20:32 +02:00
Eugen Rochko
c53efee9a1 New translations strings.xml (Thai) 2023-08-15 22:47:32 +02:00
Eugen Rochko
148c461e86 New translations strings.xml (Danish) 2023-08-15 16:40:55 +02:00
Eugen Rochko
fcadb9883d New translations strings.xml (Danish) 2023-08-15 14:59:58 +02:00
Eugen Rochko
bb6491e10a New translations full_description.txt (Danish) 2023-08-15 14:59:57 +02:00
Eugen Rochko
6248ccf376 New translations full_description.txt (Danish) 2023-08-15 13:53:21 +02:00
Eugen Rochko
c9e08f36fa New translations full_description.txt (Danish) 2023-08-15 03:19:07 +02:00
Eugen Rochko
10b95d753b New translations full_description.txt (Danish) 2023-08-15 02:15:33 +02:00
Eugen Rochko
c3989083cf New translations strings.xml (Portuguese) 2023-08-14 15:33:01 +02:00
Eugen Rochko
01db585094 New translations strings.xml (Basque) 2023-08-14 01:42:56 +02:00
Eugen Rochko
cc67cb330c New translations full_description.txt (Basque) 2023-08-14 00:10:18 +02:00
Eugen Rochko
52ed3c5a04 New translations strings.xml (Basque) 2023-08-14 00:10:17 +02:00
Eugen Rochko
5976f6230a New translations strings.xml (Chinese Simplified) 2023-08-13 18:58:06 +02:00
Eugen Rochko
3553f03a95 New translations strings.xml (Slovenian) 2023-08-13 11:06:06 +02:00
Eugen Rochko
d6e2d889c3 New translations strings.xml (Slovenian) 2023-08-12 16:02:40 +02:00
Eugen Rochko
a777b3b450 New translations strings.xml (Slovenian) 2023-08-12 14:07:49 +02:00
Eugen Rochko
9957efbea0 New translations strings.xml (Norwegian) 2023-08-12 01:06:29 +02:00
Eugen Rochko
22e7b9730f New translations strings.xml (Vietnamese) 2023-08-11 17:50:37 +02:00
Eugen Rochko
91470b8509 New translations strings.xml (Vietnamese) 2023-08-11 16:21:15 +02:00
Eugen Rochko
c9d5327328 New translations strings.xml (Russian) 2023-08-11 12:41:37 +02:00
Eugen Rochko
1aa61b72e5 New translations strings.xml (Russian) 2023-08-11 10:45:11 +02:00
Eugen Rochko
3ca5edc3fc New translations strings.xml (Russian) 2023-08-11 09:19:15 +02:00
Eugen Rochko
a092ebaeb3 New translations strings.xml (Russian) 2023-08-11 08:03:02 +02:00
Eugen Rochko
5b9e84c255 New translations strings.xml (Russian) 2023-08-11 07:07:00 +02:00
Eugen Rochko
9c058b926f New translations strings.xml (Russian) 2023-08-10 12:30:16 +02:00
Eugen Rochko
4f2d2ae6e8 New translations strings.xml (Russian) 2023-08-10 11:10:22 +02:00
Eugen Rochko
75aa26a018 New translations strings.xml (Russian) 2023-08-09 14:50:26 +02:00
Eugen Rochko
0f795254e5 New translations strings.xml (Russian) 2023-08-09 13:28:03 +02:00
Eugen Rochko
33592f0a83 New translations strings.xml (Swedish) 2023-08-07 12:43:38 +02:00
Eugen Rochko
d6fd01eaca New translations strings.xml (Swedish) 2023-08-07 10:56:51 +02:00
Mark Hansen
1cdc58378a Sort Hashtags you follow menu (#695)
* Sort Hashtags you follow menu

* change sorting method

---------

Co-authored-by: Mark Hansen <mhansen@accusoft.com>
Co-authored-by: sk <sk22@mailbox.org>
2023-08-05 20:43:23 +02:00
FineFindus
584b11fce3 feat: allow playing multiple media (#755)
* feat: allow playing multiple media

* replace audio overlay icon

---------

Co-authored-by: sk <sk22@mailbox.org>
2023-08-05 20:35:57 +02:00
FineFindus
fe2039062b fix(remote): send remoteAccount (#754)
closes sk22#664

* fix(remote): send remoteAccount

* fix(server-about): set adming account as remote

* fix(remote): show remote local accounts as remote
2023-08-05 20:30:41 +02:00
FineFindus
0269756b52 feat: change mute duration (#751)
* feat: add mute timer

* fix: missing ressources

* refactor(add-mute-timer): change of the mute timer popup layout

* tweak mute dialog

---------

Co-authored-by: LucasGGamerM <lucassggabriel@gmail.com>
Co-authored-by: sk <sk22@mailbox.org>
2023-08-05 20:17:40 +02:00
FineFindus
df1a6cf764 feat(openURL): open about in app (#750) 2023-08-05 19:44:18 +02:00
FineFindus
6d2385b6b3 feat: support UnifiedPush notifications (#749)
* build: add unified push dependency

* feat(notification): allow arbitrary push notification endpoint

* feat(notification/unified-push): show notification

* refactor(unifiedPush): use more consise null check

* feat(settings/notification): add UnifiedPush toggle

* feat(settings/notification): show no distributor message

* feat(settings/notification): disable unifiedpush when no distributor is available

* change icon name

---------

Co-authored-by: sk <sk22@mailbox.org>
2023-08-05 19:42:10 +02:00
FineFindus
44eaa36cef fix: copy link invisible on EMUI (#753) 2023-08-05 19:33:36 +02:00
sk
50b40c4a07 Merge remote-tracking branch 'upstream/master' 2023-08-05 19:32:28 +02:00
Eugen Rochko
ee6e0ff26c New translations strings.xml (Russian) 2023-08-04 19:26:18 +02:00
Eugen Rochko
4d9574bf38 New translations strings.xml (Russian) 2023-08-04 17:51:30 +02:00
Eugen Rochko
813be9a2be New translations strings.xml (Russian) 2023-08-04 16:30:43 +02:00
Eugen Rochko
cc76ebfafb New translations strings.xml (Russian) 2023-08-04 14:58:02 +02:00
Eugen Rochko
7989ee0243 New translations strings.xml (Russian) 2023-08-04 13:58:08 +02:00
Eugen Rochko
3aa1997cfd New translations strings.xml (Russian) 2023-08-04 12:51:54 +02:00
Grishka
c3da15552e Merge branch 'l10n_master' 2023-08-03 17:22:04 +03:00
Grishka
a014fe9443 Fix media layout with unknown sizes 2023-08-03 17:21:40 +03:00
Eugen Rochko
92551d4ca3 New translations strings.xml (Portuguese, Brazilian) 2023-08-03 03:27:17 +02:00
Eugen Rochko
8010858e85 New translations strings.xml (Portuguese, Brazilian) 2023-08-03 02:26:22 +02:00
Eugen Rochko
4efb4875b0 New translations strings.xml (Swedish) 2023-08-02 09:16:24 +02:00
Eugen Rochko
c5d041e46d New translations strings.xml (Portuguese, Brazilian) 2023-08-01 23:11:09 +02:00
Eugen Rochko
53c2223aae New translations strings.xml (Portuguese, Brazilian) 2023-08-01 21:25:07 +02:00
Eugen Rochko
25034ac0ae New translations strings.xml (Portuguese, Brazilian) 2023-08-01 01:41:52 +02:00
Eugen Rochko
ac9de72b75 New translations strings.xml (Portuguese, Brazilian) 2023-08-01 00:42:41 +02:00
Eugen Rochko
1f48ad93f2 New translations strings.xml (Portuguese, Brazilian) 2023-07-31 23:46:36 +02:00
Eugen Rochko
38f7f7aa00 New translations strings.xml (Czech) 2023-07-31 14:32:20 +02:00
Eugen Rochko
fe8175c63a New translations strings.xml (French) 2023-07-30 19:39:54 +02:00
Eugen Rochko
2d9e01bbc1 New translations strings.xml (French) 2023-07-30 18:44:39 +02:00
Eugen Rochko
022a227b08 New translations strings.xml (Turkish) 2023-07-28 00:29:16 +02:00
Eugen Rochko
a2228259f1 New translations full_description.txt (Turkish) 2023-07-27 23:33:53 +02:00
Eugen Rochko
a61af7c56f New translations strings.xml (Turkish) 2023-07-27 23:33:52 +02:00
Eugen Rochko
5d6a646976 New translations strings.xml (French) 2023-07-27 23:33:51 +02:00
Eugen Rochko
628d0d7492 New translations strings.xml (French) 2023-07-27 22:05:11 +02:00
Eugen Rochko
b76c8745ec New translations strings.xml (Norwegian) 2023-07-25 22:57:26 +02:00
Eugen Rochko
51e67bc441 New translations strings.xml (Norwegian) 2023-07-25 21:52:29 +02:00
Gregory K
8887f75b70 Merge pull request #655 from nilathedragon/patch-1
Do not assume languages array will contain entries
2023-07-25 19:12:56 +03:00
Nila
9436a838c0 Do not assume languages array will contain entries 2023-07-25 17:28:41 +02:00
Eugen Rochko
ef120fa36f New translations strings.xml (Swedish) 2023-07-25 00:55:54 +02:00
Eugen Rochko
8c6385e2c5 New translations strings.xml (Swedish) 2023-07-24 23:57:42 +02:00
Eugen Rochko
0bd85d9905 New translations strings.xml (Persian) 2023-07-24 13:40:53 +02:00
Eugen Rochko
ce0dab7b28 New translations strings.xml (Czech) 2023-07-24 09:55:45 +02:00
Eugen Rochko
ddcc5670ce New translations strings.xml (Bengali) 2023-07-22 17:48:06 +02:00
Eugen Rochko
86afa184e2 New translations strings.xml (Bengali) 2023-07-22 16:26:35 +02:00
Eugen Rochko
77f341f139 New translations strings.xml (German) 2023-07-22 12:27:40 +02:00
Eugen Rochko
918b5d99c2 New translations strings.xml (Swedish) 2023-07-21 22:09:32 +02:00
Eugen Rochko
7a098d6eff New translations strings.xml (Swedish) 2023-07-21 21:06:04 +02:00
Eugen Rochko
71f81283f5 New translations strings.xml (Polish) 2023-07-20 13:51:45 +02:00
Eugen Rochko
058c7c3c33 New translations strings.xml (Danish) 2023-07-20 10:31:41 +02:00
Eugen Rochko
870e33879b New translations strings.xml (Indonesian) 2023-07-19 07:48:32 +02:00
Eugen Rochko
3ca82bdfc5 New translations strings.xml (Japanese) 2023-07-19 05:08:28 +02:00
Eugen Rochko
4721bad286 New translations short_description.txt (Armenian) 2023-07-18 16:30:06 +02:00
Eugen Rochko
f040cf2f07 New translations full_description.txt (Armenian) 2023-07-18 16:30:05 +02:00
Eugen Rochko
8d50717c90 New translations strings.xml (Armenian) 2023-07-18 16:30:04 +02:00
Eugen Rochko
2512ad3c95 New translations strings.xml (Armenian) 2023-07-18 14:49:00 +02:00
Eugen Rochko
bc7e007634 New translations strings.xml (Swedish) 2023-07-18 12:03:42 +02:00
Eugen Rochko
1f3c87e0c7 New translations strings.xml (Swedish) 2023-07-18 10:31:42 +02:00
Eugen Rochko
73e08faee9 New translations strings.xml (Persian) 2023-07-13 20:45:58 +02:00
Eugen Rochko
02dc7711e4 New translations strings.xml (Persian) 2023-07-13 19:38:29 +02:00
Eugen Rochko
67b4d80e5b New translations strings.xml (Spanish) 2023-07-13 16:08:11 +02:00
Eugen Rochko
5168d2bb39 New translations strings.xml (Spanish) 2023-07-13 14:59:49 +02:00
Eugen Rochko
57190a75bf New translations strings.xml (Indonesian) 2023-07-13 11:54:32 +02:00
Eugen Rochko
f10e865895 New translations strings.xml (Indonesian) 2023-07-13 10:48:50 +02:00
124 changed files with 5352 additions and 549 deletions

View File

@@ -3,6 +3,12 @@ buildscript {
repositories {
google()
mavenCentral()
maven {
url "https://www.jitpack.io"
content {
includeModule 'com.github.UnifiedPush', 'android-connector'
}
}
}
dependencies {
classpath 'com.android.tools.build:gradle:8.0.0'

View File

@@ -16,7 +16,7 @@ android {
minSdk 23
targetSdk 33
versionCode 97
versionName "2.0.1+fork.97"
versionName "2.0.3+fork.97"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
resourceConfigurations += ['ar-rSA', 'ar-rDZ', 'be-rBY', 'bn-rBD', 'bs-rBA', 'ca-rES', 'cs-rCZ', 'da-rDK', 'de-rDE', 'el-rGR', 'es-rES', 'eu-rES', 'fa-rIR', 'fi-rFI', 'fil-rPH', 'fr-rFR', 'ga-rIE', 'gd-rGB', 'gl-rES', 'hi-rIN', 'hr-rHR', 'hu-rHU', 'hy-rAM', 'ig-rNG', 'in-rID', 'is-rIS', 'it-rIT', 'iw-rIL', 'ja-rJP', 'kab', 'ko-rKR', 'my-rMM', 'nl-rNL', 'no-rNO', 'oc-rFR', 'pl-rPL', 'pt-rBR', 'pt-rPT', 'ro-rRO', 'ru-rRU', 'si-rLK', 'sl-rSI', 'sv-rSE', 'th-rTH', 'tr-rTR', 'uk-rUA', 'ur-rIN', 'vi-rVN', 'zh-rCN', 'zh-rTW']
}
@@ -34,6 +34,7 @@ android {
}
githubRelease { initWith release }
playRelease { initWith release }
fdroidRelease { initWith release }
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
@@ -78,6 +79,7 @@ dependencies {
implementation 'com.github.bottom-software-foundation:bottom-java:2.1.0'
annotationProcessor 'org.parceler:parceler:1.1.12'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
implementation 'com.github.UnifiedPush:android-connector:2.1.1'
androidTestImplementation 'androidx.test:core:1.5.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
@@ -87,6 +88,15 @@
<category android:name="me.grishka.fcmtest"/>
</intent-filter>
</receiver>
<receiver android:exported="true" android:enabled="true" android:name=".UnifiedPushNotificationReceiver"
tools:ignore="ExportedReceiver">
<intent-filter>
<action android:name="org.unifiedpush.android.connector.MESSAGE"/>
<action android:name="org.unifiedpush.android.connector.UNREGISTERED"/>
<action android:name="org.unifiedpush.android.connector.NEW_ENDPOINT"/>
<action android:name="org.unifiedpush.android.connector.REGISTRATION_FAILED"/>
</intent-filter>
</receiver>
</application>

View File

@@ -169,7 +169,8 @@ public class AudioPlayerService extends Service{
}
updateNotification(false, false);
getSystemService(AudioManager.class).requestAudioFocus(audioFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
int audiofocus = GlobalUserPreferences.overlayMedia ? AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK : AudioManager.AUDIOFOCUS_GAIN;
getSystemService(AudioManager.class).requestAudioFocus(audioFocusChangeListener, AudioManager.STREAM_MUSIC, audiofocus);
player=new MediaPlayer();
player.setOnPreparedListener(this::onPlayerPrepared);

View File

@@ -59,6 +59,7 @@ public class GlobalUserPreferences{
public static boolean disableM3PillActiveIndicator;
public static boolean showNavigationLabels;
public static boolean displayPronounsInTimelines, displayPronounsInThreads, displayPronounsInUserListings;
public static boolean overlayMedia;
private static SharedPreferences getPrefs(){
return MastodonApp.context.getSharedPreferences("global", Context.MODE_PRIVATE);
@@ -117,6 +118,7 @@ public class GlobalUserPreferences{
displayPronounsInTimelines=prefs.getBoolean("displayPronounsInTimelines", true);
displayPronounsInThreads=prefs.getBoolean("displayPronounsInThreads", true);
displayPronounsInUserListings=prefs.getBoolean("displayPronounsInUserListings", true);
overlayMedia=prefs.getBoolean("overlayMedia", false);
if (prefs.contains("prefixRepliesWithRe")) {
prefixReplies = prefs.getBoolean("prefixRepliesWithRe", false)
@@ -174,6 +176,7 @@ public class GlobalUserPreferences{
.putBoolean("displayPronounsInTimelines", displayPronounsInTimelines)
.putBoolean("displayPronounsInThreads", displayPronounsInThreads)
.putBoolean("displayPronounsInUserListings", displayPronounsInUserListings)
.putBoolean("overlayMedia", overlayMedia)
.apply();
}

View File

@@ -14,6 +14,7 @@ import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.util.Log;
@@ -32,6 +33,7 @@ import org.joinmastodon.android.model.Preferences;
import org.joinmastodon.android.model.PushNotification;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.model.StatusPrivacy;
import org.joinmastodon.android.ui.text.HtmlParser;
import org.joinmastodon.android.ui.utils.UiUtils;
import org.parceler.Parcels;
@@ -58,7 +60,7 @@ public class PushNotificationReceiver extends BroadcastReceiver{
private static final int SUMMARY_ID = 791;
private static int notificationId = 0;
private static Map<String, Integer> notificationIdsForAccounts = new HashMap<>();
private static final Map<String, Integer> notificationIdsForAccounts = new HashMap<>();
@Override
public void onReceive(Context context, Intent intent){
@@ -148,6 +150,11 @@ public class PushNotificationReceiver extends BroadcastReceiver{
}
}
public void notifyUnifiedPush(Context context, String accountID, org.joinmastodon.android.model.Notification notification) {
// push notifications are only created from the official push notification, so we create a fake from by transforming the notification
PushNotificationReceiver.this.notify(context, PushNotification.fromNotification(context, notification), accountID, notification);
}
private void notify(Context context, PushNotification pn, String accountID, org.joinmastodon.android.model.Notification notification){
NotificationManager nm=context.getSystemService(NotificationManager.class);
AccountSession session=AccountSessionManager.get(accountID);

View File

@@ -0,0 +1,81 @@
package org.joinmastodon.android;
import android.content.Context;
import android.util.Log;
import org.jetbrains.annotations.NotNull;
import org.joinmastodon.android.api.MastodonAPIController;
import org.joinmastodon.android.api.session.AccountSession;
import org.joinmastodon.android.api.session.AccountSessionManager;
import org.joinmastodon.android.model.Notification;
import org.joinmastodon.android.model.PaginatedResponse;
import org.unifiedpush.android.connector.MessagingReceiver;
import java.util.List;
import me.grishka.appkit.api.Callback;
import me.grishka.appkit.api.ErrorResponse;
public class UnifiedPushNotificationReceiver extends MessagingReceiver{
private static final String TAG="UnifiedPushNotificationReceiver";
public UnifiedPushNotificationReceiver() {
super();
}
@Override
public void onNewEndpoint(@NotNull Context context, @NotNull String endpoint, @NotNull String instance) {
// Called when a new endpoint be used for sending push messages
Log.d(TAG, "onNewEndpoint: New Endpoint " + endpoint + " for "+ instance);
AccountSession account = AccountSessionManager.getInstance().getLastActiveAccount();
if (account != null)
account.getPushSubscriptionManager().registerAccountForPush(null);
}
@Override
public void onRegistrationFailed(@NotNull Context context, @NotNull String instance) {
// called when the registration is not possible, eg. no network
Log.d(TAG, "onRegistrationFailed: " + instance);
//re-register for gcm
AccountSession account = AccountSessionManager.getInstance().getLastActiveAccount();
if (account != null)
account.getPushSubscriptionManager().registerAccountForPush(null);
}
@Override
public void onUnregistered(@NotNull Context context, @NotNull String instance) {
// called when this application is unregistered from receiving push messages
Log.d(TAG, "onUnregistered: " + instance);
//re-register for gcm
AccountSession account = AccountSessionManager.getInstance().getLastActiveAccount();
if (account != null)
account.getPushSubscriptionManager().registerAccountForPush(null);
}
@Override
public void onMessage(@NotNull Context context, @NotNull byte[] message, @NotNull String instance) {
// Called when a new message is received. The message contains the full POST body of the push message
AccountSession account = AccountSessionManager.getInstance().getAccount(instance);
//this is stupid
// Mastodon stores the info to decrypt the message in the HTTP headers, which are not accessible in UnifiedPush,
// thus it is not possible to decrypt them. SO we need to re-request them from the server and transform them later on
// The official uses fcm and moves the headers to extra data, see
// https://github.com/mastodon/webpush-fcm-relay/blob/cac95b28d5364b0204f629283141ac3fb749e0c5/webpush-fcm-relay.go#L116
// https://github.com/tuskyapp/Tusky/pull/2303#issue-1112080540
account.getCacheController().getNotifications(null, 1, false, false, true, new Callback<>(){
@Override
public void onSuccess(PaginatedResponse<List<Notification>> result){
result.items
.stream()
.findFirst()
.ifPresent(value->MastodonAPIController.runInBackground(()->new PushNotificationReceiver().notifyUnifiedPush(context, instance, value)));
}
@Override
public void onError(ErrorResponse error){
//professional error handling
}
});
}
}

View File

@@ -121,13 +121,13 @@ public abstract class MastodonAPIRequest<T> extends APIRequest<T>{
.orElseGet(() -> this.execNoAuth(domain));
}
public MastodonAPIRequest<T> wrapProgress(Activity activity, @StringRes int message, boolean cancelable){
return wrapProgress(activity, message, cancelable, null);
public MastodonAPIRequest<T> wrapProgress(Context context, @StringRes int message, boolean cancelable){
return wrapProgress(context, message, cancelable, null);
}
public MastodonAPIRequest<T> wrapProgress(Activity activity, @StringRes int message, boolean cancelable, Consumer<ProgressDialog> transform){
progressDialog=new ProgressDialog(activity);
progressDialog.setMessage(activity.getString(message));
public MastodonAPIRequest<T> wrapProgress(Context context, @StringRes int message, boolean cancelable, Consumer<ProgressDialog> transform){
progressDialog=new ProgressDialog(context);
progressDialog.setMessage(context.getString(message));
progressDialog.setCancelable(cancelable);
if (transform != null) transform.accept(progressDialog);
if(cancelable){

View File

@@ -120,9 +120,22 @@ public class PushSubscriptionManager{
return !TextUtils.isEmpty(deviceToken);
}
public void registerAccountForPush(PushSubscription subscription){
// this function is used for registering push notifications using FCM
// to avoid NonFreeNet in F-Droid, this registration is disabled in it
// see https://github.com/LucasGGamerM/moshidon/issues/206 for more context
if(BuildConfig.BUILD_TYPE.equals("fdroidRelease"))
return;
if(TextUtils.isEmpty(deviceToken))
throw new IllegalStateException("No device push token available");
String endpoint = "https://app.joinmastodon.org/relay-to/fcm/"+deviceToken+"/"+accountID;
registerAccountForPush(subscription, endpoint);
}
public void registerAccountForPush(PushSubscription subscription, String endpoint){
MastodonAPIController.runInBackground(()->{
Log.d(TAG, "registerAccountForPush: started for "+accountID);
String encodedPublicKey, encodedAuthKey, pushAccountID;
@@ -151,12 +164,11 @@ public class PushSubscriptionManager{
Log.e(TAG, "registerAccountForPush: error generating encryption key", e);
return;
}
new RegisterForPushNotifications(deviceToken,
new RegisterForPushNotifications(endpoint,
encodedPublicKey,
encodedAuthKey,
subscription==null ? PushSubscription.Alerts.ofAll() : subscription.alerts,
subscription==null ? PushSubscription.Policy.ALL : subscription.policy,
pushAccountID)
subscription==null ? PushSubscription.Policy.ALL : subscription.policy)
.setCallback(new Callback<>(){
@Override
public void onSuccess(PushSubscription result){

View File

@@ -4,8 +4,15 @@ import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.Relationship;
public class SetAccountMuted extends MastodonAPIRequest<Relationship>{
public SetAccountMuted(String id, boolean muted){
public SetAccountMuted(String id, boolean muted, long duration){
super(HttpMethod.POST, "/accounts/"+id+"/"+(muted ? "mute" : "unmute"), Relationship.class);
setRequestBody(new Object());
setRequestBody(new Request(duration));
}
private static class Request{
public long duration;
public Request(long duration){
this.duration=duration;
}
}
}

View File

@@ -0,0 +1,11 @@
package org.joinmastodon.android.api.requests.announcements;
import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.Status;
public class AddAnnouncementReaction extends MastodonAPIRequest<Object> {
public AddAnnouncementReaction(String id, String emoji) {
super(HttpMethod.PUT, "/announcements/" + id + "/reactions/" + emoji, Object.class);
setRequestBody(new Object());
}
}

View File

@@ -0,0 +1,9 @@
package org.joinmastodon.android.api.requests.announcements;
import org.joinmastodon.android.api.MastodonAPIRequest;
public class DeleteAnnouncementReaction extends MastodonAPIRequest<Object> {
public DeleteAnnouncementReaction(String id, String emoji) {
super(HttpMethod.DELETE, "/announcements/" + id + "/reactions/" + emoji, Object.class);
}
}

View File

@@ -4,10 +4,10 @@ import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.PushSubscription;
public class RegisterForPushNotifications extends MastodonAPIRequest<PushSubscription>{
public RegisterForPushNotifications(String deviceToken, String encryptionKey, String authKey, PushSubscription.Alerts alerts, PushSubscription.Policy policy, String accountID){
public RegisterForPushNotifications(String endpoint, String encryptionKey, String authKey, PushSubscription.Alerts alerts, PushSubscription.Policy policy){
super(HttpMethod.POST, "/push/subscription", PushSubscription.class);
Request r=new Request();
r.subscription.endpoint="https://app.joinmastodon.org/relay-to/fcm/"+deviceToken+"/"+accountID;
r.subscription.endpoint=endpoint;
r.data.alerts=alerts;
r.policy=policy;
r.subscription.keys.p256dh=encryptionKey;

View File

@@ -0,0 +1,11 @@
package org.joinmastodon.android.api.requests.statuses;
import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.Status;
public class AddStatusReaction extends MastodonAPIRequest<Status> {
public AddStatusReaction(String id, String emoji) {
super(HttpMethod.POST, "/statuses/" + id + "/react/" + emoji, Status.class);
setRequestBody(new Object());
}
}

View File

@@ -0,0 +1,11 @@
package org.joinmastodon.android.api.requests.statuses;
import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.Status;
public class DeleteStatusReaction extends MastodonAPIRequest<Status> {
public DeleteStatusReaction(String id, String emoji) {
super(HttpMethod.POST, "/statuses/" + id + "/unreact/" + emoji, Status.class);
setRequestBody(new Object());
}
}

View File

@@ -0,0 +1,11 @@
package org.joinmastodon.android.api.requests.statuses;
import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.Status;
public class PleromaAddStatusReaction extends MastodonAPIRequest<Status> {
public PleromaAddStatusReaction(String id, String emoji) {
super(HttpMethod.PUT, "/pleroma/statuses/" + id + "/reactions/" + emoji, Status.class);
setRequestBody(new Object());
}
}

View File

@@ -0,0 +1,10 @@
package org.joinmastodon.android.api.requests.statuses;
import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.Status;
public class PleromaDeleteStatusReaction extends MastodonAPIRequest<Status> {
public PleromaDeleteStatusReaction(String id, String emoji) {
super(HttpMethod.DELETE, "/pleroma/statuses/" + id + "/reactions/" + emoji, Status.class);
}
}

View File

@@ -0,0 +1,14 @@
package org.joinmastodon.android.api.requests.statuses;
import com.google.gson.reflect.TypeToken;
import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.EmojiReaction;
import java.util.List;
public class PleromaGetStatusReactions extends MastodonAPIRequest<List<EmojiReaction>> {
public PleromaGetStatusReactions(String id, String emoji) {
super(HttpMethod.GET, "/pleroma/statuses/" + id + "/reactions/" + (emoji != null ? emoji : ""), new TypeToken<>(){});
}
}

View File

@@ -38,6 +38,9 @@ public class AccountLocalPreferences{
public String timelineReplyVisibility; // akkoma-only
public boolean keepOnlyLatestNotification;
public boolean emojiReactionsEnabled;
public boolean showEmojiReactionsInLists;
private final static Type recentLanguagesType = new TypeToken<ArrayList<String>>() {}.getType();
private final static Type timelinesType = new TypeToken<ArrayList<TimelineDefinition>>() {}.getType();
@@ -62,6 +65,8 @@ public class AccountLocalPreferences{
publishButtonText=prefs.getString("publishButtonText", null);
timelineReplyVisibility=prefs.getString("timelineReplyVisibility", null);
keepOnlyLatestNotification=prefs.getBoolean("keepOnlyLatestNotification", false);
emojiReactionsEnabled=prefs.getBoolean("emojiReactionsEnabled", session.getInstance().isPresent() && session.getInstance().get().isAkkoma());
showEmojiReactionsInLists=prefs.getBoolean("showEmojiReactionsInLists", false);
}
public long getNotificationsPauseEndTime(){
@@ -93,6 +98,8 @@ public class AccountLocalPreferences{
.putString("publishButtonText", publishButtonText)
.putString("timelineReplyVisibility", timelineReplyVisibility)
.putBoolean("keepOnlyLatestNotification", keepOnlyLatestNotification)
.putBoolean("emojiReactionsEnabled", emojiReactionsEnabled)
.putBoolean("showEmojiReactionsInLists", showEmojiReactionsInLists)
.apply();
}
}

View File

@@ -1,15 +1,27 @@
package org.joinmastodon.android.events;
import androidx.recyclerview.widget.RecyclerView;
import org.joinmastodon.android.api.CacheController;
import org.joinmastodon.android.model.EmojiReaction;
import org.joinmastodon.android.model.Status;
import java.util.ArrayList;
import java.util.List;
public class StatusCountersUpdatedEvent{
public String id;
public long favorites, reblogs, replies;
public boolean favorited, reblogged, bookmarked, pinned;
public List<EmojiReaction> reactions;
public Status status;
public RecyclerView.ViewHolder viewHolder;
public StatusCountersUpdatedEvent(Status s){
this(s, null);
}
public StatusCountersUpdatedEvent(Status s, RecyclerView.ViewHolder vh){
id=s.id;
status=s;
favorites=s.favouritesCount;
@@ -19,5 +31,7 @@ public class StatusCountersUpdatedEvent{
reblogged=s.reblogged;
bookmarked=s.bookmarked;
pinned=s.pinned;
reactions=new ArrayList<>(s.reactions);
viewHolder=vh;
}
}

View File

@@ -26,6 +26,8 @@ import org.joinmastodon.android.model.HeaderPaginationList;
import org.joinmastodon.android.model.Instance;
import org.joinmastodon.android.model.ScheduledStatus;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.ui.displayitems.DummyStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.EmojiReactionsStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.HeaderStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.StatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.TextStatusDisplayItem;
@@ -71,7 +73,8 @@ public class AnnouncementsFragment extends BaseStatusListFragment<Announcement>
textItem.textSelectable = true;
return List.of(
HeaderStatusDisplayItem.fromAnnouncement(a, fakeStatus, instanceUser, this, accountID, this::onMarkAsRead),
textItem
textItem,
new EmojiReactionsStatusDisplayItem(a.id, this, fakeStatus, accountID, false, true)
);
}

View File

@@ -31,6 +31,7 @@ import org.joinmastodon.android.model.Relationship;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.ui.BetterItemAnimator;
import org.joinmastodon.android.ui.displayitems.AccountStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.EmojiReactionsStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.ExtendedFooterStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.FooterStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.GapStatusDisplayItem;
@@ -607,6 +608,15 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
if (header != null) header.rebind();
}
public void updateEmojiReactions(Status status, String itemID){
EmojiReactionsStatusDisplayItem.Holder reactions=findHolderOfType(itemID, EmojiReactionsStatusDisplayItem.Holder.class);
if(reactions != null){
reactions.getItem().status.reactions.clear();
reactions.getItem().status.reactions.addAll(status.reactions);
reactions.rebind();
}
}
public void onGapClick(GapStatusDisplayItem.Holder item){}
public void onWarningClick(WarningFilteredStatusDisplayItem.Holder warning){
@@ -782,6 +792,10 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
}
}
public void scrollBy(int x, int y) {
list.scrollBy(x, y);
}
protected class DisplayItemsAdapter extends UsableRecyclerView.Adapter<BindableViewHolder<StatusDisplayItem>> implements ImageLoaderRecyclerAdapter{
public DisplayItemsAdapter(){

View File

@@ -300,6 +300,13 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
onCustomEmojiClick(emoji);
}
@Override
public void onEmojiSelected(String emoji){
if(getActivity().getCurrentFocus() instanceof EditText edit && edit == mainEditText){
edit.getText().replace(edit.getSelectionStart(), edit.getSelectionEnd(), emoji);
}
}
@Override
public void onBackspace(){
getActivity().dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL));

View File

@@ -62,6 +62,7 @@ import org.joinmastodon.android.utils.ElevationOnScrollListener;
import org.joinmastodon.android.utils.ProvidesAssistContent;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -336,11 +337,13 @@ public class HomeTabFragment extends MastodonToolbarFragment implements Scrollab
hashtagsMenu.clear();
hashtagsMenu.getItem().setVisible(hashtagsItems.size() > 0);
UiUtils.insetPopupMenuIcon(ctx, UiUtils.makeBackItem(hashtagsMenu));
hashtagsItems.forEach((id, hashtag) -> {
MenuItem item = hashtagsMenu.add(Menu.NONE, id, Menu.NONE, hashtag.name);
item.setIcon(R.drawable.ic_fluent_number_symbol_24_regular);
UiUtils.insetPopupMenuIcon(ctx, item);
});
hashtagsItems.entrySet().stream()
.sorted(Comparator.comparing(x -> x.getValue().name, String.CASE_INSENSITIVE_ORDER))
.forEach(entry -> {
MenuItem item = hashtagsMenu.add(Menu.NONE, entry.getKey(), Menu.NONE, entry.getValue().name);
item.setIcon(R.drawable.ic_fluent_number_symbol_24_regular);
UiUtils.insetPopupMenuIcon(ctx, item);
});
}
public void updateToolbarLogo(){

View File

@@ -12,8 +12,8 @@ import android.view.View;
import com.squareup.otto.Subscribe;
import org.joinmastodon.android.E;
import org.joinmastodon.android.GlobalUserPreferences;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.session.AccountSession;
import org.joinmastodon.android.api.session.AccountSessionManager;
import org.joinmastodon.android.events.PollUpdatedEvent;
import org.joinmastodon.android.events.RemoveAccountPostsEvent;
@@ -22,6 +22,7 @@ import org.joinmastodon.android.model.Notification;
import org.joinmastodon.android.model.PaginatedResponse;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.ui.displayitems.AccountCardStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.EmojiReactionsStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.ExtendedFooterStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.FooterStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.NotificationHeaderStatusDisplayItem;
@@ -99,7 +100,11 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
return items;
}
if(n.status!=null){
int flags=titleItem==null ? 0 : (StatusDisplayItem.FLAG_NO_FOOTER | StatusDisplayItem.FLAG_INSET); // | StatusDisplayItem.FLAG_NO_HEADER);
int flags=titleItem==null ? 0 : (StatusDisplayItem.FLAG_NO_FOOTER | StatusDisplayItem.FLAG_INSET | StatusDisplayItem.FLAG_NO_EMOJI_REACTIONS); // | StatusDisplayItem.FLAG_NO_HEADER);
if (GlobalUserPreferences.spectatorMode)
flags |= StatusDisplayItem.FLAG_NO_FOOTER;
if (!getLocalPrefs().showEmojiReactionsInLists)
flags |= StatusDisplayItem.FLAG_NO_EMOJI_REACTIONS;
ArrayList<StatusDisplayItem> items=StatusDisplayItem.buildItems(this, n.status, accountID, n, knownAccounts, null, flags);
if(titleItem!=null)
items.add(0, titleItem);
@@ -254,6 +259,8 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
footer.rebind();
}else if(holder instanceof ExtendedFooterStatusDisplayItem.Holder footer && footer.getItem().status==n.status.getContentStatus()){
footer.rebind();
}else if(holder instanceof EmojiReactionsStatusDisplayItem.Holder reactions && ev.viewHolder!=holder){
reactions.rebind();
}
}
}

View File

@@ -1076,6 +1076,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
);
name.setVisibility(View.GONE);
rolesView.setVisibility(View.GONE);
username.setVisibility(View.GONE);
bio.setVisibility(View.GONE);
countersLayout.setVisibility(View.GONE);
@@ -1124,6 +1125,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
nameEditWrap.setVisibility(View.GONE);
bioEditWrap.setVisibility(View.GONE);
name.setVisibility(View.VISIBLE);
rolesView.setVisibility(View.VISIBLE);
username.setVisibility(View.VISIBLE);
bio.setVisibility(View.VISIBLE);
countersLayout.setVisibility(View.VISIBLE);

View File

@@ -80,7 +80,7 @@ public class ScheduledStatusListFragment extends BaseStatusListFragment<Schedule
@Override
protected List<StatusDisplayItem> buildDisplayItems(ScheduledStatus s) {
return StatusDisplayItem.buildItems(this, s.toStatus(), accountID, s, knownAccounts, false, false, true, null);
return StatusDisplayItem.buildItems(this, s.toStatus(), accountID, s, knownAccounts, false, false, false, true, null);
}
@Override

View File

@@ -57,7 +57,7 @@ public class StatusEditHistoryFragment extends StatusListFragment{
@Override
protected List<StatusDisplayItem> buildDisplayItems(Status s){
List<StatusDisplayItem> items=StatusDisplayItem.buildItems(this, s, accountID, s, knownAccounts, null, StatusDisplayItem.FLAG_NO_FOOTER | StatusDisplayItem.FLAG_INSET);
List<StatusDisplayItem> items=StatusDisplayItem.buildItems(this, s, accountID, s, knownAccounts, null, StatusDisplayItem.FLAG_NO_FOOTER | StatusDisplayItem.FLAG_INSET | StatusDisplayItem.FLAG_NO_EMOJI_REACTIONS);
int idx=data.indexOf(s);
if(idx>=0){
String date=UiUtils.DATE_TIME_FORMATTER.format(s.createdAt.atZone(ZoneId.systemDefault()));
@@ -143,9 +143,7 @@ public class StatusEditHistoryFragment extends StatusListFragment{
}
}
String sep = getString(R.string.sk_separator);
ReblogOrReplyLineStatusDisplayItem line=new ReblogOrReplyLineStatusDisplayItem(s.id, this, action+" "+sep+" "+date, Collections.emptyList(), 0, null, null);
line.needBottomPadding=true;
items.add(0, line);
items.add(0, new ReblogOrReplyLineStatusDisplayItem(s.id, this, action+" "+sep+" "+date, Collections.emptyList(), 0, null, null));
}
return items;
}

View File

@@ -16,6 +16,7 @@ import org.joinmastodon.android.events.StatusDeletedEvent;
import org.joinmastodon.android.events.StatusUpdatedEvent;
import org.joinmastodon.android.model.FilterContext;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.ui.displayitems.EmojiReactionsStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.ExtendedFooterStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.FooterStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.StatusDisplayItem;
@@ -33,9 +34,13 @@ public abstract class StatusListFragment extends BaseStatusListFragment<Status>
protected EventListener eventListener=new EventListener();
protected List<StatusDisplayItem> buildDisplayItems(Status s){
boolean addFooter = !GlobalUserPreferences.spectatorMode ||
(this instanceof ThreadFragment t && s.id.equals(t.mainStatus.id));
return StatusDisplayItem.buildItems(this, s, accountID, s, knownAccounts, getFilterContext(), addFooter ? 0 : StatusDisplayItem.FLAG_NO_FOOTER);
boolean isMainThreadStatus = this instanceof ThreadFragment t && s.id.equals(t.mainStatus.id);
int flags = 0;
if (GlobalUserPreferences.spectatorMode)
flags |= StatusDisplayItem.FLAG_NO_FOOTER;
if (!getLocalPrefs().showEmojiReactionsInLists)
flags |= StatusDisplayItem.FLAG_NO_EMOJI_REACTIONS;
return StatusDisplayItem.buildItems(this, s, accountID, s, knownAccounts, getFilterContext(), isMainThreadStatus ? 0 : flags);
}
protected abstract FilterContext getFilterContext();
@@ -218,6 +223,8 @@ public abstract class StatusListFragment extends BaseStatusListFragment<Status>
footer.rebind();
}else if(holder instanceof ExtendedFooterStatusDisplayItem.Holder footer && footer.getItem().status==s.getContentStatus()){
footer.rebind();
}else if(holder instanceof EmojiReactionsStatusDisplayItem.Holder reactions && reactions.getItem().status==s.getContentStatus() && ev.viewHolder!=holder){
reactions.rebind();
}
}
}

View File

@@ -417,6 +417,10 @@ public class ThreadFragment extends StatusListFragment implements ProvidesAssist
adapter.notifyDataSetChanged();
}
public Status getMainStatus(){
return mainStatus;
}
@Override
public boolean isItemEnabled(String id){
return !id.equals(mainStatus.id) || !mainStatus.filterRevealed;

View File

@@ -14,6 +14,7 @@ import org.joinmastodon.android.model.viewmodel.AccountViewModel;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import me.grishka.appkit.api.Callback;
@@ -136,6 +137,10 @@ public abstract class PaginatedAccountListFragment<T> extends BaseAccountListFra
List<AccountViewModel> items = result.stream()
.filter(a -> d.size() > 1000 || d.stream()
.noneMatch(i -> i.account.url.equals(a.url)))
.peek(account ->{
if (account.getDomainFromURL().equals(getRemoteDomain()))
account.acct=account.getFullyQualifiedName();
})
.map(a->new AccountViewModel(a, accountID))
.collect(Collectors.toList());

View File

@@ -0,0 +1,97 @@
package org.joinmastodon.android.fragments.account_list;
import android.net.Uri;
import android.os.Bundle;
import android.text.SpannableStringBuilder;
import android.view.View;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.requests.statuses.PleromaGetStatusReactions;
import org.joinmastodon.android.model.Emoji;
import org.joinmastodon.android.model.EmojiReaction;
import org.joinmastodon.android.model.viewmodel.AccountViewModel;
import org.joinmastodon.android.ui.text.HtmlParser;
import org.joinmastodon.android.ui.utils.UiUtils;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import me.grishka.appkit.api.ErrorResponse;
import me.grishka.appkit.api.SimpleCallback;
public class StatusEmojiReactionsListFragment extends BaseAccountListFragment {
private String id;
private String emojiName;
private String url;
private int count;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
id = getArguments().getString("statusID");
emojiName = getArguments().getString("emoji");
url = getArguments().getString("url");
count = getArguments().getInt("count");
SpannableStringBuilder title = new SpannableStringBuilder(getResources().getQuantityString(R.plurals.sk_users_reacted_with, count,
count, url == null ? emojiName : ":"+emojiName+":"));
if (url != null) {
Emoji emoji = new Emoji();
emoji.shortcode = emojiName;
emoji.url = url;
HtmlParser.parseCustomEmoji(title, Collections.singletonList(emoji));
}
setTitle(title);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (url != null) {
UiUtils.loadCustomEmojiInTextView(toolbarTitleView);
}
}
@Override
public void dataLoaded() {
super.dataLoaded();
footerProgress.setVisibility(View.GONE);
}
@Override
protected void doLoadData(int offset, int count){
currentRequest = new PleromaGetStatusReactions(id, emojiName)
.setCallback(new SimpleCallback<>(StatusEmojiReactionsListFragment.this){
@Override
public void onSuccess(List<EmojiReaction> result) {
if (getActivity() == null)
return;
List<AccountViewModel> items = result.get(0).accounts.stream()
.map(a -> new AccountViewModel(a, accountID))
.collect(Collectors.toList());
onDataLoaded(items);
}
@Override
public void onError(ErrorResponse error) {
super.onError(error);
}
})
.exec(accountID);
}
@Override
public void onResume(){
super.onResume();
if(!loaded && !dataLoading)
loadData();
}
@Override
public Uri getWebUri(Uri.Builder base) {
return null;
}
}

View File

@@ -7,6 +7,7 @@ import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import org.joinmastodon.android.GlobalUserPreferences;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.requests.search.GetSearchResults;
import org.joinmastodon.android.api.session.AccountSessionManager;
@@ -69,7 +70,7 @@ public class SearchFragment extends BaseStatusListFragment<SearchResult>{
return switch(s.type){
case ACCOUNT -> Collections.singletonList(new AccountStatusDisplayItem(s.id, this, s.account));
case HASHTAG -> Collections.singletonList(new HashtagStatusDisplayItem(s.id, this, s.hashtag));
case STATUS -> StatusDisplayItem.buildItems(this, s.status, accountID, s, knownAccounts, FilterContext.PUBLIC, 0);
case STATUS -> StatusDisplayItem.buildItems(this, s.status, accountID, s, knownAccounts, FilterContext.PUBLIC, !getLocalPrefs().showEmojiReactionsInLists ? StatusDisplayItem.FLAG_NO_EMOJI_REACTIONS : 0);
};
}

View File

@@ -102,7 +102,6 @@ public class ReportAddPostsChoiceFragment extends StatusListFragment{
selectedIDs.remove(id);
else
selectedIDs.add(id);
btn.setEnabled(!selectedIDs.isEmpty());
CheckableHeaderStatusDisplayItem.Holder holder=findHolderOfType(id, CheckableHeaderStatusDisplayItem.Holder.class);
if(holder!=null)
holder.rebind();
@@ -112,7 +111,6 @@ public class ReportAddPostsChoiceFragment extends StatusListFragment{
public void onViewCreated(View view, Bundle savedInstanceState){
super.onViewCreated(view, savedInstanceState);
btn=view.findViewById(R.id.btn_next);
btn.setEnabled(!selectedIDs.isEmpty());
btn.setOnClickListener(this::onButtonClick);
buttonBar=view.findViewById(R.id.button_bar);

View File

@@ -30,7 +30,7 @@ public class SettingsBehaviorFragment extends BaseSettingsFragment<Void> impleme
// MEGALODON
private MastodonLanguage.LanguageResolver languageResolver;
private ListItem<Void> prefixRepliesItem, replyVisibilityItem;
private CheckableListItem<Void> forwardReportsItem, remoteLoadingItem, showBoostsItem, showRepliesItem, loadNewPostsItem, seeNewPostsBtnItem;
private CheckableListItem<Void> forwardReportsItem, remoteLoadingItem, showBoostsItem, showRepliesItem, loadNewPostsItem, seeNewPostsBtnItem, overlayMediaItem;
@Override
public void onCreate(Bundle savedInstanceState){
@@ -47,6 +47,7 @@ public class SettingsBehaviorFragment extends BaseSettingsFragment<Void> impleme
languageItem=new ListItem<>(getString(R.string.default_post_language), postLanguage!=null ? postLanguage.getDisplayName(getContext()) : null, R.drawable.ic_fluent_local_language_24_regular, this::onDefaultLanguageClick),
altTextItem=new CheckableListItem<>(R.string.settings_alt_text_reminders, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.altTextReminders, R.drawable.ic_fluent_image_alt_text_24_regular, ()->toggleCheckableItem(altTextItem)),
playGifsItem=new CheckableListItem<>(R.string.settings_gif, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.playGifs, R.drawable.ic_fluent_gif_24_regular, ()->toggleCheckableItem(playGifsItem)),
overlayMediaItem=new CheckableListItem<>(R.string.sk_settings_continues_playback, R.string.sk_settings_continues_playback_summary, CheckableListItem.Style.SWITCH, GlobalUserPreferences.overlayMedia, R.drawable.ic_fluent_play_circle_hint_24_regular, ()->toggleCheckableItem(overlayMediaItem)),
customTabsItem=new CheckableListItem<>(R.string.settings_custom_tabs, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.useCustomTabs, R.drawable.ic_fluent_link_24_regular, ()->toggleCheckableItem(customTabsItem)),
confirmUnfollowItem=new CheckableListItem<>(R.string.settings_confirm_unfollow, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.confirmUnfollow, R.drawable.ic_fluent_person_delete_24_regular, ()->toggleCheckableItem(confirmUnfollowItem)),
confirmBoostItem=new CheckableListItem<>(R.string.settings_confirm_boost, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.confirmBoost, R.drawable.ic_fluent_arrow_repeat_all_24_regular, ()->toggleCheckableItem(confirmBoostItem)),
@@ -162,6 +163,7 @@ public class SettingsBehaviorFragment extends BaseSettingsFragment<Void> impleme
protected void onHidden(){
super.onHidden();
GlobalUserPreferences.playGifs=playGifsItem.checked;
GlobalUserPreferences.overlayMedia=overlayMediaItem.checked;
GlobalUserPreferences.useCustomTabs=customTabsItem.checked;
GlobalUserPreferences.altTextReminders=altTextItem.checked;
GlobalUserPreferences.confirmUnfollow=customTabsItem.checked;

View File

@@ -19,7 +19,7 @@ import java.util.List;
import me.grishka.appkit.Nav;
public class SettingsInstanceFragment extends BaseSettingsFragment<Void> implements HasAccountID{
private CheckableListItem<Void> contentTypesItem, localOnlyItem, glitchModeItem;
private CheckableListItem<Void> contentTypesItem, emojiReactionsItem, emojiReactionsInListsItem, localOnlyItem, glitchModeItem;
private ListItem<Void> defaultContentTypeItem;
private AccountLocalPreferences lp;
@@ -36,11 +36,15 @@ public class SettingsInstanceFragment extends BaseSettingsFragment<Void> impleme
new ListItem<>(R.string.sk_settings_auth, 0, R.drawable.ic_fluent_open_24_regular, ()->UiUtils.launchWebBrowser(getActivity(), "https://"+s.domain+"/auth/edit"), 0, true),
contentTypesItem=new CheckableListItem<>(R.string.sk_settings_content_types, R.string.sk_settings_content_types_explanation, CheckableListItem.Style.SWITCH, lp.contentTypesEnabled, R.drawable.ic_fluent_text_edit_style_24_regular, this::onContentTypeClick),
defaultContentTypeItem=new ListItem<>(R.string.sk_settings_default_content_type, lp.defaultContentType.getName(), R.drawable.ic_fluent_text_bold_24_regular, this::onDefaultContentTypeClick),
emojiReactionsItem=new CheckableListItem<>(R.string.sk_settings_emoji_reactions, R.string.sk_settings_emoji_reactions_explanation, CheckableListItem.Style.SWITCH, lp.emojiReactionsEnabled, R.drawable.ic_fluent_emoji_laugh_24_regular, this::onEmojiReactionsClick),
emojiReactionsInListsItem=new CheckableListItem<>(R.string.sk_settings_emoji_reactions_in_lists, R.string.sk_settings_emoji_reactions_in_lists_explanation, CheckableListItem.Style.SWITCH, lp.showEmojiReactionsInLists, R.drawable.ic_fluent_emoji_24_regular, ()->toggleCheckableItem(emojiReactionsInListsItem)),
localOnlyItem=new CheckableListItem<>(R.string.sk_settings_support_local_only, R.string.sk_settings_local_only_explanation, CheckableListItem.Style.SWITCH, lp.localOnlySupported, R.drawable.ic_fluent_eye_24_regular, this::onLocalOnlyClick),
glitchModeItem=new CheckableListItem<>(R.string.sk_settings_glitch_instance, R.string.sk_settings_glitch_mode_explanation, CheckableListItem.Style.SWITCH, lp.glitchInstance, R.drawable.ic_fluent_eye_24_filled, ()->toggleCheckableItem(glitchModeItem))
));
contentTypesItem.checkedChangeListener=checked->onContentTypeClick();
defaultContentTypeItem.isEnabled=contentTypesItem.checked;
emojiReactionsItem.checkedChangeListener=checked->onEmojiReactionsClick();
emojiReactionsInListsItem.isEnabled=emojiReactionsItem.checked;
localOnlyItem.checkedChangeListener=checked->onLocalOnlyClick();
glitchModeItem.isEnabled=localOnlyItem.checked;
}
@@ -52,6 +56,8 @@ public class SettingsInstanceFragment extends BaseSettingsFragment<Void> impleme
protected void onHidden(){
super.onHidden();
lp.contentTypesEnabled=contentTypesItem.checked;
lp.emojiReactionsEnabled=emojiReactionsItem.checked;
lp.showEmojiReactionsInLists=emojiReactionsInListsItem.checked;
lp.localOnlySupported=localOnlyItem.checked;
lp.glitchInstance=glitchModeItem.checked;
lp.save();
@@ -101,6 +107,13 @@ public class SettingsInstanceFragment extends BaseSettingsFragment<Void> impleme
.show();
}
private void onEmojiReactionsClick(){
toggleCheckableItem(emojiReactionsItem);
emojiReactionsInListsItem.checked=false;
emojiReactionsInListsItem.isEnabled=emojiReactionsItem.checked;
rebindItem(emojiReactionsInListsItem);
}
private void onLocalOnlyClick(){
toggleCheckableItem(localOnlyItem);
glitchModeItem.checked=localOnlyItem.checked && !isInstanceAkkoma();

View File

@@ -1,5 +1,7 @@
package org.joinmastodon.android.fragments.settings;
import static org.unifiedpush.android.connector.UnifiedPush.getDistributor;
import android.app.AlertDialog;
import android.app.NotificationManager;
import android.content.Intent;
@@ -25,8 +27,11 @@ import org.joinmastodon.android.model.viewmodel.ListItem;
import org.joinmastodon.android.ui.M3AlertDialogBuilder;
import org.joinmastodon.android.ui.utils.HideableSingleViewRecyclerAdapter;
import org.joinmastodon.android.ui.utils.UiUtils;
import org.unifiedpush.android.connector.RegistrationDialogContent;
import org.unifiedpush.android.connector.UnifiedPush;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
@@ -52,7 +57,8 @@ public class SettingsNotificationsFragment extends BaseSettingsFragment<Void>{
private boolean notificationsAllowed=true;
// MEGALODON
private CheckableListItem<Void> uniformIconItem, deleteItem, onlyLatestItem;
private boolean useUnifiedPush = false;
private CheckableListItem<Void> uniformIconItem, deleteItem, onlyLatestItem, unifiedPushItem;
private CheckableListItem<Void> postsItem, updateItem;
private AccountLocalPreferences lp;
@@ -64,6 +70,7 @@ public class SettingsNotificationsFragment extends BaseSettingsFragment<Void>{
lp=AccountSessionManager.get(accountID).getLocalPreferences();
getPushSubscription();
useUnifiedPush=!getDistributor(getContext()).isEmpty();
onDataLoaded(List.of(
pauseItem=new CheckableListItem<>(getString(R.string.pause_all_notifications), getPauseItemSubtitle(), CheckableListItem.Style.SWITCH, false, R.drawable.ic_fluent_alert_snooze_24_regular, ()->onPauseNotificationsClick(false)),
@@ -79,9 +86,16 @@ public class SettingsNotificationsFragment extends BaseSettingsFragment<Void>{
uniformIconItem=new CheckableListItem<>(R.string.sk_settings_uniform_icon_for_notifications, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.uniformNotificationIcon, R.drawable.ic_ntf_logo, ()->toggleCheckableItem(uniformIconItem)),
deleteItem=new CheckableListItem<>(R.string.sk_settings_enable_delete_notifications, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.enableDeleteNotifications, R.drawable.ic_fluent_mail_inbox_dismiss_24_regular, ()->toggleCheckableItem(deleteItem)),
onlyLatestItem=new CheckableListItem<>(R.string.sk_settings_single_notification, 0, CheckableListItem.Style.SWITCH, lp.keepOnlyLatestNotification, R.drawable.ic_fluent_convert_range_24_regular, ()->toggleCheckableItem(onlyLatestItem), true)
onlyLatestItem=new CheckableListItem<>(R.string.sk_settings_single_notification, 0, CheckableListItem.Style.SWITCH, lp.keepOnlyLatestNotification, R.drawable.ic_fluent_convert_range_24_regular, ()->toggleCheckableItem(onlyLatestItem), true),
unifiedPushItem=new CheckableListItem<>(R.string.sk_settings_unifiedpush, 0, CheckableListItem.Style.SWITCH, useUnifiedPush, R.drawable.ic_fluent_alert_arrow_up_24_regular, this::onUnifiedPush, true)
));
//only enable when distributors, who can receive notifications, are available
unifiedPushItem.isEnabled=!UnifiedPush.getDistributors(getContext(), new ArrayList<>()).isEmpty();
if (!unifiedPushItem.isEnabled) {
unifiedPushItem.subtitleRes=R.string.sk_settings_unifiedpush_no_distributor_body;
}
typeItems=List.of(mentionsItem, boostsItem, favoritesItem, followersItem, pollsItem, updateItem, postsItem);
pauseItem.checkedChangeListener=checked->onPauseNotificationsClick(true);
updatePolicyItem(null);
@@ -312,4 +326,38 @@ public class SettingsNotificationsFragment extends BaseSettingsFragment<Void>{
bannerAdapter.setVisible(false);
}
}
}
private void onUnifiedPush(){
if(getDistributor(getContext()).isEmpty()){
List<String> distributors = UnifiedPush.getDistributors(getContext(), new ArrayList<>());
showUnifiedPushRegisterDialog(distributors);
return;
}
UnifiedPush.unregisterApp(
getContext(),
accountID
);
//re-register to fcm
AccountSessionManager.getInstance().getAccount(accountID).getPushSubscriptionManager().registerAccountForPush(getPushSubscription());
unifiedPushItem.toggle();
rebindItem(unifiedPushItem);
}
private void showUnifiedPushRegisterDialog(List<String> distributors){
new M3AlertDialogBuilder(getContext()).setTitle(R.string.sk_settings_unifiedpush_choose).setItems(distributors.toArray(String[]::new),
(dialog, which) ->{
String userDistrib = distributors.get(which);
UnifiedPush.saveDistributor(getContext(), userDistrib);
UnifiedPush.registerApp(
getContext(),
accountID,
new ArrayList<>(),
getContext().getPackageName()
);
unifiedPushItem.toggle();
rebindItem(unifiedPushItem);
}).show();
}
}

View File

@@ -8,6 +8,7 @@ import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
@@ -24,6 +25,7 @@ import android.widget.Toast;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.MastodonAPIController;
import org.joinmastodon.android.api.requests.instance.GetInstanceExtendedDescription;
import org.joinmastodon.android.api.session.AccountSessionManager;
import org.joinmastodon.android.model.Instance;
import org.joinmastodon.android.model.viewmodel.AccountViewModel;
import org.joinmastodon.android.model.viewmodel.ListItem;
@@ -126,6 +128,8 @@ public class SettingsServerAboutFragment extends LoaderFragment{
hlp.leftMargin=hlp.rightMargin=V.dp(16);
scrollingLayout.addView(heading, hlp);
// if a remote instance is shown, the account is remote and need to be loaded accordingly when shown
instance.contactAccount.isRemote=!AccountSessionManager.get(accountID).domain.equals(instance.normalizedUri);
AccountViewModel model=new AccountViewModel(instance.contactAccount, accountID);
AccountViewHolder holder=new AccountViewHolder(this, scrollingLayout, null);
holder.setStyle(AccountViewHolder.AccessoryType.NONE, false);

View File

@@ -1,9 +1,11 @@
package org.joinmastodon.android.model;
import org.joinmastodon.android.api.ObjectValidationException;
import org.joinmastodon.android.api.RequiredField;
import org.parceler.Parcel;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
@Parcel
@@ -20,6 +22,7 @@ public class Announcement extends BaseModel implements DisplayItemsParent {
public Instant updatedAt;
public boolean read;
public List<Emoji> emojis;
public List<EmojiReaction> reactions;
public List<Mention> mentions;
public List<Hashtag> tags;
@@ -41,10 +44,17 @@ public class Announcement extends BaseModel implements DisplayItemsParent {
'}';
}
public Status toStatus() {
Status s = Status.ofFake(id, content, publishedAt);
s.createdAt = startsAt != null ? startsAt : publishedAt;
if (updatedAt != null) s.editedAt = updatedAt;
@Override
public void postprocess() throws ObjectValidationException{
super.postprocess();
if(reactions==null) reactions=new ArrayList<>();
}
public Status toStatus() {
Status s=Status.ofFake(id, content, publishedAt);
s.createdAt=startsAt != null ? startsAt : publishedAt;
s.reactions=reactions;
if(updatedAt != null) s.editedAt=updatedAt;
return s;
}

View File

@@ -3,6 +3,7 @@ package org.joinmastodon.android.model;
import android.graphics.Bitmap;
import android.graphics.PointF;
import android.graphics.drawable.Drawable;
import android.media.MediaMetadataRetriever;
import com.google.gson.annotations.SerializedName;
@@ -45,26 +46,26 @@ public class Attachment extends BaseModel{
public int getWidth(){
if(meta==null)
return 1920;
return 0;
if(meta.width>0)
return meta.width;
if(meta.original!=null && meta.original.width>0)
return meta.original.width;
if(meta.small!=null && meta.small.width>0)
return meta.small.width;
return 1920;
return 0;
}
public int getHeight(){
if(meta==null)
return 1080;
return 0;
if(meta.height>0)
return meta.height;
if(meta.original!=null && meta.original.height>0)
return meta.original.height;
if(meta.small!=null && meta.small.height>0)
return meta.small.height;
return 1080;
return 0;
}
public double getDuration(){
@@ -77,6 +78,13 @@ public class Attachment extends BaseModel{
return 0;
}
public boolean hasSound() {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(url);
String hasAudioStr = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_AUDIO);
return "yes".equals(hasAudioStr);
}
@Override
public void postprocess() throws ObjectValidationException{
super.postprocess();

View File

@@ -0,0 +1,56 @@
package org.joinmastodon.android.model;
import org.parceler.Parcel;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import me.grishka.appkit.imageloader.requests.ImageLoaderRequest;
import me.grishka.appkit.imageloader.requests.UrlImageLoaderRequest;
import me.grishka.appkit.utils.V;
@Parcel
public class EmojiReaction {
public List<Account> accounts;
public List<String> accountIds;
public int count;
public boolean me;
public String name;
public String url;
public String staticUrl;
public transient ImageLoaderRequest request;
public static EmojiReaction of(Emoji info, Account me){
EmojiReaction reaction=new EmojiReaction();
reaction.me=true;
reaction.count=1;
reaction.name=info.shortcode;
reaction.url=info.url;
reaction.staticUrl=info.staticUrl;
reaction.accounts=new ArrayList<>(Collections.singleton(me));
reaction.accountIds=new ArrayList<>(Collections.singleton(me.id));
reaction.request=new UrlImageLoaderRequest(info.url, V.sp(24), V.sp(24));
return reaction;
}
public static EmojiReaction of(String emoji, Account me){
EmojiReaction reaction=new EmojiReaction();
reaction.me=true;
reaction.count=1;
reaction.name=emoji;
reaction.accounts=new ArrayList<>(Collections.singleton(me));
reaction.accountIds=new ArrayList<>(Collections.singleton(me.id));
return reaction;
}
public void add(Account self){
if(accounts==null) accounts=new ArrayList<>();
if(accountIds==null) accountIds=new ArrayList<>();
count++;
me=true;
accounts.add(self);
accountIds.add(self.id);
}
}

View File

@@ -131,7 +131,7 @@ public class Instance extends BaseModel{
ci.domain=uri;
ci.normalizedDomain=IDN.toUnicode(uri);
ci.description=Html.fromHtml(shortDescription).toString().trim();
if(languages!=null && languages.size() > 0){
if(languages!=null&&languages.size()>0){
ci.language=languages.get(0);
ci.languages=languages;
}else{

View File

@@ -1,9 +1,12 @@
package org.joinmastodon.android.model;
import android.content.Context;
import com.google.gson.annotations.SerializedName;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.RequiredField;
import org.joinmastodon.android.ui.utils.UiUtils;
import androidx.annotation.StringRes;
@@ -20,6 +23,40 @@ public class PushNotification extends BaseModel{
@RequiredField
public String body;
public static PushNotification fromNotification(Context context, Notification notification){
PushNotification pushNotification = new PushNotification();
pushNotification.notificationType = switch(notification.type) {
case FOLLOW -> PushNotification.Type.FOLLOW;
case MENTION -> PushNotification.Type.MENTION;
case REBLOG -> PushNotification.Type.REBLOG;
case FAVORITE -> PushNotification.Type.FAVORITE;
case POLL -> PushNotification.Type.POLL;
case STATUS -> PushNotification.Type.STATUS;
case UPDATE -> PushNotification.Type.UPDATE;
case SIGN_UP -> PushNotification.Type.SIGN_UP;
case REPORT -> PushNotification.Type.REPORT;
//Follow request, and reactions are not supported by the API
default -> throw new IllegalStateException("Unexpected value: "+notification.type);
};
String notificationTitle = context.getString(switch(notification.type){
case FOLLOW -> R.string.user_followed_you;
case MENTION -> R.string.sk_notification_mention;
case REBLOG -> R.string.notification_boosted;
case FAVORITE -> R.string.user_favorited;
case POLL -> R.string.poll_ended;
case UPDATE -> R.string.sk_post_edited;
case SIGN_UP -> R.string.sk_signed_up;
case REPORT -> R.string.sk_reported;
default -> throw new IllegalStateException("Unexpected value: "+notification.type);
});
pushNotification.title = UiUtils.generateFormattedString(notificationTitle, notification.account.displayName).toString();
pushNotification.icon = notification.status.account.avatarStatic;
pushNotification.body = notification.status.getStrippedText();
return pushNotification;
}
@Override
public String toString(){
return "PushNotification{"+

View File

@@ -23,6 +23,7 @@ import org.parceler.Parcel;
import java.lang.reflect.Type;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
@Parcel
@@ -74,6 +75,9 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
public Status quote; // can be boolean in calckey
public List<EmojiReaction> reactions;
protected List<EmojiReaction> emojiReactions; // akkoma
public transient boolean filterRevealed;
public transient boolean spoilerRevealed;
public transient boolean sensitiveRevealed;
@@ -96,7 +100,7 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
t.postprocess();
for(Emoji e:emojis)
e.postprocess();
if (mediaAttachments == null) mediaAttachments = List.of();
if (mediaAttachments == null) mediaAttachments=List.of();
for(Attachment a:mediaAttachments)
a.postprocess();
account.postprocess();
@@ -110,10 +114,12 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
for(FilterResult fr:filtered)
fr.postprocess();
if (!TextUtils.isEmpty(spoilerText)) sensitive = true;
if(!TextUtils.isEmpty(spoilerText)) sensitive=true;
spoilerRevealed=TextUtils.isEmpty(spoilerText);
sensitiveRevealed=!sensitive;
if (visibility.equals(StatusPrivacy.LOCAL)) localOnly = true;
if(visibility.equals(StatusPrivacy.LOCAL)) localOnly=true;
if(emojiReactions!=null) reactions=emojiReactions;
if(reactions==null) reactions=new ArrayList<>();
}
@Override
@@ -169,6 +175,7 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
reblogged=ev.reblogged;
bookmarked=ev.bookmarked;
pinned=ev.pinned;
reactions=ev.reactions;
}
public Status getContentStatus(){
@@ -194,17 +201,18 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
}
public static Status ofFake(String id, String text, Instant createdAt) {
Status s = new Status();
s.id = id;
s.mediaAttachments = List.of();
s.createdAt = createdAt;
s.content = s.text = text;
s.spoilerText = "";
s.visibility = StatusPrivacy.PUBLIC;
s.mentions = List.of();
s.tags = List.of();
s.emojis = List.of();
s.filtered = List.of();
Status s=new Status();
s.id=id;
s.mediaAttachments=List.of();
s.createdAt=createdAt;
s.content=s.text=text;
s.spoilerText="";
s.visibility=StatusPrivacy.PUBLIC;
s.reactions=List.of();
s.mentions=List.of();
s.tags =List.of();
s.emojis=List.of();
s.filtered=List.of();
return s;
}
@@ -216,21 +224,21 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
public static class StatusDeserializer implements JsonDeserializer<Status> {
@Override
public Status deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
JsonObject obj = json.getAsJsonObject();
JsonObject obj=json.getAsJsonObject();
Status quote = null;
Status quote=null;
if (obj.has("quote") && obj.get("quote").isJsonObject())
quote = gson.fromJson(obj.get("quote"), Status.class);
quote=gson.fromJson(obj.get("quote"), Status.class);
obj.remove("quote");
Status reblog = null;
Status reblog=null;
if (obj.has("reblog"))
reblog = gson.fromJson(obj.get("reblog"), Status.class);
reblog=gson.fromJson(obj.get("reblog"), Status.class);
obj.remove("reblog");
Status status = gsonWithoutDeserializer.fromJson(json, Status.class);
status.quote = quote;
status.reblog = reblog;
Status status=gsonWithoutDeserializer.fromJson(json, Status.class);
status.quote=quote;
status.reblog=reblog;
return status;
}

File diff suppressed because one or more lines are too long

View File

@@ -4,16 +4,16 @@ import android.content.Context;
import android.view.ViewGroup;
import android.widget.Space;
import androidx.recyclerview.widget.RecyclerView;
import org.joinmastodon.android.fragments.BaseStatusListFragment;
import me.grishka.appkit.utils.V;
public class DummyStatusDisplayItem extends StatusDisplayItem {
private final boolean addMediaGridMargin;
public DummyStatusDisplayItem(String parentID, BaseStatusListFragment<?> parentFragment, boolean addMediaGridMargin) {
public DummyStatusDisplayItem(String parentID, BaseStatusListFragment<?> parentFragment) {
super(parentID, parentFragment);
this.addMediaGridMargin = addMediaGridMargin;
}
@Override
@@ -22,19 +22,21 @@ public class DummyStatusDisplayItem extends StatusDisplayItem {
}
public static class Holder extends StatusDisplayItem.Holder<DummyStatusDisplayItem> {
private final RecyclerView.LayoutParams params;
public Holder(Context context) {
super(new Space(context));
}
params=new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0);
@Override
public void onBind(DummyStatusDisplayItem item) {
// BetterItemAnimator appears not to handle InsetStatusItemDecoration's getItemOffsets
// correctly, causing removed inset views to jump while animating. i don't quite
// understand it, but this workaround appears to work.
// see InsetStatusItemDecoration#getItemOffsets
ViewGroup.MarginLayoutParams params = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0);
params.setMargins(0, item.addMediaGridMargin ? V.dp(0) : 0, 0, V.dp(16));
params.setMargins(0, 0, 0, V.dp(16));
itemView.setLayoutParams(params);
}
@Override
public void onBind(DummyStatusDisplayItem item) {}
}
}

View File

@@ -0,0 +1,385 @@
package org.joinmastodon.android.ui.displayitems;
import android.app.Activity;
import android.content.Context;
import android.graphics.Paint;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Pair;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import org.joinmastodon.android.E;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.api.requests.announcements.AddAnnouncementReaction;
import org.joinmastodon.android.api.requests.announcements.DeleteAnnouncementReaction;
import org.joinmastodon.android.api.requests.statuses.AddStatusReaction;
import org.joinmastodon.android.api.requests.statuses.DeleteStatusReaction;
import org.joinmastodon.android.api.requests.statuses.PleromaAddStatusReaction;
import org.joinmastodon.android.api.requests.statuses.PleromaDeleteStatusReaction;
import org.joinmastodon.android.api.session.AccountSession;
import org.joinmastodon.android.api.session.AccountSessionManager;
import org.joinmastodon.android.events.StatusCountersUpdatedEvent;
import org.joinmastodon.android.fragments.BaseStatusListFragment;
import org.joinmastodon.android.fragments.account_list.StatusEmojiReactionsListFragment;
import org.joinmastodon.android.model.Account;
import org.joinmastodon.android.model.Announcement;
import org.joinmastodon.android.model.Emoji;
import org.joinmastodon.android.model.EmojiReaction;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.ui.CustomEmojiPopupKeyboard;
import org.joinmastodon.android.ui.utils.TextDrawable;
import org.joinmastodon.android.ui.utils.UiUtils;
import org.joinmastodon.android.ui.views.ProgressBarButton;
import me.grishka.appkit.Nav;
import me.grishka.appkit.api.Callback;
import me.grishka.appkit.api.ErrorResponse;
import me.grishka.appkit.imageloader.ImageLoaderRecyclerAdapter;
import me.grishka.appkit.imageloader.ImageLoaderViewHolder;
import me.grishka.appkit.imageloader.ListImageLoaderWrapper;
import me.grishka.appkit.imageloader.RecyclerViewDelegate;
import me.grishka.appkit.imageloader.requests.ImageLoaderRequest;
import me.grishka.appkit.imageloader.requests.UrlImageLoaderRequest;
import me.grishka.appkit.utils.BindableViewHolder;
import me.grishka.appkit.utils.V;
import me.grishka.appkit.views.UsableRecyclerView;
public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
public final Status status;
private final Drawable placeholder;
private final boolean hideAdd, forAnnouncement;
private final String accountID;
private boolean hidden;
public EmojiReactionsStatusDisplayItem(String parentID, BaseStatusListFragment<?> parentFragment, Status status, String accountID, boolean hideAdd, boolean forAnnouncement) {
super(parentID, parentFragment);
this.status=status;
this.hideAdd=hideAdd;
this.forAnnouncement=forAnnouncement;
this.accountID=accountID;
placeholder=parentFragment.getContext().getDrawable(R.drawable.image_placeholder).mutate();
placeholder.setBounds(0, 0, V.sp(24), V.sp(24));
updateHidden();
}
@Override
public int getImageCount(){
return (int) status.reactions.stream().filter(r->r.url != null).count();
}
@Override
public ImageLoaderRequest getImageRequest(int index){
return status.reactions.get(index).request;
}
@Override
public Type getType(){
return Type.EMOJI_REACTIONS;
}
public boolean isHidden(){
return hidden;
}
private void updateHidden(){
hidden=status.reactions.isEmpty() && hideAdd;
}
// borrowed from ProfileFragment
private void setActionProgressVisible(Holder.EmojiReactionViewHolder vh, boolean visible){
if(vh==null) return;
vh.progress.setVisibility(visible ? View.VISIBLE : View.GONE);
if(visible)
vh.progress.setIndeterminateTintList(vh.btn.getTextColors());
vh.btn.setClickable(!visible);
}
private MastodonAPIRequest<?> createRequest(String name, int count, boolean delete, Holder.EmojiReactionViewHolder vh, Runnable cb){
setActionProgressVisible(vh, true);
boolean ak=parentFragment.isInstanceAkkoma();
boolean keepSpinning=delete && count == 1;
if(forAnnouncement){
MastodonAPIRequest<Object> req=delete
? new DeleteAnnouncementReaction(status.id, name)
: new AddAnnouncementReaction(status.id, name);
return req.setCallback(new Callback<>(){
@Override
public void onSuccess(Object result){
if(!keepSpinning) setActionProgressVisible(vh, false);
cb.run();
}
@Override
public void onError(ErrorResponse error){
setActionProgressVisible(vh, false);
error.showToast(parentFragment.getContext());
}
});
}else{
MastodonAPIRequest<Status> req=delete
? (ak ? new PleromaDeleteStatusReaction(status.id, name) : new DeleteStatusReaction(status.id, name))
: (ak ? new PleromaAddStatusReaction(status.id, name) : new AddStatusReaction(status.id, name));
return req.setCallback(new Callback<>(){
@Override
public void onSuccess(Status result){
if(!keepSpinning) setActionProgressVisible(vh, false);
cb.run();
}
@Override
public void onError(ErrorResponse error){
setActionProgressVisible(vh, false);
error.showToast(parentFragment.getContext());
}
});
}
}
public static class Holder extends StatusDisplayItem.Holder<EmojiReactionsStatusDisplayItem> implements ImageLoaderViewHolder, CustomEmojiPopupKeyboard.Listener {
private final UsableRecyclerView list;
private final LinearLayout root, line;
private CustomEmojiPopupKeyboard emojiKeyboard;
private final View space;
private final ImageButton addButton;
private final EmojiReactionsAdapter adapter;
private final ListImageLoaderWrapper imgLoader;
public Holder(Activity activity, ViewGroup parent) {
super(activity, R.layout.display_item_emoji_reactions, parent);
root=(LinearLayout) itemView;
line=findViewById(R.id.line);
list=findViewById(R.id.list);
imgLoader=new ListImageLoaderWrapper(activity, list, new RecyclerViewDelegate(list), null);
list.setAdapter(adapter=new EmojiReactionsAdapter(this, imgLoader));
addButton=findViewById(R.id.add_btn);
addButton.setOnClickListener(this::onReactClick);
space=findViewById(R.id.space);
list.setLayoutManager(new LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false));
}
@Override
public void onBind(EmojiReactionsStatusDisplayItem item) {
if(emojiKeyboard != null) root.removeView(emojiKeyboard.getView());
AccountSession session=item.parentFragment.getSession();
item.status.reactions.forEach(r->
r.request=r.url != null ? new UrlImageLoaderRequest(r.url, V.sp(24), V.sp(24)) : null);
emojiKeyboard=new CustomEmojiPopupKeyboard(
(Activity) item.parentFragment.getContext(),
AccountSessionManager.getInstance().getCustomEmojis(session.domain),
session.domain, true);
emojiKeyboard.setListener(this);
space.setVisibility(View.GONE);
root.addView(emojiKeyboard.getView());
item.updateHidden();
root.setVisibility(item.hidden ? View.GONE : View.VISIBLE);
line.setVisibility(item.hidden ? View.GONE : View.VISIBLE);
line.setPadding(
list.getPaddingLeft(),
item.hidden ? 0 : V.dp(8),
list.getPaddingRight(),
item.forAnnouncement ? V.dp(8) : 0
);
imgLoader.updateImages();
adapter.notifyDataSetChanged();
}
private void hideEmojiKeyboard(){
space.setVisibility(View.GONE);
addButton.setSelected(false);
if(emojiKeyboard.isVisible()) emojiKeyboard.toggleKeyboardPopup(null);
}
@Override
public void onEmojiSelected(Emoji emoji) {
addEmojiReaction(emoji.shortcode, emoji);
hideEmojiKeyboard();
}
@Override
public void onEmojiSelected(String emoji){
addEmojiReaction(emoji, null);
hideEmojiKeyboard();
}
private void addEmojiReaction(String emoji, Emoji info) {
if(item.status.reactions.stream().filter(r->r.name.equals(emoji) && r.me).findAny().isPresent()) return;
Account me=AccountSessionManager.get(item.accountID).self;
EmojiReaction existing=null;
for(int i=0; i<item.status.reactions.size(); i++){
EmojiReaction r=item.status.reactions.get(i);
if(r.name.equals(emoji)){
existing=r;
r.add(me);
adapter.notifyItemChanged(i);
break;
}
}
if(existing==null){
item.status.reactions.add(0, info!=null ? EmojiReaction.of(info, me) : EmojiReaction.of(emoji, me));
adapter.notifyItemRangeInserted(0, 1);
}
E.post(new StatusCountersUpdatedEvent(item.status, adapter.parentHolder));
item.createRequest(emoji, existing==null ? 1 : existing.count, false, null, ()->{}).exec(item.accountID);
}
@Override
public void onBackspace() {}
private void onReactClick(View v){
emojiKeyboard.toggleKeyboardPopup(null);
v.setSelected(emojiKeyboard.isVisible());
space.setVisibility(emojiKeyboard.isVisible() ? View.VISIBLE : View.GONE);
DisplayMetrics displayMetrics = new DisplayMetrics();
int[] locationOnScreen = new int[2];
((Activity) v.getContext()).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
v.getLocationOnScreen(locationOnScreen);
double fromScreenTop = (double) locationOnScreen[1] / displayMetrics.heightPixels;
if (fromScreenTop > 0.75) {
item.parentFragment.scrollBy(0, (int) (displayMetrics.heightPixels * 0.3));
}
}
@Override
public void setImage(int index, Drawable image){
View child=list.getChildAt(index);
if(child==null) return;
((EmojiReactionViewHolder) list.getChildViewHolder(child)).setImage(index, image);
}
@Override
public void clearImage(int index){
if(item.status.reactions.get(index).url==null) return;
setImage(index, item.placeholder);
}
private class EmojiReactionsAdapter extends UsableRecyclerView.Adapter<EmojiReactionViewHolder> implements ImageLoaderRecyclerAdapter{
ListImageLoaderWrapper imgLoader;
Holder parentHolder;
public EmojiReactionsAdapter(Holder parentHolder, ListImageLoaderWrapper imgLoader){
super(imgLoader);
this.parentHolder=parentHolder;
this.imgLoader=imgLoader;
}
@NonNull
@Override
public EmojiReactionViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType){
return new EmojiReactionViewHolder(parent.getContext(), list);
}
@Override
public void onBindViewHolder(EmojiReactionViewHolder holder, int position){
holder.bind(Pair.create(item, item.status.reactions.get(position)));
super.onBindViewHolder(holder, position);
}
@Override
public int getItemCount(){
return item.status.reactions.size();
}
@Override
public int getImageCountForItem(int position){
return item.status.reactions.get(position).url == null ? 0 : 1;
}
@Override
public ImageLoaderRequest getImageRequest(int position, int image){
return item.status.reactions.get(position).request;
}
}
private static class EmojiReactionViewHolder extends BindableViewHolder<Pair<EmojiReactionsStatusDisplayItem, EmojiReaction>> implements ImageLoaderViewHolder{
private final ProgressBarButton btn;
private final ProgressBar progress;
public EmojiReactionViewHolder(Context context, RecyclerView list){
super(context, R.layout.item_emoji_reaction, list);
btn=findViewById(R.id.btn);
progress=findViewById(R.id.progress);
}
@Override
public void setImage(int index, Drawable drawable){
drawable.setBounds(0, 0, V.sp(24), V.sp(24));
btn.setCompoundDrawablesRelative(drawable, null, null, null);
if(drawable instanceof Animatable) ((Animatable) drawable).start();
}
@Override
public void clearImage(int index){
setImage(index, item.first.placeholder);
}
@Override
public void onBind(Pair<EmojiReactionsStatusDisplayItem, EmojiReaction> item){
item.first.setActionProgressVisible(this, false);
EmojiReactionsStatusDisplayItem parent=item.first;
EmojiReaction reaction=item.second;
btn.setText(UiUtils.abbreviateNumber(reaction.count));
btn.setContentDescription(reaction.name);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) btn.setTooltipText(reaction.name);
if(reaction.url==null){
Paint p=new Paint();
p.setTextSize(V.sp(18));
TextDrawable drawable=new TextDrawable(p, reaction.name);
btn.setCompoundDrawablesRelative(drawable, null, null, null);
}else{
btn.setCompoundDrawablesRelative(item.first.placeholder, null, null, null);
}
btn.setSelected(reaction.me);
btn.setOnClickListener(e->{
boolean deleting=reaction.me;
parent.createRequest(reaction.name, reaction.count, deleting, this, ()->{
EmojiReactionsAdapter adapter = (EmojiReactionsAdapter) getBindingAdapter();
for(int i=0; i<parent.status.reactions.size(); i++){
EmojiReaction r=parent.status.reactions.get(i);
if(!r.name.equals(reaction.name)) continue;
if(deleting && r.count==1) {
parent.status.reactions.remove(i);
adapter.notifyItemRemoved(i);
break;
}
r.me=!deleting;
if(deleting) r.count--;
else r.count++;
adapter.notifyItemChanged(i);
break;
}
E.post(new StatusCountersUpdatedEvent(parent.status, adapter.parentHolder));
adapter.parentHolder.imgLoader.updateImages();
}).exec(parent.parentFragment.getAccountID());
});
if (parent.parentFragment.isInstanceAkkoma()) {
// glitch-soc doesn't have this, afaik
btn.setOnLongClickListener(e->{
EmojiReaction emojiReaction=parent.status.reactions.get(getAbsoluteAdapterPosition());
Bundle args=new Bundle();
args.putString("account", parent.parentFragment.getAccountID());
args.putString("statusID", parent.status.id);
int atSymbolIndex = emojiReaction.name.indexOf("@");
args.putString("emoji", atSymbolIndex != -1 ? emojiReaction.name.substring(0, atSymbolIndex) : emojiReaction.name);
args.putString("url", emojiReaction.url);
args.putInt("count", emojiReaction.count);
Nav.go(parent.parentFragment.getActivity(), StatusEmojiReactionsListFragment.class, args);
return true;
});
}
}
}
}
}

View File

@@ -77,18 +77,21 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
}
};
private static final float ALPHA_PRESSED=0.55f;
static {
opacityOut = new AlphaAnimation(1, 0.55f);
opacityOut = new AlphaAnimation(1, ALPHA_PRESSED);
opacityOut.setDuration(300);
opacityOut.setInterpolator(CubicBezierInterpolator.DEFAULT);
opacityOut.setFillAfter(true);
opacityIn = new AlphaAnimation(0.55f, 1);
opacityIn = new AlphaAnimation(ALPHA_PRESSED, 1);
opacityIn.setDuration(400);
opacityIn.setInterpolator(CubicBezierInterpolator.DEFAULT);
}
public Holder(Activity activity, ViewGroup parent){
super(activity, R.layout.display_item_footer, parent);
replies=findViewById(R.id.reply);
boosts=findViewById(R.id.boost);
favorites=findViewById(R.id.favorite);

View File

@@ -171,7 +171,7 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
optionsMenu=new PopupMenu(activity, more);
optionsMenu.inflate(R.menu.post);
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.P)
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.P && !UiUtils.isEMUI())
optionsMenu.getMenu().setGroupDividerEnabled(true);
optionsMenu.setOnMenuItemClickListener(menuItem->{
Account account=item.user;

View File

@@ -92,7 +92,7 @@ public class SpoilerStatusDisplayItem extends StatusDisplayItem{
itemView.getPaddingLeft(),
itemView.getPaddingTop(),
itemView.getPaddingRight(),
item.inset || GlobalUserPreferences.spectatorMode ? itemView.getPaddingTop() : 0
item.inset ? itemView.getPaddingTop() : 0
);
}

View File

@@ -18,6 +18,7 @@ import org.joinmastodon.android.fragments.HashtagTimelineFragment;
import org.joinmastodon.android.fragments.HomeTabFragment;
import org.joinmastodon.android.fragments.ListTimelineFragment;
import org.joinmastodon.android.fragments.ProfileFragment;
import org.joinmastodon.android.fragments.ScheduledStatusListFragment;
import org.joinmastodon.android.fragments.ThreadFragment;
import org.joinmastodon.android.model.Account;
import org.joinmastodon.android.model.Attachment;
@@ -49,7 +50,7 @@ import me.grishka.appkit.views.UsableRecyclerView;
public abstract class StatusDisplayItem{
public final String parentID;
public final BaseStatusListFragment parentFragment;
public final BaseStatusListFragment<?> parentFragment;
public boolean inset;
public int index;
public boolean
@@ -64,6 +65,7 @@ public abstract class StatusDisplayItem{
public static final int FLAG_MEDIA_FORCE_HIDDEN=1 << 3;
public static final int FLAG_NO_HEADER=1 << 4;
public static final int FLAG_NO_TRANSLATE=1 << 5;
public static final int FLAG_NO_EMOJI_REACTIONS=1 << 6;
public void setAncestryInfo(
boolean hasDescendantNeighbor,
@@ -77,7 +79,7 @@ public abstract class StatusDisplayItem{
this.isDirectDescendant = isDirectDescendant;
}
public StatusDisplayItem(String parentID, BaseStatusListFragment parentFragment){
public StatusDisplayItem(String parentID, BaseStatusListFragment<?> parentFragment){
this.parentID=parentID;
this.parentFragment=parentFragment;
}
@@ -102,6 +104,7 @@ public abstract class StatusDisplayItem{
case POLL_OPTION -> new PollOptionStatusDisplayItem.Holder(activity, parent);
case POLL_FOOTER -> new PollFooterStatusDisplayItem.Holder(activity, parent);
case CARD -> new LinkCardStatusDisplayItem.Holder(activity, parent);
case EMOJI_REACTIONS -> new EmojiReactionsStatusDisplayItem.Holder(activity, parent);
case FOOTER -> new FooterStatusDisplayItem.Holder(activity, parent);
case ACCOUNT_CARD -> new AccountCardStatusDisplayItem.Holder(activity, parent);
case ACCOUNT -> new AccountStatusDisplayItem.Holder(new AccountViewHolder(parentFragment, parent, null));
@@ -118,7 +121,7 @@ public abstract class StatusDisplayItem{
};
}
public static ArrayList<StatusDisplayItem> buildItems(BaseStatusListFragment<?> fragment, Status status, String accountID, DisplayItemsParent parentObject, Map<String, Account> knownAccounts, boolean inset, boolean addFooter, boolean disableTranslate, FilterContext filterContext) {
public static ArrayList<StatusDisplayItem> buildItems(BaseStatusListFragment<?> fragment, Status status, String accountID, DisplayItemsParent parentObject, Map<String, Account> knownAccounts, boolean inset, boolean showReactions, boolean addFooter, boolean disableTranslate, FilterContext filterContext) {
int flags=0;
if(inset)
flags|=FLAG_INSET;
@@ -126,6 +129,8 @@ public abstract class StatusDisplayItem{
flags|=FLAG_NO_FOOTER;
if (disableTranslate)
flags|=FLAG_NO_TRANSLATE;
if (!showReactions)
flags|=FLAG_NO_EMOJI_REACTIONS;
return buildItems(fragment, status, accountID, parentObject, knownAccounts, filterContext, flags);
}
@@ -204,7 +209,7 @@ public abstract class StatusDisplayItem{
items.add(replyLine);
}
}
if((flags & FLAG_CHECKABLE)!=0)
items.add(header=new CheckableHeaderStatusDisplayItem(parentID, statusForContent.account, statusForContent.createdAt, fragment, accountID, statusForContent, null));
else
@@ -250,7 +255,7 @@ public abstract class StatusDisplayItem{
}else if(!hasSpoiler && header!=null){
header.needBottomPadding=true;
}else if(hasSpoiler){
contentItems.add(new DummyStatusDisplayItem(parentID, fragment, true));
contentItems.add(new DummyStatusDisplayItem(parentID, fragment));
}
List<Attachment> imageAttachments=statusForContent.mediaAttachments.stream().filter(att->att.type.isImage()).collect(Collectors.toList());
@@ -286,8 +291,14 @@ public abstract class StatusDisplayItem{
if(contentItems!=items && statusForContent.spoilerRevealed){
items.addAll(contentItems);
}
if((flags & FLAG_NO_EMOJI_REACTIONS)==0
&& AccountSessionManager.get(accountID).getLocalPreferences().emojiReactionsEnabled){
boolean isMainStatus=fragment instanceof ThreadFragment t && t.getMainStatus().id.equals(statusForContent.id);
items.add(new EmojiReactionsStatusDisplayItem(parentID, fragment, statusForContent, accountID, !isMainStatus, false));
}
FooterStatusDisplayItem footer=null;
if((flags & FLAG_NO_FOOTER)==0){
FooterStatusDisplayItem footer=new FooterStatusDisplayItem(parentID, fragment, statusForContent, accountID);
footer=new FooterStatusDisplayItem(parentID, fragment, statusForContent, accountID);
footer.hideCounts=hideCounts;
items.add(footer);
if(status.hasGapAfter && !(fragment instanceof ThreadFragment))
@@ -296,10 +307,12 @@ public abstract class StatusDisplayItem{
int i=1;
boolean inset=(flags & FLAG_INSET)!=0;
// add inset dummy so last content item doesn't clip out of inset bounds
if (inset) {
items.add(new DummyStatusDisplayItem(parentID, fragment,
!contentItems.isEmpty() && contentItems
.get(contentItems.size() - 1) instanceof MediaGridStatusDisplayItem));
if(inset || footer==null){
items.add(new DummyStatusDisplayItem(parentID, fragment));
// in case we ever need the dummy to display a margin for the media grid again:
// (i forgot why we apparently don't need this anymore)
// !contentItems.isEmpty() && contentItems
// .get(contentItems.size() - 1) instanceof MediaGridStatusDisplayItem));
}
for(StatusDisplayItem item:items){
item.inset=inset;
@@ -340,6 +353,7 @@ public abstract class StatusDisplayItem{
POLL_OPTION,
POLL_FOOTER,
CARD,
EMOJI_REACTIONS,
FOOTER,
ACCOUNT_CARD,
ACCOUNT,

View File

@@ -21,6 +21,7 @@ import org.joinmastodon.android.api.requests.statuses.TranslateStatus;
import org.joinmastodon.android.api.session.AccountSession;
import org.joinmastodon.android.api.session.AccountSessionManager;
import org.joinmastodon.android.fragments.BaseStatusListFragment;
import org.joinmastodon.android.fragments.ThreadFragment;
import org.joinmastodon.android.model.Instance;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.model.StatusPrivacy;
@@ -31,6 +32,8 @@ import org.joinmastodon.android.ui.utils.UiUtils;
import org.joinmastodon.android.ui.views.LinkedTextView;
import org.joinmastodon.android.utils.StatusTextEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;
@@ -194,12 +197,23 @@ public class TextStatusDisplayItem extends StatusDisplayItem{
readMore.setText(item.status.textExpanded ? R.string.sk_collapse : R.string.sk_expand);
// remove additional padding when (transparently padded) translate button is visible
int nextPos = getAbsoluteAdapterPosition() + 1;
boolean nextIsFooter = item.parentFragment.getDisplayItems().size() > nextPos &&
item.parentFragment.getDisplayItems().get(nextPos) instanceof FooterStatusDisplayItem;
int bottomPadding = (translateVisible && nextIsFooter) ? 0
: nextIsFooter ? V.dp(6)
: V.dp(12);
int nextPos=getAbsoluteAdapterPosition() + 1;
int bottomPadding=V.dp(12);
List<StatusDisplayItem> displayItems=item.parentFragment.getDisplayItems();
if(displayItems.size() > nextPos){
StatusDisplayItem next=displayItems.get(nextPos);
if(next instanceof EmojiReactionsStatusDisplayItem e && e.isHidden()){
next=displayItems.size() > ++nextPos ? displayItems.get(nextPos) : null;
}
if(next instanceof FooterStatusDisplayItem){
bottomPadding=V.dp(6);
// why does java code always end up looking like this
} else if((!item.inset && next instanceof DummyStatusDisplayItem) ||
next instanceof EmojiReactionsStatusDisplayItem e && !e.isHidden()){
bottomPadding=0;
}
}
itemView.setPadding(itemView.getPaddingLeft(), itemView.getPaddingTop(), itemView.getPaddingRight(), bottomPadding);
if (!GlobalUserPreferences.collapseLongPosts) {
@@ -235,7 +249,7 @@ public class TextStatusDisplayItem extends StatusDisplayItem{
// compensate for spoiler's bottom margin
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) itemView.getLayoutParams();
params.setMargins(params.leftMargin, (item.inset || GlobalUserPreferences.spectatorMode) && hasSpoiler ? V.dp(-16) : 0,
params.setMargins(params.leftMargin, item.inset && hasSpoiler ? V.dp(-16) : 0,
params.rightMargin, params.bottomMargin);
}

View File

@@ -99,11 +99,15 @@ public class BlurhashCrossfadeDrawable extends Drawable{
@Override
public int getIntrinsicWidth(){
if(width==0)
return imageDrawable==null ? 1920 : imageDrawable.getIntrinsicWidth();
return width;
}
@Override
public int getIntrinsicHeight(){
if(height==0)
return imageDrawable==null ? 1080 : imageDrawable.getIntrinsicHeight();
return height;
}

View File

@@ -45,6 +45,7 @@ import android.widget.TextView;
import android.widget.Toast;
import android.widget.Toolbar;
import org.joinmastodon.android.GlobalUserPreferences;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.MastodonAPIController;
import org.joinmastodon.android.model.Attachment;
@@ -418,7 +419,8 @@ public class PhotoViewer implements ZoomPanView.Listener{
WindowManager.LayoutParams wlp=(WindowManager.LayoutParams) windowView.getLayoutParams();
wlp.flags|=WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
wm.updateViewLayout(windowView, wlp);
activity.getSystemService(AudioManager.class).requestAudioFocus(audioFocusListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
int audiofocus = GlobalUserPreferences.overlayMedia ? AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK : AudioManager.AUDIOFOCUS_GAIN;
activity.getSystemService(AudioManager.class).requestAudioFocus(audioFocusListener, AudioManager.STREAM_MUSIC, audiofocus);
}
screenOnRefCount++;
}

View File

@@ -0,0 +1,242 @@
package org.joinmastodon.android.ui.utils;
/*
* Copyright 2016 Ali Muzaffar
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.TextView;
import java.lang.ref.WeakReference;
public class TextDrawable extends Drawable implements TextWatcher {
private WeakReference<TextView> ref;
private String mText;
private Paint mPaint;
private Rect mHeightBounds;
private boolean mBindToViewPaint = false;
private float mPrevTextSize = 0;
private boolean mInitFitText = false;
private boolean mFitTextEnabled = false;
/**
* Create a TextDrawable using the given paint object and string
*
* @param paint
* @param s
*/
public TextDrawable(Paint paint, String s) {
mText = s;
mPaint = new Paint(paint);
mHeightBounds = new Rect();
init();
}
/**
* Create a TextDrawable. This uses the given TextView to initialize paint and has initial text
* that will be drawn. Initial text can also be useful for reserving space that may otherwise
* not be available when setting compound drawables.
*
* @param tv The TextView / EditText using to initialize this drawable
* @param initialText Optional initial text to display
* @param bindToViewsText Should this drawable mirror the text in the TextView
* @param bindToViewsPaint Should this drawable mirror changes to Paint in the TextView, like textColor, typeface, alpha etc.
* Note, this will override any changes made using setColorFilter or setAlpha.
*/
public TextDrawable(TextView tv, String initialText, boolean bindToViewsText, boolean bindToViewsPaint) {
this(tv.getPaint(), initialText);
ref = new WeakReference<>(tv);
if (bindToViewsText || bindToViewsPaint) {
if (bindToViewsText) {
tv.addTextChangedListener(this);
}
mBindToViewPaint = bindToViewsPaint;
}
}
/**
* Create a TextDrawable. This uses the given TextView to initialize paint and the text that
* will be drawn.
*
* @param tv The TextView / EditText using to initialize this drawable
* @param bindToViewsText Should this drawable mirror the text in the TextView
* @param bindToViewsPaint Should this drawable mirror changes to Paint in the TextView, like textColor, typeface, alpha etc.
* Note, this will override any changes made using setColorFilter or setAlpha.
*/
public TextDrawable(TextView tv, boolean bindToViewsText, boolean bindToViewsPaint) {
this(tv, tv.getText().toString(), bindToViewsText, bindToViewsPaint);
}
/**
* Use the provided TextView/EditText to initialize the drawable.
* The Drawable will copy the Text and the Paint properties, however it will from that
* point on be independant of the TextView.
*
* @param tv a TextView or EditText or any of their children.
*/
public TextDrawable(TextView tv) {
this(tv, false, false);
}
/**
* Use the provided TextView/EditText to initialize the drawable.
* The Drawable will copy the Paint properties, and use the provided text to initialise itself.
*
* @param tv a TextView or EditText or any of their children.
* @param s The String to draw
*/
public TextDrawable(TextView tv, String s) {
this(tv, s, false, false);
}
@Override
public void draw(Canvas canvas) {
if (mBindToViewPaint && ref.get() != null) {
Paint p = ref.get().getPaint();
canvas.drawText(mText, 0, getBounds().height(), p);
} else {
if (mInitFitText) {
fitTextAndInit();
}
canvas.drawText(mText, 0, getBounds().height(), mPaint);
}
}
@Override
public void setAlpha(int alpha) {
mPaint.setAlpha(alpha);
}
@Override
public void setColorFilter(ColorFilter colorFilter) {
mPaint.setColorFilter(colorFilter);
}
@Override
public int getOpacity() {
int alpha = mPaint.getAlpha();
if (alpha == 0) {
return PixelFormat.TRANSPARENT;
} else if (alpha == 255) {
return PixelFormat.OPAQUE;
} else {
return PixelFormat.TRANSLUCENT;
}
}
private void init() {
Rect bounds = getBounds();
//We want to use some character to determine the max height of the text.
//Otherwise if we draw something like "..." they will appear centered
//Here I'm just going to use the entire alphabet to determine max height.
mPaint.getTextBounds("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 0, 1, mHeightBounds);
//This doesn't account for leading or training white spaces.
//mPaint.getTextBounds(mText, 0, mText.length(), bounds);
float width = mPaint.measureText(mText);
bounds.top = mHeightBounds.top;
bounds.bottom = mHeightBounds.bottom;
bounds.right = (int) width;
bounds.left = 0;
setBounds(bounds);
}
public void setPaint(Paint paint) {
mPaint = new Paint(paint);
//Since this can change the font used, we need to recalculate bounds.
if (mFitTextEnabled && !mInitFitText) {
fitTextAndInit();
} else {
init();
}
invalidateSelf();
}
public Paint getPaint() {
return mPaint;
}
public void setText(String text) {
mText = text;
//Since this can change the bounds of the text, we need to recalculate.
if (mFitTextEnabled && !mInitFitText) {
fitTextAndInit();
} else {
init();
}
invalidateSelf();
}
public String getText() {
return mText;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
setText(s.toString());
}
/**
* Make the TextDrawable match the width of the View it's associated with.
* <p/>
* Note: While this option will not work if bindToViewPaint is true.
*
* @param fitText
*/
public void setFillText(boolean fitText) {
mFitTextEnabled = fitText;
if (fitText) {
mPrevTextSize = mPaint.getTextSize();
if (ref.get() != null) {
if (ref.get().getWidth() > 0) {
fitTextAndInit();
} else {
mInitFitText = true;
}
}
} else {
if (mPrevTextSize > 0) {
mPaint.setTextSize(mPrevTextSize);
}
init();
}
}
private void fitTextAndInit() {
float fitWidth = ref.get().getWidth();
float textWidth = mPaint.measureText(mText);
float multi = fitWidth / textWidth;
mPaint.setTextSize(mPaint.getTextSize() * multi);
mInitFitText = false;
init();
}
}

View File

@@ -45,7 +45,9 @@ import android.transition.TransitionManager;
import android.transition.TransitionSet;
import android.util.Log;
import android.util.Pair;
import android.view.Gravity;
import android.view.HapticFeedbackConstants;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
@@ -73,6 +75,7 @@ import org.joinmastodon.android.api.requests.accounts.SetAccountMuted;
import org.joinmastodon.android.api.requests.accounts.SetDomainBlocked;
import org.joinmastodon.android.api.requests.accounts.AuthorizeFollowRequest;
import org.joinmastodon.android.api.requests.accounts.RejectFollowRequest;
import org.joinmastodon.android.api.requests.instance.GetInstance;
import org.joinmastodon.android.api.requests.lists.DeleteList;
import org.joinmastodon.android.api.requests.notifications.DismissNotification;
import org.joinmastodon.android.api.requests.search.GetSearchResults;
@@ -93,6 +96,8 @@ import org.joinmastodon.android.fragments.ComposeFragment;
import org.joinmastodon.android.fragments.HashtagTimelineFragment;
import org.joinmastodon.android.fragments.ProfileFragment;
import org.joinmastodon.android.fragments.ThreadFragment;
import org.joinmastodon.android.fragments.settings.SettingsServerAboutFragment;
import org.joinmastodon.android.fragments.settings.SettingsServerFragment;
import org.joinmastodon.android.model.Account;
import org.joinmastodon.android.model.AccountField;
import org.joinmastodon.android.model.Emoji;
@@ -103,7 +108,6 @@ import org.joinmastodon.android.model.ScheduledStatus;
import org.joinmastodon.android.model.SearchResults;
import org.joinmastodon.android.model.Searchable;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.model.StatusPrivacy;
import org.joinmastodon.android.ui.M3AlertDialogBuilder;
import org.joinmastodon.android.ui.text.CustomEmojiSpan;
import org.joinmastodon.android.ui.text.HtmlParser;
@@ -115,6 +119,7 @@ import java.lang.reflect.Method;
import java.net.IDN;
import java.net.URI;
import java.net.URISyntaxException;
import java.time.Duration;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
@@ -132,6 +137,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.BiPredicate;
import java.util.function.Consumer;
import java.util.function.Function;
@@ -528,31 +534,70 @@ public class UiUtils {
.exec(accountID);
});
}
public static void confirmToggleMuteUser(Context context, String accountID, Account account, boolean currentlyMuted, Consumer<Relationship> resultCallback){
View durationView=LayoutInflater.from(context).inflate(R.layout.mute_user_dialog, null);
LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.setMargins(0, V.dp(-12), 0, 0);
durationView.setLayoutParams(params);
Button button=durationView.findViewById(R.id.button);
((TextView) durationView.findViewById(R.id.message)).setText(context.getString(R.string.confirm_mute, account.displayName));
public static void confirmToggleMuteUser(Activity activity, String accountID, Account account, boolean currentlyMuted, Consumer<Relationship> resultCallback) {
showConfirmationAlert(activity, activity.getString(currentlyMuted ? R.string.confirm_unmute_title : R.string.confirm_mute_title),
activity.getString(currentlyMuted ? R.string.confirm_unmute : R.string.confirm_mute, account.displayName),
activity.getString(currentlyMuted ? R.string.do_unmute : R.string.do_mute),
currentlyMuted ? R.drawable.ic_fluent_speaker_0_28_regular : R.drawable.ic_fluent_speaker_off_28_regular,
() -> {
new SetAccountMuted(account.id, !currentlyMuted)
.setCallback(new Callback<>() {
AtomicReference<Duration> muteDuration=new AtomicReference<>(Duration.ZERO);
PopupMenu popupMenu=new PopupMenu(context, button, Gravity.CENTER_HORIZONTAL);
popupMenu.inflate(R.menu.mute_duration);
popupMenu.setOnMenuItemClickListener(item->{
int id=item.getItemId();
if(id==R.id.duration_indefinite)
muteDuration.set(Duration.ZERO);
else if(id==R.id.duration_minutes_5){
muteDuration.set(Duration.ofMinutes(5));
}else if(id==R.id.duration_minutes_30){
muteDuration.set(Duration.ofMinutes(30));
}else if(id==R.id.duration_hours_1){
muteDuration.set(Duration.ofHours(1));
}else if(id==R.id.duration_hours_6){
muteDuration.set(Duration.ofHours(6));
}else if(id==R.id.duration_days_1){
muteDuration.set(Duration.ofDays(1));
}else if(id==R.id.duration_days_3){
muteDuration.set(Duration.ofDays(3));
}else if(id==R.id.duration_days_7){
muteDuration.set(Duration.ofDays(7));
}
button.setText(item.getTitle());
return true;
});
button.setOnTouchListener(popupMenu.getDragToOpenListener());
button.setOnClickListener(v->popupMenu.show());
button.setText(popupMenu.getMenu().getItem(0).getTitle());
new M3AlertDialogBuilder(context)
.setTitle(context.getString(currentlyMuted ? R.string.confirm_unmute_title : R.string.confirm_mute_title))
.setMessage(currentlyMuted ? context.getString(R.string.confirm_unmute, account.displayName) : null)
.setView(currentlyMuted ? null : durationView)
.setPositiveButton(context.getString(currentlyMuted ? R.string.do_unmute : R.string.do_mute), (dlg, i)->{
new SetAccountMuted(account.id, !currentlyMuted, muteDuration.get().getSeconds())
.setCallback(new Callback<>(){
@Override
public void onSuccess(Relationship result) {
public void onSuccess(Relationship result){
resultCallback.accept(result);
if (!currentlyMuted) {
if(!currentlyMuted){
E.post(new RemoveAccountPostsEvent(accountID, account.id, false));
}
}
@Override
public void onError(ErrorResponse error) {
error.showToast(activity);
public void onError(ErrorResponse error){
error.showToast(context);
}
})
.wrapProgress(activity, R.string.loading, false)
.wrapProgress(context, R.string.loading, false)
.exec(accountID);
});
})
.setNegativeButton(R.string.cancel, null)
.setIcon(currentlyMuted ? R.drawable.ic_fluent_speaker_0_28_regular : R.drawable.ic_fluent_speaker_off_28_regular)
.show();
}
public static void confirmDeletePost(Activity activity, String accountID, Status status, Consumer<Status> resultCallback) {
@@ -1239,6 +1284,23 @@ public class UiUtils {
}
})
.exec(accountID));
} else if (uri.getPath() != null && uri.getPath().matches("^/about$")) {
return Optional.of(new GetInstance()
.setCallback(new Callback<>(){
@Override
public void onSuccess(Instance result){
Bundle args = new Bundle();
args.putParcelable("instance", Parcels.wrap(result));
args.putString("account", accountID);
go.accept(SettingsServerFragment.class, args);
}
@Override
public void onError(ErrorResponse error){
go.accept(null, bundleError(error));
}
})
.execNoAuth(uri.getHost()));
} else if (looksLikeFediverseUrl(url)) {
return Optional.of(new GetSearchResults(url, null, true)
.setCallback(new Callback<>() {

View File

@@ -190,7 +190,10 @@ public class AccountViewHolder extends BindableViewHolder<AccountViewModel> impl
}
Bundle args=new Bundle();
args.putString("account", accountID);
args.putParcelable("profileAccount", Parcels.wrap(item.account));
if (item.account.isRemote)
args.putParcelable("remoteAccount", Parcels.wrap(item.account));
else
args.putParcelable("profileAccount", Parcels.wrap(item.account));
Nav.go(fragment.getActivity(), ProfileFragment.class, args);
}

View File

@@ -0,0 +1,44 @@
package org.joinmastodon.android.ui.views;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import me.grishka.appkit.views.UsableRecyclerView;
public class EmojiReactionsRecyclerView extends UsableRecyclerView{
public EmojiReactionsRecyclerView(Context context){
super(context);
}
public EmojiReactionsRecyclerView(Context context, AttributeSet attrs){
super(context, attrs);
}
public EmojiReactionsRecyclerView(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
}
@Override
public boolean onTouchEvent(MotionEvent e){
super.onTouchEvent(e);
// to pass through touch events (i.e. clicking the status) to the parent view
return false;
}
// https://stackoverflow.com/questions/55372837/is-there-a-way-to-make-recyclerview-requiresfadingedge-unaffected-by-paddingtop
@Override
protected boolean isPaddingOffsetRequired() {
return true;
}
@Override
protected int getLeftPaddingOffset(){
return -getPaddingLeft();
}
@Override
protected int getRightPaddingOffset() {
return getPaddingRight();
}
}

View File

@@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M4,15V13H20V15ZM4,11V9H20V11Z"/>
</vector>

View File

@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M12,1.996C16.05,1.996 19.357,5.191 19.496,9.245L19.5,9.496V13.593L20.88,16.749C20.949,16.907 20.985,17.077 20.985,17.25C20.985,17.94 20.425,18.5 19.735,18.5L15,18.501C15,20.158 13.657,21.501 12,21.501C10.402,21.501 9.096,20.252 9.005,18.678L9,18.499L4.275,18.5C4.104,18.5 3.934,18.465 3.777,18.396C3.144,18.121 2.853,17.385 3.128,16.752L4.5,13.594V9.496C4.501,5.341 7.852,1.996 12,1.996ZM13.5,18.499L10.5,18.501C10.5,19.33 11.172,20.001 12,20.001C12.78,20.001 13.421,19.406 13.493,18.646L13.5,18.499ZM12,3.496C8.68,3.496 6.001,6.17 6,9.496V13.906L4.656,17H19.353L18,13.907L18,9.509L17.997,9.284C17.885,6.05 15.242,3.496 12,3.496Z"
android:fillColor="#212121"/>
<path
android:pathData="M8.083,9.969A0.508,0.508 0,0 0,8.807 10.682L11.494,7.955L11.494,14.897a0.508,0.508 0,1 0,1.016 0L12.509,7.958L15.193,10.682A0.508,0.508 45,0 0,15.917 9.969L12.452,6.453a0.635,0.635 0,0 0,-0.904 0z"
android:fillColor="#212121"/>
</vector>

View File

@@ -0,0 +1,3 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24">
<path android:pathData="M12 2c-0.667 0-1.32 0.065-1.95 0.19-0.407 0.08-0.671 0.475-0.591 0.882 0.08 0.406 0.475 0.67 0.881 0.59C10.877 3.556 11.431 3.5 12 3.5s1.123 0.056 1.66 0.162c0.406 0.08 0.8-0.184 0.881-0.59 0.08-0.407-0.184-0.801-0.59-0.882C13.319 2.065 12.667 2 12 2zM7.278 4.931c0.344-0.23 0.436-0.696 0.206-1.04-0.23-0.344-0.697-0.437-1.04-0.206-1.09 0.73-2.03 1.668-2.76 2.758-0.23 0.345-0.137 0.81 0.207 1.04 0.344 0.231 0.81 0.139 1.04-0.205 0.621-0.927 1.42-1.726 2.347-2.347zm10.279-1.246c-0.345-0.23-0.81-0.138-1.04 0.206-0.231 0.344-0.139 0.81 0.205 1.04 0.927 0.621 1.726 1.42 2.347 2.347 0.23 0.344 0.696 0.436 1.04 0.206 0.344-0.23 0.437-0.697 0.206-1.04-0.73-1.09-1.668-2.03-2.758-2.76zm4.253 6.364c-0.08-0.406-0.475-0.67-0.882-0.59-0.406 0.08-0.67 0.475-0.59 0.881 0.106 0.537 0.162 1.091 0.162 1.66s-0.056 1.123-0.162 1.66c-0.08 0.406 0.184 0.8 0.59 0.881 0.407 0.08 0.801-0.184 0.882-0.59C21.935 13.319 22 12.667 22 12s-0.065-1.32-0.19-1.95zM3.662 10.34c0.08-0.406-0.184-0.8-0.59-0.881-0.407-0.08-0.801 0.184-0.882 0.59C2.065 10.681 2 11.333 2 12s0.065 1.32 0.19 1.95c0.08 0.407 0.475 0.671 0.882 0.591 0.406-0.08 0.67-0.475 0.59-0.881C3.556 13.123 3.5 12.569 3.5 12s0.056-1.123 0.162-1.66zm1.27 6.382C4.7 16.378 4.234 16.286 3.89 16.516s-0.437 0.697-0.206 1.04c0.73 1.09 1.668 2.03 2.758 2.76 0.345 0.23 0.81 0.137 1.04-0.207 0.231-0.344 0.139-0.81-0.205-1.04-0.927-0.621-1.726-1.42-2.347-2.347zm15.383 0.835c0.23-0.345 0.138-0.81-0.206-1.04-0.344-0.231-0.81-0.139-1.04 0.205-0.621 0.927-1.42 1.726-2.347 2.347-0.344 0.23-0.436 0.696-0.206 1.04 0.23 0.344 0.697 0.437 1.04 0.206 1.09-0.73 2.03-1.668 2.76-2.758zm-9.975 2.781c-0.406-0.08-0.8 0.184-0.881 0.59-0.08 0.407 0.184 0.801 0.59 0.882C10.681 21.935 11.333 22 12 22s1.32-0.065 1.95-0.19c0.407-0.08 0.671-0.475 0.591-0.882-0.08-0.406-0.475-0.67-0.881-0.59C13.123 20.444 12.569 20.5 12 20.5s-1.123-0.056-1.66-0.162zM9 9.248c0-0.952 1.023-1.554 1.856-1.093l5.757 3.186C16.852 11.473 17 11.724 17 11.997c0 0.272-0.148 0.523-0.387 0.655l-5.757 3.187C10.023 16.299 9 15.697 9 14.745V9.247z" android:fillColor="@color/fluent_default_icon_tint"/>
</vector>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/line"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageButton
android:id="@+id/add_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:minHeight="48dp"
android:minWidth="48dp"
android:background="@drawable/bg_button_m3_tonal_circle"
android:tooltipText="@string/sk_button_react"
android:contentDescription="@string/sk_button_react"
android:src="@drawable/ic_fluent_add_24_filled" />
<org.joinmastodon.android.ui.views.EmojiReactionsRecyclerView
android:id="@+id/list"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="-4dp"
android:paddingStart="8dp"
android:clipToPadding="false"
android:requiresFadingEdge="horizontal"
android:fadingEdgeLength="24dp" />
</LinearLayout>
<Space
android:id="@+id/space"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="8dp" />
</LinearLayout>

View File

@@ -7,156 +7,171 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="horizontal"
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="11sp">
<!-- avatar width (46sp) / 2 - button width (24sp) / 2 -->
android:rowCount="2"
android:columnCount="1">
<FrameLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/reply_btn"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingVertical="12dp">
<ImageView
android:layout_width="24sp"
android:layout_height="24sp"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:duplicateParentState="true"
android:src="@drawable/ic_fluent_chat_multiple_24_selector_text"
android:tint="?android:textColorSecondary"
android:gravity="center_vertical" />
<TextView
android:id="@+id/reply"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:paddingStart="8dp"
android:minWidth="16dp"
android:gravity="center_vertical"
android:textAppearance="@style/m3_label_large"
android:maxLines="1"
android:ellipsize="end"
tools:text="123"
tools:ignore="RtlSymmetry" />
</LinearLayout>
</FrameLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="11sp">
<!-- avatar width (46sp) / 2 - button width (24sp) / 2 -->
<FrameLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/boost_btn"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:foregroundTint="@color/boost_icon"
android:paddingVertical="12dp">
<ImageView
android:layout_width="24sp"
android:layout_height="24sp"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:duplicateParentState="true"
android:src="@drawable/ic_boost"
android:tint="@color/boost_icon"
android:gravity="center_vertical" />
<TextView
android:id="@+id/boost"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:paddingStart="8dp"
android:minWidth="16dp"
android:duplicateParentState="true"
android:textColor="@color/boost_icon"
android:gravity="center_vertical"
android:textAppearance="@style/m3_label_large"
android:maxLines="1"
android:ellipsize="end"
tools:text="123"
tools:ignore="RtlSymmetry" />
</LinearLayout>
</FrameLayout>
<FrameLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/favorite_btn"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingVertical="12dp">
<ImageView
android:layout_width="24sp"
android:layout_height="24sp"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:duplicateParentState="true"
android:src="@drawable/ic_fluent_star_24_selector"
android:tint="@color/favorite_icon"
android:gravity="center_vertical" />
<TextView
android:id="@+id/favorite"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:paddingStart="8dp"
android:minWidth="16dp"
android:textColor="@color/favorite_icon"
android:gravity="center_vertical"
android:textAppearance="@style/m3_label_large"
android:maxLines="1"
android:ellipsize="end"
tools:text="123"
tools:ignore="RtlSymmetry" />
</LinearLayout>
</FrameLayout>
<FrameLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/bookmark_btn"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/reply_btn"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingVertical="12dp">
<ImageView
android:layout_width="24sp"
android:layout_height="24sp"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:duplicateParentState="true"
android:src="@drawable/ic_fluent_chat_multiple_24_selector_text"
android:tint="?android:textColorSecondary"
android:gravity="center_vertical" />
<TextView
android:id="@+id/reply"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:paddingStart="8dp"
android:minWidth="16dp"
android:gravity="center_vertical"
android:textAppearance="@style/m3_label_large"
android:maxLines="1"
android:ellipsize="end"
tools:text="123"
tools:ignore="RtlSymmetry" />
</LinearLayout>
</FrameLayout>
<FrameLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/boost_btn"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:foregroundTint="@color/boost_icon"
android:paddingVertical="12dp">
<ImageView
android:layout_width="24sp"
android:layout_height="24sp"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:duplicateParentState="true"
android:src="@drawable/ic_boost"
android:tint="@color/boost_icon"
android:gravity="center_vertical" />
<TextView
android:id="@+id/boost"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:paddingStart="8dp"
android:minWidth="16dp"
android:duplicateParentState="true"
android:textColor="@color/boost_icon"
android:gravity="center_vertical"
android:textAppearance="@style/m3_label_large"
android:maxLines="1"
android:ellipsize="end"
tools:text="123"
tools:ignore="RtlSymmetry" />
</LinearLayout>
</FrameLayout>
<FrameLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/favorite_btn"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingVertical="12dp">
<ImageView
android:layout_width="24sp"
android:layout_height="24sp"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:duplicateParentState="true"
android:src="@drawable/ic_fluent_star_24_selector"
android:tint="@color/favorite_icon"
android:gravity="center_vertical" />
<TextView
android:id="@+id/favorite"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:paddingStart="8dp"
android:minWidth="16dp"
android:textColor="@color/favorite_icon"
android:gravity="center_vertical"
android:textAppearance="@style/m3_label_large"
android:maxLines="1"
android:ellipsize="end"
tools:text="123"
tools:ignore="RtlSymmetry" />
</LinearLayout>
</FrameLayout>
<FrameLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/bookmark_btn"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingVertical="12dp">
<ImageView
android:id="@+id/bookmark"
android:layout_width="24sp"
android:layout_height="24sp"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="16dp"
android:src="@drawable/ic_fluent_bookmark_24_selector"
android:tint="@color/bookmark_icon"
android:gravity="center_vertical"
android:textAppearance="@style/m3_label_large" />
</FrameLayout>
</FrameLayout>
<FrameLayout
android:id="@+id/share_btn"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingVertical="12dp">
<ImageView
android:id="@+id/bookmark"
android:id="@+id/share"
android:layout_width="24sp"
android:layout_height="24sp"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="16dp"
android:src="@drawable/ic_fluent_bookmark_24_selector"
android:tint="@color/bookmark_icon"
android:gravity="center_vertical"
android:textAppearance="@style/m3_label_large" />
android:src="@drawable/ic_fluent_share_24_regular"
android:tint="?android:textColorSecondary"
android:gravity="center_vertical"/>
</FrameLayout>
</FrameLayout>
<FrameLayout
android:id="@+id/share_btn"
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingVertical="12dp">
<ImageView
android:id="@+id/share"
android:layout_width="24sp"
android:layout_height="24sp"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="16dp"
android:src="@drawable/ic_fluent_share_24_regular"
android:tint="?android:textColorSecondary"
android:gravity="center_vertical"/>
</FrameLayout>
android:layout_height="wrap_content"
android:id="@+id/footer_emoji_keyboard_container"
android:orientation="vertical">
</LinearLayout>
</GridLayout>
</LinearLayout>
</org.joinmastodon.android.ui.views.MaxWidthFrameLayout>

View File

@@ -56,8 +56,8 @@
<FrameLayout
android:id="@+id/avatar_border"
android:layout_width="104dp"
android:layout_height="104dp"
android:layout_width="108dp"
android:layout_height="108dp"
android:layout_below="@id/cover"
android:layout_alignParentStart="true"
android:layout_marginStart="12dp"
@@ -67,8 +67,8 @@
<ImageView
android:id="@+id/avatar"
android:layout_width="96dp"
android:layout_height="96dp"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:contentDescription="@string/profile_picture"
android:scaleType="centerCrop"

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical"
android:paddingEnd="8dp"
tools:ignore="RtlSymmetry">
<ProgressBar
android:id="@+id/progress"
style="?android:progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:elevation="10dp"
android:indeterminate="true"
android:outlineProvider="none"
android:visibility="gone"/>
<org.joinmastodon.android.ui.views.ProgressBarButton
android:id="@+id/btn"
style="@style/Widget.Mastodon.M3.Button.Outlined.Icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTint="@null"
android:drawableStart="@drawable/image_placeholder"
android:background="@drawable/bg_button_m3_tonal"/>
</FrameLayout>

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="24dp">
<TextView
android:id="@+id/message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:gravity="center_vertical"
android:textColor="?android:textColorPrimary"
android:text="@string/confirm_mute"
android:textSize="16sp"/>
<org.joinmastodon.android.ui.views.AutoOrientationLinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layoutDirection="locale">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:paddingVertical="8dp"
android:gravity="center_vertical"
android:textColor="?android:textColorPrimary"
android:text="@string/sk_mute_label"
android:textSize="16sp"/>
<Button
android:id="@+id/button"
style="@style/Widget.Mastodon.M3.Button.Outlined"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_button_m3_tonal"
android:ellipsize="none"
android:singleLine="true"
android:stateListAnimator="@null"
android:textColor="?android:textColorPrimary"
android:textSize="16sp" />
</org.joinmastodon.android.ui.views.AutoOrientationLinearLayout>
</LinearLayout>

View File

@@ -1,28 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="8dp"
android:paddingTop="8dp"
android:paddingEnd="16dp"
android:clipToPadding="false"
android:background="?colorM3Background">
android:background="?colorM3Background"
tools:ignore="RtlSymmetry">
<ImageView
android:id="@+id/dragger_thingy"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentStart="true"
android:layout_marginEnd="8dp"
android:scaleType="center"
android:tint="?colorM3OnSurface"
android:contentDescription="@string/reorder"
android:src="@drawable/ic_drag_handle_24px"/>
android:src="@drawable/ic_fluent_re_order_dots_vertical_24_regular"/>
<ImageButton
android:id="@+id/delete"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_marginStart="8dp"
android:scaleType="center"
@@ -31,32 +32,37 @@
android:contentDescription="@string/delete"
android:src="@drawable/ic_fluent_delete_24_regular"/>
<EditText
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_toEndOf="@id/dragger_thingy"
android:layout_toStartOf="@id/delete"
style="@style/Widget.Mastodon.M3.EditText"
android:inputType="textCapSentences"
android:hint="@string/field_content"
android:saveEnabled="false"
android:singleLine="true"/>
<EditText
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:layout_marginBottom="6dp"
android:layout_toEndOf="@id/dragger_thingy"
android:layout_toStartOf="@id/delete"
android:layout_below="@id/content"
style="@style/Widget.Mastodon.M3.EditText"
android:inputType="textCapSentences"
android:hint="@string/field_label"
android:saveEnabled="false"
android:singleLine="true"/>
<EditText
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/dragger_thingy"
android:layout_toStartOf="@id/delete"
android:layout_below="@id/title"
style="@style/Widget.Mastodon.M3.EditText"
android:inputType="textCapSentences"
android:hint="@string/field_content"
android:saveEnabled="false"
android:singleLine="true"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@id/content"
android:layout_marginTop="8dp"
android:background="?colorM3SurfaceVariant"/>
</RelativeLayout>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/duration_indefinite" android:title="@string/sk_duration_indefinite" />
<item android:id="@+id/duration_minutes_5" android:title="@string/sk_duration_minutes_5"/>
<item android:id="@+id/duration_minutes_30" android:title="@string/sk_duration_minutes_30"/>
<item android:id="@+id/duration_hours_1" android:title="@string/sk_duration_hours_1"/>
<item android:id="@+id/duration_hours_6" android:title="@string/sk_duration_hours_6"/>
<item android:id="@+id/duration_days_1" android:title="@string/sk_duration_days_1"/>
<item android:id="@+id/duration_days_3" android:title="@string/sk_duration_days_3"/>
<item android:id="@+id/duration_days_7" android:title="@string/sk_duration_days_7"/>
</menu>

View File

@@ -4,11 +4,18 @@
<string name="next">التالي</string>
<string name="loading_instance">جارٍ جلب معلومات الخادم…</string>
<string name="error">خطأ</string>
<string name="not_a_mastodon_instance">لا يبدو أنّ %s كخادم ماستدون.</string>
<string name="ok">حسنًا</string>
<string name="preparing_auth">جَارٍ الإعدَادُ لِلمُصادَقَة…</string>
<string name="finishing_auth">يُنهي المصادقة…</string>
<string name="user_boosted">%s إعادة نشر</string>
<string name="in_reply_to">ردًا على %s</string>
<string name="notifications">الإشعارات</string>
<string name="user_followed_you">%s بَدَأ بِمُتابَعَتِك</string>
<string name="user_sent_follow_request">%s أرسَلَ طَلَبًا لِمُتابَعَتِك</string>
<string name="user_favorited">%s أعجَبه منشورك</string>
<string name="notification_boosted">قام %s بإعادة نشر منشورك</string>
<string name="poll_ended">الاطلاع على نتائج استطلاع الرأي الذي صوّت فيه</string>
<string name="share_toot_title">شارك</string>
<string name="settings">الإعدادات</string>
<string name="publish">انشر</string>
@@ -37,7 +44,8 @@
<string name="profile_about">حَول</string>
<string name="button_follow">تابِع</string>
<string name="button_following">مُتابَع</string>
<string name="edit_profile">حرّر الملف الشخصي</string>
<string name="edit_profile">تعديل الملف الشخصي</string>
<string name="share_user">شارك الصفحة الشخصية</string>
<string name="mute_user">كَتمُ %s</string>
<string name="unmute_user">إلغاء الكَتم عن @%s</string>
<string name="block_user">حَظرُ %s</string>
@@ -117,8 +125,16 @@
<item quantity="many">تبقى %d يومًا</item>
<item quantity="other">تبقى %d يوم</item>
</plurals>
<string name="poll_closed">انتهى</string>
<string name="confirm_mute_title">اكتم الحساب</string>
<plurals name="x_votes">
<item quantity="zero">%,d صوت</item>
<item quantity="one">%,d صوت واحد</item>
<item quantity="two">صوتين</item>
<item quantity="few">%,d أصوات</item>
<item quantity="many">%,d صوتا</item>
<item quantity="other">%,d صوتا</item>
</plurals>
<string name="poll_closed">مغلق</string>
<string name="confirm_mute_title">كتم الحساب</string>
<string name="confirm_mute">أكّد كتم %s</string>
<string name="do_mute">اكتم</string>
<string name="confirm_unmute_title">ارفع الكتم عن الحساب</string>
@@ -135,17 +151,20 @@
<string name="button_blocked">محجوب</string>
<string name="action_vote">صَوّت</string>
<string name="delete">احذف</string>
<string name="confirm_delete_title">احذف المنشور</string>
<string name="confirm_delete">أمتأكد من حذف هذا المنشور؟</string>
<string name="deleting">يحذف…</string>
<string name="notification_channel_audio_player">تشغيل الصوت</string>
<string name="play">شغّل</string>
<string name="pause">ألبث</string>
<string name="log_out">الخروج</string>
<string name="add_account">أضف حساباً</string>
<string name="search_hint">ابحث</string>
<string name="hashtags">وُسُوم</string>
<string name="news">الأخبار</string>
<string name="for_you">لأجلك</string>
<string name="mentions">الذِكر</string>
<string name="all_notifications">كلها</string>
<string name="mentions">الإشارات</string>
<plurals name="x_people_talking">
<item quantity="zero">لا أحد يتحدث</item>
<item quantity="one">شخص واحد يتحدث</item>
@@ -155,11 +174,16 @@
<item quantity="other">%d شخص يتحدثون</item>
</plurals>
<string name="report_title">بلّغ عن %s</string>
<string name="report_choose_reason">ما المُشكِلَةُ فِي هَذَا المَنشُور؟</string>
<string name="report_choose_reason_account">ما المُشكِلَة مَعَ %s؟</string>
<string name="report_choose_reason_subtitle">اختر أفضل تطابق</string>
<string name="report_reason_personal">لا يعجبني</string>
<string name="report_reason_personal_subtitle">ألا ترغب برؤيته</string>
<string name="report_reason_spam">إنه غير مرغوب فيه</string>
<string name="report_reason_spam_subtitle">روابط خبيثة أو تفاعل كاذب أو ردود متكررة</string>
<string name="report_reason_violation">ينتهك قواعد الخادم</string>
<string name="report_reason_violation_subtitle">تعلم أنه ينتهك قواعد محددة</string>
<string name="report_reason_other">إنَّهُ شَيءٌ آخَر</string>
<string name="report_reason_other_subtitle">لا تندرج هذه المشكلة ضمن فئات أخرى</string>
<string name="report_choose_rule">ما هي القواعد المنتهكة؟</string>
<string name="report_choose_rule_subtitle">اختر كل ما ينطبق</string>
@@ -168,8 +192,14 @@
<string name="report_comment_title">هل لديك شيء آخر لتخبرنا به؟</string>
<string name="report_comment_hint">تعليقات إضافية</string>
<string name="sending_report">يرسل البلاغ…</string>
<string name="report_sent_title">شُكرًا لَكَ على الإبلاغ، سَوفَ نتحرى عن الأمر.</string>
<string name="report_sent_subtitle">في أثناء مراجعتنا للبلاغ، يمكنك اتخاذ إجراء ضد %s:</string>
<string name="unfollow_user">ألغ متابعة %s</string>
<string name="unfollow">ألغ المتابعة</string>
<string name="mute_user_explain">لن ترى مشاركاتهم. لكن لا يزال بإمكانهم متابعتك ورؤية مشاركاتك ولن يعرفوا أنه تم كتم صوتها.</string>
<string name="block_user_explain">لن ترى مشاركاتهم. ولن يتمكنوا من رؤية مشاركاتك أو متابعتك. سيكونون قادرين على معرفة أنهم محظورون.</string>
<string name="report_personal_title">لا تريد أن ترى هذا؟</string>
<string name="report_personal_subtitle">فيما يلي خياراتك للتحكم بما يُعرَض عليك في ماستدون:</string>
<string name="back">العودة</string>
<string name="search_communities">اسم الخادم أو عنوان URL</string>
<string name="instance_rules_title">قواعد الخادم</string>
@@ -196,23 +226,39 @@
<string name="category_tech">تقني</string>
<string name="confirm_email_title">تحقق من صندوق الوارد الخاص بك</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">اضغط على الرابط الذي أرسلناه إليك للتحقق من %s. سننتظر هنا.</string>
<string name="confirm_email_didnt_get">ألم تحصل على رابط؟</string>
<string name="resend">أعد الإرسال</string>
<string name="open_email_app">افتح تطبيق البريد الإلكتروني</string>
<string name="resent_email">أُرسلت رسالة التأكيد</string>
<string name="compose_hint">عَبِّر عَمَّ يَجُولُ فِي ذِهنِك</string>
<string name="content_warning">تحذير من المحتوى</string>
<string name="save">احفظ</string>
<string name="add_alt_text">أضف نصًا بديلًا</string>
<string name="visibility_public">علني</string>
<string name="visibility_followers_only">للمُتابِعينَ فقط</string>
<string name="visibility_private">للمشار إليهم فقط</string>
<string name="recent_searches">الحديثة</string>
<string name="skip">تخطى</string>
<string name="notification_type_follow">متابعُون جُدُد</string>
<string name="notification_type_favorite">المفضلة</string>
<string name="notification_type_mention">الذِكر</string>
<string name="notification_type_reblog">المشاركات</string>
<string name="notification_type_mention">الإشارات</string>
<string name="notification_type_poll">استطلاع رأي</string>
<string name="choose_account">اختر حسابًا</string>
<string name="err_not_logged_in">يرجى تسجيل الدخول إلى حساب ماستدون أولًا</string>
<plurals name="cant_add_more_than_x_attachments">
<item quantity="zero">لا يمكن إرفاق أكثر من ملف واحد</item>
<item quantity="one">لا يمكن إرفاق أكثر من ملف واحد</item>
<item quantity="two">لا يمكنك إرفاق أكثر من %d ملفين</item>
<item quantity="few">لا يمكن إرفاق أكثر من %d ملفات</item>
<item quantity="many">لا يمكن إرفاق أكثر من %d ملفات</item>
<item quantity="other">لا يمكن إرفاق أكثر من %d ملف</item>
</plurals>
<string name="media_attachment_unsupported_type">نوع الملف %s غير مدعوم</string>
<string name="media_attachment_too_big">الملف %1$s يتجاوز حدّ %2$s مب</string>
<string name="settings_theme">المظهر</string>
<string name="theme_auto">استخدام مظهر الجهاز</string>
<string name="theme_light">فاتح</string>
<string name="theme_dark">داكن</string>
<string name="settings_behavior">السلوك</string>
@@ -225,9 +271,13 @@
<string name="settings_clear_cache">امسح التخزين المؤقت للوسائط</string>
<string name="settings_app_version">تطبيق ماستدون لأندرويد نسخة %1$s (%2$d)</string>
<string name="media_cache_cleared">مُسح التخزين المؤقت للوسائط</string>
<string name="confirm_log_out">تسجيل الخروج من %s؟</string>
<string name="sensitive_content_explain">وصف المؤلف هذه الوسائط بأنها حساسة.</string>
<string name="avatar_description">انتقل إلى الصفحة الشخصية لـ %s</string>
<string name="more_options">مزيد من الخيارات</string>
<string name="new_post">منشور جديد</string>
<string name="button_reply">ردّ</string>
<string name="button_reblog">شارك</string>
<string name="button_favorite">فضّل</string>
<string name="button_share">شارك</string>
<string name="media_no_description">وسائط بدون وصف</string>
@@ -239,7 +289,11 @@
<string name="media_viewer">عارض الوسائط</string>
<string name="follow_user">تابع %s</string>
<string name="unfollowed_user">ألغ متابعة %s</string>
<string name="followed_user">أنت تتابع الآن %s</string>
<string name="following_user_requested">طَلَبَ %s مُتابَعتك</string>
<string name="open_in_browser">افتح في المتصفح</string>
<string name="hide_boosts_from_user">اخف مشاركات %s</string>
<string name="show_boosts_from_user">أظهر مشاركات %s</string>
<string name="signup_reason">لماذا تريد الانضمام؟</string>
<string name="signup_reason_note">هذا سوف يساعدنا في مراجعة تطبيقك.</string>
<string name="clear">امسح</string>
@@ -253,7 +307,13 @@
<string name="error_saving_file">خطأ أثناء حفظ الملف</string>
<string name="file_saved">حُفظ الملف</string>
<string name="downloading">ينزّل…</string>
<string name="no_app_to_handle_action">لا يوجد تطبيق لمعالجة هذا الإجراء</string>
<string name="local_timeline">المحلي</string>
<string name="trending_posts_info_banner">هذه هي المشاركات التي تكتسب شعبية عبر ماستدون.</string>
<string name="trending_links_info_banner">هذه هي القصص الإخبارية التي يُتحدّث عنها على ماستدون.</string>
<!-- %s is the server domain -->
<string name="local_timeline_info_banner">هذه هي جميع المشاركات من جميع المستخدمين في الخادم الخاص بك (%s).</string>
<string name="recommended_accounts_info_banner">قد تعجبك هذه الحسابات استنادا إلى حسابات أخرى تتابعها.</string>
<string name="see_new_posts">استعرض المنشورات الجديدة</string>
<string name="load_missing_posts">حمّل المَنشورات المَفقودَة</string>
<string name="follow_back">رُدّ المتابعة</string>
@@ -285,6 +345,14 @@
<item quantity="many">%,d تفضيلًا</item>
<item quantity="other">%,d تفضيل</item>
</plurals>
<plurals name="x_reblogs">
<item quantity="zero">%,d إعادة نشر</item>
<item quantity="one">إعادة نشر واحدة</item>
<item quantity="two">أعيد نشره مرّتان</item>
<item quantity="few">أعيد نشره %,d مرة</item>
<item quantity="many">أعيد نشره %,d مرات</item>
<item quantity="other">أعيد نشره %,d مرات</item>
</plurals>
<string name="timestamp_via_app">%1$s عبر %2$s</string>
<string name="time_now">الآن</string>
<string name="edit_history">تاريخ التعديل</string>
@@ -347,6 +415,7 @@
<string name="login_title">مرحبا بك مجددًا</string>
<string name="login_subtitle">قم بتسجيل الدخول باستخدام الخادم حيث قمتَ بإنشاء حسابك فيه.</string>
<string name="server_url">رابط الخادم</string>
<string name="signup_random_server_explain">سوف نختار خادماً بناءً على لغتك إذا قمت بالمتابعة دون إجراء إختيار.</string>
<string name="server_filter_any_language">أي لغة</string>
<string name="server_filter_instant_signup">تسجيل فوري</string>
<string name="server_filter_manual_review">مراجعة يدوية</string>
@@ -359,6 +428,7 @@
<string name="server_filter_region_oceania">أوقيانوسيا</string>
<string name="not_accepting_new_members">لا يقبل استقبال أعضاء جدد</string>
<string name="category_special_interests">المصالح الخاصة</string>
<string name="signup_passwords_dont_match">كلمات المرور غير متطابقة</string>
<string name="pick_server_for_me">اختر لي</string>
<string name="profile_add_row">إضافة صف</string>
<string name="profile_setup">إعداد الملف الشخصي</string>
@@ -367,21 +437,265 @@
<string name="popular_on_mastodon">مشهور على ماستدون</string>
<string name="follow_all">اتبع الكل</string>
<string name="server_rules_disagree">لا أوافق</string>
<string name="privacy_policy_explanation">بالمختصر: نحن لا نجمع أو نعالج أي شيء.</string>
<!-- %s is server domain -->
<string name="server_policy_disagree">لا أوافق %s</string>
<string name="profile_bio">نبذة عنك</string>
<!-- Shown in a progress dialog when you tap "follow all" -->
<string name="sending_follows">متابعة المستخدمين…</string>
<!-- %1$s is server domain, %2$s is email domain. You can reorder these placeholders to fit your language better. -->
<string name="signup_email_domain_blocked">%1$s لا يسمح بالاشتراكات من %2$s. جرب خادما واحدا أو &lt;a&gt;اختر خادما مختلفا&lt;/a&gt;.</string>
<string name="spoiler_show">إظهاره على أي حال</string>
<string name="spoiler_hide">إعادة الإخفاء</string>
<string name="poll_multiple_choice">اختر واحدا أو أكثر</string>
<string name="save_changes">حفظ التغييرات</string>
<string name="profile_featured">المميزة</string>
<string name="profile_timeline">الخيط</string>
<string name="view_all">عرض الكل</string>
<string name="profile_endorsed_accounts">الحسابات</string>
<string name="verified_link">رابط متحقق منه</string>
<string name="show">إظهار</string>
<string name="hide">إخفاء</string>
<string name="join_default_server">الانضمام إلى %s</string>
<string name="pick_server">اختر خادما آخر</string>
<string name="signup_or_login">أو</string>
<string name="learn_more">تعلم المزيد</string>
<string name="welcome_to_mastodon">أهلًا بك على ماستدون</string>
<string name="welcome_paragraph1">ماستدون شبكة اجتماعية لامركزية، بمعنى أنه ليس هناك شركة واحدة تتحكم فيها. وهي تتألف من العديد من الخوادم التي تدار بشكل مستقل، وجميعها متصلة معا.</string>
<string name="what_are_servers">ما هي الخوادم؟</string>
<string name="welcome_paragraph2"><![CDATA[تتم استضافة كل حساب ماستدون على خادم - ولكل منها قيمه وقواعده ومسؤوليه الخاصين. بغض النظر عن الشخص الذي تختاره ، يمكنك متابعة الأشخاص والتفاعل معهم على أي خادم.]]></string>
<string name="opening_link">رابط الافتتاح…</string>
<string name="link_not_supported">هذا الرابط غير مدعوم في التطبيق</string>
<string name="log_out_all_accounts">تسجيل الخروج من جميع الحسابات</string>
<string name="confirm_log_out_all_accounts">أتريد تسجيل الخروج من جميع الحسابات؟</string>
<string name="retry">حاول مجددًا</string>
<string name="post_failed">أخفق في الإرسال</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_description_image">صورة %s</string>
<string name="attachment_description_video">فيديو %s</string>
<string name="attachment_description_audio">مقطع صوتي %s</string>
<string name="attachment_description_unknown">ملف %s</string>
<string name="attachment_type_image">صورة</string>
<string name="attachment_type_video">فيديو</string>
<string name="attachment_type_audio">مقطع صوتي</string>
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">ملف</string>
<string name="attachment_x_percent_uploaded">%d%% تم الرفع</string>
<string name="add_poll_option">إضافة خيار للاستطلاع</string>
<string name="poll_length">مدة الاستطلاع</string>
<string name="poll_style">النوع</string>
<string name="compose_poll_single_choice">اختر واحدا</string>
<string name="compose_poll_multiple_choice">خيارات متعددة</string>
<string name="delete_poll_option">حذف خيار من الاستطلاع</string>
<string name="poll_style_title">نمط الاستطلاع</string>
<string name="alt_text">نص بديل</string>
<string name="help">المساعدة</string>
<string name="what_is_alt_text">ما هو النص البديل؟</string>
<string name="alt_text_help">يوفر النص البديل أوصافا للصور للأشخاص الذين يعانون من إعاقات بصرية أو اتصالات ذات نطاق ترددي منخفض أو أولئك الذين يبحثون عن سياق إضافي.\n\nيمكنك تحسين إمكانية الوصول والفهم للجميع من خلال كتابة نص بديل واضح وموجز وموضوعي.\n\n التقاط العناصر المهمة\n<ul><li>تلخيص النص في الصور</li>\n<li>استخدام بنية الجملة العادية</li>\n<li>تجنب المعلومات الزائدة</li>\n<li>التركيز على الاتجاهات والنتائج الرئيسية في العناصر المرئية المعقدة (مثل الرسوم البيانية أو الخرائط)</li><li></li></ul></string>
<string name="edit_post">تعديل المنشور</string>
<string name="no_verified_link">لم يتم التحقق من الرابط</string>
<string name="compose_autocomplete_emoji_empty">تصفح الرموز التعبيرية</string>
<string name="compose_autocomplete_users_empty">العثور على الأشخاص الذين تبحث عنهم</string>
<string name="no_search_results">تعذر العثور على أي نتائج لمصطلحات البحث هذه</string>
<string name="language">اللغة</string>
<string name="language_default">الافتراضية</string>
<string name="language_system">النظام</string>
<string name="language_detecting">اكتشاف اللغة</string>
<string name="language_cant_detect">تعذر اكتشاف اللغة</string>
<string name="language_detected">الكشف عن</string>
<string name="media_hidden">وسائط مخفية</string>
<string name="post_hidden">منشور مخفي</string>
<string name="report_title_post">الإبلاغ عن المنشور</string>
<string name="forward_report_explanation">الحساب من خادم آخر. هل تودّ إرسال نسخة مجهولة المصدر من هذا التقرير هناك أيضا؟</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">تحويله إلى %s</string>
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<string name="reported">تم الإبلاغ عنه</string>
<string name="report_unfollow_explanation">لعدم رؤية مشاركاتهم في خلاصة ملخصك بعد الآن، ألغِ متابعتهم.</string>
<string name="muted_user">كتم %s</string>
<string name="report_sent_already_blocked">لقد حظرت هذا المستخدم من قبل، لذلك لا يوجد شيء آخر عليك القيام به خلال مراجعة بلاغك.</string>
<string name="report_personal_already_blocked">لقد قمت بالفعل بحظر هذا المستخدم، لذلك لا يوجد شيء آخر عليك القيام به.\n\nشكرا للمساعدة في الحفاظ على ماستدون مكانا آمنا للجميع!</string>
<string name="blocked_user">حظر %s</string>
<string name="mark_all_notifications_read">اعتبار الكل كمقروء</string>
<string name="settings_display">الشاشة</string>
<string name="settings_filters">عوامل التصفية</string>
<string name="settings_server_explanation">نظرة عامة وقواعد ومشرفين</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<string name="about_app">عن %s</string>
<string name="default_post_language">اللغة الافتراضية للمنشور</string>
<string name="settings_alt_text_reminders">إضافة تذكير بالنصوص البديلة</string>
<string name="settings_confirm_unfollow">السؤال قبل إلغاء متابعة شخص ما</string>
<string name="settings_confirm_boost">اسأل قبل إعادة النشر</string>
<string name="settings_confirm_delete_post">السؤال قبل حذف المشاركات</string>
<string name="pause_all_notifications">إيقاف الكل</string>
<string name="pause_notifications_off">إيقاف</string>
<string name="notifications_policy_anyone">أيا كان</string>
<string name="notifications_policy_followed">الأشخاص الذين تتابعهم</string>
<string name="notifications_policy_follower">الأشخاص الذين تتابعهم</string>
<string name="notifications_policy_no_one">لا أحد</string>
<string name="settings_notifications_policy">تلقي الإشعارات من</string>
<string name="notification_type_mentions_and_replies">الإشارات والردود</string>
<string name="pause_all_notifications_title">إيقاف جميع الإشعارات مؤقتًا</string>
<plurals name="x_weeks">
<item quantity="zero">%d أسبوع</item>
<item quantity="one">أسبوع واحد</item>
<item quantity="two">أسبوعان</item>
<item quantity="few">%d أسابيع</item>
<item quantity="many">%d أسبوعًا</item>
<item quantity="other">%d أسابيع</item>
</plurals>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="date_at_time">%1$s في %2$s</string>
<string name="today">اليوم</string>
<string name="yesterday">أمس</string>
<string name="tomorrow">غدًا</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_ends">ينتهي %s</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_banner">سيتم استئناف الإشعارات %s.</string>
<string name="resume_notifications_now">استأنف الآن</string>
<string name="open_system_notification_settings">الانتقال إلى إعدادات الإشعارات</string>
<string name="about_server">عن</string>
<string name="server_rules">القواعد</string>
<string name="server_administrator">المدير</string>
<string name="send_email_to_server_admin">للاتصال بالمدير</string>
<string name="notifications_disabled_in_system">شغل الإشعارات من إعدادات جهازك لرؤية التحديثات من أي مكان.</string>
<string name="settings_even_more">المزيد من الإعدادات</string>
<string name="settings_show_cws">إظهار تحذيرات المحتوى</string>
<string name="settings_hide_sensitive_media">فلرتة الوسائط التي تم وضع علامة عليها على أنها حساسة</string>
<string name="settings_show_interaction_counts">عدد التفاعل مع المنشورات</string>
<string name="settings_show_emoji_in_names">رموز تعبيرية مخصصة في أسماء العرض</string>
<plurals name="in_x_seconds">
<item quantity="zero">في %d ثانية</item>
<item quantity="one">في ثانية واحدة</item>
<item quantity="two">في ثانيتين</item>
<item quantity="few">في %d ثوانٍ</item>
<item quantity="many">في %d ثانية</item>
<item quantity="other">في %d ثوان</item>
</plurals>
<plurals name="in_x_minutes">
<item quantity="zero">في %d دقيقة</item>
<item quantity="one">في دقيقة واحدة</item>
<item quantity="two">في دقيقتين</item>
<item quantity="few">في %d دقائق</item>
<item quantity="many">في %d دقيقة</item>
<item quantity="other">في %d دقائق</item>
</plurals>
<plurals name="in_x_hours">
<item quantity="zero">في %d ساعة</item>
<item quantity="one">خلال ساعة واحدة</item>
<item quantity="two">خلال ساعتان</item>
<item quantity="few">خلال %d ساعات</item>
<item quantity="many">خلال %d ساعة</item>
<item quantity="other">خلال %d ساعات</item>
</plurals>
<plurals name="x_hours_ago">
<item quantity="zero">منذ %d ساعات</item>
<item quantity="one">منذ ساعة واحدة</item>
<item quantity="two">منذ ساعتان</item>
<item quantity="few">منذ %d ساعات</item>
<item quantity="many">منذ %d ساعة</item>
<item quantity="other">منذ %d ساعات</item>
</plurals>
<string name="alt_text_reminder_title">تفتقد الوسائط إلى نص بديل</string>
<plurals name="alt_text_reminder_x_images">
<item quantity="zero">%s من صورك يفتقر إلى نص بديل. أتردد النشر على أي حال؟</item>
<item quantity="one">%s من صورك يفتقر إلى نص بديل. أتردد النشر على أي حال؟</item>
<item quantity="two">%s من صورك يفتقر إلى نص بديل. أتردد النشر على أي حال؟</item>
<item quantity="few">%s من صورك يفتقر إلى نص بديل. أتردد النشر على أي حال؟</item>
<item quantity="many">%s من صورك يفتقر إلى نص بديل. أتردد النشر على أي حال؟</item>
<item quantity="other">%s من صورك يفتقر إلى نص بديل. أتردد النشر على أي حال؟</item>
</plurals>
<plurals name="alt_text_reminder_x_attachments">
<item quantity="zero">%s من مرفقات الوسائط الخاصة بك يفتقر لنص بديل. نشر على أي حال؟</item>
<item quantity="one">%s من مرفقات الوسائط الخاصة بك يفتقر لنص بديل. نشر على أي حال؟</item>
<item quantity="two">%s من مرفقات الوسائط الخاصة بك يفتقر لنص بديل. نشر على أي حال؟</item>
<item quantity="few">%s من مرفقات الوسائط الخاصة بك يفتقر لنص بديل. نشر على أي حال؟</item>
<item quantity="many">%s من مرفقات الوسائط الخاصة بك يفتقر لنص بديل. نشر على أي حال؟</item>
<item quantity="other">%s من مرفقات الوسائط الخاصة بك يفتقر لنص بديل. نشر على أي حال؟</item>
</plurals>
<string name="count_one">واحد</string>
<string name="count_two">اثنان</string>
<string name="count_three">ثلاثة</string>
<string name="count_four">أربعة</string>
<string name="alt_text_reminder_post_anyway">مَنشور</string>
<!-- %s is the username -->
<string name="unfollow_confirmation">أتريد إلغاء متابعة %s؟</string>
<string name="filter_active">نشِط</string>
<string name="filter_inactive">خامل</string>
<string name="settings_add_filter">إضافة عامل تصفية</string>
<string name="settings_edit_filter">تعديل عامل التصفية</string>
<string name="settings_filter_duration">المدة</string>
<string name="settings_filter_muted_words">الكلمات المحظورة</string>
<string name="settings_filter_context">كتم الصوت من</string>
<string name="settings_filter_show_cw">عرض مع تحذير المحتوى</string>
<string name="settings_filter_show_cw_explanation">الاستمرار في عرض المشاركات التي تطابق هذا الفلتر، ولكن خلف تحذير حول المحتوى</string>
<string name="settings_delete_filter">حذف عامل التصفية</string>
<string name="filter_duration_forever">إلى الأبد</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="settings_filter_ends">ينتهي %s</string>
<plurals name="settings_x_muted_words">
<item quantity="zero">%d كلمة أو عبارة مكتومة</item>
<item quantity="one">%d كلمة أو عبارة مكتومة</item>
<item quantity="two">%d كلمتان أو عبارتان مكتومتان</item>
<item quantity="few">%d كلمة أو عبارة مكتومة</item>
<item quantity="many">%d كلمة أو عبارة مكتومة</item>
<item quantity="other">%d كلمة أو عبارة مكتومة</item>
</plurals>
<string name="selection_2_options">%1$s و %2$s</string>
<string name="selection_3_options">%1$s و %2$s و %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s, و %3$d والمزيد</string>
<string name="filter_context_home_lists">الخيط الزمني الرئيسي والقوائم</string>
<string name="filter_context_notifications">الإشعارات</string>
<string name="filter_context_public_timelines">الخيوط الزمنية العامة</string>
<string name="filter_context_threads_replies">سلاسل المحادثات والردود</string>
<string name="filter_context_profiles">الصفحات التعريفية</string>
<string name="settings_filter_title">العنوان</string>
<string name="settings_delete_filter_title">حذف عامل التصفية \"%s\"؟</string>
<string name="settings_delete_filter_confirmation">سيتم حذف هذا الفلتر من حسابك على جميع الأجهزة.</string>
<string name="add_muted_word">إضافة كلمة مكتومة</string>
<string name="edit_muted_word">تحرير كلمة مكتومة</string>
<string name="add">إضافة</string>
<string name="filter_word_or_phrase">كلمة أو عبارة</string>
<string name="filter_add_word_help">الكلمات غير حساسة لحالة الأحرف وتتطابق مع الكلمات الكاملة فقط.\n\nإذا قمت بتصفية الكلمة الرئيسية \"Apple\" ، فستخفي المشاركات التي تحتوي على \"apple\" أو \"aPpLe\" ولكن ليس \"pineapple.\"</string>
<string name="settings_delete_filter_word">حذف الكلمة \"%s\"؟</string>
<string name="enter_selection_mode">اختر</string>
<string name="select_all">اختيار الكل</string>
<string name="settings_filter_duration_title">مدة التصفية</string>
<string name="filter_duration_custom">مخصص</string>
<plurals name="settings_delete_x_filter_words">
<item quantity="zero">حذف %d كلمات؟</item>
<item quantity="one">حذف كلمة واحدة؟</item>
<item quantity="two">حذف كلمتان؟</item>
<item quantity="few">حذف %d كلمات؟</item>
<item quantity="many">حذف %d كلمة؟</item>
<item quantity="other">حذف %d كلمات؟</item>
</plurals>
<plurals name="x_items_selected">
<item quantity="zero">تم تحديد %d</item>
<item quantity="one">تم تحديد %d</item>
<item quantity="two">%d تم تحديدها</item>
<item quantity="few">%d تم تحديدها</item>
<item quantity="many">%d تم تحديدها</item>
<item quantity="other">%d تم تحديدها</item>
</plurals>
<string name="required_form_field_blank">لا يمكن أن يكون فارغاً</string>
<string name="filter_word_already_in_list">موجود بالفعل في القائمة</string>
<string name="app_update_ready">تحديث التطبيق جاهز</string>
<string name="app_update_version">الإصدار %s</string>
<string name="downloading_update">جارٍ التنزيل (%d%%)</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="post_matches_filter_x">تطابق عامل التصفية \"%s\"</string>
<string name="search_mastodon">البحث في ماستدون</string>
<string name="clear_all">امسح الكل</string>
<string name="search_open_url">فتح الرابط التشعبي في ماستدون</string>
<string name="posts_matching_hashtag">منشورات تحتوي على “%s”</string>
<string name="search_go_to_account">الانتقال إلى %s</string>
<string name="posts_matching_string">منشورات تحتوي على “%s”</string>
<string name="accounts_matching_string">أشخاص لديهم \"%s\"</string>
<!-- Shown in the post header. Please keep it short -->
<string name="time_seconds_ago_short">مُنذُ %dث</string>
<string name="time_minutes_ago_short">مُنذُ %dش</string>
<string name="time_hours_ago_short">مُنذُ %dس</string>
<string name="time_days_ago_short">مُنذُ %dي</string>
</resources>

View File

@@ -7,8 +7,11 @@
<string name="preparing_auth">প্রমাণীকরণের জন্য প্রস্তুত হচ্ছে...</string>
<string name="in_reply_to">%s কে উত্তর দিন</string>
<string name="notifications">নোটিফিকেশন</string>
<string name="user_followed_you">%s আপনাকে ফলো করেছেন</string>
<string name="user_sent_follow_request">%s আপনাকে ফলো করার অনুরোধ পাঠিয়েছেন</string>
<string name="share_toot_title">শেয়ার করুন</string>
<string name="settings">সেটিংস</string>
<string name="discard">বাতিল করুন</string>
<string name="cancel">বাতিল করুন</string>
<plurals name="followers">
<item quantity="one">জন ফলোয়ার</item>
@@ -92,9 +95,18 @@
<item quantity="one">%d জন ব্যক্তি বলছেন</item>
<item quantity="other">%d jon ব্যক্তিরা বলছেন</item>
</plurals>
<string name="report_title">%s -এর নামে অভিযোগ করুন</string>
<string name="report_choose_reason">এই পোস্টে ভুল কি?</string>
<string name="report_reason_personal">আমার এটি ভালো লাগছে না</string>
<string name="report_reason_spam">এটি স্প্যাম</string>
<string name="report_reason_violation">এটি সার্ভারের নিয়ম ভাঙছে</string>
<string name="report_reason_other">এটি অন্য কিছু</string>
<string name="report_choose_rule">কোন নিয়মটা ভেঙেছে?</string>
<string name="sending_report">রিপোর্ট পাঠানো হচ্ছে…</string>
<string name="report_sent_title">রিপোর্ট করার জন্য আপনাকে ধন্যবাদ, আমরা এটি শীঘ্রই দেখব.</string>
<string name="report_sent_subtitle">আমরা যতক্ষণে আপনার রিপোর্ট পুনর্বিবেচনা করছি, আপনি %s এর বিরুদ্ধে ব্যবস্থা নিতে পারেন:</string>
<string name="unfollow_user">%s -কে আনফলো করুন</string>
<string name="unfollow">আনফলো করুন</string>
<string name="report_personal_title">আপনি এটি আর দেখতে চান না?</string>
<string name="back">ফিরে যান</string>
<string name="search_communities">সার্ভারের নাম বা লিঙ্ক</string>

View File

@@ -105,6 +105,12 @@
<item quantity="many">Zbývá %d dní</item>
<item quantity="other">Zbývá %d dní</item>
</plurals>
<plurals name="x_votes">
<item quantity="one">%,d hlas</item>
<item quantity="few">%,d hlasující</item>
<item quantity="many">%,d hlasujících</item>
<item quantity="other">%,d hlasů</item>
</plurals>
<string name="poll_closed">Uzavřeno</string>
<string name="confirm_mute_title">Skrýt účet</string>
<string name="confirm_mute">Potvrdit skrytí %s</string>
@@ -217,6 +223,12 @@
<string name="notification_type_poll">Ankety</string>
<string name="choose_account">Vybrat účet</string>
<string name="err_not_logged_in">Nejprve se přihlaste do Mastodonu</string>
<plurals name="cant_add_more_than_x_attachments">
<item quantity="one">Nelze přidat více než %d multimediální přílohu</item>
<item quantity="few">Nelze přidat více než %d multimediální přílohy</item>
<item quantity="many">Nelze přidat více než %d multimediálních příloh</item>
<item quantity="other">Nelze přidat více než %d multimediálních příloh</item>
</plurals>
<string name="media_attachment_unsupported_type">Soubor %s nepatří mezi podporované typy</string>
<string name="media_attachment_too_big">Soubor %1$s překračuje limit velikosti %2$s MB</string>
<string name="settings_theme">Vzhled</string>
@@ -301,6 +313,12 @@
<item quantity="many">%,d oblíbení</item>
<item quantity="other">%,d oblíbení</item>
</plurals>
<plurals name="x_reblogs">
<item quantity="one">%,d boost</item>
<item quantity="few">%,d boosty</item>
<item quantity="many">%,d boostů</item>
<item quantity="other">%,d boostů</item>
</plurals>
<string name="timestamp_via_app">%1$s přes %2$s</string>
<string name="time_now">teď</string>
<string name="edit_history">Historie úprav</string>
@@ -480,6 +498,12 @@
<string name="settings_notifications_policy">Dostávat oznámení od</string>
<string name="notification_type_mentions_and_replies">Zmínění a odpovědi</string>
<string name="pause_all_notifications_title">Pozastavit všechna oznámení</string>
<plurals name="x_weeks">
<item quantity="one">%d týden</item>
<item quantity="few">%d týdny</item>
<item quantity="many">%d týdnů</item>
<item quantity="other">%d týdnů</item>
</plurals>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="date_at_time">%1$s v %2$s</string>
<string name="today">dnes</string>
@@ -501,7 +525,43 @@
<string name="settings_hide_sensitive_media">Zakrýt média označená jako citlivá</string>
<string name="settings_show_interaction_counts">Počet interakcí příspěvku</string>
<string name="settings_show_emoji_in_names">Vlastní emoji v zobrazených jménech</string>
<plurals name="in_x_seconds">
<item quantity="one">za %d vteřinu</item>
<item quantity="few">za %d vteřiny</item>
<item quantity="many">za %d vteřin</item>
<item quantity="other">za %d vteřin</item>
</plurals>
<plurals name="in_x_minutes">
<item quantity="one">za %d minutu</item>
<item quantity="few">za %d minuty</item>
<item quantity="many">za %d minut</item>
<item quantity="other">za %d minut</item>
</plurals>
<plurals name="in_x_hours">
<item quantity="one">za %d hodinu</item>
<item quantity="few">za %d hodiny</item>
<item quantity="many">za %d hodin</item>
<item quantity="other">za %d hodin</item>
</plurals>
<plurals name="x_hours_ago">
<item quantity="one">před %d hodinou</item>
<item quantity="few">před %d hodinami</item>
<item quantity="many">před %d hodinami</item>
<item quantity="other">před %d hodinami</item>
</plurals>
<string name="alt_text_reminder_title">Média nemají alternativní text</string>
<plurals name="alt_text_reminder_x_images">
<item quantity="one">%s z vašich obrázků nemá alternativní text. Přesto odeslat?</item>
<item quantity="few">%s z vašich obrázků nemají alternativní text. Přesto odeslat?</item>
<item quantity="many">%s z vašich obrázků nemá alternativní text. Přesto odeslat?</item>
<item quantity="other">%s z vašich obrázků nemá alternativní text. Přesto odeslat?</item>
</plurals>
<plurals name="alt_text_reminder_x_attachments">
<item quantity="one">%s z vašich multimediálních příloh nemá alternativní text. Přesto odeslat?</item>
<item quantity="few">%s z vašich multimediálních příloh nemají alternativní text. Přesto odeslat?</item>
<item quantity="many">%s z vašich multimediálních příloh nemá alternativní text. Přesto odeslat?</item>
<item quantity="other">%s z vašich multimediálních příloh nemá alternativní text. Přesto odeslat?</item>
</plurals>
<string name="count_one">Jeden</string>
<string name="count_two">Dva</string>
<string name="count_three">Tři</string>
@@ -522,6 +582,12 @@
<string name="filter_duration_forever">Napořád</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="settings_filter_ends">Končí %s</string>
<plurals name="settings_x_muted_words">
<item quantity="one">%d ztišené slovo nebo fráze</item>
<item quantity="few">%d ztišená slova nebo fráze</item>
<item quantity="many">%d ztišených slov nebo frází</item>
<item quantity="other">%d ztišených slov nebo fráze</item>
</plurals>
<string name="selection_2_options">%1$s a %2$s</string>
<string name="selection_3_options">%1$s, %2$s a %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s a %3$d další</string>
@@ -543,6 +609,18 @@
<string name="select_all">Vybrat vše</string>
<string name="settings_filter_duration_title">Doba použití filtru</string>
<string name="filter_duration_custom">Vlastní</string>
<plurals name="settings_delete_x_filter_words">
<item quantity="one">Smazat %d slovo?</item>
<item quantity="few">Smazat %d slova?</item>
<item quantity="many">Smazat %d slov?</item>
<item quantity="other">Smazat %d slov?</item>
</plurals>
<plurals name="x_items_selected">
<item quantity="one">%d vybráno</item>
<item quantity="few">%d vybrány</item>
<item quantity="many">%d vybraných</item>
<item quantity="other">%d vybraných</item>
</plurals>
<string name="required_form_field_blank">Nemůže být prázdné</string>
<string name="filter_word_already_in_list">Již v seznamu</string>
<string name="app_update_ready">Je připravena aktualizace aplikace</string>

View File

@@ -4,18 +4,24 @@
<string name="next">Næste</string>
<string name="loading_instance">Henter serverinfo…</string>
<string name="error">Fejl</string>
<string name="ok">Ok</string>
<string name="not_a_mastodon_instance">%s lader ikke til at være en Mastodon-server.</string>
<string name="ok">OK</string>
<string name="preparing_auth">Forbereder godkendelse…</string>
<string name="finishing_auth">Afslutter godkendelse…</string>
<string name="user_boosted">%s fremhævede</string>
<string name="in_reply_to">Som svar til %s</string>
<string name="notifications">Meddelelser</string>
<string name="notifications">Notifikationer</string>
<string name="user_followed_you">%s begyndte at følge dig</string>
<string name="user_sent_follow_request">%s har sendt dig en følgeanmodning</string>
<string name="user_favorited">%s favoritmarkerede dit indlæg</string>
<string name="notification_boosted">%s boostede dit indlæg</string>
<string name="poll_ended">Se resultaterne af en afstemning, hvori du deltog</string>
<string name="share_toot_title">Del</string>
<string name="settings">Indstillinger</string>
<string name="publish">Offentliggør</string>
<string name="publish">Publicér</string>
<string name="discard_draft">Kassér kladde?</string>
<string name="discard">Kassér</string>
<string name="cancel">Fortryd</string>
<string name="cancel">Afbryd</string>
<plurals name="followers">
<item quantity="one">følger</item>
<item quantity="other">følgere</item>
@@ -31,13 +37,14 @@
<string name="button_follow">Følg</string>
<string name="button_following">Følger</string>
<string name="edit_profile">Redigér profil</string>
<string name="mute_user">Skjul %s (mute)</string>
<string name="unmute_user">Vis %s igen (unmute)</string>
<string name="block_user">Bloker %s</string>
<string name="unblock_user">Fjern blokering af %s</string>
<string name="report_user">Indberet %s</string>
<string name="block_domain">Bloker %s</string>
<string name="unblock_domain">Fjern blokering af %s</string>
<string name="share_user">Del profil</string>
<string name="mute_user">Gør tavs %s</string>
<string name="unmute_user">Vis %s igen</string>
<string name="block_user">Blokér %s</string>
<string name="unblock_user">Afblokér %s</string>
<string name="report_user">Anmeld %s</string>
<string name="block_domain">Blokér %s</string>
<string name="unblock_domain">Afblokér %s</string>
<plurals name="x_posts">
<item quantity="one">%,d indlæg</item>
<item quantity="other">%,d indlæg</item>
@@ -45,7 +52,7 @@
<string name="profile_joined">Tilmeldt</string>
<string name="done">Udført</string>
<string name="loading">Indlæser…</string>
<string name="field_label">Mærkat</string>
<string name="field_label">Etiket</string>
<string name="field_content">Indhold</string>
<string name="saving">Gemmer…</string>
<string name="post_from_user">Indlæg fra %s</string>
@@ -78,66 +85,84 @@
<item quantity="one">%d dag tilbage</item>
<item quantity="other">%d dage tilbage</item>
</plurals>
<plurals name="x_votes">
<item quantity="one">%,d stemme</item>
<item quantity="other">%,d stemmer</item>
</plurals>
<string name="poll_closed">Lukket</string>
<string name="confirm_mute_title">Skjul konto</string>
<string name="confirm_mute">Bekræft at du vil skjule %s</string>
<string name="do_mute">Skjul (mute)</string>
<string name="confirm_unmute_title">Vis bruger igen (unmute)</string>
<string name="confirm_unmute">Bekræft at du vil se %s igen</string>
<string name="do_unmute">Vis igen (unmute)</string>
<string name="confirm_block_title">Bloker bruger</string>
<string name="confirm_block_domain_title">Bloker domæne</string>
<string name="confirm_block">Bekræft at du vil blokere %s</string>
<string name="do_block">Bloker</string>
<string name="confirm_unblock_title">Fjern blokering af bruger</string>
<string name="confirm_unblock_domain_title">Fjern blokering af domæne</string>
<string name="confirm_unblock">Bekræft at du vil fjerne blokering af %s</string>
<string name="do_unblock">Fjern blokering</string>
<string name="confirm_mute_title">Tavsgør konto</string>
<string name="confirm_mute">Bekræft tavsgørelse af %s</string>
<string name="do_mute">Tavsgør</string>
<string name="confirm_unmute_title">Vis konto igen</string>
<string name="confirm_unmute">Bekræft, at %s ikke længere er tavsgjort</string>
<string name="do_unmute">Ophæv tavsgørelse</string>
<string name="confirm_block_title">Blokér konto</string>
<string name="confirm_block_domain_title">Blokér domæne</string>
<string name="confirm_block">Bekræft blokering af %s</string>
<string name="do_block">Blokér</string>
<string name="confirm_unblock_title">Afblokér konto</string>
<string name="confirm_unblock_domain_title">Afblokér domæne</string>
<string name="confirm_unblock">Bekræft afblokeringen af %s</string>
<string name="do_unblock">Afblokér</string>
<string name="button_blocked">Blokeret</string>
<string name="action_vote">Stem</string>
<string name="delete">Slet</string>
<string name="confirm_delete">Er du sikker på, at du vil slette dette indlæg?</string>
<string name="confirm_delete_title">Slet indlæg</string>
<string name="confirm_delete">Sikker på, at dette indlæg skal slettes?</string>
<string name="deleting">Sletter…</string>
<string name="notification_channel_audio_player">Afspilning af lyd</string>
<string name="notification_channel_audio_player">Lydafspilning</string>
<string name="play">Afspil</string>
<string name="pause">Sæt på pause</string>
<string name="pause">Pausér</string>
<string name="log_out">Log ud</string>
<string name="add_account">Tilføj konto</string>
<string name="search_hint">Søg</string>
<string name="hashtags">Hashtags</string>
<string name="news">Nyheder</string>
<string name="for_you">Til dig</string>
<string name="all_notifications">Alt</string>
<string name="mentions">Omtaler</string>
<plurals name="x_people_talking">
<item quantity="one">%d person deltager</item>
<item quantity="other">%d personer deltager</item>
<item quantity="one">%d person taler</item>
<item quantity="other">%d personer taler</item>
</plurals>
<string name="report_title">Indberet %s</string>
<string name="report_choose_reason_subtitle">Vælg en passende grund</string>
<string name="report_title">Anmeld %s</string>
<string name="report_choose_reason">Hvad er der galt med dette indlæg?</string>
<string name="report_choose_reason_account">Hvad er der galt med %s?</string>
<string name="report_choose_reason_subtitle">Vælg bedste match</string>
<string name="report_reason_personal">Bryder mig ikke om det</string>
<string name="report_reason_personal_subtitle">Det er ikke noget, man ønsker at se</string>
<string name="report_reason_spam_subtitle">Ondsindede links, falske interaktioner, eller gentagne svar</string>
<string name="report_reason_violation">Det overtræder serverreglerne</string>
<string name="report_reason_violation_subtitle">Du kender til specifikke regler som det er i strid med</string>
<string name="report_reason_other_subtitle">Problemet passer ikke ind i andre kategorier</string>
<string name="report_reason_spam">Det er spam</string>
<string name="report_reason_spam_subtitle">Ondsindede links, falske interaktioner eller gentagne svar</string>
<string name="report_reason_violation">Det overtræder serverregler</string>
<string name="report_reason_violation_subtitle">Du er bekendt med, at det overtræder bestemte regler</string>
<string name="report_reason_other">Drejer sig om noget andet</string>
<string name="report_reason_other_subtitle">Ingen kategori modsvarer problematikken</string>
<string name="report_choose_rule">Hvilke regler overtrædes?</string>
<string name="report_choose_rule_subtitle">Vælg alle relevante</string>
<string name="report_choose_posts">Er der indlæg, som kan bekræfte denne anmeldelse?</string>
<string name="report_choose_posts">Er der indlæg, som understøtter denne anmeldelse?</string>
<string name="report_choose_posts_subtitle">Vælg alle relevante</string>
<string name="report_comment_title">Er der andet, vi bør vide?</string>
<string name="report_comment_hint">Yderligere kommentarer</string>
<string name="sending_report">Sender rapport…</string>
<string name="sending_report">Indsender rapport…</string>
<string name="report_sent_title">Tak for anmeldelsen. Vi vil se nærmere på dette.</string>
<string name="report_sent_subtitle">Mens vi gennemgår anmeldelsen, kan du tage skridt mod %s:</string>
<string name="unfollow_user">Følg ikke længere %s</string>
<string name="unfollow">Følg ikke længere</string>
<string name="back">Tilbage</string>
<string name="search_communities">Server-navn eller URL</string>
<string name="mute_user_explain">Du vil ikke se indlæg fra vedkommende, der dog stadig kan se dine indlæg og følge dig, men ikke være bekendt med tavsgørelsen.</string>
<string name="block_user_explain">Du vil ikke se indlæg fra vedkommende, der hverken kan se dine indlæg eller følge dig, men vil være bekendt med blokeringen.</string>
<string name="report_personal_title">Ønsker du ikke at se dette?</string>
<string name="report_personal_subtitle">Her er mulighederne for at styre, hvad du ser på Mastodon:</string>
<string name="back">Retur</string>
<string name="search_communities">Servernavn eller -URL</string>
<string name="instance_rules_title">Serverregler</string>
<string name="instance_rules_subtitle">Ved at fortsætte accepterer du at følge følgende regler, der er vedtaget og håndhævet af %ss moderatorer.</string>
<string name="instance_rules_subtitle">Ved at fortsætte accepterer du at overholde flg. regler, som angivet og håndhævet af %s moderatorerne.</string>
<string name="signup_title">Opret konto</string>
<string name="display_name">Navn</string>
<string name="username">Brugernavn</string>
<string name="email">Email</string>
<string name="email">E-mail</string>
<string name="password">Adgangskode</string>
<string name="confirm_password">Bekræft adgangskode</string>
<string name="password_note">Inkluder store bogstaver, specialtegn og tal for at gøre din adgangskode stærkere.</string>
<string name="password_note">Benyt majuskler, specialtegn og tal for at øge adgangskodens styrke.</string>
<string name="category_academia">Forskning og højere uddannelser</string>
<string name="category_activism">Aktivisme</string>
<string name="category_all">Alt</string>
@@ -153,41 +178,55 @@
<string name="category_tech">Teknologi</string>
<string name="confirm_email_title">Tjek din indbakke</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">Tryk på det modtage link for at bekræfte %s. Vi venter her så længe.</string>
<string name="confirm_email_didnt_get">Modtog intet link?</string>
<string name="resend">Send igen</string>
<string name="open_email_app">Åben email-app</string>
<string name="resent_email">Bekræftelses-email sendt</string>
<string name="open_email_app">Åbn e-mail app</string>
<string name="resent_email">Bekræftelsesmail sendt</string>
<string name="compose_hint">Angiv eller indsæt, hvad du tænker på</string>
<string name="content_warning">Indholdsadvarsel</string>
<string name="save">Gem</string>
<string name="add_alt_text">Tilføj alternativ tekst</string>
<string name="visibility_public">Offentlig</string>
<string name="visibility_followers_only">Kun følgere</string>
<string name="skip">Spring over</string>
<string name="notification_type_follow">Nye følgere</string>
<string name="visibility_followers_only">Kun Følgere</string>
<string name="visibility_private">Kun nævnte personer</string>
<string name="recent_searches">Nylige</string>
<string name="skip">Overspring</string>
<string name="notification_type_follow">Nye Følgere</string>
<string name="notification_type_favorite">Favoritmarkeringer</string>
<string name="notification_type_reblog">Fremhævninger</string>
<string name="notification_type_mention">Omtaler</string>
<string name="notification_type_poll">Afstemninger</string>
<string name="choose_account">Vælg konto</string>
<string name="err_not_logged_in">Log venligst ind på Mastodon først</string>
<string name="media_attachment_unsupported_type">Filen %s er af en type der ikke understøttes</string>
<string name="media_attachment_too_big">Størrelsen på filen %1$s overskrider grænsen på %2$s MB</string>
<string name="err_not_logged_in">Log ind på Mastodon først</string>
<plurals name="cant_add_more_than_x_attachments">
<item quantity="one">Maks. %d medievedhæftning kan tilføjes</item>
<item quantity="other">Maks. %d medievedhæftninger kan tilføjes</item>
</plurals>
<string name="media_attachment_unsupported_type">Filen %s er af en uunderstøttet type</string>
<string name="media_attachment_too_big">Filen %1$s overskrider begrænsningen på %2$s MB</string>
<string name="settings_theme">Udseende</string>
<string name="theme_auto">Brug enhedens indstillinger for udseende</string>
<string name="theme_light">Lys</string>
<string name="theme_dark">Mørk</string>
<string name="settings_behavior">Opførsel</string>
<string name="settings_gif">Spil animerede avatarer og emoji</string>
<string name="settings_behavior">Adfærd</string>
<string name="settings_gif">Afspil animerede avatarer og emojier</string>
<string name="settings_custom_tabs">Benyt in-app browser</string>
<string name="settings_notifications">Meddelelser</string>
<string name="settings_notifications">Notifikationer</string>
<string name="settings_contribute">Bidrag til Mastodon</string>
<string name="settings_tos">Vilkår og Betingelser</string>
<string name="settings_privacy_policy">Privatlivspolitik</string>
<string name="settings_tos">Tjenestevilkår</string>
<string name="settings_privacy_policy">Fortrolighedspolitik</string>
<string name="settings_clear_cache">Ryd mediecache</string>
<string name="settings_app_version">Mastodon til Android v%1$s (%2$d)</string>
<string name="media_cache_cleared">Mediecache ryddet</string>
<string name="confirm_log_out">Log ud af %s?</string>
<string name="sensitive_content_explain">Forfatteren markerede dette medie som sensitivt.</string>
<string name="avatar_description">Gå til %ss profil</string>
<string name="more_options">Flere muligheder</string>
<string name="new_post">Nyt indlæg</string>
<string name="button_reply">Svar</string>
<string name="button_reblog">Fremhæv</string>
<string name="button_favorite">Favorit</string>
<string name="button_favorite">Gør til favorit</string>
<string name="button_share">Del</string>
<string name="media_no_description">Medier uden beskrivelse</string>
<string name="add_media">Tilføj medier</string>
@@ -198,6 +237,7 @@
<string name="media_viewer">Mediefremviser</string>
<string name="follow_user">Følg %s</string>
<string name="unfollowed_user">Følg ikke længere %s</string>
<string name="followed_user">Du følger nu %s</string>
<string name="following_user_requested">Anmodede om at følge %s</string>
<string name="open_in_browser">Åbn i browser</string>
<string name="hide_boosts_from_user">Skjul fremhævninger fra %s</string>
@@ -207,7 +247,7 @@
<string name="clear">Ryd</string>
<string name="profile_header">Overskriftsbillede</string>
<string name="profile_picture">Profilbillede</string>
<string name="reorder">Omarranger</string>
<string name="reorder">Omarrangér</string>
<string name="download">Download</string>
<string name="permission_required">Tilladelse kræves</string>
<string name="storage_permission_to_download">Appen skal have adgang til din lagerplads for at gemme denne fil.</string>
@@ -215,7 +255,13 @@
<string name="error_saving_file">Fejl under lagring af fil</string>
<string name="file_saved">Fil gemt</string>
<string name="downloading">Downloader…</string>
<string name="no_app_to_handle_action">Ingen app til at håndtere denne handling</string>
<string name="local_timeline">Lokalt</string>
<string name="trending_posts_info_banner">Her er de indlæg, som vinder indpas på tværs af Mastodon.</string>
<string name="trending_links_info_banner">Her er de nyheder, der bliver talt om på Mastodon.</string>
<!-- %s is the server domain -->
<string name="local_timeline_info_banner">Disse er alle indlæg fra alle brugere på din server (%s).</string>
<string name="recommended_accounts_info_banner">Baseret på andre, du følger, vil du måske synes om disse konti.</string>
<string name="see_new_posts">Se nye indlæg</string>
<string name="load_missing_posts">Indlæs manglende indlæg</string>
<string name="follow_back">Følg Tilbage</string>
@@ -236,14 +282,14 @@
<item quantity="other">%,d favoritmarkeringer</item>
</plurals>
<plurals name="x_reblogs">
<item quantity="one">%,d indlæg</item>
<item quantity="other">%,d indlæg</item>
<item quantity="one">%,d fremhævning</item>
<item quantity="other">%,d fremhævninger</item>
</plurals>
<string name="timestamp_via_app">%1$s via %2$s</string>
<string name="time_now">nu</string>
<string name="edit_history">Rediger historik</string>
<string name="last_edit_at_x">Senest ændret: %s</string>
<string name="time_just_now">lige nu</string>
<string name="time_just_now">netop nu</string>
<plurals name="x_seconds_ago">
<item quantity="one">%d sekund siden</item>
<item quantity="other">%d sekunder siden</item>
@@ -252,11 +298,11 @@
<item quantity="one">%d minut siden</item>
<item quantity="other">%d minutter siden</item>
</plurals>
<string name="edited_timestamp">redigerede %s</string>
<string name="edited_timestamp">redigeret %s</string>
<string name="edit_original_post">Oprindeligt indlæg</string>
<string name="edit_text_edited">Tekst redigeret</string>
<string name="edit_spoiler_added">Indholdsadvarsel tilføjet</string>
<string name="edit_spoiler_edited">Indholdsadvarsel tilføjet</string>
<string name="edit_spoiler_edited">Indholdsadvarsel redigeret</string>
<string name="edit_spoiler_removed">Indholdsadvarsel fjernet</string>
<string name="edit_poll_added">Afstemning tilføjet</string>
<string name="edit_poll_edited">Afstemning redigeret</string>
@@ -264,11 +310,11 @@
<string name="edit_media_added">Medier tilføjet</string>
<string name="edit_media_removed">Medier fjernet</string>
<string name="edit_media_reordered">Medie omarrangeret</string>
<string name="edit_marked_sensitive">Marker som følsom</string>
<string name="edit_marked_not_sensitive">Markeret ikke følsom</string>
<string name="edit_marked_sensitive">Markeret sensitivt</string>
<string name="edit_marked_not_sensitive">Markeret ikke-sensitivt</string>
<string name="edit_multiple_changed">Indlæg redigeret</string>
<string name="edit">Rediger</string>
<string name="discard_changes">Fortryd ændringer?</string>
<string name="edit">Redigér</string>
<string name="discard_changes">Kassér ændringer?</string>
<string name="upload_failed">Upload mislykkedes</string>
<string name="file_size_bytes">%d bytes</string>
<string name="file_size_kb">%.2f KB</string>
@@ -279,20 +325,21 @@
<!-- %s is version like 1.2.3 -->
<!-- %s is file size -->
<string name="download_update">Download (%s)</string>
<string name="install_update">Installer</string>
<string name="privacy_policy_title">Dit privatliv</string>
<string name="privacy_policy_subtitle">Selvom Mastodon-appen ikke indsamler data, kan den server du tilmelder dig gennem, have en anden politik.\n\nHvis du er uenig i politikken for %s, kan du gå tilbage og vælge en anden server.</string>
<string name="install_update">Installér</string>
<string name="privacy_policy_title">Din fortrolighed</string>
<string name="privacy_policy_subtitle">Selvom Mastodon-appen ikke indsamler data, kan serveren, via hvilken man tilmelder sig, have en anden politik.\n\nEr man uenig i politikken for %s, kan man gå tilbage og vælge en anden server.</string>
<string name="i_agree">Jeg accepterer</string>
<string name="empty_list">Denne liste er tom</string>
<string name="instance_signup_closed">Denne server er ikke åben for nye tilmeldinger.</string>
<string name="instance_signup_closed">Denne server accepterer ikke nye tilmeldinger.</string>
<string name="text_copied">Kopieret til udklipsholderen</string>
<string name="add_bookmark">Bogmærk</string>
<string name="remove_bookmark">Fjern bogmærke</string>
<string name="bookmarks">Bogmærker</string>
<string name="your_favorites">Dine Favoritter</string>
<string name="login_title">Velkommen tilbage</string>
<string name="login_subtitle">Log ind med serveren hvor du oprettede din bruger.</string>
<string name="login_subtitle">Log ind med serveren, på hvilken din konto blev oprettet.</string>
<string name="server_url">Server-URL</string>
<string name="signup_random_server_explain">En server baseret på dit sprog vælges, hvis du fortsætter uden selv at vælge.</string>
<string name="server_filter_any_language">Hvilket som helst sprog</string>
<string name="server_filter_instant_signup">Øjeblikkelig tilmelding</string>
<string name="server_filter_manual_review">Manuel evaluering</string>
@@ -305,6 +352,7 @@
<string name="server_filter_region_oceania">Oceania</string>
<string name="not_accepting_new_members">Ikke åben for nye medlemmer</string>
<string name="category_special_interests">Særlige Interesser</string>
<string name="signup_passwords_dont_match">Adgangskoder matcher ikke</string>
<string name="pick_server_for_me">Vælg for mig</string>
<string name="profile_add_row">Tilføj række</string>
<string name="profile_setup">Profilopsætning</string>
@@ -313,12 +361,14 @@
<string name="popular_on_mastodon">Populært på Mastodon</string>
<string name="follow_all">Følg alle</string>
<string name="server_rules_disagree">Ikke enig</string>
<string name="privacy_policy_explanation">TL;DR: Vi indsamler eller behandler ikke noget.</string>
<!-- %s is server domain -->
<string name="server_policy_disagree">Uenig med %s</string>
<string name="profile_bio">Biografi</string>
<!-- Shown in a progress dialog when you tap "follow all" -->
<string name="sending_follows">Følger brugere …</string>
<!-- %1$s is server domain, %2$s is email domain. You can reorder these placeholders to fit your language better. -->
<string name="signup_email_domain_blocked">%1$s tillader ikke tilmeldinger fra %2$s. Prøv en anden eller &lt;a&gt;vælg en anden server&lt;/a&gt;.</string>
<string name="spoiler_show">Vis alligevel</string>
<string name="spoiler_hide">Genskjul</string>
<string name="poll_multiple_choice">Vælg en eller flere</string>
@@ -331,21 +381,127 @@
<string name="show">Vis</string>
<string name="hide">Skjul</string>
<string name="join_default_server">Tilmeld dig %s</string>
<string name="pick_server">Vælg en anden server</string>
<string name="signup_or_login">eller</string>
<string name="learn_more">Få mere at vide</string>
<string name="welcome_to_mastodon">Velkommen til Mastodon</string>
<string name="welcome_paragraph1">Mastodon er et decentraliseret socialt netværk, hvilket betyder at ingen enkelt virksomhed styrer det. Det består af mange uafhængige servere, alle forbundet sammen.</string>
<string name="what_are_servers">Hvad er servere?</string>
<string name="welcome_paragraph2"><![CDATA[Alle Mastodon-konti har plads på en server. Hver server har sine egne værdier, regler og administratorer. Ligegyldigt hvilken server du vælger, kan du følge og interagere med folk på alle andre servere.]]></string>
<string name="opening_link">Åbner link…</string>
<string name="link_not_supported">Linket er ikke understøttet i appen</string>
<string name="log_out_all_accounts">Log ud af alle konti</string>
<string name="confirm_log_out_all_accounts">Log ud af alle konti?</string>
<string name="retry">Forsøg igen</string>
<string name="post_failed">Mislykkedes at indsende indlæg</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_description_image">%s billede</string>
<string name="attachment_description_video">%s video</string>
<string name="attachment_description_audio">%s lyd</string>
<string name="attachment_description_unknown">%s fil</string>
<string name="attachment_type_image">Billede</string>
<string name="attachment_type_video">Video</string>
<string name="attachment_type_audio">Lyd</string>
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">Fil</string>
<string name="attachment_x_percent_uploaded">%d%% uploadet</string>
<string name="add_poll_option">Tilføj afstemningsmulighed</string>
<string name="poll_length">Afstemningslængde</string>
<string name="poll_style">Stil</string>
<string name="compose_poll_single_choice">Vælg én</string>
<string name="compose_poll_multiple_choice">Multivalg</string>
<string name="delete_poll_option">Slet afstemningsvalg</string>
<string name="poll_style_title">Afstemningsstil</string>
<string name="alt_text">Alt text</string>
<string name="help">Hjælp</string>
<string name="what_is_alt_text">Hvad er alt tekst?</string>
<string name="alt_text_help">Alt tekst vil sige billedbeskrivelser til personer med synshandikap, forbindelser med lav båndbredde eller dem, som søger ekstra kontekst.\n\nMan kan forbedre tilgængelighed og forståelse for alle ved at skrive klar, kortfattet og objektiv alt-tekst.\n\n<ul><li>Fang vigtige elementer</li>\n<li>Opsummér tekst i billeder</li>\n<li>Brug regulær sætningsstruktur</li>\n<li>Undgå overflødig information</li>\n<li>Fokus på tendenser og vigtige fund i kompleks grafik (såsom diagrammer/kort)</li></ul></string>
<string name="edit_post">Redigere opslag</string>
<string name="no_verified_link">Intet bekræftet link</string>
<string name="compose_autocomplete_emoji_empty">Gennemse emoji</string>
<string name="compose_autocomplete_users_empty">Find den, man leder efter</string>
<string name="no_search_results">Ingen resultater for disse søgeord</string>
<string name="language">Sprog</string>
<string name="language_default">Standard</string>
<string name="language_system">System</string>
<string name="language_detecting">Detektere sprog</string>
<string name="language_cant_detect">Kan ikke detektere sprog</string>
<string name="language_detected">Detekteret</string>
<string name="media_hidden">Medie skjult</string>
<string name="post_hidden">Indlæg skjult</string>
<string name="report_title_post">Anmeld indlæg</string>
<string name="forward_report_explanation">Kontoen er fra en anden server. Send også en anonymiseret kopi af anmeldelsen dertil?</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">Videresend til %s</string>
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<string name="reported">Anmeldt</string>
<string name="report_unfollow_explanation">For ikke længere at se vedkommendes indlæg i hjemmefeedet, ophør med at følge.</string>
<string name="muted_user">Tavsgjorde %s</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="count_three">Tre</string>
<string name="count_four">Fire</string>
<string name="alt_text_reminder_post_anyway">Indlæg</string>
<!-- %s is the username -->
<string name="unfollow_confirmation">Følg ikke længere %s?</string>
<string name="filter_active">Aktiv</string>
<string name="filter_inactive">Inaktiv</string>
<string name="settings_add_filter">Tilføj filter</string>
<string name="settings_edit_filter">Redigér filter</string>
<string name="settings_filter_duration">Varighed</string>
<string name="settings_filter_muted_words">Tavsgjorte (skjulte) ord</string>
<string name="settings_filter_context">Tavsgør fra</string>
<string name="settings_filter_show_cw">Vis med indholdsadvarsel</string>
<string name="settings_filter_show_cw_explanation">Viser stadig indlæg matchende dette filter, men bag en indholdsadvarsel</string>
<string name="settings_delete_filter">Slet filter</string>
<string name="filter_duration_forever">For evigt</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="settings_filter_ends">Slutter %s</string>
<plurals name="settings_x_muted_words">
<item quantity="one">%d tavsgjort (skjult) ord/sætning</item>
<item quantity="other">%d tavsgjorte (skjulte) ord/sætninger</item>
</plurals>
<string name="selection_2_options">%1$s og %2$s</string>
<string name="selection_3_options">%1$s, %2$s og %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s og %3$d flere</string>
<string name="filter_context_home_lists">Hjem og lister</string>
<string name="filter_context_notifications">Notifikationer</string>
<string name="filter_context_public_timelines">Offentlige tidslinjer</string>
<string name="filter_context_threads_replies">Tråde og svar</string>
<string name="filter_context_profiles">Profiler</string>
<string name="settings_filter_title">Titel</string>
<string name="settings_delete_filter_title">Slet filter “%s”?</string>
<string name="settings_delete_filter_confirmation">Dette filter slettes fra din konto på alle enheder.</string>
<string name="add_muted_word">Tilføj tavsgjort (skjult) ord</string>
<string name="edit_muted_word">Redigér tavsgjort (skjult) ord</string>
<string name="add">Tilføj</string>
<string name="filter_word_or_phrase">Ord/sætning</string>
<string name="filter_add_word_help">Ord er versalfølsomme og matcher kun fulde ord.\n\nFiltreres nøgleordet “Apple,” vil det skjule indlæg indeholdende “apple” eller “aPpLe”, men ikke “pineapple”.</string>
<string name="settings_delete_filter_word">Slet ordet “%s”?</string>
<string name="enter_selection_mode">Vælg</string>
<string name="select_all">Vælg alle</string>
<string name="settings_filter_duration_title">Filtervarighed</string>
<string name="filter_duration_custom">Tilpasset</string>
<plurals name="settings_delete_x_filter_words">
<item quantity="one">Slet %d ord?</item>
<item quantity="other">Slet %d ord?</item>
</plurals>
<plurals name="x_items_selected">
<item quantity="one">%d valgt</item>
<item quantity="other">%d valgt</item>
</plurals>
<string name="required_form_field_blank">Obligatorisk felt</string>
<string name="filter_word_already_in_list">Allerede på listen</string>
<string name="app_update_ready">App-opdatering klar</string>
<string name="app_update_version">Version %s</string>
<string name="downloading_update">Downloader (%d%%)</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="post_matches_filter_x">Matcher filter “%s”</string>
<string name="search_mastodon">Søg i Mastodon</string>
<string name="clear_all">Ryd alle</string>
<string name="search_open_url">Åbn URL i Mastodon</string>
<string name="posts_matching_hashtag">Indlæg med “%s”</string>
<!-- Shown in the post header. Please keep it short -->
</resources>

View File

@@ -7,8 +7,8 @@
<string name="not_a_mastodon_instance">%s scheint kein Mastodon-Server zu sein.</string>
<string name="ok">OK</string>
<string name="preparing_auth">Authentifizierung wird vorbereitet </string>
<string name="finishing_auth">Authentifizierung wird abgeschlossen …</string>
<string name="user_boosted">%s hat geteilt</string>
<string name="finishing_auth">Authentisierung wird abgeschlossen …</string>
<string name="user_boosted">%s teilte</string>
<string name="in_reply_to">Als Antwort auf %s</string>
<string name="notifications">Benachrichtigungen</string>
<string name="user_followed_you">%s folgt dir jetzt</string>
@@ -143,7 +143,7 @@
<string name="report_choose_posts_subtitle">Alles Zutreffende auswählen</string>
<string name="report_comment_title">Gibt es weitere Anmerkungen, von denen wir wissen sollten?</string>
<string name="report_comment_hint">Ergänzende Hinweise</string>
<string name="sending_report">Meldung wird verschickt …</string>
<string name="sending_report">Meldung wird gesendet …</string>
<string name="report_sent_title">Danke für deine Meldung, wir werden uns damit beschäftigen.</string>
<string name="report_sent_subtitle">Während wir den Vorfall überprüfen, kannst du gegen %s weitere Maßnahmen ergreifen:</string>
<string name="unfollow_user">%s entfolgen</string>
@@ -240,7 +240,7 @@
<string name="followed_user">Du folgst nun %s</string>
<string name="following_user_requested">Deine Follower-Anfrage an %s wurde gesendet</string>
<string name="open_in_browser">Im Browser öffnen</string>
<string name="hide_boosts_from_user">Geteilte Beiträge von %s verstecken</string>
<string name="hide_boosts_from_user">Geteilte Beiträge von %s ausblenden</string>
<string name="show_boosts_from_user">Geteilte Beiträge von %s anzeigen</string>
<string name="signup_reason">Warum möchtest du beitreten?</string>
<string name="signup_reason_note">Das erleichtert uns die Prüfung deiner Anmeldung.</string>
@@ -250,7 +250,7 @@
<string name="reorder">Neu sortieren</string>
<string name="download">Herunterladen</string>
<string name="permission_required">Berechtigung erforderlich</string>
<string name="storage_permission_to_download">Die App benötigt Zugriff auf den Speicher deines Gerätes, um diese Datei zu speichern.</string>
<string name="storage_permission_to_download">Die App benötigt Zugriff auf den Speicher deines Geräts, um diese Datei zu speichern.</string>
<string name="open_settings">Einstellungen öffnen</string>
<string name="error_saving_file">Fehler beim Speichern der Datei</string>
<string name="file_saved">Datei gespeichert</string>
@@ -278,8 +278,8 @@
<item quantity="other">%,d folge ich</item>
</plurals>
<plurals name="x_favorites">
<item quantity="one">%,d × favorisiert</item>
<item quantity="other">%,d × favorisiert</item>
<item quantity="one">einmal favorisiert</item>
<item quantity="other">%,d-mal favorisiert</item>
</plurals>
<plurals name="x_reblogs">
<item quantity="one">%,d geteilter Beitrag</item>
@@ -332,7 +332,7 @@
<string name="empty_list">Diese Liste ist leer</string>
<string name="instance_signup_closed">Dieser Server akzeptiert keine neuen Registrierungen.</string>
<string name="text_copied">In die Zwischenablage kopiert</string>
<string name="add_bookmark">Lesezeichen hinzufügen</string>
<string name="add_bookmark">Lesezeichen setzen</string>
<string name="remove_bookmark">Lesezeichen entfernen</string>
<string name="bookmarks">Lesezeichen</string>
<string name="your_favorites">Deine Favoriten</string>

View File

@@ -329,10 +329,23 @@
<string name="sk_hashtag_timeline_local_only_switch">Nur lokale Beiträge anzeigen\?</string>
<string name="sk_add_timeline_tag_error_empty">Hashtag darf nicht leer sein</string>
<string name="sk_advanced_options_hide">Erweiterte Optionen ausblenden</string>
<string name="sk_search_fediverse">Fediverse durchsuchen</string>
<string name="sk_search_fediverse">Fediverse durchsuchen</string>
<string name="sk_switch_timeline">Timeline wechseln</string>
<string name="sk_settings_instance">Instanz</string>
<string name="sk_disable_pill_shaped_active_indicator">Pillen-förmigen Indikator für aktiven Tab deaktivieren</string>
<string name="sk_settings_true_black">Stockfinster-Modus</string>
<string name="sk_gif_badge">GIF</string>
<string name="sk_settings_unifiedpush">UnifiedPush verwenden</string>
<string name="sk_settings_unifiedpush_no_distributor">Kein Verteiler gefunden</string>
<string name="sk_settings_unifiedpush_no_distributor_body">Damit UnifiedPush-Benachrichtigungen funktionieren, muss ein Verteiler installiert sein. Mehr Informationen auf https://unifiedpush.org</string>
<string name="sk_settings_display_pronouns_in_timelines">Pronomen in der Timeline anzeigen</string>
<string name="sk_settings_continues_playback">Tonwiedergabe überlagern</string>
<string name="sk_settings_continues_playback_summary">Musik im Hintergrund nicht pausieren, wenn in der App Medien abgespielt werden</string>
<string name="sk_settings_unifiedpush_choose">Verteiler auswählen</string>
<string name="sk_settings_display_pronouns_in_threads">Pronomen in Threads anzeigen</string>
<string name="sk_settings_display_pronouns_in_user_listings">Pronomen in User-Auflistungen anzeigen</string>
<string name="sk_tab_home">Start</string>
<string name="sk_tab_search">Suche</string>
<string name="sk_tab_notifications">Benachrichtigungen</string>
<string name="sk_tab_profile">Profil</string>
</resources>

View File

@@ -4,12 +4,18 @@
<string name="next">Siguiente</string>
<string name="loading_instance">Recuperando información del servidor…</string>
<string name="error">Error</string>
<string name="not_a_mastodon_instance">%s no parece ser un servidor de Mastodon.</string>
<string name="ok">Aceptar</string>
<string name="preparing_auth">Preparando para autenticación…</string>
<string name="finishing_auth">Finalizando autenticación…</string>
<string name="user_boosted">%s retooteó</string>
<string name="in_reply_to">En respuesta a %s</string>
<string name="notifications">Notificaciones</string>
<string name="user_followed_you">%s te ha seguido</string>
<string name="user_sent_follow_request">%s te envió una solicitud de seguimiento</string>
<string name="user_favorited">%s ha marcado tu publicación como favorita</string>
<string name="notification_boosted">%s ha impulsado tu publicación</string>
<string name="poll_ended">Ver los resultados de una encuesta en la que votaste</string>
<string name="share_toot_title">Compartir</string>
<string name="settings">Ajustes</string>
<string name="publish">Publicar</string>
@@ -31,6 +37,7 @@
<string name="button_follow">Seguir</string>
<string name="button_following">Siguiendo</string>
<string name="edit_profile">Editar perfil</string>
<string name="share_user">Compartir perfil</string>
<string name="mute_user">Silenciar a %s</string>
<string name="unmute_user">Dejar de silenciar a %s</string>
<string name="block_user">Bloquear a %s</string>
@@ -78,6 +85,10 @@
<item quantity="one">%d día restante</item>
<item quantity="other">%d días restantes</item>
</plurals>
<plurals name="x_votes">
<item quantity="one">%,d voto</item>
<item quantity="other">%,d votos</item>
</plurals>
<string name="poll_closed">Cerrado</string>
<string name="confirm_mute_title">Silenciar cuenta</string>
<string name="confirm_mute">Confirmar para silenciar a %s</string>
@@ -96,27 +107,35 @@
<string name="button_blocked">Bloqueado</string>
<string name="action_vote">Votar</string>
<string name="delete">Eliminar</string>
<string name="confirm_delete_title">Eliminar publicación</string>
<string name="confirm_delete">¿Confirma que quiere eliminar esta publicación?</string>
<string name="deleting">Eliminando…</string>
<string name="notification_channel_audio_player">Reproducción de audio</string>
<string name="play">Reproducir</string>
<string name="pause">Pausar</string>
<string name="log_out">Cerrar sesión</string>
<string name="add_account">Añadir cuenta</string>
<string name="search_hint">Buscar</string>
<string name="hashtags">Etiquetas</string>
<string name="news">Noticias</string>
<string name="for_you">Para ti</string>
<string name="all_notifications">Todo</string>
<string name="mentions">Menciones</string>
<plurals name="x_people_talking">
<item quantity="one">%d persona está hablando</item>
<item quantity="other">%d personas están hablando</item>
</plurals>
<string name="report_title">Denunciar a %s</string>
<string name="report_choose_reason">¿Qué hay de malo en esta publicación?</string>
<string name="report_choose_reason_account">¿Qué hay de malo con %s?</string>
<string name="report_choose_reason_subtitle">Seleccione la mejor opción</string>
<string name="report_reason_personal">No me gusta</string>
<string name="report_reason_personal_subtitle">No es algo que quieras ver</string>
<string name="report_reason_spam">Es spam</string>
<string name="report_reason_spam_subtitle">Enlaces maliciosos, interacciones falsas o respuestas repetitivas</string>
<string name="report_reason_violation">Viola las reglas del servidor</string>
<string name="report_reason_violation_subtitle">Eres consciente de que infringe normas específicas</string>
<string name="report_reason_other">Es otra cosa</string>
<string name="report_reason_other_subtitle">El problema no encaja en otras categorías</string>
<string name="report_choose_rule">¿Qué normas se están violando?</string>
<string name="report_choose_rule_subtitle">Selecciona todos los que correspondan</string>
@@ -125,8 +144,14 @@
<string name="report_comment_title">¿Hay algo más que deberíamos saber?</string>
<string name="report_comment_hint">Comentarios adicionales</string>
<string name="sending_report">Enviando denuncia…</string>
<string name="report_sent_title">Gracias por reportar, lo revisaremos.</string>
<string name="report_sent_subtitle">Mientras revisamos esto, puedes tomar medidas contra %s:</string>
<string name="unfollow_user">Dejar de seguir a %s</string>
<string name="unfollow">Dejar de seguir</string>
<string name="mute_user_explain">No verás sus mensajes. Todavía pueden seguirte y ver tus mensajes y no sabrán que están silenciados.</string>
<string name="block_user_explain">No verás sus mensajes. No podrán ver tus publicaciones ni seguirte. Podrán decir que están bloqueados.</string>
<string name="report_personal_title">¿No quiere ver esto?</string>
<string name="report_personal_subtitle">Aquí están tus opciones para controlar lo que ves en Mastodon:</string>
<string name="back">Atrás</string>
<string name="search_communities">Nombre del servidor o URL</string>
<string name="instance_rules_title">Reglas del servidor</string>
@@ -153,14 +178,19 @@
<string name="category_tech">Tecnología</string>
<string name="confirm_email_title">Revisa tu bandeja de entrada</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">Pulsa el enlace que te hemos enviado para verificar %s. Esperaremos aquí mismo.</string>
<string name="confirm_email_didnt_get">¿No recibiste un enlace?</string>
<string name="resend">Reenviar</string>
<string name="open_email_app">Abrir aplicación de email</string>
<string name="resent_email">Correo de confirmación enviado</string>
<string name="compose_hint">Escribe o pega lo que tengas en mente</string>
<string name="content_warning">Advertencia de contenido</string>
<string name="save">Guardar</string>
<string name="add_alt_text">Añadir texto alternativo</string>
<string name="visibility_public">Público</string>
<string name="visibility_followers_only">Sólo seguidores</string>
<string name="visibility_private">Solo personas mencionadas</string>
<string name="recent_searches">Recientes</string>
<string name="skip">Saltar</string>
<string name="notification_type_follow">Nuevos seguidores</string>
<string name="notification_type_favorite">Favoritos</string>
@@ -169,8 +199,14 @@
<string name="notification_type_poll">Encuestas</string>
<string name="choose_account">Elegir cuenta</string>
<string name="err_not_logged_in">Por favor inicie sesión primero en Mastodon</string>
<plurals name="cant_add_more_than_x_attachments">
<item quantity="one">No puede añadir más de %d archivo adjunto</item>
<item quantity="other">No puede añadir más de %d archivos adjuntos</item>
</plurals>
<string name="media_attachment_unsupported_type">El archivo %s es de un tipo no compatible</string>
<string name="media_attachment_too_big">El archivo %1$s supera el límite de tamaño de %2$s MB</string>
<string name="settings_theme">Apariencia</string>
<string name="theme_auto">Usar apariencia del dispositivo</string>
<string name="theme_light">Claro</string>
<string name="theme_dark">Oscuro</string>
<string name="settings_behavior">Comportamiento</string>
@@ -183,6 +219,9 @@
<string name="settings_clear_cache">Limpiar caché multimedia</string>
<string name="settings_app_version">Mastodon para Android -%1$s (%2$d)</string>
<string name="media_cache_cleared">Caché multimedia borrada</string>
<string name="confirm_log_out">¿Cerrar sesión de %s?</string>
<string name="sensitive_content_explain">El autor ha marcado este medio como sensible.</string>
<string name="avatar_description">Ir al perfil de %s</string>
<string name="more_options">Más opciones</string>
<string name="new_post">Nuevo post</string>
<string name="button_reply">Responder</string>
@@ -198,6 +237,7 @@
<string name="media_viewer">Visor de medios</string>
<string name="follow_user">Seguir a %s</string>
<string name="unfollowed_user">No sigues a %s</string>
<string name="followed_user">Ahora estás siguiendo a %s</string>
<string name="following_user_requested">%s solicitó seguirte</string>
<string name="open_in_browser">Abrir en el navegador</string>
<string name="hide_boosts_from_user">Ocultar retoots de %s</string>
@@ -215,7 +255,13 @@
<string name="error_saving_file">Error al guardar el archivo</string>
<string name="file_saved">Archivo guardado</string>
<string name="downloading">Descargando…</string>
<string name="no_app_to_handle_action">No hay ninguna aplicación para manejar esta acción</string>
<string name="local_timeline">Local</string>
<string name="trending_posts_info_banner">Estas son las publicaciones que están ganando tracción a través de Mastodon.</string>
<string name="trending_links_info_banner">Estas son las noticias de las que se habla en Mastodon.</string>
<!-- %s is the server domain -->
<string name="local_timeline_info_banner">Estos son todos los mensajes de todos los usuarios de tu servidor (%s).</string>
<string name="recommended_accounts_info_banner">Es posible que te gusten estas cuentas basadas en otras que sigues.</string>
<string name="see_new_posts">Ver nuevas publicaciones</string>
<string name="load_missing_posts">Cargar publicaciones faltantes</string>
<string name="follow_back">Seguir de vuelta</string>
@@ -293,6 +339,7 @@
<string name="login_title">Qué bueno verle de nuevo</string>
<string name="login_subtitle">Inicie sesión con el servidor donde creó su cuenta.</string>
<string name="server_url">URL del servidor</string>
<string name="signup_random_server_explain">Seleccionaremos un servidor basado en tu idioma si continúas sin hacer una selección.</string>
<string name="server_filter_any_language">Cualquier idioma</string>
<string name="server_filter_instant_signup">Registro instantáneo</string>
<string name="server_filter_manual_review">Revisión manual</string>
@@ -305,6 +352,7 @@
<string name="server_filter_region_oceania">Oceanía</string>
<string name="not_accepting_new_members">No se aceptan nuevos miembros</string>
<string name="category_special_interests">Intereses especiales</string>
<string name="signup_passwords_dont_match">Las contraseñas no coinciden</string>
<string name="pick_server_for_me">Elegir por mí</string>
<string name="profile_add_row">Añadir fila</string>
<string name="profile_setup">Configuración del perfil</string>
@@ -313,12 +361,14 @@
<string name="popular_on_mastodon">Popular en Mastodon</string>
<string name="follow_all">Seguir a todos</string>
<string name="server_rules_disagree">En desacuerdo</string>
<string name="privacy_policy_explanation">Resumen: No recogemos ni procesamos nada.</string>
<!-- %s is server domain -->
<string name="server_policy_disagree">En desacuerdo con %s</string>
<string name="profile_bio">Biografía</string>
<!-- Shown in a progress dialog when you tap "follow all" -->
<string name="sending_follows">Siguiendo usuarios…</string>
<!-- %1$s is server domain, %2$s is email domain. You can reorder these placeholders to fit your language better. -->
<string name="signup_email_domain_blocked">%1$s no permite registros de %2$s. Prueba uno diferente o &lt;a&gt;elige un servidor diferente&lt;/a&gt;.</string>
<string name="spoiler_show">Mostrar de todos modos</string>
<string name="spoiler_hide">Volver a ocultar</string>
<string name="poll_multiple_choice">Escoge una o más</string>
@@ -338,15 +388,190 @@
<string name="welcome_paragraph1">Mastodon es una red social descentralizada, lo que significa que no la controla una sola compañía. Está formada por muchos servidores independientes, todos juntos conectados.</string>
<string name="what_are_servers">¿Qué son los servidores?</string>
<string name="welcome_paragraph2"><![CDATA[Cada cuenta de Mastodon está alojada en un servidor — cada uno con sus propios valores, reglas y administradores. No importa cual elijas, puede seguir e interactuar con personas en cualquier servidor.]]></string>
<string name="opening_link">Abriendo enlace…</string>
<string name="link_not_supported">Este enlace no es compatible con la aplicación</string>
<string name="log_out_all_accounts">Cerrar sesión en todas las cuentas</string>
<string name="confirm_log_out_all_accounts">¿Cerrar sesión de todas las cuentas?</string>
<string name="retry">Reintentar</string>
<string name="post_failed">Error al enviar la publicación</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_description_image">Imagen %s</string>
<string name="attachment_description_video">Vídeo %s</string>
<string name="attachment_description_audio">Audio %s</string>
<string name="attachment_description_unknown">Archivo %s</string>
<string name="attachment_type_image">Imagen</string>
<string name="attachment_type_video">Vídeo</string>
<string name="attachment_type_audio">Audio</string>
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">Archivo</string>
<string name="attachment_x_percent_uploaded">%d%% subido</string>
<string name="add_poll_option">Añadir opción de encuesta</string>
<string name="poll_length">Longitud de la encuesta</string>
<string name="poll_style">Estilo</string>
<string name="compose_poll_single_choice">Elige uno</string>
<string name="compose_poll_multiple_choice">Múltiples opciones</string>
<string name="delete_poll_option">Borrar opción de encuesta</string>
<string name="poll_style_title">Estilo de encuesta</string>
<string name="alt_text">Texto alternativo</string>
<string name="help">Ayuda</string>
<string name="what_is_alt_text">¿Qué es el texto alternativo?</string>
<string name="edit_post">Editar publicación</string>
<string name="no_verified_link">Enlace no verificado</string>
<string name="compose_autocomplete_emoji_empty">Explorar emojis</string>
<string name="compose_autocomplete_users_empty">Encuentra quién estás buscando</string>
<string name="no_search_results">No se pudo encontrar nada para estos términos de búsqueda</string>
<string name="language">Idioma</string>
<string name="language_default">Predeterminado</string>
<string name="language_system">Sistema</string>
<string name="language_detecting">Detectando idioma</string>
<string name="language_cant_detect">No se puede detectar el idioma</string>
<string name="language_detected">Detectado</string>
<string name="media_hidden">Medios ocultos</string>
<string name="post_hidden">Publicación ocultada</string>
<string name="report_title_post">Reportar publicación</string>
<string name="forward_report_explanation">La cuenta es de otro servidor. ¿Enviar también una copia anónima de este informe?</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">Reenviar a %s</string>
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<string name="reported">Reportado</string>
<string name="muted_user">Silenciado %s</string>
<string name="report_sent_already_blocked">Ya has bloqueado a este usuario, así que no tienes nada más que hacer mientras revisamos tu informe.</string>
<string name="report_personal_already_blocked">Ya has bloqueado a este usuario, así que no tienes nada más que hacer.\n\n¡Gracias por ayudar a mantener Mastodon un lugar seguro para todos!</string>
<string name="blocked_user">Bloqueado %s</string>
<string name="mark_all_notifications_read">Marcar todo como leído</string>
<string name="settings_display">Visualización</string>
<string name="settings_filters">Filtros</string>
<string name="settings_server_explanation">Resumen, reglas, moderadores</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<string name="about_app">Acerca de %s</string>
<string name="default_post_language">Idioma predeterminado de la publicación</string>
<string name="settings_alt_text_reminders">Añadir recordatorios de texto alt</string>
<string name="settings_confirm_unfollow">Preguntar antes de dejar de seguir a alguien</string>
<string name="settings_confirm_boost">Preguntar antes de impulsar</string>
<string name="settings_confirm_delete_post">Preguntar antes de eliminar mensajes</string>
<string name="pause_all_notifications">Pausar todo</string>
<string name="pause_notifications_off">Apagado</string>
<string name="notifications_policy_anyone">Cualquiera</string>
<string name="notifications_policy_followed">Personas que te siguen</string>
<string name="notifications_policy_follower">Personas que sigues</string>
<string name="notifications_policy_no_one">Nadie</string>
<string name="settings_notifications_policy">Recibir notificaciones de</string>
<string name="notification_type_mentions_and_replies">Menciones y respuestas</string>
<string name="pause_all_notifications_title">Pausar todas las notificaciones</string>
<plurals name="x_weeks">
<item quantity="one">%d semana</item>
<item quantity="other">%d semanas</item>
</plurals>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="date_at_time">%1$s en %2$s</string>
<string name="today">hoy</string>
<string name="yesterday">ayer</string>
<string name="tomorrow">mañana</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_ends">Termina %s</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_banner">Las notificaciones se reanudarán %s.</string>
<string name="resume_notifications_now">Reanudar ahora</string>
<string name="open_system_notification_settings">Ir a la configuración de notificaciones</string>
<string name="about_server">Acerca de</string>
<string name="server_rules">Reglas</string>
<string name="server_administrator">Administrador</string>
<string name="notifications_disabled_in_system">Active las notificaciones desde la configuración de su dispositivo para ver actualizaciones desde cualquier lugar.</string>
<string name="settings_even_more">Aún más ajustes</string>
<string name="settings_show_cws">Mostrar advertencias de contenido</string>
<plurals name="in_x_seconds">
<item quantity="one">en %d segundo</item>
<item quantity="other">en %d segundos</item>
</plurals>
<plurals name="in_x_minutes">
<item quantity="one">en %d minuto</item>
<item quantity="other">en %d minutos</item>
</plurals>
<plurals name="in_x_hours">
<item quantity="one">en %d hora</item>
<item quantity="other">en %d horas</item>
</plurals>
<plurals name="x_hours_ago">
<item quantity="one">hace %d hora</item>
<item quantity="other">hace %d horas</item>
</plurals>
<string name="alt_text_reminder_title">Falta el texto alt de los medios</string>
<plurals name="alt_text_reminder_x_images">
<item quantity="one">%s de tus imágenes no tiene texto alternativo. ¿Publicar de todos modos?</item>
<item quantity="other">%s de tus imágenes no tienen texto alternativo. ¿Publicar de todos modos?</item>
</plurals>
<plurals name="alt_text_reminder_x_attachments">
<item quantity="one">%s de tus archivos adjuntos multimedia carece de texto alternativo. ¿Publicar de todos modos?</item>
<item quantity="other">%s de tus archivos adjuntos no tienen texto alternativo. ¿Publicar de todos modos?</item>
</plurals>
<string name="count_one">Uno</string>
<string name="count_two">Dos</string>
<string name="count_three">Tres</string>
<string name="count_four">Cuatro</string>
<string name="alt_text_reminder_post_anyway">Publicar</string>
<!-- %s is the username -->
<string name="unfollow_confirmation">¿Dejar de seguir a %s?</string>
<string name="filter_active">Activo</string>
<string name="filter_inactive">Inactivo</string>
<string name="settings_add_filter">Añadir filtro</string>
<string name="settings_edit_filter">Editar filtro</string>
<string name="settings_filter_duration">Duración</string>
<string name="settings_filter_muted_words">Palabras silenciadas</string>
<string name="settings_filter_context">Silenciar de</string>
<string name="settings_filter_show_cw">Mostrar con advertencia de contenido</string>
<string name="settings_filter_show_cw_explanation">Sigue mostrando mensajes que coinciden con este filtro, pero detrás de una advertencia de contenido</string>
<string name="settings_delete_filter">Eliminar filtro</string>
<string name="filter_duration_forever">Siempre</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="settings_filter_ends">Termina %s</string>
<plurals name="settings_x_muted_words">
<item quantity="one">%d palabra o frase silenciada</item>
<item quantity="other">%d palabras o frases silenciadas</item>
</plurals>
<string name="selection_2_options">%1$s y %2$s</string>
<string name="selection_3_options">%1$s, %2$s, y %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s, y %3$d más</string>
<string name="filter_context_home_lists">Inicio y listas</string>
<string name="filter_context_notifications">Notificaciones</string>
<string name="filter_context_threads_replies">Hilos y respuestas</string>
<string name="filter_context_profiles">Profiles</string>
<string name="settings_filter_title">Título</string>
<string name="settings_delete_filter_title">¿Eliminar filtro “%s”?</string>
<string name="settings_delete_filter_confirmation">Este filtro se eliminará de su cuenta en todos sus dispositivos.</string>
<string name="add_muted_word">Añadir palabra silenciada</string>
<string name="edit_muted_word">Editar palabra silenciada</string>
<string name="add">Añadir</string>
<string name="filter_word_or_phrase">Palabra o frase</string>
<string name="settings_delete_filter_word">¿Eliminar palabra “%s”?</string>
<string name="enter_selection_mode">Seleccionar</string>
<string name="select_all">Seleccionar todo</string>
<string name="settings_filter_duration_title">Duración del filtro</string>
<string name="filter_duration_custom">Personalizado</string>
<plurals name="settings_delete_x_filter_words">
<item quantity="one">¿Eliminar palabra %d?</item>
<item quantity="other">¿Eliminar palabras %d?</item>
</plurals>
<plurals name="x_items_selected">
<item quantity="one">%d seleccionado</item>
<item quantity="other">%d seleccionados</item>
</plurals>
<string name="required_form_field_blank">No puede estar en blanco</string>
<string name="filter_word_already_in_list">Ya está en la lista</string>
<string name="app_update_ready">Actualización de aplicación lista</string>
<string name="app_update_version">Versión %s</string>
<string name="downloading_update">Descargando (%d%%)</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="post_matches_filter_x">Coincide con el filtro “%s”</string>
<string name="search_mastodon">Buscar en Mastodon</string>
<string name="clear_all">Limpiar todo</string>
<string name="search_open_url">Abrir URL en Mastodon</string>
<string name="posts_matching_hashtag">Publicaciones con “%s”</string>
<string name="search_go_to_account">Ir a %s</string>
<string name="posts_matching_string">Publicaciones con “%s”</string>
<string name="accounts_matching_string">Personas con “%s”</string>
<!-- Shown in the post header. Please keep it short -->
<string name="time_seconds_ago_short">hace %ds</string>
<string name="time_minutes_ago_short">hace %dm</string>
<string name="time_hours_ago_short">hace %dh</string>
<string name="time_days_ago_short">hace %dd</string>
</resources>

View File

@@ -256,7 +256,7 @@
<string name="sk_settings_collapse_long_posts">Minimizar publicaciones largas</string>
<string name="sk_unfinished_attachments">¿Corregir adjuntos\?</string>
<string name="sk_unfinished_attachments_message">Algunos adjuntos no han terminado de subirse.</string>
<string name="sk_settings_prefix_reply_cw_with_re">Añadir \"re:\" a Advertencias de Contenido para</string>
<string name="sk_settings_prefix_reply_cw_with_re">Prefijo CW con \"re:\" al responder</string>
<string name="sk_spectator_mode">Modo espectador</string>
<string name="sk_settings_hide_interaction">Ocultar los botones de interacción</string>
<string name="sk_follow_as">Seguir desde otra cuenta</string>
@@ -273,8 +273,8 @@
<string name="sk_show_thread">Mostrar hilo</string>
<string name="sk_compact_reblog_reply_line">Línea compacta compartida/respondida</string>
<string name="sk_settings_confirm_before_reblog">Confirmación antes de impulsar</string>
<string name="sk_reacted_with">reaccionó con %s</string>
<string name="sk_reacted">reaccionó</string>
<string name="sk_reacted_with">%1$s reaccionó con %2$s</string>
<string name="sk_reacted">%s reaccionó</string>
<string name="sk_content_type">Tipo del contenido</string>
<string name="sk_content_type_unspecified">Sin especificar</string>
<string name="sk_content_type_plain">Texto sin formato</string>
@@ -292,18 +292,18 @@
<string name="sk_external_share_or_open_title">Compartir o abrir con una cuenta</string>
<string name="sk_open_in_app">Abrir en la app</string>
<string name="sk_external_share_title">Compartir con una cuenta</string>
<string name="sk_settings_auto_reveal_equal_spoilers">Mostrar Avisos de Contenido para respuestas de</string>
<string name="sk_settings_auto_reveal_nobody">nadie</string>
<string name="sk_settings_auto_reveal_author">autor</string>
<string name="sk_settings_auto_reveal_anyone">todos</string>
<string name="sk_settings_auto_reveal_equal_spoilers">Revelar automáticamente los CW iguales en las respuestas</string>
<string name="sk_settings_auto_reveal_nobody">Nunca</string>
<string name="sk_settings_auto_reveal_author">Respuestas del mismo autor</string>
<string name="sk_settings_auto_reveal_anyone">Respuestas de todos</string>
<string name="sk_open_in_app_failed">No se pudo abrir en la aplicación</string>
<string name="sk_no_remote_info_hint">no hay información remota disponible</string>
<string name="sk_error_loading_profile">No se pudo cargar el perfil a través de %s</string>
<string name="sk_settings_allow_remote_loading">Cargar la información desde las instancias remotas</string>
<string name="sk_settings_allow_remote_loading_explanation">Intenta obtener listas más precisas de seguidores, Me gusta y promociones cargando la información desde la instancia de origen.</string>
<string name="sk_settings_prefix_replies_always">Todas</string>
<string name="sk_settings_prefix_replies_never">Ninguna</string>
<string name="sk_settings_prefix_replies_to_others">A otros</string>
<string name="sk_settings_prefix_replies_always">Responder a cualquiera</string>
<string name="sk_settings_prefix_replies_never">Nunca</string>
<string name="sk_settings_prefix_replies_to_others">Solo en respuesta a otros</string>
<string name="sk_settings_forward_report_default">\"Reenviar denuncia\" activado por defecto</string>
<string name="sk_list_exclusive_switch">Hacer una lista exclusiva</string>
<string name="sk_icon_feed">Cronología</string>
@@ -328,4 +328,49 @@
<string name="sk_edit_timeline_tags_explanation">Por favor, ten en cuenta que es el servidor el gestiona estas operaciones. Puede que no sea factible combinarlas.</string>
<string name="sk_icon_beaker">Ciencia</string>
<string name="sk_icon_bed">Cama</string>
<string name="sk_gif_badge">GIF</string>
<string name="sk_spoiler_show">Mostrar el contenido</string>
<string name="sk_pronouns_label">Pronombres</string>
<string name="sk_switch_timeline">Cambiar la línea de tiempo</string>
<string name="sk_settings_instance">Instancia</string>
<string name="sk_disable_pill_shaped_active_indicator">Desactivar el indicador de pestaña activa en forma de pastilla</string>
<string name="sk_settings_true_black">Modo negro intenso</string>
<string name="sk_search_fediverse">Buscar en el Fediverso</string>
<string name="sk_settings_unifiedpush_choose">Selecciona un distribuidor</string>
<string name="sk_settings_unifiedpush_no_distributor">No se ha encontrado ningún distribuidor</string>
<string name="sk_settings_display_pronouns_in_user_listings">Mostrar pronombres en los listados de usuarios</string>
<string name="sk_tab_home">Inicio</string>
<string name="sk_tab_search">Buscar</string>
<string name="sk_tab_notifications">Notificaciones</string>
<string name="sk_tab_profile">Perfil</string>
<string name="sk_mute_label">Duración</string>
<string name="sk_duration_indefinite">Indefinido</string>
<string name="sk_duration_minutes_5">5 minutos</string>
<string name="sk_duration_minutes_30">30 minutos</string>
<string name="sk_duration_hours_1">1 hora</string>
<string name="sk_duration_hours_6">6 horas</string>
<string name="sk_duration_days_1">1 día</string>
<string name="sk_duration_days_3">3 días</string>
<string name="sk_duration_days_7">7 días</string>
<string name="sk_notification_mention">Has sido mencionado por %s</string>
<string name="sk_settings_continues_playback">Superposición del audio</string>
<string name="sk_settings_continues_playback_summary">Permitir que los medios que ya se están reproduciendo sigan reproduciéndose, superponiéndose a la nueva reproducción</string>
<string name="sk_settings_unifiedpush">Usar UnifiedPush</string>
<string name="sk_settings_unifiedpush_no_distributor_body">Es necesario instalar un distribuidor para que funcionen las notificaciones de UnifiedPush. Para obtener más información, visita https://unifiedpush.org/</string>
<string name="sk_settings_display_pronouns_in_timelines">Mostrar pronombres en líneas de tiempo</string>
<string name="sk_settings_display_pronouns_in_threads">Mostrar pronombres en los hilos</string>
<string name="sk_settings_show_labels_in_navigation_bar">Mostrar las etiquetas de las pestañas en la barra de navegación</string>
<string name="sk_settings_emoji_reactions_in_lists">Mostrar las reacciones con los emoticonos en las líneas de tiempo</string>
<plurals name="sk_users_reacted_with">
<item quantity="one">Un usuario reaccionó con %2$s</item>
<item quantity="many">%1$,d usuarios reaccionaron con %2$s</item>
<item quantity="other">%1$,d usuarios reaccionaron con %2$s</item>
</plurals>
<string name="sk_enter_emoji_toast">Necesitas escribir un emoticono</string>
<string name="sk_enter_emoji_hint">Escribe para reaccionar con un emoticono</string>
<string name="sk_settings_emoji_reactions">Activar las reacciones con los emoticonos</string>
<string name="sk_settings_emoji_reactions_explanation">Muestra las reacciones con los emoticonos a los mensajes y te permite interactuar con ellos. Algunas versiones modificadas de Mastodon lo soportan, pero Mastodon no.</string>
<string name="sk_settings_emoji_reactions_in_lists_explanation">Las reacciones con los emoticonos deben mostrarse en las líneas de tiempo. Si esta opción está desactivada, las reacciones con los emoticonos solo se mostrarán al ver un hilo.</string>
<string name="sk_button_react">Reacciona con un emoticono</string>
<string name="sk_again_for_system_keyboard">Pulsa de nuevo para el Teclado del sistema</string>
</resources>

View File

@@ -4,9 +4,11 @@
<string name="next">Hurrengoa</string>
<string name="loading_instance">Zerbitzariaren informazioa berreskuratzen…</string>
<string name="error">Errorea</string>
<string name="not_a_mastodon_instance">%s(e)k ez dirudi Mastodon instantzia bat denik.</string>
<string name="ok">Ados</string>
<string name="preparing_auth">Autentifikaziorako prestatzen…</string>
<string name="finishing_auth">Autentikazioa bukatzen…</string>
<string name="user_boosted">%s(e)k bultzatu du</string>
<string name="in_reply_to">%s-(r)i erantzunez</string>
<string name="notifications">Jakinarazpenak</string>
<string name="share_toot_title">Partekatu</string>
@@ -95,27 +97,35 @@
<string name="button_blocked">Blokeatuta</string>
<string name="action_vote">Bozkatu</string>
<string name="delete">Ezabatu</string>
<string name="confirm_delete_title">Ezabatu bidalketa</string>
<string name="confirm_delete">Ziur bidalketa hau ezabatu nahi duzula?</string>
<string name="deleting">Ezabatzen…</string>
<string name="notification_channel_audio_player">Audioa erreproduzitzen</string>
<string name="play">Jo</string>
<string name="pause">Pausatu</string>
<string name="log_out">Itxi saioa</string>
<string name="add_account">Gehitu kontua</string>
<string name="search_hint">Bilatu</string>
<string name="hashtags">Traolak</string>
<string name="news">Berriak</string>
<string name="for_you">Zuretzat</string>
<string name="all_notifications">Dena</string>
<string name="mentions">Aipamenak</string>
<plurals name="x_people_talking">
<item quantity="one">Pertsona %d hizketan</item>
<item quantity="other">%d pertsona hizketan</item>
</plurals>
<string name="report_title">Salatu %s</string>
<string name="report_choose_reason">Zer du txarra argitalpen honek?</string>
<string name="report_choose_reason_account">Zer du txarra %s?</string>
<string name="report_choose_reason_subtitle">Aukeratu egokiena</string>
<string name="report_reason_personal">Ez dut gustukoa</string>
<string name="report_reason_personal_subtitle">Ikusi nahi ez dudan zerbait da</string>
<string name="report_reason_spam">Spama da</string>
<string name="report_reason_spam_subtitle">Esteka maltzurrak, gezurrezko elkarrekintzak edo erantzun errepikakorrak</string>
<string name="report_reason_violation">Zerbitzariaren arauak hausten ditu</string>
<string name="report_reason_violation_subtitle">Arau zehatzak urratzen dituela badakizu</string>
<string name="report_reason_other">Beste zerbait da</string>
<string name="report_reason_other_subtitle">Arazoa ezin da beste kategorietan sailkatu</string>
<string name="report_choose_rule">Ze arau hautsi ditu?</string>
<string name="report_choose_rule_subtitle">Hautatu dagozkion guztiak</string>
@@ -124,8 +134,11 @@
<string name="report_comment_title">Beste zerbait jakin beharko genuke?</string>
<string name="report_comment_hint">Iruzkin gehigarriak</string>
<string name="sending_report">Txostena bidaltzen…</string>
<string name="report_sent_title">Mila esker salaketagatik, berrikusiko dugu.</string>
<string name="unfollow_user">%s jarraitzeari utzi</string>
<string name="unfollow">Utzi jarraitzeari</string>
<string name="report_personal_title">Ez duzu hau ikusi nahi?</string>
<string name="report_personal_subtitle">Hemen dituzu Mastodonen ikusiko duzuna kontrolatzeko aukerak:</string>
<string name="back">Atzera</string>
<string name="search_communities">Zerbitzari izena edo URLa</string>
<string name="instance_rules_title">Zerbitzariaren arauak</string>
@@ -151,23 +164,34 @@
<string name="category_tech">Teknologia</string>
<string name="confirm_email_title">Egiaztatu zure sarrerako ontzia</string>
<!-- %s is the email address -->
<string name="confirm_email_didnt_get">Ez duzu estekarik jaso?</string>
<string name="resend">Berbidali</string>
<string name="open_email_app">Ireki eposta aplikazioa</string>
<string name="resent_email">Berretzi eposta bidaltzea</string>
<string name="compose_hint">Idatzi edo itsatsi buruan duzuna</string>
<string name="content_warning">Edukiaren abisua</string>
<string name="save">Gorde</string>
<string name="add_alt_text">Gehitu ordezko testua</string>
<string name="visibility_public">Publikoa</string>
<string name="visibility_followers_only">Jarraitzaileak soilik</string>
<string name="visibility_private">Aipatzen dudan jendea soilik</string>
<string name="recent_searches">Azkenaldikoak</string>
<string name="skip">Saltatu</string>
<string name="notification_type_follow">Jarraitzaile berriak</string>
<string name="notification_type_favorite">Gogokoak</string>
<string name="notification_type_reblog">Bultzadak</string>
<string name="notification_type_mention">Aipamenak</string>
<string name="notification_type_poll">Inkestak</string>
<string name="choose_account">Aukeratu kontua</string>
<string name="err_not_logged_in">Mesedez, hasi saioa lehenengo Mastodonen</string>
<plurals name="cant_add_more_than_x_attachments">
<item quantity="one">Ezin duzu multimedia fitxategi %d baino gehiago gehitu</item>
<item quantity="other">Ezin dituzu %d baino multimedia fitxategi gehiago gehitu</item>
</plurals>
<string name="media_attachment_unsupported_type">%s fitxategi mota ez da bateragarria</string>
<string name="media_attachment_too_big">%1$s fitxategiak %2$s MB-eko tamainaren muga gainditzen du</string>
<string name="settings_theme">Itxura</string>
<string name="theme_auto">Erabili sistemaren diseinua</string>
<string name="theme_light">Argia</string>
<string name="theme_dark">Iluna</string>
<string name="settings_behavior">Jokabidea</string>
@@ -180,9 +204,13 @@
<string name="settings_clear_cache">Garbitu multimediaren cachea</string>
<string name="settings_app_version">Mastodon Android-entzat v%1$s (%2$d)</string>
<string name="media_cache_cleared">Multimediaren cachea garbitua</string>
<string name="confirm_log_out">Itxi saioa %s?</string>
<string name="sensitive_content_explain">Egileak multimedia hau hunkigarritzat markatu du.</string>
<string name="avatar_description">Joan %s-(r)en profilera</string>
<string name="more_options">Aukera gehiago</string>
<string name="new_post">Bidalketa berria</string>
<string name="button_reply">Erantzun</string>
<string name="button_reblog">Bultzada</string>
<string name="button_favorite">Gogokoa</string>
<string name="button_share">Partekatu</string>
<string name="media_no_description">Deskribapenik gabeko multimedia</string>
@@ -194,6 +222,7 @@
<string name="media_viewer">Multimedia ikuskatzailea</string>
<string name="follow_user">Jarraitu %s</string>
<string name="unfollowed_user">Utzi %s jarraitzeari</string>
<string name="followed_user">%s jarraitzen ari zara</string>
<string name="open_in_browser">Ireki nabigatzailean</string>
<string name="signup_reason">Zergatik elkartu nahi duzu?</string>
<string name="signup_reason_note">Honek zure eskaera berrikustean lagunduko digu.</string>
@@ -208,6 +237,9 @@
<string name="error_saving_file">Errorea fitxategia gordetzerakoan</string>
<string name="file_saved">Fitxategia gorde da</string>
<string name="downloading">Jeisten…</string>
<string name="no_app_to_handle_action">Ez dago ekintza hau kudeatu dezkeen aplikaziorik</string>
<string name="local_timeline">Lokala</string>
<string name="trending_posts_info_banner">Hauek dira zure Mastodon txokoan beraien lekua hartzen ari diren argitalpenak.</string>
<!-- %s is the server domain -->
<string name="see_new_posts">Ikusi bidalketa berriak</string>
<string name="load_missing_posts">Falta diren bidalketak kargatu</string>
@@ -290,22 +322,118 @@
<string name="server_filter_region_asia">Asia</string>
<string name="server_filter_region_oceania">Ozeania</string>
<string name="not_accepting_new_members">Ez da kide berririk onartzen</string>
<string name="signup_passwords_dont_match">Pasahitzak ez datoz bat</string>
<string name="pick_server_for_me">Aukeratu niretzat</string>
<string name="profile_add_row">Gehitu errenkada</string>
<string name="popular_on_mastodon">Mastodonen pil-pilean</string>
<string name="follow_all">Jarraitu denak</string>
<string name="server_rules_disagree">Ez ados</string>
<!-- %s is server domain -->
<string name="profile_bio">Biografia</string>
<!-- Shown in a progress dialog when you tap "follow all" -->
<!-- %1$s is server domain, %2$s is email domain. You can reorder these placeholders to fit your language better. -->
<string name="spoiler_show">Erakutsi hala ere</string>
<string name="poll_multiple_choice">Aukeratu bat edo gehiago</string>
<string name="save_changes">Gorde aldaketak</string>
<string name="profile_featured">Nabarmenak</string>
<string name="profile_timeline">Denbora-lerroa</string>
<string name="view_all">Ikusi guztia</string>
<string name="profile_endorsed_accounts">Kontuak</string>
<string name="show">Erakutsi</string>
<string name="hide">Ezkutatu</string>
<string name="pick_server">Aukeratu beste zerbitzari bat</string>
<string name="signup_or_login">edo</string>
<string name="learn_more">Ikasi gehiago</string>
<string name="welcome_to_mastodon">Ongi etorri Mastodon-era</string>
<string name="what_are_servers">Zer dira zerbitzariak?</string>
<string name="opening_link">Lotura irekitzen…</string>
<string name="retry">Berriro saiatu</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_type_image">Irudia</string>
<string name="attachment_type_video">Bideoa</string>
<string name="attachment_type_audio">Audioa</string>
<string name="attachment_type_gif">GIF-a</string>
<string name="attachment_type_unknown">Fitxategia</string>
<string name="add_poll_option">Gehitu inkesta aukera</string>
<string name="poll_style">Estiloa</string>
<string name="compose_poll_single_choice">Aukeratu bat</string>
<string name="compose_poll_multiple_choice">Aukera anitza</string>
<string name="delete_poll_option">Ezabatu inkesta aukera</string>
<string name="help">Laguntza</string>
<string name="edit_post">Editatu argitalpena</string>
<string name="compose_autocomplete_emoji_empty">Esploratu emojiak</string>
<string name="language">Hizkuntza</string>
<string name="language_default">Lehenetsia</string>
<string name="language_system">Sistema</string>
<string name="language_detecting">Hizkuntza detektatzen</string>
<string name="language_cant_detect">Ezin da hizkuntza detektatu</string>
<string name="language_detected">Detektatuta</string>
<string name="media_hidden">Multimedia ezkutatua</string>
<!-- %s is the server domain -->
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<string name="reported">Salatua</string>
<string name="muted_user">Mututu %s</string>
<string name="blocked_user">Blokeatu %s</string>
<string name="mark_all_notifications_read">Markatu denak irakurrita bezala</string>
<string name="settings_display">Bistaratzea</string>
<string name="settings_filters">Iragazkiak</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<string name="about_app">%s(r)i buruz</string>
<string name="pause_all_notifications">Pausatu denak</string>
<string name="pause_notifications_off">Itzali</string>
<string name="notifications_policy_anyone">Edozein</string>
<string name="notifications_policy_followed">Zu jarraitzen zaituzten pertsonak</string>
<string name="notifications_policy_follower">Zuk jarraitzen dituzun pertsonak</string>
<string name="notifications_policy_no_one">Bat ere ez</string>
<string name="pause_all_notifications_title">Pausatu jakinarazpen guztiak</string>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="today">gaur</string>
<string name="yesterday">atzo</string>
<string name="tomorrow">bihar</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="about_server">Honi buruz</string>
<string name="server_rules">Arauak</string>
<string name="server_administrator">Administratzailea</string>
<string name="settings_show_cws">Erakutsi eduki abisuak</string>
<plurals name="in_x_hours">
<item quantity="one">Ordu %d barru</item>
<item quantity="other">%d ordu barru</item>
</plurals>
<string name="count_one">Bat</string>
<string name="count_two">Bi</string>
<string name="count_three">Hiru</string>
<string name="count_four">Lau</string>
<string name="alt_text_reminder_post_anyway">Bidalketa</string>
<!-- %s is the username -->
<string name="unfollow_confirmation">%s jarraitzeari utzi?</string>
<string name="filter_active">Aktiboa</string>
<string name="filter_inactive">Ez aktiboa</string>
<string name="settings_add_filter">Gehitu iragazkia</string>
<string name="settings_edit_filter">Editatu iragazkia</string>
<string name="settings_filter_duration">Iraupena</string>
<string name="settings_filter_muted_words">Mutututako hitzak</string>
<string name="settings_filter_show_cw">Erakutsi eduki abisuarekin</string>
<string name="settings_delete_filter">Ezabatu iragazkia</string>
<string name="filter_duration_forever">Betirakoa</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="selection_2_options">%1$s eta %2$s</string>
<string name="selection_3_options">%1$s, %2$s, eta %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s, eta beste %3$d</string>
<string name="filter_context_notifications">Jakinarazpenak</string>
<string name="filter_context_public_timelines">Denbora-lerro publikoak</string>
<string name="filter_context_profiles">Profilak</string>
<string name="settings_filter_title">Izenburua</string>
<string name="settings_delete_filter_title">Ezabatu \"%s\" iragazkia”?</string>
<string name="add">Gehitu</string>
<string name="enter_selection_mode">Hautatu</string>
<string name="select_all">Hautatu dena</string>
<string name="filter_duration_custom">Pertsonalizatua</string>
<string name="required_form_field_blank">Ezin da hutsik egon</string>
<string name="app_update_version">Bertsioa: %s</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="search_mastodon">Bilatu Mastodonen</string>
<string name="clear_all">Garbitu dena</string>
<string name="search_open_url">Ireki URLa Mastodonen</string>
<!-- Shown in the post header. Please keep it short -->
</resources>

View File

@@ -24,7 +24,7 @@
<string name="cancel">لغو</string>
<plurals name="followers">
<item quantity="one">پی‌گیر</item>
<item quantity="other">پی‌گیران</item>
<item quantity="other">پی‌گیرندگان</item>
</plurals>
<plurals name="following">
<item quantity="one">پی‌گرفته</item>
@@ -188,11 +188,11 @@
<string name="save">ذخیره</string>
<string name="add_alt_text">اضافه کردن متن جایگزین</string>
<string name="visibility_public">عمومی</string>
<string name="visibility_followers_only">فقط پی‌گیران</string>
<string name="visibility_followers_only">فقط پی‌گیرندگان</string>
<string name="visibility_private">فقط افرادی نام‌برده</string>
<string name="recent_searches">اخیر</string>
<string name="skip">بعدی</string>
<string name="notification_type_follow">پی‌گیران جدید</string>
<string name="notification_type_follow">پی‌گیرندگان جدید</string>
<string name="notification_type_favorite">برگزیده‌ها</string>
<string name="notification_type_reblog">تقویت‌ها</string>
<string name="notification_type_mention">نام‌بردن‌ها</string>
@@ -271,7 +271,7 @@
<!-- translators: %,d is a valid placeholder, it formats the number with locale-dependent grouping separators -->
<plurals name="x_followers">
<item quantity="one">%,d پی‌گیر</item>
<item quantity="other">%,d پی‌گیران</item>
<item quantity="other">%,d پی‌گیرندگان</item>
</plurals>
<plurals name="x_following">
<item quantity="one">%,d پی‌گیرنده</item>
@@ -419,6 +419,7 @@
<string name="edit_post">ویرایش فرسته</string>
<string name="no_verified_link">‏پیوند تأییدشده‌ای وجود ندارد</string>
<string name="compose_autocomplete_emoji_empty">مرور ایموجی</string>
<string name="compose_autocomplete_users_empty">پیدا کنید آنچه را که به دنبال آن هستید</string>
<string name="no_search_results">چیزی برای این عبارت جست‌وجو یافت نشد</string>
<string name="language">زبان</string>
<string name="language_default">پیش‌گزیده</string>
@@ -479,7 +480,10 @@
<string name="server_administrator">مدیر</string>
<string name="send_email_to_server_admin">ادمین پیام بده</string>
<string name="notifications_disabled_in_system">آگاهی‌ها را از تنظیمات دستگاهتان روشن کنید تا به‌روزرسانی‌ها را از هر کجا ببینید.</string>
<string name="settings_even_more">تنظیمات بیشتر</string>
<string name="settings_show_cws">نمایش هشدارهای محتوا</string>
<string name="settings_hide_sensitive_media">تصویرهایی را که به عنوان حساس علامت زده شده‌اند پنهان کن</string>
<string name="settings_show_interaction_counts">تعامل شمارش پست</string>
<string name="settings_show_emoji_in_names">ایموجی‌های سفارشی در نام های نمایشی</string>
<plurals name="in_x_seconds">
<item quantity="one">در %d ثانیه</item>

View File

@@ -85,7 +85,7 @@
<string name="sk_delete_notification_confirm_action">حذف آگاهی</string>
<string name="sk_settings_translation_availability_note_available">%s از ترجمه پشتیبانی می‌کند!</string>
<string name="sk_copy_link_to_post">رونوشت پیوند فرسته</string>
<string name="sk_already_favorited">قبلا برگزیده بوده است</string>
<string name="sk_already_favorited">قبلا پسندیده بوده است</string>
<string name="sk_favorite_as">برگزیدن با حساب دیگر</string>
<string name="sk_unsent_posts">فرسته‌های ارسال نشده</string>
<string name="sk_reblog_as">تقویت با حساب دیگر</string>
@@ -160,7 +160,7 @@
<string name="sk_in_reply">در پاسخ</string>
<string name="sk_open_in_app">بازکردن در کاره</string>
<string name="sk_settings_prefix_replies_never">هیچوقت</string>
<string name="sk_settings_prefix_replies_to_others">دیگران</string>
<string name="sk_settings_prefix_replies_to_others">فقط درپاسخ به دیگران</string>
<string name="sk_schedule_or_draft">برنامه‌ریزی یا پیش‌نویس</string>
<string name="sk_edit_list_title">ویرایش سیاهه</string>
<string name="sk_icon_star">ستاره</string>
@@ -183,7 +183,7 @@
<string name="sk_user_post_notifications_off">آگاهی‌های فرسته برای %s خاموش شد</string>
<string name="sk_bubble_timeline_info_banner">اینها جدیدترین فرسته‌های شبکه هستند که توسط سرپرستان نمونه شما انتخاب شده‌اند.</string>
<string name="sk_clear_recent_languages">زبان‌های اخیراً استفاده شده را پاک‌سازی کنید</string>
<string name="sk_settings_color_palette">تخته‌رنگ رنگی</string>
<string name="sk_settings_color_palette">تخته‌رنگ</string>
<string name="sk_confirm_clear_recent_languages">آیا مطمئنید که می خواهید زبان های اخیراً استفاده شده خود را پاک کنید؟</string>
<string name="sk_resource_not_found">منبع پیدا نشد</string>
<string name="sk_favorited_as">به‌عنوان %s پسندیده شد</string>
@@ -207,7 +207,7 @@
<string name="sk_pinned_timeline">به خانه سنجاق شد</string>
<string name="sk_publish_anyway">انتشار به هرصورت</string>
<string name="sk_settings_disable_alt_text_reminder">غیرفعال‌کردن یادآوری برای افزودن متن جایگزین</string>
<string name="sk_icon_color_palette">تخته‌رنگ رنگی</string>
<string name="sk_icon_color_palette">تخته‌رنگ</string>
<string name="sk_icon_tag">برچسب</string>
<string name="sk_icon_leaves">برگ‌ها</string>
<string name="sk_icon_important">مهم</string>
@@ -239,8 +239,8 @@
<string name="sk_unfinished_attachments_message">بارگذاری برخی از پیوست‌ها به پایان نرسیده است.</string>
<string name="sk_settings_hide_interaction">نهفتن دکمه های تعامل</string>
<string name="sk_settings_auto_reveal_nobody">هیچوقت</string>
<string name="sk_settings_auto_reveal_author">نویسنده</string>
<string name="sk_settings_auto_reveal_anyone">هرکس</string>
<string name="sk_settings_auto_reveal_author">پاسخ های همان نویسنده</string>
<string name="sk_settings_auto_reveal_anyone">پاسخ های همه</string>
<string name="sk_settings_prefix_replies_always">درپاسخ به هرکسی</string>
<string name="sk_external_share_or_open_title">هم‌رسانی یا با حساب باز کنید</string>
<string name="sk_content_type_mfm">MFM</string>
@@ -309,7 +309,7 @@
<string name="sk_reacted_with">%1$s با %2$s واکنش نشان داد</string>
<string name="sk_reacted">%s واکنش نشان داد</string>
<string name="sk_external_share_title">هم‌رسانی با حساب</string>
<string name="sk_settings_prefix_reply_cw_with_re">پیشوند CW با “re:” در پاسخ به</string>
<string name="sk_settings_prefix_reply_cw_with_re">وارد کردن پیشوند CW با “re:” هنگام پاسخ دادن</string>
<string name="sk_unfinished_attachments">رفع مشکل پیوست‌ها؟</string>
<string name="sk_settings_allow_remote_loading">بارگیری اطلاعات از نمونه های راه دور</string>
<string name="sk_error_loading_profile">بارگیری نمایه از طریق %s شکست خورد</string>
@@ -333,4 +333,43 @@
<string name="sk_disable_pill_shaped_active_indicator">نشانگر برگه فعال قرصی را ازکار بندازید</string>
<string name="sk_list_exclusive_switch_explanation">اعضای یک سیاهه انحصاری در خط زمانی خانه شما نشان داده نمی شوند - اگر نمونه شما از آن پشتیبانی کند.</string>
<string name="sk_settings_default_content_type_explanation">این به شما امکان می‌دهد هنگام نوشتن فرسته‌های جدید، نوع محتوا را از قبل انتخاب کنید و مقدار تنظیم‌شده در \"ترجیحات‌های ارسال\" را لغو کنید.</string>
<string name="sk_settings_auto_reveal_equal_spoilers">CW های برابر را در پاسخ‌ها به صورت خودکار آشکار کنید</string>
<string name="sk_settings_forward_report_default">پیش‌فرض سوئیچ “گزارش هدایت ”</string>
<string name="sk_search_fediverse">جستجوی فدیورس</string>
<string name="sk_settings_unifiedpush_choose">انتخاب یک توزیع کننده</string>
<string name="sk_settings_unifiedpush_no_distributor">هیچ توزیع‌کننده ای پیدا نشد</string>
<string name="sk_settings_display_pronouns_in_timelines">نمایش ضمایر در خطوط زمانی</string>
<string name="sk_settings_display_pronouns_in_threads">نمایش ضمایر در رشته‌ها</string>
<string name="sk_settings_display_pronouns_in_user_listings">نمایش ضمایر در سیاهه کاربران</string>
<string name="sk_tab_home">خانه</string>
<string name="sk_tab_search">جست‌وجو</string>
<string name="sk_tab_notifications">آگاهی‌ها</string>
<string name="sk_tab_profile">نمایه</string>
<string name="sk_settings_show_labels_in_navigation_bar">نشان دادن برچسب‌های برگه در نوار پیمایش</string>
<string name="sk_mute_label">مدت زمان</string>
<string name="sk_duration_indefinite">نامعین</string>
<string name="sk_duration_minutes_5">5 دقیقه</string>
<string name="sk_duration_minutes_30">30 دقیقه</string>
<string name="sk_duration_hours_1">۱ ساعت</string>
<string name="sk_duration_hours_6">6 ساعت</string>
<string name="sk_duration_days_1">۱ روز</string>
<string name="sk_duration_days_3">3 روز</string>
<string name="sk_notification_mention">شما توسط %s نام‌برده شده اید</string>
<string name="sk_settings_unifiedpush">استفاده از UnifiedPush</string>
<string name="sk_duration_days_7">7 روز</string>
<string name="sk_settings_unifiedpush_no_distributor_body">برای کارکردن آگاهی‌های UnifiedPush باید یک توزیع‌کننده نصب کنید. برای اطلاعات بیشتر به https://unifiedpush.org/ مراجعه کنید.</string>
<string name="sk_settings_continues_playback">پوشش صوتی</string>
<string name="sk_settings_continues_playback_summary">به رسانه‌ای که از قبل پخش می‌شود اجازه دهید به پخش ادامه دهد و پخش جدید را پوشش دهد</string>
<string name="sk_button_react">واکنش با ایموجی</string>
<string name="sk_again_for_system_keyboard">دوباره برای کیبورد سامانه ضربه بزنید</string>
<string name="sk_enter_emoji_toast">باید یک ایموجی تایپ کنید</string>
<string name="sk_enter_emoji_hint">برای واکنش با ایموجی تایپ کنید</string>
<plurals name="sk_users_reacted_with">
<item quantity="one">یک کاربر با %2$s واکنش نشان داد</item>
<item quantity="other">%1$,d کاربر با %2$s واکنش نشان دادند</item>
</plurals>
<string name="sk_settings_emoji_reactions">به‌کار انداختن واکنش های ایموجی</string>
<string name="sk_settings_emoji_reactions_in_lists">نمایش واکنش های ایموجی در خطوط زمانی</string>
<string name="sk_settings_emoji_reactions_in_lists_explanation">اینکه آیا واکنش های ایموجی باید در خطوط زمانی نمایش داده شود یا خیر. اگر این گزینه خاموش باشد، واکنش های ایموجی فقط هنگام مشاهده یک موضوع نمایش داده می شود.</string>
<string name="sk_settings_emoji_reactions_explanation">واکنش‌های ایموجی را به فرسته‌ها نشان می‌دهد و به شما امکان می‌دهد با آنها تعامل داشته باشید. برخی از نسخه های اصلاح شده ماستودون از این پشتیبانی می کنند، اما ماستودون اینطور نیست.</string>
</resources>

View File

@@ -13,6 +13,9 @@
<string name="notifications">Notifications</string>
<string name="user_followed_you">%s vous suit</string>
<string name="user_sent_follow_request">%s voudrait vous suivre</string>
<string name="user_favorited">%s a mis votre message en favori</string>
<string name="notification_boosted">%s a boosté votre message</string>
<string name="poll_ended">Voir les résultats d\'un sondage auquel vous avez voté</string>
<string name="share_toot_title">Partager</string>
<string name="settings">Paramètres</string>
<string name="publish">Pouet!</string>
@@ -32,8 +35,9 @@
<string name="media">Médias</string>
<string name="profile_about">À propos</string>
<string name="button_follow">Suivre</string>
<string name="button_following">Abonné·e·s</string>
<string name="button_following">Abonné·e</string>
<string name="edit_profile">Modifier le profil</string>
<string name="share_user">Partager le profil</string>
<string name="mute_user">Masquer %s</string>
<string name="unmute_user">Ne plus masquer %s</string>
<string name="block_user">Bloquer %s</string>
@@ -103,6 +107,7 @@
<string name="button_blocked">Bloqué</string>
<string name="action_vote">Voter</string>
<string name="delete">Supprimer</string>
<string name="confirm_delete_title">Supprimer la publication</string>
<string name="confirm_delete">Voulez-vous vraiment supprimer ce message ?</string>
<string name="deleting">Suppression en cours…</string>
<string name="notification_channel_audio_player">Lecture audio</string>
@@ -114,6 +119,7 @@
<string name="hashtags">Hashtags</string>
<string name="news">Actualités</string>
<string name="for_you">Pour vous</string>
<string name="all_notifications">Tout</string>
<string name="mentions">Mentions</string>
<plurals name="x_people_talking">
<item quantity="one">%d personne en parle</item>
@@ -123,11 +129,13 @@
<string name="report_choose_reason">Quel est le problème avec ce post ?</string>
<string name="report_choose_reason_account">Quel est le problème avec %s ?</string>
<string name="report_choose_reason_subtitle">Sélectionnez la meilleure correspondance</string>
<string name="report_reason_personal">Je n\'aime pas ça</string>
<string name="report_reason_personal_subtitle">Cest quelque chose que je ne souhaite pas voir</string>
<string name="report_reason_spam">C\'est du spam</string>
<string name="report_reason_spam_subtitle">Liens malveillants, faux engagement ou réponses répétitives</string>
<string name="report_reason_violation">Viole les règles du serveur</string>
<string name="report_reason_violation_subtitle">Enfreint des règles spécifiques</string>
<string name="report_reason_other">Pour une autre raison</string>
<string name="report_reason_other_subtitle">Le problème ne correspond à aucune des catégories</string>
<string name="report_choose_rule">Quelles règles sont enfreintes ?</string>
<string name="report_choose_rule_subtitle">Sélectionnez toutes les réponses qui sappliquent</string>
@@ -137,8 +145,13 @@
<string name="report_comment_hint">Commentaires supplémentaires</string>
<string name="sending_report">Envoi du rapport en cours…</string>
<string name="report_sent_title">Merci pour votre signalement, nous allons examiner cela.</string>
<string name="report_sent_subtitle">Pendant que nous étudions votre requête, vous pouvez prendre des mesures contre %s :</string>
<string name="unfollow_user">Ne plus suivre %s</string>
<string name="unfollow">Ne plus suivre</string>
<string name="mute_user_explain">Vous ne verrez plus les messages de ce compte, mais il pourra toujours vous suivre et voir vos messages. Il ne pourra pas savoir qu\'il a été masqué.</string>
<string name="block_user_explain">Vous ne verrez plus les messages de ce profil, et il ne pourra ni vous suivre ni voir vos messages. Il pourra savoir qu\'il a été bloqué.</string>
<string name="report_personal_title">Vous ne voulez pas voir cela ?</string>
<string name="report_personal_subtitle">Voici les possibilités que vous avez pour contrôler ce que vous voyez sur Mastodon :</string>
<string name="back">Retour</string>
<string name="search_communities">Nom ou URL du serveur</string>
<string name="instance_rules_title">Règles du serveur</string>
@@ -170,14 +183,18 @@
<string name="resend">Renvoyer</string>
<string name="open_email_app">Ouvrir lapplication courriel</string>
<string name="resent_email">Courriel de confirmation envoyé</string>
<string name="compose_hint">Ecrivez ce qui vous passe par la tête</string>
<string name="content_warning">Avertissement sur le contenu</string>
<string name="save">Enregistrer</string>
<string name="add_alt_text">Ajouter un texte alternatif</string>
<string name="visibility_public">Public</string>
<string name="visibility_followers_only">Abonné·e·s uniquement</string>
<string name="visibility_private">Personnes mentionnées uniquement</string>
<string name="recent_searches">Récents</string>
<string name="skip">Passer</string>
<string name="notification_type_follow">Nouveaux⋅elles abonné⋅e⋅s</string>
<string name="notification_type_favorite">Favoris</string>
<string name="notification_type_reblog">Partages</string>
<string name="notification_type_mention">Mentions</string>
<string name="notification_type_poll">Sondages</string>
<string name="choose_account">Choisir un compte</string>
@@ -188,6 +205,8 @@
</plurals>
<string name="media_attachment_unsupported_type">Le fichier %s nest pas pris en charge</string>
<string name="media_attachment_too_big">Le fichier %1$s dépasse la taille limite de %2$s Mo</string>
<string name="settings_theme">Thème</string>
<string name="theme_auto">Utiliser le thème de l\'appareil</string>
<string name="theme_light">Clair</string>
<string name="theme_dark">Sombre</string>
<string name="settings_behavior">Comportement</string>
@@ -200,10 +219,13 @@
<string name="settings_clear_cache">Vider le cache des médias</string>
<string name="settings_app_version">Mastodon pour Android v%1$s (%2$d)</string>
<string name="media_cache_cleared">Cache des médias vidé</string>
<string name="confirm_log_out">Se déconnecter de %s?</string>
<string name="sensitive_content_explain">Lauteur a marqué ce média comme sensible.</string>
<string name="avatar_description">Voir le profil de %s</string>
<string name="more_options">Paramètres supplémentaires</string>
<string name="new_post">Nouveau message</string>
<string name="button_reply">Répondre</string>
<string name="button_reblog">Booster</string>
<string name="button_favorite">Ajouter aux favoris</string>
<string name="button_share">Partager</string>
<string name="media_no_description">Média sans description</string>
@@ -235,7 +257,11 @@
<string name="downloading">Téléchargement…</string>
<string name="no_app_to_handle_action">Aucune application ne permet de gérer cette action</string>
<string name="local_timeline">Local</string>
<string name="trending_posts_info_banner">Ce sont les messages qui gagnent en popularité sur Mastodon.</string>
<string name="trending_links_info_banner">Voici les actualités dont on parle sur Mastodon.</string>
<!-- %s is the server domain -->
<string name="local_timeline_info_banner">Voici tous les messages de tous les comptes de votre serveur (%s).</string>
<string name="recommended_accounts_info_banner">Vous pourriez aimer ces comptes en fonction des autres que vous suivez.</string>
<string name="see_new_posts">Voir les nouveaux messages</string>
<string name="load_missing_posts">Charger les messages manquants</string>
<string name="follow_back">Suivre en retour</string>
@@ -255,6 +281,10 @@
<item quantity="one">%,d favori</item>
<item quantity="other">%,d favoris</item>
</plurals>
<plurals name="x_reblogs">
<item quantity="one">%,d partage</item>
<item quantity="other">%,d partages</item>
</plurals>
<string name="timestamp_via_app">%1$s via %2$s</string>
<string name="time_now">à linstant</string>
<string name="edit_history">Historique des modifications</string>
@@ -338,32 +368,218 @@
<!-- Shown in a progress dialog when you tap "follow all" -->
<string name="sending_follows">Utilisateurs suivants…</string>
<!-- %1$s is server domain, %2$s is email domain. You can reorder these placeholders to fit your language better. -->
<string name="signup_email_domain_blocked">%1$s nautorise pas les inscriptions à partir de %2$s. Essayez-en un autre ou &lt;a&gt;choisissez un autre serveur&lt;/a&gt;.</string>
<string name="spoiler_show">Afficher quand même</string>
<string name="spoiler_hide">Cacher</string>
<string name="poll_multiple_choice">Choisir un ou plusieurs</string>
<string name="save_changes">Enregistrer les modifications</string>
<string name="profile_featured">En vedette</string>
<string name="profile_timeline">Fil</string>
<string name="view_all">Tout afficher</string>
<string name="profile_endorsed_accounts">Comptes</string>
<string name="verified_link">Lien vérifié</string>
<string name="show">Afficher</string>
<string name="hide">Masquer</string>
<string name="join_default_server">Rejoindre %s</string>
<string name="pick_server">Choisir un autre serveur</string>
<string name="signup_or_login">ou</string>
<string name="learn_more">En savoir plus</string>
<string name="welcome_to_mastodon">Bienvenue sur Mastodon</string>
<string name="welcome_paragraph1">Mastodon est un réseau social décentralisé, ce qui signifie quaucune entreprise ne le contrôle. Il est composé de plusieurs serveurs indépendants, tous connectés ensemble.</string>
<string name="what_are_servers">Que sont les serveurs ?</string>
<string name="welcome_paragraph2"><![CDATA[Chaque compte Mastodon est hébergé sur un serveur, chacun ayant ses valeurs, ses règles, et ses administratrices ou administrateurs. Quel que soit le serveur que vous choisissez, vous pouvez suivre et interagir avec des personnes sur n\'importe quel serveur.]]></string>
<string name="opening_link">Ouverture du lien…</string>
<string name="link_not_supported">Ce lien nest pas pris en charge dans lapplication</string>
<string name="log_out_all_accounts">Se déconnecter de tous les comptes</string>
<string name="confirm_log_out_all_accounts">Se déconnecter de tous les comptes ?</string>
<string name="retry">Réessayer</string>
<string name="post_failed">Échec de l\'envoi du message</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_description_image">image %s</string>
<string name="attachment_description_video">vidéo %s</string>
<string name="attachment_description_audio">audio %s</string>
<string name="attachment_description_unknown">fichier %s</string>
<string name="attachment_type_image">Image</string>
<string name="attachment_type_video">Vidéo</string>
<string name="attachment_type_audio">Audio</string>
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">Fichier</string>
<string name="attachment_x_percent_uploaded">%d%% transférés</string>
<string name="add_poll_option">Ajouter une option de sondage</string>
<string name="poll_length">Durée du sondage</string>
<string name="poll_style">Type</string>
<string name="compose_poll_single_choice">Choix unique</string>
<string name="compose_poll_multiple_choice">Choix multiple</string>
<string name="delete_poll_option">Supprimer l\'option du sondage</string>
<string name="poll_style_title">Type de sondage</string>
<string name="alt_text">Texte alternatif</string>
<string name="help">Aide</string>
<string name="what_is_alt_text">Quest-ce que le texte alternatif ?</string>
<string name="alt_text_help">Un texte alternatif fournit une description de l\'image aux personnes avec un handicap visuel ou une connexion limitée ou qui souhaitent avoir un contexte supplémentaire.\n\nVous pouvez améliorer l\'accessibilité et la compression de tout le monde en écrivant un texte alternatif clair, concis et objectif.\n\n<ul><li>Identifiez les éléments importants</li>\n<li>Résumez le texte présent à l\'image</li>\n<li>Utilisez une structure de phrase normale</li>\n<li>Évitez les informations redondantes</li>\n<li>Pour les visuels complexes (tels que les diagrammes ou les cartes), indiquez les tendances ou points-clés</li></ul></string>
<string name="edit_post">Modifier la publication</string>
<string name="no_verified_link">Aucun lien vérifié</string>
<string name="compose_autocomplete_emoji_empty">Parcourir les émojis</string>
<string name="compose_autocomplete_users_empty">Trouvez qui vous cherchez</string>
<string name="no_search_results">Aucun résultat avec ces mots-clefs</string>
<string name="language">Langue</string>
<string name="language_default">Par défaut</string>
<string name="language_system">Système</string>
<string name="language_detecting">Détection de la langue</string>
<string name="language_cant_detect">Impossible de détecter la langue</string>
<string name="language_detected">Détectée</string>
<string name="media_hidden">Média masqué</string>
<string name="post_hidden">Publication masquée</string>
<string name="report_title_post">Signaler la publication</string>
<string name="forward_report_explanation">Le compte provient dun autre serveur. Envoyer également une copie anonyme du rapport?</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">Transférer à %s</string>
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<string name="reported">Signalé</string>
<string name="report_unfollow_explanation">Pour ne plus voir leurs messages dans votre fil d\'accueil, désabonnez-vous de ces comptes.</string>
<string name="muted_user">%s masqué·e</string>
<string name="report_sent_already_blocked">Vous avez déjà bloqué ce compte, vous n\'avez rien d\'autre à faire en attendant la revue de votre rapport.</string>
<string name="report_personal_already_blocked">Vous avez déjà bloqué ce compte, il n\'y a rien d\'autre à faire.\n\nMerci d\'aider à ce que Mastodon soit un espace sûr pour toutes et tous !</string>
<string name="blocked_user">%s bloqué·e</string>
<string name="mark_all_notifications_read">Marque tout comme lu</string>
<string name="settings_display">Affichage</string>
<string name="settings_filters">Filtres</string>
<string name="settings_server_explanation">Aperçu, règles, modérateur·rice·s</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<string name="about_app">A propos de %s</string>
<string name="default_post_language">Langue de publication par défaut</string>
<string name="settings_alt_text_reminders">Ajouter des rappels de texte alternatif</string>
<string name="settings_confirm_unfollow">Demander confirmation avant de se désabonner d\'un compte</string>
<string name="settings_confirm_boost">Demander avant de booster</string>
<string name="settings_confirm_delete_post">Demander confirmation avant la suppression des messages</string>
<string name="pause_all_notifications">Tout mettre en pause</string>
<string name="pause_notifications_off">Désactivée</string>
<string name="notifications_policy_anyone">Tout le monde</string>
<string name="notifications_policy_followed">Personnes qui vous suivent</string>
<string name="notifications_policy_follower">Personnes que vous suivez</string>
<string name="notifications_policy_no_one">De personne</string>
<string name="settings_notifications_policy">Recevoir des notifications de</string>
<string name="notification_type_mentions_and_replies">Mentions et réponses</string>
<string name="pause_all_notifications_title">Mettre en pause toutes les notifications</string>
<plurals name="x_weeks">
<item quantity="one">%d semaine</item>
<item quantity="other">%d semaines</item>
</plurals>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="date_at_time">%1$s à %2$s</string>
<string name="today">aujourdhui</string>
<string name="yesterday">hier</string>
<string name="tomorrow">demain</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_ends">Se termine à %s</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_banner">Reprise des notifications à %s.</string>
<string name="resume_notifications_now">Reprendre maintenant</string>
<string name="open_system_notification_settings">Aller aux paramètres des notifications</string>
<string name="about_server">À propos</string>
<string name="server_rules">Règles</string>
<string name="server_administrator">Administrateur·rice</string>
<string name="send_email_to_server_admin">Contacter ladmin</string>
<string name="notifications_disabled_in_system">Activez les notifications dans les paramètres de votre appareil pour être tenu·e au courant où que vous soyez.</string>
<string name="settings_even_more">Paramètres supplémentaires</string>
<string name="settings_show_cws">Afficher les avertissements de contenu</string>
<string name="settings_hide_sensitive_media">Cacher les médias marqués comme sensibles</string>
<string name="settings_show_interaction_counts">Compteurs d\'interaction de publication</string>
<string name="settings_show_emoji_in_names">Émoticônes personnalisées dans les noms</string>
<plurals name="in_x_seconds">
<item quantity="one">dans %d secondes</item>
<item quantity="other">dans %d secondes</item>
</plurals>
<plurals name="in_x_minutes">
<item quantity="one">dans %d minute</item>
<item quantity="other">dans %d minutes</item>
</plurals>
<plurals name="in_x_hours">
<item quantity="one">dans %d heure</item>
<item quantity="other">dans %d heures</item>
</plurals>
<plurals name="x_hours_ago">
<item quantity="one">Il y a %d heure</item>
<item quantity="other">Il y a %d heures</item>
</plurals>
<string name="alt_text_reminder_title">Texte alternatif manquant pour les médias</string>
<plurals name="alt_text_reminder_x_images">
<item quantity="one">%s de vos images n\'a pas de texte alternatif. Envoyer quand même ?</item>
<item quantity="other">%s de vos images n\'ont pas de texte alternatif. Envoyer quand même ?</item>
</plurals>
<plurals name="alt_text_reminder_x_attachments">
<item quantity="one">%s de vos média joint n\'a pas de texte alternatif. Envoyer quand même ?</item>
<item quantity="other">%s de vos médias joints n\'ont pas de texte alternatif. Envoyer quand même ?</item>
</plurals>
<string name="count_one">Un</string>
<string name="count_two">Deux</string>
<string name="count_three">Trois</string>
<string name="count_four">Quatre</string>
<string name="alt_text_reminder_post_anyway">Publier</string>
<!-- %s is the username -->
<string name="unfollow_confirmation">Ne plus suivre %s ?</string>
<string name="filter_active">Actif</string>
<string name="filter_inactive">Désactivé</string>
<string name="settings_add_filter">Ajouter un filtre</string>
<string name="settings_edit_filter">Modifier le filtre</string>
<string name="settings_filter_duration">Durée</string>
<string name="settings_filter_muted_words">Mots masqués</string>
<string name="settings_filter_context">Masquer à partir de</string>
<string name="settings_filter_show_cw">Afficher avec l\'avertissement de contenu</string>
<string name="settings_filter_show_cw_explanation">Continuer d\'afficher les messages correspondant à ce filtre en ajoutant un avertissement de convenu</string>
<string name="settings_delete_filter">Supprimer le filtre</string>
<string name="filter_duration_forever">Toujours</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="settings_filter_ends">Se termine à %s</string>
<plurals name="settings_x_muted_words">
<item quantity="one">%d phrase ou mot masqué</item>
<item quantity="other">%d phrases ou mots masqués</item>
</plurals>
<string name="selection_2_options">%1$s et %2$s</string>
<string name="selection_3_options">%1$s, %2$s ainsi que %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s ainsi que %3$d autres</string>
<string name="filter_context_home_lists">Accueil et listes</string>
<string name="filter_context_notifications">Notifications</string>
<string name="filter_context_public_timelines">Fils publics</string>
<string name="filter_context_threads_replies">Fils et réponses</string>
<string name="filter_context_profiles">Profils</string>
<string name="settings_filter_title">Titre</string>
<string name="settings_delete_filter_title">Supprimer le filtre « %s » ?</string>
<string name="settings_delete_filter_confirmation">Ce filtre sera supprimé de votre compte, sur tous vos appareils.</string>
<string name="add_muted_word">Ajouter un mot à masquer</string>
<string name="edit_muted_word">Ajouter un mot à masquer</string>
<string name="add">Ajouter</string>
<string name="filter_word_or_phrase">Mot ou expression</string>
<string name="filter_add_word_help">Les mots ne sont pas sensibles à la casse et la correspondance porte sur les mots entiers.\n\nPar exemple, si vous filtrez le mot-clé « Chat », cela masquera les messages qui contiennent « chat » ou « ChAt », mais pas « chaton ».</string>
<string name="settings_delete_filter_word">Supprimer le mot « %s » ?</string>
<string name="enter_selection_mode">Sélectionner</string>
<string name="select_all">Tout sélectionner</string>
<string name="settings_filter_duration_title">Durée du filtre</string>
<string name="filter_duration_custom">Personnalisée</string>
<plurals name="settings_delete_x_filter_words">
<item quantity="one">Supprimer %d mot ?</item>
<item quantity="other">Supprimer %d mots ?</item>
</plurals>
<plurals name="x_items_selected">
<item quantity="one">%d sélectionné(e)</item>
<item quantity="other">%d sélectionné(e)s</item>
</plurals>
<string name="required_form_field_blank">Ne peut pas être vide</string>
<string name="filter_word_already_in_list">Déjà dans la liste</string>
<string name="app_update_ready">Mise à jour de lapplication prête</string>
<string name="app_update_version">Version %s</string>
<string name="downloading_update">Téléchargement (%d%%)</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="post_matches_filter_x">Correspond au filtre « %s »</string>
<string name="search_mastodon">Rechercher sur Mastodon</string>
<string name="clear_all">Effacer tout</string>
<string name="search_open_url">Ouvrir l\'URL dans Mastodon</string>
<string name="posts_matching_hashtag">Publications ayant « %s »</string>
<string name="search_go_to_account">Aller à %s</string>
<string name="posts_matching_string">Publications ayant « %s »</string>
<string name="accounts_matching_string">Personnes ayant « %s »</string>
<!-- Shown in the post header. Please keep it short -->
<string name="time_seconds_ago_short">il y a %ds</string>
<string name="time_minutes_ago_short">il y a %dm</string>
<string name="time_hours_ago_short">Il y a %dh</string>
<string name="time_days_ago_short">Il y a %dj</string>
</resources>

View File

@@ -336,4 +336,42 @@
<string name="sk_settings_true_black">Mode noir absolu</string>
<string name="sk_gif_badge">GIF</string>
<string name="sk_disable_pill_shaped_active_indicator">Désactiver l\'indicateur d\'onglet actif en forme de punaise</string>
<string name="sk_search_fediverse">Chercher sur le Fediverse</string>
<string name="sk_settings_unifiedpush_choose">Choisissez un distributeur</string>
<string name="sk_settings_unifiedpush_no_distributor">Aucun distributeur trouvé</string>
<string name="sk_settings_display_pronouns_in_threads">Afficher les pronoms dans les fils de discussion</string>
<string name="sk_settings_display_pronouns_in_user_listings">Afficher les pronoms dans les listes d\'utilisateurs</string>
<string name="sk_tab_home">Accueil</string>
<string name="sk_tab_search">Recherche</string>
<string name="sk_tab_notifications">Notifications</string>
<string name="sk_tab_profile">Profil</string>
<string name="sk_mute_label">Durée</string>
<string name="sk_duration_indefinite">Indéfini</string>
<string name="sk_duration_minutes_5">5 minutes</string>
<string name="sk_duration_minutes_30">30 minutes</string>
<string name="sk_duration_hours_1">1 heure</string>
<string name="sk_duration_hours_6">6 heures</string>
<string name="sk_duration_days_1">1 jour</string>
<string name="sk_duration_days_3">3 jours</string>
<string name="sk_duration_days_7">7 jours</string>
<string name="sk_notification_mention">Vous avez été mentionné par %s</string>
<string name="sk_settings_continues_playback">Superposition audio</string>
<string name="sk_settings_continues_playback_summary">Autoriser les médias déjà en cours de lecture à continuer à jouer, en superposant la nouvelle lecture</string>
<string name="sk_settings_unifiedpush">Utiliser UnifiedPush</string>
<string name="sk_settings_unifiedpush_no_distributor_body">Vous devez installer un distributeur pour que les notifications UnifiedPush fonctionnent. Pour plus d\'informations, visitez https://unifiedpush.org/</string>
<string name="sk_settings_display_pronouns_in_timelines">Afficher les pronoms dans les timelines</string>
<string name="sk_settings_show_labels_in_navigation_bar">Afficher les étiquettes des onglets dans la barre de navigation</string>
<string name="sk_settings_emoji_reactions">Activer les réactions emoji</string>
<string name="sk_settings_emoji_reactions_explanation">Affiche les réactions emoji aux messages et vous permet d\'interagir avec elles. Certaines versions modifiées de Mastodon le supportent, mais pas Mastodon.</string>
<string name="sk_settings_emoji_reactions_in_lists">Afficher les réactions emoji dans les timelines</string>
<string name="sk_settings_emoji_reactions_in_lists_explanation">Si les réactions emoji doivent être affichées sur les timelines. Si cette option est désactivée, les réactions emoji ne seront affichées que lors de l\'affichage d\'un fil de discussion.</string>
<plurals name="sk_users_reacted_with">
<item quantity="one">Un utilisateur a réagi avec %2$s</item>
<item quantity="many">%1$,d utilisateurs ont réagi avec %2$s</item>
<item quantity="other">%1$,d utilisateurs ont réagi avec %2$s</item>
</plurals>
<string name="sk_button_react">Réagissez avec des emojis</string>
<string name="sk_again_for_system_keyboard">Appuyez à nouveau pour le clavier système</string>
<string name="sk_enter_emoji_hint">Tapez pour réagir avec un emoji</string>
<string name="sk_enter_emoji_toast">Vous devez saisir un emoji</string>
</resources>

View File

@@ -9,6 +9,10 @@
<string name="user_boosted">%s-ը տարածել է</string>
<string name="in_reply_to">Ի պատասխան %s-ին</string>
<string name="notifications">Ծանուցումներ</string>
<string name="user_followed_you">%s սկսեց հետեւել ձեզ</string>
<string name="user_sent_follow_request">%s հետեւելու հարցում է ուղարկել</string>
<string name="user_favorited">%s-ը հավանեց ձեր գրառումը</string>
<string name="notification_boosted">%s տարածեց ձեր գրառումը</string>
<string name="share_toot_title">Տարածել</string>
<string name="settings">Կարգավորումներ</string>
<string name="publish">Հրապարակել</string>
@@ -48,6 +52,7 @@
<string name="field_content">Բովանդակություն</string>
<string name="saving">Պահպանվում է․․․</string>
<string name="post_from_user">%s-ի գրառումը</string>
<string name="poll_option_hint">Տարբերակ %d</string>
<plurals name="x_minutes">
<item quantity="one">%d րոպե</item>
<item quantity="other">%d րոպե</item>
@@ -76,6 +81,10 @@
<item quantity="one">Մնաց %d օր</item>
<item quantity="other">Մնաց %d օր</item>
</plurals>
<plurals name="x_votes">
<item quantity="one">%,d ձայն</item>
<item quantity="other">%,d ձայն</item>
</plurals>
<string name="poll_closed">Փակ</string>
<string name="confirm_mute_title">Լռեցնել հաշիվը</string>
<string name="confirm_mute">Հաստատեք %s-ի լռեցումը</string>
@@ -90,6 +99,7 @@
<string name="delete">Ջնջել</string>
<string name="confirm_delete_title">Ջնջել գրառումը</string>
<string name="confirm_delete">Վստա՞հ եք, որ ուզում եք ջնջել այս գրառումը։</string>
<string name="deleting">Ջնջում…</string>
<string name="play">Նվագարկել</string>
<string name="pause">Դադար տալ</string>
<string name="add_account">Ավելացնել հաշիվ</string>
@@ -97,15 +107,28 @@
<string name="hashtags">Պիտակներ</string>
<string name="news">Նորություններ</string>
<string name="for_you">Ձեզ համար</string>
<string name="all_notifications">Ամեն ինչ</string>
<string name="mentions">Նշումներ</string>
<plurals name="x_people_talking">
<item quantity="one">Խոսում է %d մարդ</item>
<item quantity="other">Խոսում է %d մարդ</item>
</plurals>
<string name="report_title">Զեկուցել %s-ի մասին</string>
<string name="report_reason_personal">Ինձ դուր չի գալիս</string>
<string name="report_reason_personal_subtitle">Դուք սա չեք ուզում տեսնել</string>
<string name="report_reason_spam">Սպամ է</string>
<string name="report_reason_spam_subtitle">Վնասակար հղումներ, կեղծում կամ կրկնվող պատասխաններ</string>
<string name="report_reason_violation">Խախտում է սերվերի կանոնները</string>
<string name="report_reason_violation_subtitle">Գիտեք, որ այն խախտում է կանոնները</string>
<string name="report_reason_other">Այլ բան է</string>
<string name="report_reason_other_subtitle">Խնդիրը չի պատկանում այլ տարբերակներին</string>
<string name="report_choose_rule">Ո՞ր կանոններն են խախտվել։</string>
<string name="report_choose_posts">Կա՞ն զեկույցը ապացուցող գրառումներ։</string>
<string name="report_comment_hint">Լրացուցիչ մեկնաբանություններ</string>
<string name="sending_report">Զեկույցը ուղարկվում է․․․</string>
<string name="mute_user_explain">Դուք չեք տեսնի նրա գրառումները։ Նա դեռ կարող է ձեզ հետևել և տեսնել ձեր գրառումները և չի իմանա, որ խլեցված է։</string>
<string name="block_user_explain">Դուք չեք տեսնի նրա գրառումները։ Նա չի կարող ձեզ հետևել կամ տեսնել ձեր գրառումները։ Նա կիմանա, որ արգելափակված է։</string>
<string name="report_personal_title">Չե՞ք ուզում սա տեսնել։</string>
<string name="back">Ետ</string>
<string name="search_communities">Սպասարկչի անուն կամ հասցե</string>
<string name="instance_rules_title">Սպասարկչի կանոնները</string>
@@ -115,6 +138,7 @@
<string name="email">Էլ. փոստ</string>
<string name="password">Գաղտնաբառ</string>
<string name="confirm_password">Գաղտնաբառի հաստատում</string>
<string name="password_note">Գաղտնաբառի ապահովությունը բարձրացնելու համար ավելացրեք մեծատառեր, հատուկ նշաններ և թվեր։</string>
<string name="category_academia">Ակադեմիական</string>
<string name="category_activism">Ակտիվիզմ</string>
<string name="category_all">Բոլորը</string>
@@ -123,14 +147,19 @@
<string name="category_games">Խաղեր</string>
<string name="category_general">Ընդհանուր</string>
<string name="category_journalism">Լրագրություն</string>
<string name="category_lgbt">ԼԳԲՏ</string>
<string name="category_music">Երաժշտություն</string>
<string name="category_regional">Տարածաշրջանային</string>
<string name="category_tech">Տեխնոլոգիա</string>
<string name="confirm_email_title">Ստուգեք Ձեր էլ․ փոստը</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">Սեղմեք %s-ին ուղարկված հղման վրա։ Մենք կսպասենք։</string>
<string name="confirm_email_didnt_get">Հղում չե՞ք ստացել։</string>
<string name="resend">Ուղարկել նորից</string>
<string name="open_email_app">Բացել էլ․ փոստի հավելվածը</string>
<string name="content_warning">Նախազգուշացում</string>
<string name="save">Պահպանել</string>
<string name="add_alt_text">Ավելացնել բացատրություն</string>
<string name="visibility_public">Հրապարակային</string>
<string name="visibility_followers_only">Միայն հետեւողներին</string>
<string name="skip">Բաց թողնել</string>
@@ -174,8 +203,12 @@
<string name="permission_required">Անհրաժեշտ է թույլտվություն</string>
<string name="open_settings">Բացել կարգավորումները</string>
<string name="downloading">Բեռնում․․․</string>
<string name="local_timeline">Տեղական</string>
<string name="trending_posts_info_banner">Այս գրառումները տարածված են Մաստոդոնում։</string>
<string name="trending_links_info_banner">Այս նորությունների մասին խոսում են Մաստոդոնում։</string>
<!-- %s is the server domain -->
<string name="see_new_posts">Նոր գրառումներ</string>
<string name="load_missing_posts">Բեռնել բաց թողնված գրառումները</string>
<string name="follows_you">Հետեւում է ձեզ</string>
<!-- translators: %,d is a valid placeholder, it formats the number with locale-dependent grouping separators -->
<plurals name="x_followers">
@@ -203,17 +236,24 @@
<item quantity="one">%d րոպե առաջ</item>
<item quantity="other">%d րոպե առաջ</item>
</plurals>
<string name="edited_timestamp">խմբագրվել է %s</string>
<string name="edit_original_post">Սկզբնական գրառում</string>
<string name="edit_text_edited">Տեքստը փոփոխվել է</string>
<string name="edit_spoiler_added">Ավելացվել է նախազգուշացում</string>
<string name="edit_spoiler_removed">Նախազգուշացումը հեռացվել է</string>
<string name="edit_poll_added">Հարցումն ավելացել է</string>
<string name="edit_poll_edited">Հարցումը խմբագրվել է</string>
<string name="edit_poll_removed">Հարցումը հեռացվել է</string>
<string name="edit_media_added">Մեդիան ավելացվել է</string>
<string name="edit_media_removed">Մեդիան հեռացվել է</string>
<string name="edit_marked_sensitive">Նշվել է որպես դյուրազգաց</string>
<string name="edit_multiple_changed">Գրառումը խմբագրվել է</string>
<string name="edit">Խմբագրել</string>
<string name="file_size_bytes">%d բայթ</string>
<string name="file_size_kb">%.2f ԿԲ</string>
<string name="file_size_mb">%.2f ՄԲ</string>
<string name="file_size_gb">%.2f ԳԲ</string>
<string name="upload_processing">Մշակվում է...</string>
<!-- %s is version like 1.2.3 -->
<!-- %s is version like 1.2.3 -->
<!-- %s is file size -->
@@ -236,7 +276,13 @@
<string name="server_filter_region_asia">Ասիա</string>
<string name="server_filter_region_oceania">Օվկիանիա</string>
<string name="not_accepting_new_members">Չի ընդունում նոր անդամներ</string>
<string name="category_special_interests">Հատուկ հետաքրքրություններ</string>
<string name="signup_passwords_dont_match">Գաղտնաբառերը չեն համընկնում</string>
<string name="pick_server_for_me">Ընտրել իմ համար</string>
<string name="popular_on_mastodon">Տարածված Մաստոդոնում</string>
<string name="follow_all">Հետևել բոլորին</string>
<string name="server_rules_disagree">Համաձայն չեմ</string>
<string name="privacy_policy_explanation">Կարճ ասած՝ մենք ոչինչ չենք հավաքում։</string>
<!-- %s is server domain -->
<string name="profile_bio">Կենսագրություն</string>
<!-- Shown in a progress dialog when you tap "follow all" -->
@@ -258,14 +304,82 @@
<string name="welcome_paragraph1">Մաստոդոնը ապակենտրոնացված սոցցանց է, այսինքն՝ այն չի պատկանում մի ընկերության։ Այն բաղկացած է բազմաթիվ անկախ և կապակցված սերվերներից։</string>
<string name="what_are_servers">Ի՞նչ է սերվերը։</string>
<string name="welcome_paragraph2"><![CDATA[Մաստոդոնի որևէ հաշիվ գտնվում է սերվերի վրա - ամեն մեկը՝ իր արժեքներով, կանոններով և ադմիններով։ Դուք կարող եք հետևել և շփվել որևէ սերվերի մարդկանց հետ՝ անկախ ձեր ընտրությունից։]]></string>
<string name="retry">Կրկին</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="alt_text">Բացատրություն</string>
<string name="help">Օգնություն</string>
<string name="what_is_alt_text">Ի՞նչ է բացատրությունը։</string>
<string name="alt_text_help">Բացատրությունը օգնում է տեսողական խնդիրներ կամ դանդաղ կապ ունեցող մարդկանց և նրանց, ում պետք է կոնտեքստ:\n\nՀասկանալի, հակիրճ և օբյեկտիվ բացատրություն գրելով՝ դուք կարող եք գրառումը դարձնել ավելի հասկանալի և մատչելի։\n\n<ul><li>Նշեք կարևորը</li>\n<li>Կրճատեք նկարների տեքստը</li>\n<li>Օգտագործեք նախադասության սովորական կազմություն</li>\n<li>Մի՛ ավելացրեք անպետք տեքստ</li>\n<li>Բարդ նկարների (օրինակ՝ սխեմաների և քարտեզների) համար նշեք ուղղությունը և առանցքային հայտնաբերումները</li></ul></string>
<string name="edit_post">Խմբագրել գրառումը</string>
<string name="no_verified_link">Չկա հաստատված հղում</string>
<string name="no_search_results">Այս հարցման համար ոչինչ չգտնվեց</string>
<string name="language">Լեզու</string>
<string name="language_default">Լռելյայն</string>
<string name="language_system">Համակարգի</string>
<string name="media_hidden">Մեդիան թաքցված է</string>
<string name="post_hidden">Գրառումը թաքցված է</string>
<string name="report_title_post">Զեկուցել %s-ի մասին</string>
<string name="forward_report_explanation">Այս հաշիվը այլ սերվերից է։ Ուղարկե՞լ այնտեղ այս զեկուցի անանուն պատճենը։</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">Ուղարկել %s</string>
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<string name="muted_user">%s-ը լռեցվել է</string>
<string name="settings_display">Տեսք</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<string name="about_app">%s-ի մասին</string>
<string name="settings_alt_text_reminders">Ավելացնել բացատրության մասին հիշեցումներ</string>
<string name="settings_confirm_boost">Հարցնել տարածելուց առաջ</string>
<string name="settings_confirm_delete_post">Հարցնել գրառում ջնջելուց առաջ</string>
<string name="pause_all_notifications">Դադարեցնել բոլորը</string>
<string name="pause_notifications_off">Անջատ</string>
<string name="notifications_policy_anyone">Որեւե մեկը</string>
<string name="notifications_policy_followed">Մարդիկ, որոնք ձեզ հետեւում են</string>
<string name="notifications_policy_follower">Մարդիկ, որոնց դուք հետեւում եք</string>
<string name="notifications_policy_no_one">Ոչ ոք</string>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="today">այսօր</string>
<string name="yesterday">երեկ</string>
<string name="tomorrow">վաղը</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="about_server">Մեր մասին</string>
<string name="server_rules">Կանոններ</string>
<string name="server_administrator">Ադմինիստրատոր</string>
<string name="send_email_to_server_admin">Գրել ադմինիստրատորին</string>
<string name="settings_even_more">Ավելի շատ կարգավորումներ</string>
<plurals name="in_x_seconds">
<item quantity="one">%d վայրկյանից</item>
<item quantity="other">%d վայրկյանից</item>
</plurals>
<plurals name="in_x_minutes">
<item quantity="one">%d րոպեից</item>
<item quantity="other">%d րոպեից</item>
</plurals>
<plurals name="in_x_hours">
<item quantity="one">%d ժամից</item>
<item quantity="other">%d ժամից</item>
</plurals>
<plurals name="x_hours_ago">
<item quantity="one">%d ժամ առաջ</item>
<item quantity="other">%d ժամ առաջ</item>
</plurals>
<string name="alt_text_reminder_title">Մեդիան չունի բացատրություն</string>
<plurals name="alt_text_reminder_x_images">
<item quantity="one">%s նկար չունի բացատրություն։ Հրապարակե՞լ։</item>
<item quantity="other">%s նկար չունի բացատրություն։ Հրապարակե՞լ։</item>
</plurals>
<string name="count_one">Մեկ</string>
<string name="count_two">Երկու</string>
<string name="count_three">Երեք</string>
<string name="count_four">Չորս</string>
<string name="alt_text_reminder_post_anyway">Այո</string>
<!-- %s is the username -->
<string name="filter_active">Ակտիվ</string>
<string name="filter_inactive">Ոչ ակտիվ</string>
<string name="settings_add_filter">Ավելացնել ֆիլտր</string>
<string name="settings_edit_filter">Խմբագրել ֆիլտրը</string>
<string name="settings_filter_duration">Տեւողություն</string>
<string name="settings_filter_muted_words">Լռեցված բառեր</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<!-- Shown like a content warning, %s is the name of the filter -->
<!-- Shown in the post header. Please keep it short -->

View File

@@ -4,12 +4,18 @@
<string name="next">Selanjutnya</string>
<string name="loading_instance">Mengambil info server…</string>
<string name="error">Kesalahan</string>
<string name="not_a_mastodon_instance">%s sepertinya bukan server Mastodon.</string>
<string name="ok">Oke</string>
<string name="preparing_auth">Menyiapkan untuk autentikasi…</string>
<string name="finishing_auth">Menyelesaikan autentikasi…</string>
<string name="user_boosted">%s membagikan</string>
<string name="in_reply_to">Membalas ke %s</string>
<string name="notifications">Notifikasi</string>
<string name="user_followed_you">%s mengikuti Anda</string>
<string name="user_sent_follow_request">%s mengirim Anda permintaan pengikut</string>
<string name="user_favorited">%s memfavorit kiriman Anda</string>
<string name="notification_boosted">%s membagikan kiriman Anda</string>
<string name="poll_ended">Lihat hasil dari japat yang Anda ikuti</string>
<string name="share_toot_title">Bagikan</string>
<string name="settings">Pengaturan</string>
<string name="publish">Terbitkan</string>
@@ -29,6 +35,7 @@
<string name="button_follow">Ikuti</string>
<string name="button_following">Mengikuti</string>
<string name="edit_profile">Sunting Profil</string>
<string name="share_user">Bagikan profil</string>
<string name="mute_user">Bisukan %s</string>
<string name="unmute_user">Berhenti membisukan %s</string>
<string name="block_user">Blokir %s</string>
@@ -68,6 +75,9 @@
<plurals name="x_days_left">
<item quantity="other">Tersisa %d hari</item>
</plurals>
<plurals name="x_votes">
<item quantity="other">%,d pemilih</item>
</plurals>
<string name="poll_closed">Ditutup</string>
<string name="confirm_mute_title">Bisukan Akun</string>
<string name="confirm_mute">Konfirmasi membisukan %s</string>
@@ -86,26 +96,34 @@
<string name="button_blocked">Diblokir</string>
<string name="action_vote">Pilih</string>
<string name="delete">Hapus</string>
<string name="confirm_delete_title">Hapus kiriman</string>
<string name="confirm_delete">Apakah Anda yakin untuk menghapus kiriman ini?</string>
<string name="deleting">Menghapus…</string>
<string name="notification_channel_audio_player">Pemutaran audio</string>
<string name="play">Putar</string>
<string name="pause">Jeda</string>
<string name="log_out">Keluar</string>
<string name="add_account">Tambahkan akun</string>
<string name="search_hint">Cari</string>
<string name="hashtags">Tagar</string>
<string name="news">Berita</string>
<string name="for_you">Untuk Anda</string>
<string name="all_notifications">Semuanya</string>
<string name="mentions">Sebutan</string>
<plurals name="x_people_talking">
<item quantity="other">%d orang sedang membicarakan</item>
</plurals>
<string name="report_title">Laporkan %s</string>
<string name="report_choose_reason">Ada apa dengan kiriman ini?</string>
<string name="report_choose_reason_account">Ada yang salah dengan %s?</string>
<string name="report_choose_reason_subtitle">Pilih alasan yang cocok</string>
<string name="report_reason_personal">Saya tidak suka</string>
<string name="report_reason_personal_subtitle">Ini bukan hal yang ingin Anda lihat</string>
<string name="report_reason_spam">Ini spam</string>
<string name="report_reason_spam_subtitle">Tautan berbahaya, interaksi palsu, atau balasan berulang</string>
<string name="report_reason_violation">Melanggar ketentuan server</string>
<string name="report_reason_violation_subtitle">Anda menyadari bahwa ia melanggar ketentuan tertentu</string>
<string name="report_reason_other">Alasan lainnya</string>
<string name="report_reason_other_subtitle">Permasalahan ini tidak sesuai dengan kategori lain</string>
<string name="report_choose_rule">Ketentuan manakah yang dilanggar?</string>
<string name="report_choose_rule_subtitle">Pilih semua yang berlaku</string>
@@ -114,8 +132,14 @@
<string name="report_comment_title">Adakah hal lain yang perlu kami ketahui?</string>
<string name="report_comment_hint">Komentar tambahan</string>
<string name="sending_report">Mengirim laporan…</string>
<string name="report_sent_title">Terima kasih atas pelaporan Anda, kami akan memeriksa ini lebih lanjut.</string>
<string name="report_sent_subtitle">Saat kami sedang meninjau ini, Anda dapat mengambil tindakan terhadap %s:</string>
<string name="unfollow_user">Berhenti mengikuti %s</string>
<string name="unfollow">Berhenti mengikuti</string>
<string name="mute_user_explain">Anda tidak akan melihat kiriman mereka. Mereka masih dapat mengikuti Anda dan melihat kiriman Anda dan tidak akan mengetahui bahwa mereka dibisukan.</string>
<string name="block_user_explain">Anda tidak akan melihat kiriman mereka. Mereka tidak akan bisa melihat kiriman Anda atau mengikuti Anda. Mereka akan mampu menduga bahwa mereka diblokir.</string>
<string name="report_personal_title">Tidak ingin melihat ini?</string>
<string name="report_personal_subtitle">Berikut adalah pilihan Anda untuk mengatur apa yang Anda lihat di Mastodon:</string>
<string name="back">Kembali</string>
<string name="search_communities">Nama server atau URL</string>
<string name="instance_rules_title">Aturan Server</string>
@@ -142,14 +166,19 @@
<string name="category_tech">Teknologi</string>
<string name="confirm_email_title">Periksa Kotak Masuk Anda</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">Ketuk tautan yang kami kirim kepada Anda untuk memverifikasi %s. Kami akan tunggu di sini.</string>
<string name="confirm_email_didnt_get">Tidak mendapatkan tautan?</string>
<string name="resend">Kirim ulang</string>
<string name="open_email_app">Buka aplikasi surel</string>
<string name="resent_email">Surel konfirmasi terkirim</string>
<string name="compose_hint">Ketik atau tempel apa yang Anda pikirkan</string>
<string name="content_warning">Peringatan konten</string>
<string name="save">Simpan</string>
<string name="add_alt_text">Tambahkan teks alternatif</string>
<string name="visibility_public">Publik</string>
<string name="visibility_followers_only">Pengikut saja</string>
<string name="visibility_private">Hanya orang yang disebut</string>
<string name="recent_searches">Terbaru</string>
<string name="skip">Lewati</string>
<string name="notification_type_follow">Pengikut baru</string>
<string name="notification_type_favorite">Favorit</string>
@@ -158,8 +187,13 @@
<string name="notification_type_poll">Pemungutan suara</string>
<string name="choose_account">Pilih akun</string>
<string name="err_not_logged_in">Mohon masuk ke Mastodon terlebih dahulu</string>
<plurals name="cant_add_more_than_x_attachments">
<item quantity="other">Anda tidak dapat menambahkan lebih dari %d lampiran media</item>
</plurals>
<string name="media_attachment_unsupported_type">Berkas %s merupakan jenis yang tidak diketahui</string>
<string name="media_attachment_too_big">Berkas %1$s melebihi batasan %2$s MB</string>
<string name="settings_theme">Tampilan</string>
<string name="theme_auto">Gunakan tampilan perangkat</string>
<string name="theme_light">Terang</string>
<string name="theme_dark">Gelap</string>
<string name="settings_behavior">Perilaku</string>
@@ -172,6 +206,9 @@
<string name="settings_clear_cache">Hapus tembolok media</string>
<string name="settings_app_version">Mastodon for Android v%1$s (%2$d)</string>
<string name="media_cache_cleared">Tembolok media dihapus</string>
<string name="confirm_log_out">Keluar dari %s?</string>
<string name="sensitive_content_explain">Pengirim telah menandai media ini sebagai sensitif.</string>
<string name="avatar_description">Pergi ke profil %s</string>
<string name="more_options">Opsi lain</string>
<string name="new_post">Kiriman baru</string>
<string name="button_reply">Balas</string>
@@ -187,6 +224,7 @@
<string name="media_viewer">Penampil media</string>
<string name="follow_user">Ikuti %s</string>
<string name="unfollowed_user">Berhenti mengikuti %s</string>
<string name="followed_user">Anda sekarang mengikuti %s</string>
<string name="following_user_requested">Diminta untuk mengikuti %s</string>
<string name="open_in_browser">Buka di peramban</string>
<string name="hide_boosts_from_user">Sembunyikan boost dari %s</string>
@@ -204,7 +242,13 @@
<string name="error_saving_file">Kesalahan saat menyimpan berkas</string>
<string name="file_saved">Berkas disimpan</string>
<string name="downloading">Mengunduh…</string>
<string name="no_app_to_handle_action">Tidak ada aplikasi yang dapat menangani tindakan ini</string>
<string name="local_timeline">Lokal</string>
<string name="trending_posts_info_banner">Ini adalah kiriman yang mendapatkan daya tarik di antara Mastodon.</string>
<string name="trending_links_info_banner">Ini adalah kisah berita yang sedang dibicarakan di Mastodon.</string>
<!-- %s is the server domain -->
<string name="local_timeline_info_banner">Ini adalah kiriman dari semua pengguna di server Anda (%s).</string>
<string name="recommended_accounts_info_banner">Anda mungkin suka akun berikut berdasarkan orang-orang yang Anda ikuti.</string>
<string name="see_new_posts">Lihat kiriman baru</string>
<string name="load_missing_posts">Muat kiriman yang hilang</string>
<string name="follow_back">Ikuti Balik</string>
@@ -276,6 +320,7 @@
<string name="login_title">Selamat Datang Kembali</string>
<string name="login_subtitle">Masuk dengan server di mana Anda buat akun Anda.</string>
<string name="server_url">URL Server</string>
<string name="signup_random_server_explain">Kami akan memilih sebuah server berdasarkan bahasa Anda jika Anda melanjutkan tanpa memilih.</string>
<string name="server_filter_any_language">Bahasa Apa Pun</string>
<string name="server_filter_instant_signup">Pendaftaran Instan</string>
<string name="server_filter_manual_review">Pemeriksaan Manual</string>
@@ -288,6 +333,7 @@
<string name="server_filter_region_oceania">Oseania</string>
<string name="not_accepting_new_members">Tidak menerima anggota baru</string>
<string name="category_special_interests">Minat Khusus</string>
<string name="signup_passwords_dont_match">Kata sandi tidak cocok</string>
<string name="pick_server_for_me">Pilih untuk saya</string>
<string name="profile_add_row">Tambahkan baris</string>
<string name="profile_setup">Pengaturan profil</string>
@@ -296,12 +342,14 @@
<string name="popular_on_mastodon">Populer di Mastodon</string>
<string name="follow_all">Ikuti semua</string>
<string name="server_rules_disagree">Tolak</string>
<string name="privacy_policy_explanation">Kesimpulan: Kami tidak mengumpulkan atau memproses apa pun.</string>
<!-- %s is server domain -->
<string name="server_policy_disagree">Tidak setuju dengan %s</string>
<string name="profile_bio">Deskripsi</string>
<!-- Shown in a progress dialog when you tap "follow all" -->
<string name="sending_follows">Mengikuti pengguna…</string>
<!-- %1$s is server domain, %2$s is email domain. You can reorder these placeholders to fit your language better. -->
<string name="signup_email_domain_blocked">%1$s tidak memperbolehkan pendaftaran dari %2$s. Coba yang lain atau &lt;a&gt;pilih server lain&lt;/a&gt;.</string>
<string name="spoiler_show">Tampilkan saja</string>
<string name="spoiler_hide">Sembunyikan ulang</string>
<string name="poll_multiple_choice">Pilih satu atau lebih</string>
@@ -321,15 +369,188 @@
<string name="welcome_paragraph1">Mastodon adalah jejaring sosial terdesentralisasi, tidak ada satu pun perusahaan yang mengontrol. Semua dijalankan oleh server independen, terkoneksi bersama.</string>
<string name="what_are_servers">Apa itu server?</string>
<string name="welcome_paragraph2"><![CDATA[Semua akun Mastodon berada pada sebuah server — dengan nilai, aturan, dan admin masing-masing. Mana pun yang kamu pilih, kamu bisa mengikuti dan berinteraksi dengan server mana pun.]]></string>
<string name="opening_link">Membuka tautan…</string>
<string name="link_not_supported">Tautan ini tidak didukung dalam aplikasi</string>
<string name="log_out_all_accounts">Keluar dari semua akun</string>
<string name="confirm_log_out_all_accounts">Keluar dari semua akun?</string>
<string name="retry">Coba Lagi</string>
<string name="post_failed">Gagal mengirim kiriman</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_description_image">%s gambar</string>
<string name="attachment_description_video">%s video</string>
<string name="attachment_description_audio">%s audio</string>
<string name="attachment_description_unknown">%s berkas</string>
<string name="attachment_type_image">Gambar</string>
<string name="attachment_type_video">Video</string>
<string name="attachment_type_audio">Audio</string>
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">Berkas</string>
<string name="attachment_x_percent_uploaded">%d%% diunggah</string>
<string name="add_poll_option">Tambahkan opsi</string>
<string name="poll_length">Durasi</string>
<string name="poll_style">Gaya</string>
<string name="compose_poll_single_choice">Pilih satu</string>
<string name="compose_poll_multiple_choice">Pilihan ganda</string>
<string name="delete_poll_option">Hapus opsi</string>
<string name="poll_style_title">Gaya</string>
<string name="alt_text">Teks alternatif</string>
<string name="help">Bantuan</string>
<string name="what_is_alt_text">Apa itu teks alternatif?</string>
<string name="alt_text_help">Teks alternatif menyediakan deskripsi gambar untuk orang dengan gangguan penglihatan, koneksi bandwidth rendah, atau mereka yang mencari konteks tambahan.\n\nAnda dapat meningkatkan aksesibilitas dan pemahaman untuk semua orang dengan menulis teks alternatif yang jelas, ringkas, dan objektif.\n\n<ul><li>Tangkap elemen penting</li>\n<li>Ringkas teks dalam gambar</li>\n<li>Gunakan struktur kalimat biasa</li>\n<li>Hindari informasi yang berlebihan</li>\n<li>Fokus pada tren dan temuan penting dalam kompleks visual (seperti diagram atau peta)</li></ul></string>
<string name="edit_post">Sunting kiriman</string>
<string name="no_verified_link">Tidak ada tautan terverifikasi</string>
<string name="compose_autocomplete_emoji_empty">Cari emoji</string>
<string name="compose_autocomplete_users_empty">Temukan siapa yang Anda cari</string>
<string name="no_search_results">Tidak dapat menemukan apa pun untuk istilah pencarian ini</string>
<string name="language">Bahasa</string>
<string name="language_default">Bawaan</string>
<string name="language_system">Sistem</string>
<string name="language_detecting">Mendeteksi bahasa</string>
<string name="language_cant_detect">Tidak dapat mendeteksi bahasa</string>
<string name="language_detected">Terdeteksi</string>
<string name="media_hidden">Media disembunyikan</string>
<string name="post_hidden">Postingan disembunyikan</string>
<string name="report_title_post">Laporkan kiriman</string>
<string name="forward_report_explanation">Akun ini dari server lain. Kirim salinan laporan anonim ke situ juga?</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">Teruskan ke %s</string>
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<string name="reported">Dilaporkan</string>
<string name="report_unfollow_explanation">Untuk berhenti melihat kiriman mereka di umpan beranda Anda, berhenti ikuti mereka.</string>
<string name="muted_user">%s dibisukan</string>
<string name="report_sent_already_blocked">Anda sudah memblokir pengguna ini, jadi Anda tidak perlu melakukan apa-apa selagi kami meninjau laporan Anda.</string>
<string name="report_personal_already_blocked">Anda sudah memblokir pengguna ini, jadi Anda tidak perlu melalukan apa-apa.\n\nTerima kasih telah membantu membuat Mastodon menjadi tempat yang aman bagi semuanya!</string>
<string name="blocked_user">%s diblokir</string>
<string name="mark_all_notifications_read">Tandai semua sudah dibaca</string>
<string name="settings_display">Tampilan</string>
<string name="settings_filters">Saringan</string>
<string name="settings_server_explanation">Ikhtisar, peraturan, moderator</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<string name="about_app">Tentang %s</string>
<string name="default_post_language">Bahasa kiriman bawaan</string>
<string name="settings_alt_text_reminders">Pengingat penambahan teks alternatif</string>
<string name="settings_confirm_unfollow">Tanyakan sebelum berhenti mengikuti seseorang</string>
<string name="settings_confirm_boost">Tanyakan sebelum membagikan ulang</string>
<string name="settings_confirm_delete_post">Tanyakan sebelum menghapus kiriman</string>
<string name="pause_all_notifications">Jeda semua</string>
<string name="pause_notifications_off">Mati</string>
<string name="notifications_policy_anyone">Siapa pun</string>
<string name="notifications_policy_followed">Orang-orang yang mengikuti Anda</string>
<string name="notifications_policy_follower">Orang-orang yang Anda ikuti</string>
<string name="notifications_policy_no_one">Tidak ada</string>
<string name="settings_notifications_policy">Dapatkan notifikasi dari</string>
<string name="notification_type_mentions_and_replies">Sebutan dan balasan</string>
<string name="pause_all_notifications_title">Jeda semua notifikasi</string>
<plurals name="x_weeks">
<item quantity="other">%d minggu</item>
</plurals>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="date_at_time">%1$s pada %2$s</string>
<string name="today">hari ini</string>
<string name="yesterday">kemarin</string>
<string name="tomorrow">besok</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_ends">Berakhir pada %s</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_banner">Notifikasi akan dilanjutkan pada %s.</string>
<string name="resume_notifications_now">Lanjutkan sekarang</string>
<string name="open_system_notification_settings">Pergi ke pengaturan notifikasi</string>
<string name="about_server">Tentang</string>
<string name="server_rules">Aturan</string>
<string name="server_administrator">Administrator</string>
<string name="send_email_to_server_admin">Kirim pesan ke admin</string>
<string name="notifications_disabled_in_system">Nyalakan notifikasi dari pengaturan perangkat Anda untuk melihat pembaruan dari mana pun.</string>
<string name="settings_even_more">Lebih banyak pengaturan</string>
<string name="settings_show_cws">Tampilkan peringatan konten</string>
<string name="settings_hide_sensitive_media">Sembunyikan media yang ditandai sebagai sensitif</string>
<string name="settings_show_interaction_counts">Jumlah interaksi kiriman</string>
<string name="settings_show_emoji_in_names">Emoji kustom dalam nama tampilan</string>
<plurals name="in_x_seconds">
<item quantity="other">dalam %d detik</item>
</plurals>
<plurals name="in_x_minutes">
<item quantity="other">dalam %d menit</item>
</plurals>
<plurals name="in_x_hours">
<item quantity="other">dalam %d jam</item>
</plurals>
<plurals name="x_hours_ago">
<item quantity="other">%d jam yang lalu</item>
</plurals>
<string name="alt_text_reminder_title">Media kurang teks alternatif</string>
<plurals name="alt_text_reminder_x_images">
<item quantity="other">%s gambar belum memiliki teks alternatif. Tetap kirim?</item>
</plurals>
<plurals name="alt_text_reminder_x_attachments">
<item quantity="other">%s lampiran media belum memiliki teks alternatif. Tetap kirim?</item>
</plurals>
<string name="count_one">Satu</string>
<string name="count_two">Dua</string>
<string name="count_three">Tiga</string>
<string name="count_four">Empat</string>
<string name="alt_text_reminder_post_anyway">Kiriman</string>
<!-- %s is the username -->
<string name="unfollow_confirmation">Berhenti mengikuti %s?</string>
<string name="filter_active">Aktif</string>
<string name="filter_inactive">Tidak aktif</string>
<string name="settings_add_filter">Tambahkan saringan</string>
<string name="settings_edit_filter">Sunting saringan</string>
<string name="settings_filter_duration">Durasi</string>
<string name="settings_filter_muted_words">Kata yang dibisukan</string>
<string name="settings_filter_context">Bisukan dari</string>
<string name="settings_filter_show_cw">Tampilkan dengan peringatan konten</string>
<string name="settings_filter_show_cw_explanation">Tetap menampilkan kiriman yang cocok dengan saringan ini, tetapi di belakang sebuah peringatan konten</string>
<string name="settings_delete_filter">Hapus saringan</string>
<string name="filter_duration_forever">Selamanya</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="settings_filter_ends">Berakhir pada %s</string>
<plurals name="settings_x_muted_words">
<item quantity="other">%d kata atau frasa yang dibisukan</item>
</plurals>
<string name="selection_2_options">%1$s dan %2$s</string>
<string name="selection_3_options">%1$s, %2$s, dan %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s, dan %3$d lainnya</string>
<string name="filter_context_home_lists">Beranda &amp; daftar</string>
<string name="filter_context_notifications">Notifikasi</string>
<string name="filter_context_public_timelines">Lini masa publik</string>
<string name="filter_context_threads_replies">Utas &amp; balasan</string>
<string name="filter_context_profiles">Profil</string>
<string name="settings_filter_title">Judul</string>
<string name="settings_delete_filter_title">Hapus saringan “%s”?</string>
<string name="settings_delete_filter_confirmation">Saringan ini akan dihapus dari akun Anda di semua perangkat Anda.</string>
<string name="add_muted_word">Tambahkan kata untuk dibisukan</string>
<string name="edit_muted_word">Sunting kata yang dibisukan</string>
<string name="add">Tambah</string>
<string name="filter_word_or_phrase">Kata atau frasa</string>
<string name="filter_add_word_help">Kata tidak peka huruf besar/kecil dan hanya cocok dengan kata lengkap.\n\nJika Anda menyaring kata kunci “Apple”, postingan yang berisi “apple” atau “aPpLe” akan disembunyikan, tetapi bukan “pineapple”.</string>
<string name="settings_delete_filter_word">Hapus kata “%s”?</string>
<string name="enter_selection_mode">Pilih</string>
<string name="select_all">Pilih semua</string>
<string name="settings_filter_duration_title">Durasi penyaring</string>
<string name="filter_duration_custom">Kustom</string>
<plurals name="settings_delete_x_filter_words">
<item quantity="other">Hapus %d kata?</item>
</plurals>
<plurals name="x_items_selected">
<item quantity="other">%d dipilih</item>
</plurals>
<string name="required_form_field_blank">Tidak boleh kosong</string>
<string name="filter_word_already_in_list">Sudah ada di daftar</string>
<string name="app_update_ready">Tersedia perbaruan aplikasi</string>
<string name="app_update_version">Versi %s</string>
<string name="downloading_update">Mengunduh (%d%%)</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="post_matches_filter_x">Cocok dengan saringan “%s”</string>
<string name="search_mastodon">Cari Mastodon</string>
<string name="clear_all">Hapus semua</string>
<string name="search_open_url">Buka URL di Mastodon</string>
<string name="posts_matching_hashtag">Kiriman dengan “%s”</string>
<string name="search_go_to_account">Pergi ke %s</string>
<string name="posts_matching_string">Kiriman dengan “%s”</string>
<string name="accounts_matching_string">Orang dengan “%s”</string>
<!-- Shown in the post header. Please keep it short -->
<string name="time_seconds_ago_short">%dd yang lalu</string>
<string name="time_minutes_ago_short">%dm yang lalu</string>
<string name="time_hours_ago_short">%dj yang lalu</string>
<string name="time_days_ago_short">%dh yang lalu</string>
</resources>

View File

@@ -60,10 +60,10 @@
<string name="sk_example_domain">contoh.social</string>
<string name="sk_color_palette_red">Merah</string>
<string name="sk_translated_using">Diterjemahkan menggunakan %s</string>
<string name="sk_welcome_text">Hiu menyapamu! Untuk memulai, silakan memasukkan nama domain instansi Anda di bawah.</string>
<string name="sk_welcome_text">Hiu menyapamu! Untuk memulai, silakan memasukkan nama domain server Anda di bawah.</string>
<string name="sk_settings_tabs_disable_swipe">Nonaktifkan mengusap antara tab</string>
<string name="sk_settings_profile">Atur profil</string>
<string name="sk_settings_filters">Atur profil</string>
<string name="sk_settings_filters">Atur penyaring</string>
<string name="sk_settings_enable_delete_notifications">Aktifkan menghapus notifikasi</string>
<string name="sk_settings_publish_button_text">Teks tombol Terbitkan</string>
<string name="sk_settings_publish_button_text_title">Ubah teks tombol Terbitkan</string>
@@ -258,7 +258,7 @@
<string name="sk_settings_hide_interaction">Sembunyikan tombol interaksi</string>
<string name="sk_follow_as">Ikuti dari akun lain</string>
<string name="sk_followed_as">Diikuti dari %s</string>
<string name="sk_settings_prefix_reply_cw_with_re">Awali balasan peringatan konten dengan “re:”</string>
<string name="sk_settings_prefix_reply_cw_with_re">Awali peringatan konten dengan “re:” saat membalas</string>
<string name="sk_settings_collapse_long_posts">Tutup kiriman yang sangat panjang</string>
<string name="sk_unfinished_attachments">Perbaiki lampiran\?</string>
<string name="sk_unfinished_attachments_message">Beberapa lampiran belum selesai diunggah.</string>
@@ -271,11 +271,11 @@
<string name="sk_settings_reply_visibility_self">Balasan kepada saya</string>
<string name="sk_notification_action_replied">Mengirim balasan ke %s</string>
<string name="sk_reply_line_above_avatar">Baris “Membalas ke” di atas avatar</string>
<string name="sk_show_thread">Tampilkan utasan</string>
<string name="sk_show_thread">Tampilkan utas</string>
<string name="sk_compact_reblog_reply_line">Baris berbagi/balasan</string>
<string name="sk_settings_confirm_before_reblog">Konfirmasi sebelum membagikan ulang</string>
<string name="sk_reacted_with">bereaksi dengan %s</string>
<string name="sk_reacted">bereaksi</string>
<string name="sk_reacted_with">%1$s bereaksi dengan %2$s</string>
<string name="sk_reacted">%s bereaksi</string>
<string name="sk_content_type_plain">Teks biasa</string>
<string name="sk_content_type_html">HTML</string>
<string name="sk_content_type_markdown">Markdown</string>
@@ -295,16 +295,16 @@
<string name="sk_external_share_or_open_title">Bagikan atau buka dengan akun</string>
<string name="sk_no_remote_info_hint">info jarak jauh tidak tersedia</string>
<string name="sk_settings_allow_remote_loading">Muat info dari server jarak jauh</string>
<string name="sk_settings_allow_remote_loading_explanation">Coba mendapatkan pendaftaran akurat untuk pengikut cr</string>
<string name="sk_settings_allow_remote_loading_explanation">Coba mendapatkan pendaftaran akurat untuk pengikut, favorit, dan pembagian dengan memuat informasi dari asal server.</string>
<string name="sk_error_loading_profile">Gagal memuat profil melalui %s</string>
<string name="sk_open_in_app_failed">Tidak dapat buka dalam aplikasi</string>
<string name="sk_settings_auto_reveal_equal_spoilers">Tampilkan peringatan konten yang sama dari</string>
<string name="sk_settings_auto_reveal_nobody">bukan siapa pun</string>
<string name="sk_settings_auto_reveal_author">pembuat</string>
<string name="sk_settings_auto_reveal_anyone">semuanya</string>
<string name="sk_settings_prefix_replies_always">semuanya</string>
<string name="sk_settings_prefix_replies_never">bukan siapa pun</string>
<string name="sk_settings_prefix_replies_to_others">lainnya</string>
<string name="sk_settings_auto_reveal_equal_spoilers">Buka peringatan konten yang sama secara otomatis dalam balasan</string>
<string name="sk_settings_auto_reveal_nobody">Tidak pernah</string>
<string name="sk_settings_auto_reveal_author">Balasan dari pembuat yang sama</string>
<string name="sk_settings_auto_reveal_anyone">Balasan dari semuanya</string>
<string name="sk_settings_prefix_replies_always">Membalas ke siapa pun</string>
<string name="sk_settings_prefix_replies_never">Tidak pernah</string>
<string name="sk_settings_prefix_replies_to_others">Hanya dalam balasan ke lainnya</string>
<string name="sk_settings_forward_report_default">“Laporan diteruskan” ubah bawaan</string>
<string name="sk_icon_feed">Umpan</string>
<string name="sk_list_exclusive_switch">Buat daftar ekslusif</string>
@@ -329,4 +329,47 @@
<string name="sk_advanced_options_show">Tampilkan opsi tingkat lanjut</string>
<string name="sk_advanced_options_hide">Sembunyikan opsi tingkat lanjut</string>
<string name="sk_icon_beaker">Gelas kimia</string>
<string name="sk_gif_badge">GIF</string>
<string name="sk_pronouns_label">Kata ganti</string>
<string name="sk_switch_timeline">Ubah lini masa</string>
<string name="sk_settings_instance">Server</string>
<string name="sk_settings_true_black">Mode gelap gulita</string>
<string name="sk_spoiler_show">Tampilkan konten</string>
<string name="sk_disable_pill_shaped_active_indicator">Nonaktifkan indikator tab berbentuk pil yang aktif</string>
<string name="sk_search_fediverse">Cari di Fediverse</string>
<string name="sk_settings_unifiedpush_no_distributor">Tidak ada distributor yang ditemukan</string>
<string name="sk_settings_display_pronouns_in_threads">Tampilkan kata ganti dalam utas</string>
<string name="sk_settings_display_pronouns_in_user_listings">Tampilkan kata gamti dalam daftar pengguna</string>
<string name="sk_tab_home">Beranda</string>
<string name="sk_tab_search">Cari</string>
<string name="sk_tab_notifications">Notifikasi</string>
<string name="sk_tab_profile">Profil</string>
<string name="sk_mute_label">Durasi</string>
<string name="sk_duration_indefinite">Selamanya</string>
<string name="sk_duration_minutes_5">5 menit</string>
<string name="sk_duration_minutes_30">30 menit</string>
<string name="sk_duration_hours_1">1 jam</string>
<string name="sk_duration_hours_6">6 jam</string>
<string name="sk_duration_days_1">1 hari</string>
<string name="sk_duration_days_3">3 hari</string>
<string name="sk_duration_days_7">7 hari</string>
<string name="sk_notification_mention">Anda disebut oleh %s</string>
<string name="sk_settings_continues_playback">Hamparan audio</string>
<string name="sk_settings_continues_playback_summary">Perbolehkan memainkan media yang sudah diputar untuk terus memutar, menghamparkan pemutaran baru</string>
<string name="sk_settings_unifiedpush">Gunakan UnifiedPush</string>
<string name="sk_settings_unifiedpush_choose">Pilih distributor</string>
<string name="sk_settings_unifiedpush_no_distributor_body">Anda perlu memasang sebuah distributor supaya notifikasi UnifiedPush bekerja. Untuk informasi lanjut, kunjungi https://unifiedpush.org/</string>
<string name="sk_settings_display_pronouns_in_timelines">Tampilkan kata ganti dalam lini masa</string>
<string name="sk_settings_show_labels_in_navigation_bar">Tampilkan label tab dalam bilah navigasi</string>
<string name="sk_settings_emoji_reactions_in_lists">Tampilkan reaksi emoji di lini masa</string>
<plurals name="sk_users_reacted_with">
<item quantity="other">%1$,d pengguna bereaksi dengan %2$s</item>
</plurals>
<string name="sk_enter_emoji_toast">Anda perlu mengetik sebuah emoji</string>
<string name="sk_enter_emoji_hint">Ketik untuk bereaksi dengan sebuah emoji</string>
<string name="sk_settings_emoji_reactions">Aktifkan reaksi emoji</string>
<string name="sk_settings_emoji_reactions_explanation">Menampilkan reaksi emoji di kiriman dan memungkinkan Anda untuk berinteraksi. Beberapa versi Mastodon yang dimodifikasi mendukung ini, tetapi Mastodon sendiri tidak mendukungnya.</string>
<string name="sk_settings_emoji_reactions_in_lists_explanation">"Menentukan apakah reaksi emoji ditampilkan di lini masa. Jika opsi ini mati, reaksi emoji hanya akan ditampilkan ketika melihat sebuah utas."</string>
<string name="sk_button_react">Bereaksi dengan emoji</string>
<string name="sk_again_for_system_keyboard">Ketuk lagi untuk Papan Ketik Sistem</string>
</resources>

View File

@@ -150,7 +150,7 @@
<string name="sk_changelog">Registro delle modifiche</string>
<string name="sk_alt_text_missing_title">Testo alternativo mancante</string>
<string name="sk_publish_anyway">Pubblica comunque</string>
<string name="sk_timelines">Timeline</string>
<string name="sk_timelines">Linee temporali</string>
<string name="sk_timeline_posts">Post</string>
<string name="sk_timelines_add">Aggiungi</string>
<string name="sk_timeline">Timeline</string>
@@ -218,8 +218,8 @@
<string name="sk_icon_headphones">Cuffie</string>
<string name="sk_icon_human">Umano</string>
<string name="sk_icon_globe">Mappamondo</string>
<string name="sk_edit_timeline">Modifica timeline</string>
<string name="sk_edit_timelines">Modifica timeline</string>
<string name="sk_edit_timeline">Modifica le timeline</string>
<string name="sk_edit_timelines">Modifica le timeline</string>
<string name="sk_notify_update">Modifica un post boostato</string>
<string name="sk_notification_type_update">Post modificati</string>
<string name="sk_attach_file">Allega file</string>
@@ -314,8 +314,8 @@
<string name="sk_edit_timeline_tag_any">…o qualsiasi di questi</string>
<string name="sk_edit_timeline_tag_all">…e ognuno di questi</string>
<string name="sk_edit_timeline_tag_none">…ma nessuno di questi</string>
<string name="sk_edit_timeline_tag_hint">Inserisci hashtag…</string>
<string name="sk_edit_timeline_tags_hint">Inserisci hashtag…</string>
<string name="sk_edit_timeline_tag_hint">Inserisci l\'hashtag…</string>
<string name="sk_edit_timeline_tags_hint">Inserisci l\'hashtag…</string>
<string name="sk_edit_timeline_tags_explanation">Nota che il server gestisce queste operazioni. Combinarle poterebbe non essere supportato.</string>
<string name="sk_hashtag_timeline_local_only_switch">Mostra post solo locali\?</string>
<string name="sk_add_timeline_tag_error_empty">L\'hashtag non deve essere vuoto</string>
@@ -334,4 +334,5 @@
<string name="sk_icon_feed">Feed</string>
<string name="sk_list_exclusive_switch">Crea lista esclusiva</string>
<string name="sk_list_exclusive_switch_explanation">I membri di una lista esclusiva non appariranno nella tua timeline home - se la tua istanza lo supporta.</string>
<string name="sk_search_fediverse">Cerca nel Fediverso</string>
</resources>

View File

@@ -44,7 +44,7 @@
<string name="block_domain">%s をブロック</string>
<string name="unblock_domain">%s のブロックを解除</string>
<plurals name="x_posts">
<item quantity="other">%d 件の投稿</item>
<item quantity="other">投稿 %,d 件</item>
</plurals>
<string name="profile_joined">登録日</string>
<string name="done">完了</string>
@@ -134,7 +134,7 @@
<string name="sending_report">報告を送信しています...</string>
<string name="report_sent_title">ご報告ありがとうございます、追って確認します。</string>
<string name="report_sent_subtitle">私たちが確認する前でも、あなたが %s さんにできる対応があります。</string>
<string name="unfollow_user">フォロー解除 %s</string>
<string name="unfollow_user">%s さんのフォロー解除</string>
<string name="unfollow">フォローを解除</string>
<string name="mute_user_explain">ミュートすると、相手の投稿が表示されなくなります。相手は引き続きあなたをフォローしたり、あなたの投稿を表示したりできますが、ミュートしていることは伝わりません。</string>
<string name="block_user_explain">ブロックすると、相手の投稿が表示されなくなります。相手はあなたの投稿を見たり、フォローしたりできなくなります。相手にブロックしていることが伝わります。</string>
@@ -222,7 +222,7 @@
<string name="home_timeline">ホームタイムライン</string>
<string name="my_profile">プロフィール</string>
<string name="media_viewer">メディアビューアー</string>
<string name="follow_user">フォロー %s</string>
<string name="follow_user">%s さんをフォロー</string>
<string name="unfollowed_user">%s さんのフォローを解除しました</string>
<string name="followed_user">%s さんをフォローしました</string>
<string name="following_user_requested">%s さんにフォローリクエストを送信しました</string>
@@ -257,16 +257,16 @@
<string name="manually_approves_followers">フォロワーを手動で承認</string>
<!-- translators: %,d is a valid placeholder, it formats the number with locale-dependent grouping separators -->
<plurals name="x_followers">
<item quantity="other">%,d フォロワー</item>
<item quantity="other">フォロワー %,d 人</item>
</plurals>
<plurals name="x_following">
<item quantity="other">%,d フォロー</item>
<item quantity="other">フォロー %,d 人</item>
</plurals>
<plurals name="x_favorites">
<item quantity="other">%,d お気に入り</item>
<item quantity="other">お気に入り %,d 件</item>
</plurals>
<plurals name="x_reblogs">
<item quantity="other">%,d ブースト</item>
<item quantity="other">ブースト %,d 件</item>
</plurals>
<string name="timestamp_via_app">%1$s に %2$s から投稿</string>
<string name="time_now"></string>
@@ -385,7 +385,7 @@
<string name="attachment_type_audio">音声</string>
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">ファイル</string>
<string name="attachment_x_percent_uploaded">%d%% アップロード</string>
<string name="attachment_x_percent_uploaded">アップロード %d%%</string>
<string name="add_poll_option">アンケートの選択肢を追加</string>
<string name="poll_length">アンケートの期限</string>
<string name="poll_style">方法</string>

View File

@@ -255,12 +255,12 @@
<string name="sk_quoting_user">Quoting %s</string>
<string name="sk_settings_reply_visibility">Zichtbaarheid reactie</string>
<string name="sk_settings_reply_visibility_all">Alle reacties</string>
<string name="sk_settings_auto_reveal_anyone">iedereen</string>
<string name="sk_settings_auto_reveal_author">auteur</string>
<string name="sk_settings_auto_reveal_nobody">niemand</string>
<string name="sk_settings_prefix_replies_never">niemand</string>
<string name="sk_settings_prefix_replies_always">iedereen</string>
<string name="sk_settings_auto_reveal_equal_spoilers">Toon dezelfde CW\'s in reacties van</string>
<string name="sk_settings_auto_reveal_anyone">Reacties van iedereen</string>
<string name="sk_settings_auto_reveal_author">Reacties van dezelfde auteur</string>
<string name="sk_settings_auto_reveal_nobody">Nooit</string>
<string name="sk_settings_prefix_replies_never">Nooit</string>
<string name="sk_settings_prefix_replies_always">Als reactie op iemand</string>
<string name="sk_settings_auto_reveal_equal_spoilers">Dezelfde CW\'s automatisch tonen in reacties</string>
<string name="sk_settings_allow_remote_loading">Laad informatie van remote instances (servers)</string>
<string name="sk_no_remote_info_hint">remote info niet beschikbaar</string>
<string name="sk_settings_allow_remote_loading_explanation">Probeer meer accurate informatie te krijgen van volgers, favorieten en boosts, door informatie te laden van de originele instance (server).</string>
@@ -277,4 +277,37 @@
<string name="sk_advanced_options_show">Toon geavanceerde opties</string>
<string name="sk_open_in_app">Open in app</string>
<string name="sk_advanced_options_hide">Verberg geavanceerde opties</string>
<string name="sk_settings_emoji_reactions">Gebruik emoji reacties</string>
<plurals name="sk_users_reacted_with">
<item quantity="one">Eén persoon reageerde met %2$s</item>
<item quantity="other">%1$,d personen reageerden met %2$s</item>
</plurals>
<string name="sk_duration_minutes_30">30 minuten</string>
<string name="sk_duration_minutes_5">5 minuten</string>
<string name="sk_duration_indefinite">Onbepaald</string>
<string name="sk_mute_label">Duur</string>
<string name="sk_enter_emoji_hint">Type om te reageren met een emoji</string>
<string name="sk_duration_days_7">7 dagen</string>
<string name="sk_duration_days_3">3 dagen</string>
<string name="sk_duration_days_1">1 dag</string>
<string name="sk_duration_hours_6">6 uur</string>
<string name="sk_duration_hours_1">1 uur</string>
<string name="sk_button_react">Reageer met emoji</string>
<string name="sk_again_for_system_keyboard">Tik nogmaals voor systeem toetsenbord</string>
<string name="sk_settings_emoji_reactions_in_lists">Toon emoji reacties in tijdlijnen</string>
<string name="sk_external_share_title">Deel met account</string>
<string name="sk_content_type_html">HTML</string>
<string name="sk_content_type_plain">Alleen tekst</string>
<string name="sk_content_type_unspecified">Niet gespecificeerd</string>
<string name="sk_settings_default_content_type">Standaard formaat</string>
<string name="sk_content_type_markdown">Markdown</string>
<string name="sk_content_type_bbcode">BBCode</string>
<string name="sk_content_type_mfm">MFM</string>
<string name="sk_tab_notifications">Meldingen</string>
<string name="sk_tab_search">Zoek</string>
<string name="sk_tab_home">Home</string>
<string name="sk_external_share_or_open_title">Deel of open met account</string>
<string name="sk_instance_info_unavailable">Instance informatie tijdelijk niet beschikbaar</string>
<string name="sk_settings_show_labels_in_navigation_bar">Toon tab labels op navigatiebalk</string>
<string name="sk_tab_profile">Profiel</string>
</resources>

View File

@@ -0,0 +1,374 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="sk_delete_and_redraft">Slett og skriv på nytt</string>
<string name="sk_confirm_delete_and_redraft_title">Slett og skriv innlegg på nytt</string>
<string name="sk_pin_post">Fest til profil</string>
<string name="sk_confirm_pin_post_title">Fest innlegg til profil</string>
<string name="sk_confirm_pin_post">Vil du feste dette innlegget til profilen din\?</string>
<string name="sk_pinning">Festar innlegg…</string>
<string name="sk_unpin_post">Løys frå profil</string>
<string name="sk_available_languages">Tilgjengelege språk</string>
<string name="sk_language_name">%1$s (%2$s)</string>
<string name="sk_clear_recent_languages">Fjern nyleg brukte språk</string>
<string name="sk_confirm_clear_recent_languages">Er du sikker på at du vil fjerne nyleg brukte språk\?</string>
<string name="sk_welcome_title">Velkomen!</string>
<string name="sk_welcome_text">Haien seier hei! For å starte, skriv inn domenenamnet til din heime-instans nedanfor.</string>
<string name="sk_example_domain">eksempel.social</string>
<string name="sk_app_name">Megalodon</string>
<string name="sk_pinned_posts">Festa</string>
<string name="sk_translate_post">Omset</string>
<string name="sk_post_language">Språk: %s</string>
<string name="sk_translated_using">Omsett ved hjelp av %s</string>
<string name="sk_confirm_unpin_post">Er du sikker på at du vil løyse dette innlegget frå profilen\?</string>
<string name="sk_unpinning">Løyser innleg frå profil…</string>
<string name="sk_visibility_unlisted">Ikkje lista</string>
<string name="sk_settings_show_replies">Vis svar</string>
<string name="sk_settings_continues_playback">Lydoverlag</string>
<string name="sk_quoting_user">Siterer %s</string>
<string name="sk_settings_reply_visibility">Vising av svar</string>
<string name="sk_settings_reply_visibility_all">Alle svar</string>
<string name="sk_settings_reply_visibility_following">Svar til dei eg følgjer</string>
<string name="sk_settings_reply_visibility_self">Svar til meg</string>
<string name="sk_settings_show_boosts">Vis framhevingar</string>
<string name="sk_settings_load_new_posts">Last nye innlegg automatisk</string>
<string name="sk_settings_show_interaction_counts">Vis interaksjonsteljar</string>
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
<string name="sk_mark_media_as_sensitive">Merk media som ømtolig</string>
<string name="sk_user_post_notifications_on">Aktiviert varsling av innlegg frå %s</string>
<string name="sk_user_post_notifications_off">Deaktivert varsling av innlegg frå %s</string>
<string name="sk_federated_timeline">Fødererasjon</string>
<string name="sk_bubble_timeline_info_banner">Dette er dei seinaste innlegga frå nettverket kuratert av dine lokale administratorar.</string>
<string name="sk_update_available">Megalodon %s er klar for nedlasting.</string>
<string name="sk_check_for_update">Sjekk for oppdatering</string>
<string name="sk_no_update_available">Ingen tilgjengelege oppdateringar</string>
<string name="sk_list_timelines">Lister</string>
<string name="sk_follow_requests">Følgjeførespurnader</string>
<string name="sk_accept_follow_request">Aksepter følgjeførespurnad</string>
<string name="sk_reject_follow_request">Avslå følgjeførespurnad</string>
<string name="sk_lists_with_user">Lister med %s</string>
<string name="sk_settings_always_reveal_content_warnings">Ignorer åtvaringar om ømtoleg innhald</string>
<string name="sk_settings_enable_marquee">Aktiver rullande tekst i tittelrader</string>
<string name="sk_settings_contribute">Bidra til Megalodon</string>
<string name="sk_notification_type_status">Innlegg</string>
<string name="sk_notification_type_posts">Innleggsvarsel</string>
<string name="sk_settings_color_palette">Fargepalett</string>
<string name="sk_color_palette_material3">System</string>
<string name="sk_color_palette_pink">Rosa</string>
<string name="sk_color_palette_purple">Lilla</string>
<string name="sk_color_palette_green">Grøn</string>
<string name="sk_color_palette_blue">Blå</string>
<string name="sk_color_palette_brown">Brun</string>
<string name="sk_color_palette_red">Raud</string>
<string name="sk_color_palette_yellow">Gul</string>
<string name="sk_poll_allow_multiple">Tillat fleire val</string>
<string name="sk_confirm_delete_and_redraft">Er du sikker på at du vil slette og skrive dette innlegget på nytt\?</string>
<string name="sk_confirm_unpin_post_title">Løys innlegg frå profil</string>
<string name="sk_image_description">Bildeforklaring</string>
<string name="sk_settings_continues_playback_summary">Lat allereie spelande media halde fram med å spele under den nye avspelinga</string>
<string name="sk_federated_timeline_info_banner">Dette er dei seinaste innlegga av folk i føderasjonen din.</string>
<string name="sk_update_ready">Megalodon %s er lasta ned og kan no installerast.</string>
<string name="sk_settings_show_federated_timeline">Vis føderert tidsline</string>
<string name="sk_translate_show_original">Vis original</string>
<string name="sk_settings_tabs_disable_swipe">Slå av sveiping mellom faner</string>
<string name="sk_settings_profile">Tilpass profil</string>
<string name="sk_settings_posting">Publiseringsinnstillingar</string>
<string name="sk_settings_filters">Konfigurer filter</string>
<string name="sk_settings_auth">Tryggleiksinnstillingar</string>
<string name="sk_settings_rules">Reglar</string>
<string name="sk_settings_about">Om appen</string>
<string name="sk_delete_notification_confirm_action">Slett varsling</string>
<string name="sk_settings_donate">Doner</string>
<string name="sk_delete_notification">Slett varsling</string>
<string name="sk_settings_emoji_reactions_in_lists">Vis emoji-reaksjonar i tidslinjer</string>
<string name="sk_settings_emoji_reactions_in_lists_explanation">Styrer om emoji-reaksjonar skal visast i tidslinjer. Dersom denne innstillinga er av, vil emoji-reaksjonar kun bli viste når ein ser på ein tråd.</string>
<string name="sk_button_react">Reager med emoji</string>
<string name="sk_again_for_system_keyboard">Trykk igjen for systemtastatur</string>
<string name="sk_enter_emoji_toast">Du må skrive inn ein emoji</string>
<string name="sk_enter_emoji_hint">Skriv for å reagere med ein emoji</string>
<string name="sk_mute_label">Varigheit</string>
<string name="sk_duration_indefinite">Ubestemt</string>
<string name="sk_duration_minutes_5">5 minuttar</string>
<string name="sk_duration_minutes_30">30 minuttar</string>
<string name="sk_duration_hours_6">6 timar</string>
<string name="sk_duration_days_1">1 dag</string>
<string name="sk_duration_days_3">3 dagar</string>
<string name="sk_duration_days_7">7 dagar</string>
<string name="sk_notification_mention">Du vart nemnd av %s</string>
<string name="sk_resource_not_found">Ressurs ikkje funnen</string>
<string name="sk_delete_notification_confirm">Er du sikker på at du vil slette denne varslinga\?</string>
<string name="sk_reblog_as">Framhev med annan konto</string>
<string name="sk_settings_translation_availability_note_available">%s støttar omsetjing!</string>
<string name="sk_schedule">Planlegg</string>
<string name="sk_confirm_delete_scheduled_post">Er du sikker på at du vil slette dette planlagde innlegget\?</string>
<string name="sk_scheduled_too_soon">Innlegg må planleggjast om minimum 10 minuttar frå no.</string>
<string name="sk_mark_as_draft">Marker som utkast</string>
<string name="sk_schedule_post">Planlegg innlegg</string>
<string name="sk_settings_single_notification">Vis kun ei varsling</string>
<string name="sk_settings_unifiedpush_no_distributor_body">Du må installere ein distributør for at UnifiedPush-varslingar skal fungere. For meir informasjon, gå til https://unifiedpush.org/</string>
<string name="sk_alt_text_missing">Minst eitt av vedlegga manglar forklaring.</string>
<string name="sk_icon_math_formula">Formel</string>
<string name="sk_icon_people">Personar</string>
<string name="sk_add_timeline">Legg til tidslinje</string>
<string name="sk_settings_show_no_alt_indicator">Indikator for manglande alternativ bildetekst</string>
<string name="sk_edit_timeline_tag_hint">Legg til emneknagg…</string>
<string name="sk_edit_timeline_tags_explanation">Merk at tenaren handterer desse operasjonane. Å kombinere dei er kanskje ikkje støtta.</string>
<string name="sk_settings_local_only_explanation">Heimeinstansen din må støtte lokale innlegg for at dette skal fungere. Dei fleste modifiserte versjonar av Mastodon støttar dette, men Mastodon gjer det ikkje.</string>
<string name="sk_settings_glitch_mode_explanation">Aktiver dette dersom heimeinstansen din køyrer Glitch. Trengst ikkje for Hometown eller Akkoma.</string>
<string name="sk_notify_poll_results">Resultat av rundspørjing</string>
<string name="sk_unfinished_attachments_message">Opplasting ikkje fullført for vedlegg.</string>
<string name="sk_compact_reblog_reply_line">Kompakt framhev-/svar-linje</string>
<string name="sk_settings_content_types_explanation">Gjer det mogleg å spesifisere innhaldstype, slik som Markdown, ved oppretting av innlegg. Merk at ikkje alle instansar har støtte for dette.</string>
<string name="sk_no_remote_info_hint">fjerninformasjon ikkje tilgjengeleg</string>
<string name="sk_settings_allow_remote_loading_explanation">Prøv å hente meir nøyaktig informasjon om følgere, likarklikk og framhevingar ved å laste informasjonen frå opphavsinstansen.</string>
<string name="sk_settings_emoji_reactions">Aktiver emoji-reaksjonar</string>
<string name="sk_settings_emoji_reactions_explanation">Viser emoji-reaksjonar til innlegg og let deg interagere med desse. Enkelte tilpassa versjonar av Mastodon har støtte for dette, men Mastodon har ikkje.</string>
<plurals name="sk_users_reacted_with">
<item quantity="one">Ein brukar reagerte med %2$s</item>
<item quantity="other">%1$,d brukarar reagerte med %2$s</item>
</plurals>
<string name="sk_duration_hours_1">1 time</string>
<string name="sk_schedule_or_draft">Plan eller utkast</string>
<string name="sk_compose_no_schedule">Ikkje planlegg</string>
<string name="sk_compose_no_draft">Ikkje lag utkast</string>
<string name="sk_settings_reduce_motion">Reduser rørsler i animasjonar</string>
<string name="sk_announcements">Kunngjeringar</string>
<string name="sk_mark_as_read">Marker som lest</string>
<string name="sk_settings_about_instance">Om instans</string>
<string name="sk_settings_unifiedpush">Bruk UnifiedPush</string>
<string name="sk_settings_unifiedpush_choose">Vel ein distributør</string>
<string name="sk_settings_unifiedpush_no_distributor">Ingen distributør funnen</string>
<string name="sk_create">Lage</string>
<string name="sk_create_list_title">Lag liste</string>
<string name="sk_list_name_hint">Listenamn</string>
<string name="sk_list_replies_policy">Vis svar til</string>
<string name="sk_list_replies_policy_list">listemedlemer</string>
<string name="sk_list_replies_policy_followed">følgde brukarar</string>
<string name="sk_list_replies_policy_none">ingen</string>
<string name="sk_delete_list">Slett liste</string>
<string name="sk_delete_list_confirm">Er du sikker på at du vil slette lista \"%s\"\?</string>
<string name="sk_edit_list_title">Tilpass liste</string>
<string name="sk_your_lists">Dine lister</string>
<string name="sk_timeline_home">Heime</string>
<string name="sk_timeline_local">Lokal</string>
<string name="sk_timeline_federated">Føderasjon</string>
<string name="sk_timeline_bubble">Boble</string>
<string name="sk_recent_searches_placeholder">Skriv for å starte søk</string>
<string name="sk_remove_follower">Fjern følgjar</string>
<string name="sk_remove_follower_confirm">Fjern %s som følgjar ved å blokkere og straks avblokkere\?</string>
<string name="sk_do_remove_follower">Fjern</string>
<string name="sk_remove_follower_success">Vellukka fjerning av følgjar</string>
<string name="sk_changelog">Endringslogg</string>
<string name="sk_alt_text_missing_title">Manglande altenativ bildetekst</string>
<string name="sk_publish_anyway">Publiser likevel</string>
<string name="sk_settings_disable_alt_text_reminder">Skru av påminning om alternativ bildetekst</string>
<string name="sk_notify_posts_info_banner">Om du aktiverer varsling av innlegg frå enkelte personar, vil dei nye innlegga deira hamne her.</string>
<string name="sk_timelines">Tidslinjer</string>
<string name="sk_timeline_posts">Innlegg</string>
<string name="sk_timelines_add">Legg til</string>
<string name="sk_timeline">Tidslinje</string>
<string name="sk_list">Liste</string>
<string name="sk_hashtag">Emneknagg</string>
<string name="sk_pin_timeline">Fest tidslinje</string>
<string name="sk_unpin_timeline">Løys tidslinje</string>
<string name="sk_pinned_timeline">Festa til Heime</string>
<string name="sk_unpinned_timeline">Løyst frå Heime</string>
<string name="sk_remove">Fjern</string>
<string name="sk_timeline_icon">Ikon</string>
<string name="sk_icon_heart">Hjarte</string>
<string name="sk_icon_star">Stjerne</string>
<string name="sk_icon_city">By</string>
<string name="sk_icon_cat">Katt</string>
<string name="sk_icon_dog">Hund</string>
<string name="sk_icon_rabbit">Hare</string>
<string name="sk_icon_turtle">Skjelpadde</string>
<string name="sk_icon_balloon">Ballong</string>
<string name="sk_icon_image">Bilde</string>
<string name="sk_icon_bot">Robot</string>
<string name="sk_icon_language">Språk</string>
<string name="sk_icon_location">Stad</string>
<string name="sk_icon_megaphone">Megafon</string>
<string name="sk_icon_microphone">Mikrofon</string>
<string name="sk_icon_microscope">Mikroskop</string>
<string name="sk_icon_keyboard">Keyboard</string>
<string name="sk_icon_coffee">Kaffi</string>
<string name="sk_icon_laugh">Latter</string>
<string name="sk_icon_news">Nyhende</string>
<string name="sk_icon_pi">Pi</string>
<string name="sk_icon_color_palette">Fargepalett</string>
<string name="sk_icon_academic_cap">Akademikarhatt</string>
<string name="sk_icon_tag">Etikett</string>
<string name="sk_icon_stethoscope">Stetoskop</string>
<string name="sk_icon_weather">Vêr</string>
<string name="sk_icon_games">Spel</string>
<string name="sk_icon_code">Kode</string>
<string name="sk_icon_light_bulb">Lyspære</string>
<string name="sk_icon_train">Tog</string>
<string name="sk_icon_clapper_board">Filmklappar</string>
<string name="sk_icon_leaves">Lauv</string>
<string name="sk_icon_sport">Idrett</string>
<string name="sk_icon_aperture">Blendar</string>
<string name="sk_icon_music">Musikk</string>
<string name="sk_icon_health">Helse</string>
<string name="sk_icon_important">Viktig</string>
<string name="sk_icon_chat">Prat</string>
<string name="sk_icon_shield">Skjold</string>
<string name="sk_icon_book">Bok</string>
<string name="sk_icon_bicycle">Sykkel</string>
<string name="sk_icon_map">Kart</string>
<string name="sk_icon_backpack">Ryggsekk</string>
<string name="sk_icon_briefcase">Stresskoffert</string>
<string name="sk_icon_fire">Brann</string>
<string name="sk_icon_bug">Insekt</string>
<string name="sk_icon_pizza">Pizza</string>
<string name="sk_icon_gavel">Klubbe</string>
<string name="sk_icon_gauge">Målar</string>
<string name="sk_icon_headphones">Høyretelefon</string>
<string name="sk_icon_human">Menneske</string>
<string name="sk_icon_globe">Globus</string>
<string name="sk_icon_pin">Teiknestift</string>
<string name="sk_icon_feed">Flaum</string>
<string name="sk_icon_beaker">Beger</string>
<string name="sk_icon_bed">Seng</string>
<string name="sk_icon_recycle_bin">Søppelkorg</string>
<string name="sk_icon_verified">Verifisert</string>
<string name="sk_icon_doctor">Dokter</string>
<string name="sk_icon_diamond">Diamant</string>
<string name="sk_icon_umbrella">Paraply</string>
<string name="sk_edit_timeline">Tilpass tidslinje</string>
<string name="sk_edit_timelines">Tilpass tidslinjer</string>
<string name="sk_edit_timeline_tag_main">Innlegg med emneknaggar…</string>
<string name="sk_edit_timeline_tag_any">…eller nokre av desse</string>
<string name="sk_edit_timeline_tag_all">…og alle desse</string>
<string name="sk_edit_timeline_tag_none">…men ingen av desse</string>
<string name="sk_edit_timeline_tags_hint">Legg til emneknaggar…</string>
<string name="sk_hashtag_timeline_local_only_switch">Vis kun lokale innlegg\?</string>
<string name="sk_add_timeline_tag_error_empty">Emneknagg kan ikkje vera tom</string>
<string name="sk_alt_button">ALT</string>
<string name="sk_gif_badge">GIF</string>
<string name="sk_post_edited">Endra</string>
<string name="sk_notification_type_update">Endra innlegg</string>
<string name="sk_notify_update">Endrar eit framheva innlegg</string>
<string name="sk_attach_file">Legg ved fil</string>
<string name="sk_searching">Søker…</string>
<string name="sk_no_results">Ingen resultat</string>
<string name="sk_save_draft">Lagre utkast\?</string>
<string name="sk_save_draft_message">Vil du lagre endringane dine til dette utkastet eller publisere det no\?</string>
<string name="sk_no_alt_text">Ingen alternativ bildetekst tilgjengeleg</string>
<string name="sk_settings_show_alt_indicator">Indikator for alternativ bildetekst</string>
<string name="sk_updater_enable_pre_releases">Tillat tidlegversjonar</string>
<string name="sk_settings_see_new_posts_button">\"Sjå nye innlegg\"-knapp</string>
<string name="sk_inline_local_only">kun lokal</string>
<string name="sk_inline_direct">nemnde</string>
<string name="sk_separator">·</string>
<string name="sk_local_only">Kun lokal instans</string>
<string name="sk_instance_features">Instans-eigenskapar</string>
<string name="sk_settings_support_local_only">Tenar støttar lokale innlegg</string>
<string name="sk_settings_glitch_instance">Lokalmodus for Glitch</string>
<string name="sk_settings_auto_reveal_nobody">Aldri</string>
<string name="sk_settings_auto_reveal_author">Svar frå same forfattar</string>
<string name="sk_settings_auto_reveal_anyone">Svar frå alle</string>
<string name="sk_settings_prefix_replies_always">Som svar til alle</string>
<string name="sk_settings_prefix_replies_never">Aldri</string>
<string name="sk_settings_prefix_replies_to_others">Kun i svar til andre</string>
<string name="sk_settings_forward_report_default">Standarinnstilling for \"Vidaresend rapport\"-brytar</string>
<string name="sk_exclusive_list">Eksklusiv liste</string>
<string name="sk_list_exclusive_switch">Gjer lista eksklusiv</string>
<string name="sk_list_exclusive_switch_explanation">Medlemer i ei eksklusiv liste vil ikkje bli vist i heime-tidslinja di dersom instansen din har støtte for dette.</string>
<string name="sk_advanced_options_show">Vis avanserte alternativ</string>
<string name="sk_advanced_options_hide">Skjul avanserte alternativ</string>
<string name="sk_spoiler_show">Vis innhald</string>
<string name="sk_pronouns_label">Pronomen</string>
<string name="sk_switch_timeline">Bytt tidslinje</string>
<string name="sk_settings_instance">Instans</string>
<string name="sk_disable_pill_shaped_active_indicator">Deaktiver pilleforma aktiv faneindikator</string>
<string name="sk_settings_true_black">Bekmørk modus</string>
<string name="sk_search_fediverse">Søk i Fødiverset</string>
<string name="sk_settings_display_pronouns_in_timelines">Vis pronomen i tidslinjer</string>
<string name="sk_settings_display_pronouns_in_threads">Vis pronomen i trådar</string>
<string name="sk_settings_display_pronouns_in_user_listings">Vis pronomen i lister over brukarar</string>
<string name="sk_tab_home">Heime</string>
<string name="sk_tab_search">Søk</string>
<string name="sk_tab_notifications">Varslingar</string>
<string name="sk_tab_profile">Profil</string>
<string name="sk_settings_show_labels_in_navigation_bar">Vis fanetitlar i navigeringsrada</string>
<string name="sk_clear_all_notifications">Slett alle varslingar</string>
<string name="sk_clear_all_notifications_confirm_action">Slett alt</string>
<string name="sk_clear_all_notifications_confirm">Er du sikker på at du vil slette alle varslingar\?</string>
<string name="sk_settings_enable_delete_notifications">Aktiver sletting av varslingar</string>
<string name="sk_settings_publish_button_text_title">Tilpass publiseringsknapp</string>
<string name="sk_settings_publish_button_text">Tekst på publiseringsknapp</string>
<string name="sk_settings_translate_only_opened">Omsett kun opna innlegg</string>
<string name="sk_settings_translation_availability_note_unavailable">%s støttar tilsynelatande ikkje omsetjing.</string>
<string name="sk_loading_fediverse_resource_title">Leitar i Fødiverset</string>
<string name="sk_loading_resource_on_instance_title">Leitar på %s</string>
<string name="sk_undo_reblog">Angre framheving</string>
<string name="sk_reblog_with_visibility">Framhev og gjer synleg</string>
<string name="sk_quote_post">Kommenter dette</string>
<string name="sk_hashtags_you_follow">Emneknaggar du følgjer</string>
<string name="sk_copy_link_to_post">Kopier link til innlegg</string>
<string name="sk_open_with_account">Opne med annan konto</string>
<string name="sk_bookmark_as">Lag bokmerke med annan konto</string>
<string name="sk_bookmarked_as">Bokmerke laga som %s</string>
<string name="sk_already_bookmarked">Bokmerke finst frå før</string>
<string name="sk_favorite_as">Marker som favoritt med annan konto</string>
<string name="sk_favorited_as">Markert som favoritt som %s</string>
<string name="sk_already_favorited">Markert som favoritt frå før</string>
<string name="sk_reblogged_as">Framheva som %s</string>
<string name="sk_already_reblogged">Framheva frå før</string>
<string name="sk_reply_as">Svar med annan konto</string>
<string name="sk_settings_uniform_icon_for_notifications">Einskaplege ikon for alle varslingar</string>
<string name="sk_forward_report_to">Vidaresend til %s</string>
<string name="sk_unsent_posts">Ikkje sendte innlegg</string>
<string name="sk_draft">Utkast</string>
<string name="sk_confirm_delete_draft_title">Slett utkast</string>
<string name="sk_confirm_delete_draft">Er du sikker på at du vil slette dette utkastet\?</string>
<string name="sk_confirm_delete_scheduled_post_title">Slett planlagt innlegg</string>
<string name="sk_draft_or_schedule">Lag utkast eller planlegg sending</string>
<string name="sk_compose_draft">Innlegg vil bli lagra som utkast.</string>
<string name="sk_compose_scheduled">Planlagt til</string>
<string name="sk_draft_saved">Utkast lagra</string>
<string name="sk_post_scheduled">Innlegg planlagt</string>
<string name="sk_scheduled_too_soon_title">Planlagt tid er for tidleg</string>
<string name="sk_confirm_save_draft">Lagre utkast\?</string>
<string name="sk_confirm_save_changes">Lagre endringar\?</string>
<string name="sk_signed_up">registrert</string>
<string name="sk_reported">rapportert</string>
<string name="sk_reacted_with">%1$s har reagert med %2$s</string>
<string name="sk_reacted">%s har reagert</string>
<string name="sk_sign_ups">Registreringar</string>
<string name="sk_new_reports">Nye rapportar</string>
<string name="sk_settings_server_version">Tenarversjon: %s</string>
<string name="sk_settings_prefix_reply_cw_with_re">Set \"re:\" som prefix til CW ved svar</string>
<string name="sk_filtered">Filtrert: %s</string>
<string name="sk_expand">Utvid</string>
<string name="sk_collapse">Minimer</string>
<string name="sk_unfinished_attachments">Fikse vedlegg\?</string>
<string name="sk_settings_hide_interaction">Skjul interaksjonsknappar</string>
<string name="sk_follow_as">Følg frå annan konto</string>
<string name="sk_followed_as">Følgd frå %s</string>
<string name="sk_settings_hide_fab">Auto-skjul knappen for å legge til nytt innlegg</string>
<string name="sk_notification_action_replied">Sendt svar til %s</string>
<string name="sk_in_reply">Som svar</string>
<string name="sk_reply_line_above_avatar">\"Som svar til\"-linje over profilbilde</string>
<string name="sk_show_thread">Vis tråd</string>
<string name="sk_settings_confirm_before_reblog">Stadfest før framheving</string>
<string name="sk_content_type">Innhaldstype</string>
<string name="sk_content_type_unspecified">Uspesifisert</string>
<string name="sk_content_type_plain">Enkel tekst</string>
<string name="sk_content_type_html">HTML</string>
<string name="sk_content_type_markdown">Markdown</string>
<string name="sk_content_type_bbcode">BBCode</string>
<string name="sk_content_type_mfm">MFM</string>
<string name="sk_settings_content_types">Aktiver innleggsformatering</string>
<string name="sk_settings_default_content_type">Standard innhaldstype</string>
<string name="sk_settings_default_content_type_explanation">Gjer det mogleg å la ein innhaldstype vera førehandsvald ved skriving av nye innlegg, slik at denne overstyrer innstillingane i \"Innleggspreferansar\".</string>
<string name="sk_instance_info_unavailable">Instansinformasjon mellombels utilgjengeleg</string>
<string name="sk_open_in_app">Opne i app</string>
<string name="sk_open_in_app_failed">Kunne ikkje opne i app</string>
<string name="sk_external_share_title">Del med konto</string>
<string name="sk_external_share_or_open_title">Del eller opne med konto</string>
<string name="sk_error_loading_profile">Kunne ikkje laste profilen via %s</string>
<string name="sk_settings_allow_remote_loading">Last informasjon frå fjerninstansar</string>
<string name="sk_settings_auto_reveal_equal_spoilers">Automatisk avsløring av like CW-ar i svar</string>
<string name="sk_settings_collapse_long_posts">Minimer svært lange innlegg</string>
</resources>

View File

@@ -4,15 +4,22 @@
<string name="next">Neste</string>
<string name="loading_instance">Henter serverinfo…</string>
<string name="error">Feil</string>
<string name="not_a_mastodon_instance">%s ser ikke ut til å være en Mastodon server.</string>
<string name="ok">OK</string>
<string name="preparing_auth">Forbereder autentisering…</string>
<string name="finishing_auth">Ferdigstiller autentisering…</string>
<string name="user_boosted">Fremhevet av %s</string>
<string name="in_reply_to">Som svar på %s</string>
<string name="notifications">Varslinger</string>
<string name="user_followed_you">%s fulgte deg</string>
<string name="user_sent_follow_request">%s har sendt deg en følgeforespørsel</string>
<string name="user_favorited">%s favorittmarkerte innlegget ditt</string>
<string name="notification_boosted">%s fremhevet ditt innlegg</string>
<string name="poll_ended">Se resultatene av avstemningen du stemte på</string>
<string name="share_toot_title">Del</string>
<string name="settings">Innstillinger</string>
<string name="publish">Publiser</string>
<string name="discard_draft">Forkaste utkast?</string>
<string name="discard_draft">Forkast utkast?</string>
<string name="discard">Forkast</string>
<string name="cancel">Avbryt</string>
<plurals name="followers">
@@ -30,6 +37,7 @@
<string name="button_follow">Følg</string>
<string name="button_following">Følgere</string>
<string name="edit_profile">Endre Profil</string>
<string name="share_user">Del profil</string>
<string name="mute_user">Demp %s</string>
<string name="unmute_user">Opphev demping %s</string>
<string name="block_user">Blokker %s</string>
@@ -77,8 +85,12 @@
<item quantity="one">%d dag igjen</item>
<item quantity="other">%d dager igjen</item>
</plurals>
<plurals name="x_votes">
<item quantity="one">%,d stemme</item>
<item quantity="other">%,d stemmer</item>
</plurals>
<string name="poll_closed">Lukket</string>
<string name="confirm_mute_title">Demp Konto</string>
<string name="confirm_mute_title">Demp konto</string>
<string name="confirm_mute">Bekreft demping av %s</string>
<string name="do_mute">Demp</string>
<string name="confirm_unmute_title">Opphev demping av konto</string>
@@ -88,34 +100,42 @@
<string name="confirm_block_domain_title">Blokker domene</string>
<string name="confirm_block">Bekreft blokkering %s</string>
<string name="do_block">Blokker</string>
<string name="confirm_unblock_title">Avblokker konto</string>
<string name="confirm_unblock_domain_title">Avblokker domene</string>
<string name="confirm_unblock_title">Opphev blokkering av konto</string>
<string name="confirm_unblock_domain_title">Opphev blokkering av domene</string>
<string name="confirm_unblock">Bekreft oppheving av %s</string>
<string name="do_unblock">Avblokker</string>
<string name="do_unblock">Opphev blokkering</string>
<string name="button_blocked">Blokkert</string>
<string name="action_vote">Stem</string>
<string name="delete">Slett</string>
<string name="confirm_delete_title">Slett innlegg</string>
<string name="confirm_delete">Er du sikker på at du vil slette dette innlegget?</string>
<string name="deleting">Sletter…</string>
<string name="notification_channel_audio_player">Lyd avspilling</string>
<string name="play">Spill av</string>
<string name="pause">Pause</string>
<string name="log_out">Logg ut</string>
<string name="add_account">Legg til konto</string>
<string name="search_hint">Søk</string>
<string name="hashtags">Emneknagger</string>
<string name="news">Nyheter</string>
<string name="for_you">For deg</string>
<string name="all_notifications">Alt</string>
<string name="mentions">Nevner</string>
<plurals name="x_people_talking">
<item quantity="one">%d person snakker</item>
<item quantity="other">%d personer snakker</item>
</plurals>
<string name="report_title">Rapporter %s</string>
<string name="report_choose_reason">Hva er galt med dette innlegget?</string>
<string name="report_choose_reason_account">Hva er galt med %s?</string>
<string name="report_choose_reason_subtitle">Velg det som passer best</string>
<string name="report_reason_personal">Jeg liker det ikke</string>
<string name="report_reason_personal_subtitle">Det er ikke noe du har lyst til å se</string>
<string name="report_reason_spam_subtitle">Ondsinnede lenker, falsk engasjement eller repeterende svar</string>
<string name="report_reason_spam">Det er spam</string>
<string name="report_reason_spam_subtitle">Ondsinnede lenker, falskt engasjement eller repeterende svar</string>
<string name="report_reason_violation">Det bryter serverregler</string>
<string name="report_reason_violation_subtitle">Du er klar over at det bryter spesifikke regler</string>
<string name="report_reason_other">Det er noe annet</string>
<string name="report_reason_other_subtitle">Problemet passer ikke inn i de andre kategoriene</string>
<string name="report_choose_rule">Hvilke regler brytes?</string>
<string name="report_choose_rule_subtitle">Velg alle som passer</string>
@@ -124,44 +144,73 @@
<string name="report_comment_title">Er det noe annet du mener vi burde vite?</string>
<string name="report_comment_hint">Ytterligere kommentarer</string>
<string name="sending_report">Sender rapport…</string>
<string name="report_sent_title">Takk for rapporteringen, vi vil se på dette.</string>
<string name="report_sent_subtitle">Mens vi går gjennom dette, kan du iverksettet tiltak mot %s:</string>
<string name="unfollow_user">Slutt å følge @%s</string>
<string name="unfollow">Slutt å følge</string>
<string name="mute_user_explain">Du vil ikke se deres innlegg. De kan fortsatt følge deg og se dine innlegg, og vil ikke vite at de er dempet.</string>
<string name="block_user_explain">Du kommer ikke til å se innleggene deres. De vil ikke kunne se innleggene dine eller følge deg. De vil kunne se at de er blokkert.</string>
<string name="report_personal_title">Ønsker du ikke å se dette?</string>
<string name="report_personal_subtitle">Her er alternativene dine for å kontrollere hva du ser på Mastodon:</string>
<string name="back">Tilbake</string>
<string name="search_communities">Servernavn eller link</string>
<string name="instance_rules_title">Server regler</string>
<string name="instance_rules_subtitle">Ved å fortsette godtar du å følge de følgende reglene gitt og håndheves av %s moderatorene.</string>
<string name="signup_title">Opprett konto</string>
<string name="display_name">Navn</string>
<string name="username">Brukernavn</string>
<string name="email">E-post</string>
<string name="password">Passord</string>
<string name="confirm_password">Bekreft passord</string>
<string name="password_note">Inkluder store bokstaver, spesialtegn og tall for å øke passordstyrken.</string>
<string name="category_academia">Akademia</string>
<string name="category_academia">Akademi</string>
<string name="category_activism">Aktivisme</string>
<string name="category_all">Alle</string>
<string name="category_art">Kunst</string>
<string name="category_food">Mat</string>
<string name="category_furry">Furry</string>
<string name="category_furry">Pelskledde</string>
<string name="category_games">Spill</string>
<string name="category_general">Generelt</string>
<string name="category_journalism">Journalisme</string>
<string name="category_lgbt">LHBT</string>
<string name="category_music">Musikk</string>
<string name="category_regional">Region</string>
<string name="category_tech">Teknologi</string>
<string name="confirm_email_title">Sjekk innboksen din</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">Trykk på linken vi sendte deg for å verifisere %s. Vi venter her.</string>
<string name="confirm_email_didnt_get">Fikk du ikke linken?</string>
<string name="resend">Send på nytt</string>
<string name="open_email_app">Åpne e-post app</string>
<string name="resent_email">Bekreftelses e-post sendt</string>
<string name="content_warning">Innholdsadvarsel</string>
<string name="open_email_app">Åpne e-post appen</string>
<string name="resent_email">Bekreftelse e-post er sendt</string>
<string name="compose_hint">Skriv eller lim inn hva du tenker på</string>
<string name="content_warning">Innholdsvarsel</string>
<string name="save">Lagre</string>
<string name="add_alt_text">Legg til alternativ tekst</string>
<string name="visibility_public">Offentlig</string>
<string name="visibility_followers_only">Kun følgere</string>
<string name="skip">Hopp</string>
<string name="visibility_private">Bare nevnte personer</string>
<string name="recent_searches">Nylige</string>
<string name="skip">Hopp over</string>
<string name="notification_type_follow">Nye følgere</string>
<string name="notification_type_favorite">Favoritter</string>
<string name="notification_type_reblog">Fremhevinger</string>
<string name="notification_type_mention">Nevnelser</string>
<string name="notification_type_poll">Avstemminger</string>
<string name="choose_account">Velg konto</string>
<string name="err_not_logged_in">Vennligst logg inn på Mastodon først</string>
<string name="media_attachment_unsupported_type">Filen %s er av en ustøttet type</string>
<plurals name="cant_add_more_than_x_attachments">
<item quantity="one">Du kan ikke legge til mer enn %d media vedlegg</item>
<item quantity="other">Du kan ikke legge til mer enn %d medievedlegg</item>
</plurals>
<string name="media_attachment_unsupported_type">Filen %s er av en type som ikke er støttet</string>
<string name="media_attachment_too_big">Filen %1$s overskrider størrelsesgrensen på %2$s MB</string>
<string name="settings_theme">Utseende</string>
<string name="theme_auto">Bruk enhetens utseende</string>
<string name="theme_light">Lyst</string>
<string name="theme_dark">Mørkt</string>
<string name="settings_behavior">Oppførsel</string>
<string name="settings_gif">Spill animerte avatarer og emoji</string>
<string name="settings_gif">Spill av animerte avatarer og emoji</string>
<string name="settings_custom_tabs">Bruk integrert nettleser</string>
<string name="settings_notifications">Varslinger</string>
<string name="settings_contribute">Bidra til Mastodon</string>
@@ -170,21 +219,30 @@
<string name="settings_clear_cache">Tøm mediemellomlager</string>
<string name="settings_app_version">Mastodon for Android v%1$s (%2$d)</string>
<string name="media_cache_cleared">Mediemellomlager er tømt</string>
<string name="confirm_log_out">Logg ut av %s?</string>
<string name="sensitive_content_explain">Forfatteren markerte dette mediet som sensitivt.</string>
<string name="avatar_description">Gå til %s sin profil</string>
<string name="more_options">Flere alternativer</string>
<string name="new_post">Nytt innlegg</string>
<string name="button_reply">Svar</string>
<string name="button_reblog">Fremhev</string>
<string name="button_favorite">Favoritt</string>
<string name="button_share">Del</string>
<string name="media_no_description">Media uten beskrivelse</string>
<string name="add_media">Legg til media</string>
<string name="add_poll">Legg til en avstemning</string>
<string name="add_poll">Legg til avstemning</string>
<string name="emoji">Emoji</string>
<string name="home_timeline">Hjemmetidslinje</string>
<string name="my_profile">Min profil</string>
<string name="media_viewer">Forhåndsvisning av media</string>
<string name="follow_user">Følg %s</string>
<string name="unfollowed_user">Slutt å følge %s</string>
<string name="followed_user">Du følger nå %s</string>
<string name="following_user_requested">Forespør å følge %s</string>
<string name="open_in_browser">Åpne i nettleser</string>
<string name="hide_boosts_from_user">Skjul fremhevinger fra %s</string>
<string name="show_boosts_from_user">Hvis fremhevinger fra %s</string>
<string name="signup_reason">Hvorfor vil du bli med?</string>
<string name="signup_reason_note">Dette vil hjelpe oss med å gjennomgå din søknad.</string>
<string name="clear">Tøm</string>
<string name="profile_header">Toppbilde</string>
@@ -197,17 +255,23 @@
<string name="error_saving_file">Feil ved lagring av fil</string>
<string name="file_saved">Fil lagret</string>
<string name="downloading">Laster ned…</string>
<string name="no_app_to_handle_action">Det er ingen app som kan håndtere denne handlingen</string>
<string name="local_timeline">Lokalt</string>
<string name="trending_posts_info_banner">Disse innleggene snakker folk om rundt om i Mastodon.</string>
<string name="trending_links_info_banner">Dette er nyhetshistoriene som snakkes om rundt om i Mastodon.</string>
<!-- %s is the server domain -->
<string name="local_timeline_info_banner">Dette er alle innlegg fra alle brukere på din server (%s).</string>
<string name="recommended_accounts_info_banner">Du liker kanskje disse kontoene basert på de andre du følger.</string>
<string name="see_new_posts">Se nye innlegg</string>
<string name="load_missing_posts">Last manglende innlegg</string>
<string name="load_missing_posts">Last inn manglende innlegg</string>
<string name="follow_back">Følg tilbake</string>
<string name="button_follow_pending">Ventende</string>
<string name="follows_you">Følger deg</string>
<string name="manually_approves_followers">Godkjenn følgere manuelt</string>
<!-- translators: %,d is a valid placeholder, it formats the number with locale-dependent grouping separators -->
<plurals name="x_followers">
<item quantity="one">%d følger</item>
<item quantity="other">%d følgere</item>
<item quantity="one">%,d følger</item>
<item quantity="other">%,d følgere</item>
</plurals>
<plurals name="x_following">
<item quantity="one">%,d følger</item>
@@ -217,6 +281,10 @@
<item quantity="one">%,d favoritt</item>
<item quantity="other">%,d favoritter</item>
</plurals>
<plurals name="x_reblogs">
<item quantity="one">%,d fremhev</item>
<item quantity="other">%,d fremheve</item>
</plurals>
<string name="timestamp_via_app">%1$s via %2$s</string>
<string name="time_now"></string>
<string name="edit_history">Rediger historikk</string>
@@ -233,17 +301,17 @@
<string name="edited_timestamp">redigert %s</string>
<string name="edit_original_post">Opprinnelig innlegg</string>
<string name="edit_text_edited">Tekst redigert</string>
<string name="edit_spoiler_added">Innholdsadvarsel lagt til</string>
<string name="edit_spoiler_edited">Innholdsadvarsel redigert</string>
<string name="edit_spoiler_removed">Innholdsadvarsel fjernet</string>
<string name="edit_poll_added">Avstemning lagt til</string>
<string name="edit_poll_edited">Avstemning redigert</string>
<string name="edit_poll_removed">Avstemning fjernet</string>
<string name="edit_media_added">Medie lagt til</string>
<string name="edit_spoiler_added">Innholdsvarsel lagt til</string>
<string name="edit_spoiler_edited">Innholdsvarsel redigert</string>
<string name="edit_spoiler_removed">Innholdsvarsel fjernet</string>
<string name="edit_poll_added">Avstemming lagt til</string>
<string name="edit_poll_edited">Avstemming redigert</string>
<string name="edit_poll_removed">Avstemming fjernet</string>
<string name="edit_media_added">Lagt til medie</string>
<string name="edit_media_removed">Medie fjernet</string>
<string name="edit_media_reordered">Medie endret rekkefølge</string>
<string name="edit_media_reordered">Endre rekkefølge</string>
<string name="edit_marked_sensitive">Merk som følsomt</string>
<string name="edit_marked_not_sensitive">Marker som ikke følsom</string>
<string name="edit_marked_not_sensitive">Marker som ikke følsomt</string>
<string name="edit_multiple_changed">Innlegg redigert</string>
<string name="edit">Rediger</string>
<string name="discard_changes">Forkaste endringer?</string>
@@ -258,6 +326,8 @@
<!-- %s is file size -->
<string name="download_update">Last ned (%s)</string>
<string name="install_update">Installer</string>
<string name="privacy_policy_title">Ditt personvern</string>
<string name="privacy_policy_subtitle">Selv om Mastodon appen ikke samler inn data, kan det hende at serveren du registrerte deg på har en annen politikk.\n\nHvis du er uenig i retningslinjene for %s, kan du gå tilbake og velge en annen server.</string>
<string name="i_agree">Jeg godtar</string>
<string name="empty_list">Denne listen er tom</string>
<string name="instance_signup_closed">Denne serveren godtar ikke nye registreringer.</string>
@@ -268,19 +338,248 @@
<string name="your_favorites">Dine favoritter</string>
<string name="login_title">Velkommen tilbake</string>
<string name="login_subtitle">Logg inn med serveren der du opprettet kontoen din.</string>
<string name="server_url">Server-URL</string>
<string name="server_url">Server link</string>
<string name="signup_random_server_explain">Vi vil velge en server basert på språket ditt hvis du fortsetter uten å gjøre et valg.</string>
<string name="server_filter_any_language">Ethvert språk</string>
<string name="server_filter_instant_signup">Direkte registrering</string>
<string name="server_filter_manual_review">Manuell gjennomgang</string>
<string name="server_filter_any_signup_speed">Enhver opptakshastighet</string>
<string name="server_filter_region_europe">Europa</string>
<string name="server_filter_region_north_america">Nord-Amerika</string>
<string name="server_filter_region_south_america">Sør-Amerika</string>
<string name="server_filter_region_africa">Afrika</string>
<string name="server_filter_region_asia">Asia</string>
<string name="server_filter_region_oceania">Oseania</string>
<string name="not_accepting_new_members">Aksepterer ikke nye medlemmer</string>
<string name="category_special_interests">Spesielle interesser</string>
<string name="signup_passwords_dont_match">Passordet samsvarer ikke</string>
<string name="pick_server_for_me">Velg for meg</string>
<string name="profile_add_row">Legg til rad</string>
<string name="profile_setup">Konfigurering av profil</string>
<string name="profile_setup_subtitle">Du kan alltid fullføre dette senere i profilfanen.</string>
<string name="profile_setup_explanation">Du kan legge opp til fire profilfelter for det du vil. Plassering, lenker, uttalelser himmelen er grensen.</string>
<string name="popular_on_mastodon">Populært på Mastodon</string>
<string name="follow_all">Følg alle</string>
<string name="server_rules_disagree">Uenig</string>
<string name="privacy_policy_explanation">TL;DR: Vi samler ikke inn eller prosesserer noe.</string>
<!-- %s is server domain -->
<string name="server_policy_disagree">Uenig med %s</string>
<string name="profile_bio">Om meg</string>
<!-- Shown in a progress dialog when you tap "follow all" -->
<string name="sending_follows">Følger brukere…</string>
<!-- %1$s is server domain, %2$s is email domain. You can reorder these placeholders to fit your language better. -->
<string name="signup_email_domain_blocked">%1$s tillater ikke registrering fra %2$s. Prøv en annen, eller &lt;a&gt;velg en annen server&lt;/a&gt;.</string>
<string name="spoiler_show">Vis likevel</string>
<string name="spoiler_hide">Skjul</string>
<string name="poll_multiple_choice">Velg en eller flere</string>
<string name="save_changes">Lagre endringer</string>
<string name="profile_featured">Utvalgt</string>
<string name="profile_timeline">Tidslinje</string>
<string name="view_all">Vis alle</string>
<string name="profile_endorsed_accounts">Kontoer</string>
<string name="verified_link">Bekreftet lenke</string>
<string name="show">Vis</string>
<string name="hide">Skjul</string>
<string name="join_default_server">Bli med %s</string>
<string name="pick_server">Velg en annen server</string>
<string name="signup_or_login">eller</string>
<string name="learn_more">Lær mer</string>
<string name="welcome_to_mastodon">Velkommen til Mastodon</string>
<string name="welcome_paragraph1">Mastodon er et desentralisert sosialt nettverk, som betyr at ingen selskaper kontrollerer det. Det består av mange uavhengige servere som er koblet sammen.</string>
<string name="what_are_servers">Hva er en server?</string>
<string name="welcome_paragraph2"><![CDATA[Enhver Mastodon konto er en vert på en server - med sine egne verdier, regler og administratorer. Uansett hvilken du velger, kan du følge og samhandle med folk på hvilken som helst server.]]></string>
<string name="opening_link">Åpner link…</string>
<string name="link_not_supported">Denne linken støttes ikke av appen</string>
<string name="log_out_all_accounts">Logg ut av alle kontoer</string>
<string name="confirm_log_out_all_accounts">Logge ut av alle kontoer?</string>
<string name="retry">Prøv igjen</string>
<string name="post_failed">Kunne ikke sende innlegg</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_description_image">%s bilde</string>
<string name="attachment_description_video">%s video</string>
<string name="attachment_description_audio">%s lyd</string>
<string name="attachment_description_unknown">%s fil</string>
<string name="attachment_type_image">Bilde</string>
<string name="attachment_type_video">Video</string>
<string name="attachment_type_audio">Lyd</string>
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">Fil</string>
<string name="attachment_x_percent_uploaded">%d%% lastet opp</string>
<string name="add_poll_option">Legg til valg</string>
<string name="poll_length">Avstemnings lengde</string>
<string name="poll_style">Stil</string>
<string name="compose_poll_single_choice">Velg en</string>
<string name="compose_poll_multiple_choice">Flere valg</string>
<string name="delete_poll_option">Slett avstemmings-alternativet</string>
<string name="poll_style_title">Avstemnings stil</string>
<string name="alt_text">Alternativ tekst</string>
<string name="help">Hjelp</string>
<string name="what_is_alt_text">Hva er alternativ tekst?</string>
<string name="alt_text_help">Alternativ tekst gir bildebeskrivelser for personer med synshemminger, lav båndbredde eller de som ønsker ekstra kontekst.\n\nDu kan forbedre tilgjengeligheten og forståelsen for alle ved å skrive klar, konsis og objektiv alternativ tekst.\n\n<ul><li>Fang opp viktige elementer</li>\n<li>Oppsummere tekst i bilder</li>\n<li>Bruk vanlig setningsstruktur</li>\n<li>Unngå overflødig informasjon</li>\n<li>Fokuser på trender og viktige funn i komplekse visualobjekter (som diagrammer eller kart)</li></ul></string>
<string name="edit_post">Rediger innlegg</string>
<string name="no_verified_link">Ingen bekreftet lenke</string>
<string name="compose_autocomplete_emoji_empty">Bla gjennom emoji</string>
<string name="compose_autocomplete_users_empty">Finn hvem du leter etter</string>
<string name="no_search_results">Fant ikke noe med disse søkeordene</string>
<string name="language">Språk</string>
<string name="language_default">Standard</string>
<string name="language_system">System</string>
<string name="language_detecting">Sjekker språk</string>
<string name="language_cant_detect">Klarte ikke å oppdage ditt språk</string>
<string name="language_detected">Oppdaget</string>
<string name="media_hidden">Skjult media</string>
<string name="post_hidden">Skjult innlegg</string>
<string name="report_title_post">Rapporter innlegg</string>
<string name="forward_report_explanation">Denne kontoen er fra en annen tjener. Vil du sende en anonymisert kopi av rapporten dit også?</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">Videresend til %s</string>
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<string name="reported">Rapportert</string>
<string name="report_unfollow_explanation">For å ikke se innleggene deres i tidslinjen din, må du slutte å følge dem.</string>
<string name="muted_user">Dempet %s</string>
<string name="report_sent_already_blocked">Du har allerede blokkert denne brukeren, så det er ikke noe annet du trenger å gjøre mens vi ser på rapporten din.</string>
<string name="report_personal_already_blocked">Du har allerede blokkert denne brukeren, så det er ikke noe annet du trenger å gjøre.\n\nTakk for at du hjelper til med å holde Mastodon til et trygt sted for alle!</string>
<string name="blocked_user">Blokkert %s</string>
<string name="mark_all_notifications_read">Merk alle som lest</string>
<string name="settings_display">Skjerm</string>
<string name="settings_filters">Filter</string>
<string name="settings_server_explanation">Oversikt, regler og moderatorer</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<string name="about_app">Om %s</string>
<string name="default_post_language">Standard innleggsspråk</string>
<string name="settings_alt_text_reminders">Legg til alternativ tekst påminnelse</string>
<string name="settings_confirm_unfollow">Spør før du slutter å følge noen</string>
<string name="settings_confirm_boost">Spør før fremheving</string>
<string name="settings_confirm_delete_post">Spør før sletting av innlegg</string>
<string name="pause_all_notifications">Sett alle på vent</string>
<string name="pause_notifications_off">Av</string>
<string name="notifications_policy_anyone">Alle</string>
<string name="notifications_policy_followed">Folk som følger deg</string>
<string name="notifications_policy_follower">Folk du følger</string>
<string name="notifications_policy_no_one">Ingen</string>
<string name="settings_notifications_policy">Få varsler fra</string>
<string name="notification_type_mentions_and_replies">Nevnelser og svar</string>
<string name="pause_all_notifications_title">Pause alle varsler</string>
<plurals name="x_weeks">
<item quantity="one">%d uke</item>
<item quantity="other">%d uker</item>
</plurals>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="date_at_time">%1$s den %2$s</string>
<string name="today">i dag</string>
<string name="yesterday">i går</string>
<string name="tomorrow">i morgen</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_ends">Slutter %s</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_banner">Varsler gjenopptas %s.</string>
<string name="resume_notifications_now">Gjenoppta nå</string>
<string name="open_system_notification_settings">Gå til varslingsinnstillinger</string>
<string name="about_server">Om</string>
<string name="server_rules">Regler</string>
<string name="server_administrator">Administrator</string>
<string name="send_email_to_server_admin">Melding til administrator</string>
<string name="notifications_disabled_in_system">Slå på varsler fra enhetens innstillinger for å se oppdateringer fra hvor som helst.</string>
<string name="settings_even_more">Enda flere innstillinger</string>
<string name="settings_show_cws">Vis innholdsvarsel</string>
<string name="settings_hide_sensitive_media">Skjul media som er merket som følsomt</string>
<string name="settings_show_interaction_counts">Vis interaksjoner på innlegg</string>
<string name="settings_show_emoji_in_names">Egendefinerte emojier i visningsnavn</string>
<plurals name="in_x_seconds">
<item quantity="one">om %d sekunder</item>
<item quantity="other">om %d sekunder</item>
</plurals>
<plurals name="in_x_minutes">
<item quantity="one">om %d minutter</item>
<item quantity="other">om %d minutter</item>
</plurals>
<plurals name="in_x_hours">
<item quantity="one">om %d time</item>
<item quantity="other">om %d timer</item>
</plurals>
<plurals name="x_hours_ago">
<item quantity="one">%d time siden</item>
<item quantity="other">%d timer siden</item>
</plurals>
<string name="alt_text_reminder_title">Media mangler alternativ tekst</string>
<plurals name="alt_text_reminder_x_images">
<item quantity="one">%s av bildene dine mangler alternativ tekst. Vil du publisere allikevell?</item>
<item quantity="other">%s av bildene dine mangler alternativ tekst. Vil du publisere allikevell?</item>
</plurals>
<plurals name="alt_text_reminder_x_attachments">
<item quantity="one">%s av vedlegget ditt mangler alternativ tekst. Vil du publisere allikevell?</item>
<item quantity="other">%s av vedlegget ditt mangler alternativ tekst. Vil du publisere allikevell?</item>
</plurals>
<string name="count_one">En</string>
<string name="count_two">To</string>
<string name="count_three">Tre</string>
<string name="count_four">Fire</string>
<string name="alt_text_reminder_post_anyway">Publiser</string>
<!-- %s is the username -->
<string name="unfollow_confirmation">Slutt å følge %s?</string>
<string name="filter_active">Aktiv</string>
<string name="filter_inactive">Inaktive</string>
<string name="settings_add_filter">Legg til filter</string>
<string name="settings_edit_filter">Rediger filter</string>
<string name="settings_filter_duration">Varighet</string>
<string name="settings_filter_muted_words">Dempet ord</string>
<string name="settings_filter_context">Demp fra</string>
<string name="settings_filter_show_cw">Vis med innholdsvarsel</string>
<string name="settings_filter_show_cw_explanation">Vis fortsatt innlegg som samsvarer med dette filteret, men med innholdsvarsel</string>
<string name="settings_delete_filter">Slett filter</string>
<string name="filter_duration_forever">For alltid</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="settings_filter_ends">Slutter om %s</string>
<plurals name="settings_x_muted_words">
<item quantity="one">%d dempet ord eller uttrykk</item>
<item quantity="other">%d dempet ord eller uttrykk</item>
</plurals>
<string name="selection_2_options">%1$s og %2$s</string>
<string name="selection_3_options">%1$s, %2$s, og %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s og %3$d mer</string>
<string name="filter_context_home_lists">Hjem &amp; lister</string>
<string name="filter_context_notifications">Varslinger</string>
<string name="filter_context_public_timelines">Offentlige tidslinjer</string>
<string name="filter_context_threads_replies">Tråder &amp; svar</string>
<string name="filter_context_profiles">Profiler</string>
<string name="settings_filter_title">Tittel</string>
<string name="settings_delete_filter_title">Slett filter “%s\"?</string>
<string name="settings_delete_filter_confirmation">Dette filteret vil bli slettet fra kontoen din på alle enhetene dine.</string>
<string name="add_muted_word">Legg til dempet ord</string>
<string name="edit_muted_word">Rediger dempet ord</string>
<string name="add">Legg til</string>
<string name="filter_word_or_phrase">Ord eller uttrykk</string>
<string name="filter_add_word_help">Ord skiller ikke mellom store og små bokstaver og samsvarer bare med hele ord.\n\nHvis du filtrerer nøkkelordet \"Druer\", vil det skjule innlegg som inneholder \"druer\" eller \"dRuEr\", men ikke \"druersukker.\"</string>
<string name="settings_delete_filter_word">Slette ord “%s\"?</string>
<string name="enter_selection_mode">Velg</string>
<string name="select_all">Velg alt</string>
<string name="settings_filter_duration_title">Filter varighet</string>
<string name="filter_duration_custom">Tilpasset</string>
<plurals name="settings_delete_x_filter_words">
<item quantity="one">Slett %d ord?</item>
<item quantity="other">Slette %d ord?</item>
</plurals>
<plurals name="x_items_selected">
<item quantity="one">%d valgt</item>
<item quantity="other">%d valgt</item>
</plurals>
<string name="required_form_field_blank">Kan ikke være tom</string>
<string name="filter_word_already_in_list">Allerede på listen</string>
<string name="app_update_ready">App oppdateringen er klar</string>
<string name="app_update_version">Versjon %s</string>
<string name="downloading_update">Laster ned (%d%%)</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="post_matches_filter_x">Samsvarer filter \"%s\"</string>
<string name="search_mastodon">Søk i Mastodon</string>
<string name="clear_all">Fjern alle</string>
<string name="search_open_url">Åpne link i Mastodon</string>
<string name="posts_matching_hashtag">Publiser med \"%s\"</string>
<string name="search_go_to_account">Gå til %s</string>
<string name="posts_matching_string">Publiser med \"%s\"</string>
<string name="accounts_matching_string">Personer med \"%s\"</string>
<!-- Shown in the post header. Please keep it short -->
<string name="time_seconds_ago_short">%ds siden</string>
<string name="time_minutes_ago_short">%dm siden</string>
<string name="time_hours_ago_short">%dt siden</string>
<string name="time_days_ago_short">%dd siden</string>
</resources>

View File

@@ -433,6 +433,21 @@
<string name="retry">Ponów</string>
<string name="post_failed">Nie udało się wysłać posta</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_description_image">Obraz %s</string>
<string name="attachment_description_video">Film %s</string>
<string name="attachment_description_audio">Plik dźwiękowy %s</string>
<string name="attachment_description_unknown">Plik %s</string>
<string name="attachment_type_image">Obraz</string>
<string name="attachment_type_video">Film</string>
<string name="attachment_type_audio">Dźwięk</string>
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">Plik</string>
<string name="attachment_x_percent_uploaded">Przesłano %d%%</string>
<string name="add_poll_option">Dodaj opcję wyboru do ankiety</string>
<string name="poll_length">Czas trwania ankiety</string>
<string name="poll_style">Wygląd</string>
<string name="delete_poll_option">Usuń opcję wyboru z ankiety</string>
<string name="poll_style_title">Wygląd ankiety</string>
<!-- %s is the server domain -->
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->

View File

@@ -285,4 +285,28 @@
<string name="sk_settings_content_types">Włącz formatowanie wpisu</string>
<string name="sk_open_in_app">Otwórz w aplikacji</string>
<string name="sk_external_share_title">Udostępnij z kontem</string>
<string name="sk_settings_auto_reveal_nobody">Nigdy</string>
<string name="sk_no_remote_info_hint">zdalne informacje są niedostępne</string>
<string name="sk_settings_prefix_replies_never">Nigdy</string>
<string name="sk_icon_bed">Łóżko</string>
<string name="sk_icon_verified">Zweryfikowano</string>
<string name="sk_icon_doctor">Doktor</string>
<string name="sk_icon_diamond">Diament</string>
<string name="sk_icon_umbrella">Parasol</string>
<string name="sk_icon_recycle_bin">Kosz na śmieci</string>
<string name="sk_add_timeline">Dodaj oś czasu</string>
<string name="sk_edit_timeline_tag_hint">Wprowadź hasztag…</string>
<string name="sk_edit_timeline_tags_hint">Wprowadź hasztagi…</string>
<string name="sk_edit_timeline_tag_main">Wpisy zawierające hasztag…</string>
<string name="sk_icon_feed">Kanał</string>
<string name="sk_gif_badge">GIF</string>
<string name="sk_content_type_markdown">Markdown</string>
<string name="sk_exclusive_list">Lista wykluczonych</string>
<string name="sk_advanced_options_show">Pokaż zaawansowane opcje</string>
<string name="sk_pronouns_label">Zaimki</string>
<string name="sk_settings_instance">Instancja</string>
<string name="sk_spoiler_show">Pokaż zawartość</string>
<string name="sk_switch_timeline">Przełącz oś czasu</string>
<string name="sk_search_fediverse">Wyszukaj w Fediwersum</string>
<string name="sk_advanced_options_hide">Ukryj zaawansowane opcje</string>
</resources>

View File

@@ -4,11 +4,18 @@
<string name="next">Próximo</string>
<string name="loading_instance">Recuperando informações do servidor…</string>
<string name="error">Erro</string>
<string name="not_a_mastodon_instance">%s não parece ser um servidor Mastodon.</string>
<string name="ok">OK</string>
<string name="preparing_auth">Preparando para autenticação…</string>
<string name="finishing_auth">Finalizando autenticação…</string>
<string name="user_boosted">%s impulsionado</string>
<string name="in_reply_to">Em resposta à %s</string>
<string name="notifications">Notificações</string>
<string name="user_followed_you">%s seguiu você</string>
<string name="user_sent_follow_request">%s enviou uma solicitação para seguir você</string>
<string name="user_favorited">%s favoritou sua publicação</string>
<string name="notification_boosted">%s impulsionou a sua publicação</string>
<string name="poll_ended">Veja os resultados de uma enquete em que você votou</string>
<string name="share_toot_title">Compartilhar</string>
<string name="settings">Configurações</string>
<string name="publish">Publicar</string>
@@ -30,6 +37,7 @@
<string name="button_follow">Seguir</string>
<string name="button_following">Seguindo</string>
<string name="edit_profile">Editar perfil</string>
<string name="share_user">Compartilhar perfil</string>
<string name="mute_user">Silenciar %s</string>
<string name="unmute_user">Remover silenciar de %s</string>
<string name="block_user">Bloquear %s</string>
@@ -77,6 +85,10 @@
<item quantity="one">%d dia restante</item>
<item quantity="other">%d dias restantes</item>
</plurals>
<plurals name="x_votes">
<item quantity="one">%,d voto</item>
<item quantity="other">%,d votos</item>
</plurals>
<string name="poll_closed">Terminou</string>
<string name="confirm_mute_title">Silenciar Conta</string>
<string name="confirm_mute">Confirme para silenciar %s</string>
@@ -95,27 +107,35 @@
<string name="button_blocked">Bloqueado</string>
<string name="action_vote">Votar</string>
<string name="delete">Excluir</string>
<string name="confirm_delete_title">Excluir publicação</string>
<string name="confirm_delete">Você tem certeza de que deseja excluir esta publicação?</string>
<string name="deleting">Excluindo…</string>
<string name="notification_channel_audio_player">Reprodução de áudio</string>
<string name="play">Reproduzir</string>
<string name="pause">Pausar</string>
<string name="log_out">Sair</string>
<string name="add_account">Adicionar conta</string>
<string name="search_hint">Buscar</string>
<string name="hashtags">Hashtags</string>
<string name="news">Notícias</string>
<string name="for_you">Para você</string>
<string name="all_notifications">Tudo</string>
<string name="mentions">Menções</string>
<plurals name="x_people_talking">
<item quantity="one">%d pessoa está conversando</item>
<item quantity="other">%d pessoas estão conversando</item>
</plurals>
<string name="report_title">Denunciar %s</string>
<string name="report_choose_reason">O que há de errado com essa publicação?</string>
<string name="report_choose_reason_account">O que há de errado com %s?</string>
<string name="report_choose_reason_subtitle">Selecione a melhor correspondência</string>
<string name="report_reason_personal">Eu não gosto disso</string>
<string name="report_reason_personal_subtitle">Não é algo que você quer ver</string>
<string name="report_reason_spam">É spam</string>
<string name="report_reason_spam_subtitle">Links maliciosos, engajamento falso ou respostas repetitivas</string>
<string name="report_reason_violation">Viola as regras do servidor</string>
<string name="report_reason_violation_subtitle">Você está ciente que isso quebra regras específicas</string>
<string name="report_reason_other">É outra coisa</string>
<string name="report_reason_other_subtitle">O problema não se encaixa em outras categorias</string>
<string name="report_choose_rule">Quais regras estão sendo violadas?</string>
<string name="report_choose_rule_subtitle">Selecione todas que se aplicam</string>
@@ -124,8 +144,14 @@
<string name="report_comment_title">Há algo a mais que deveríamos saber?</string>
<string name="report_comment_hint">Comentários adicionais</string>
<string name="sending_report">Enviando denúncia…</string>
<string name="report_sent_title">Obrigado por denunciar, iremos analisar.</string>
<string name="report_sent_subtitle">Enquanto analisamos isso, você pode tomar medidas contra %s:</string>
<string name="unfollow_user">Deixar de seguir %s</string>
<string name="unfollow">Deixar de seguir</string>
<string name="mute_user_explain">Você não verá suas publicações. Eles ainda podem te seguir e ver suas publicações, mas não saberão que estão silenciados.</string>
<string name="block_user_explain">Você não verá suas publicações. Eles não poderão ver suas publicações ou te seguir. Eles saberão que estão bloqueados.</string>
<string name="report_personal_title">Não quer ver isso?</string>
<string name="report_personal_subtitle">Aqui estão suas opções para controlar o que você vê no Mastodon:</string>
<string name="back">Voltar</string>
<string name="search_communities">Nome do servidor ou URL</string>
<string name="instance_rules_title">Regras do Servidor</string>
@@ -152,14 +178,19 @@
<string name="category_tech">Tecnologia</string>
<string name="confirm_email_title">Verifique sua caixa de entrada</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">Toque no link que te enviamos para verificar %s. Esperaremos por aqui.</string>
<string name="confirm_email_didnt_get">Não recebeu um link?</string>
<string name="resend">Reenviar</string>
<string name="open_email_app">Abrir aplicativo de e-mail</string>
<string name="resent_email">E-mail de confirmação enviado</string>
<string name="compose_hint">Cole algo ou digite o que você está pensando</string>
<string name="content_warning">Aviso de conteúdo</string>
<string name="save">Salvar</string>
<string name="add_alt_text">Adicionar texto alternativo</string>
<string name="visibility_public">Público</string>
<string name="visibility_followers_only">Apenas seguidores</string>
<string name="visibility_private">Apenas pessoas mencionadas</string>
<string name="recent_searches">Recente</string>
<string name="skip">Pular</string>
<string name="notification_type_follow">Novos seguidores</string>
<string name="notification_type_favorite">Favoritos</string>
@@ -167,8 +198,14 @@
<string name="notification_type_poll">Enquetes</string>
<string name="choose_account">Escolher conta</string>
<string name="err_not_logged_in">Por favor, faça login no Mastodon primeiro</string>
<plurals name="cant_add_more_than_x_attachments">
<item quantity="one">Você não pode adicionar mais de %d anexo de mídia</item>
<item quantity="other">Você não pode adicionar mais de %d anexos de mídia</item>
</plurals>
<string name="media_attachment_unsupported_type">Arquivo %s é de um tipo não suportado</string>
<string name="media_attachment_too_big">O arquivo %1$s excede o limite de tamanho de %2$s MB</string>
<string name="settings_theme">Aparência</string>
<string name="theme_auto">Usar a aparência do dispositivo</string>
<string name="theme_light">Claro</string>
<string name="theme_dark">Escuro</string>
<string name="settings_behavior">Comportamento</string>
@@ -181,6 +218,9 @@
<string name="settings_clear_cache">Limpar cache de mídia</string>
<string name="settings_app_version">Mastodon para Android v%1$s (%2$d)</string>
<string name="media_cache_cleared">Cache de mídia limpo</string>
<string name="confirm_log_out">Sair de %s?</string>
<string name="sensitive_content_explain">O autor marcou esta mídia como sensível.</string>
<string name="avatar_description">Ir para o perfil de %s</string>
<string name="more_options">Mais opções</string>
<string name="new_post">Novo post</string>
<string name="button_reply">Responder</string>
@@ -195,6 +235,7 @@
<string name="media_viewer">Visualizador de mídia</string>
<string name="follow_user">Seguir %s</string>
<string name="unfollowed_user">Deixou de seguir %s</string>
<string name="followed_user">Agora você está seguindo %s</string>
<string name="open_in_browser">Abrir no navegador</string>
<string name="signup_reason">Por que você deseja se inscrever?</string>
<string name="signup_reason_note">Isso vai nos ajudar a revisar sua inscrição.</string>
@@ -209,7 +250,13 @@
<string name="error_saving_file">Erro ao salvar arquivo</string>
<string name="file_saved">Arquivo salvo</string>
<string name="downloading">Baixando…</string>
<string name="no_app_to_handle_action">Não há um app para executar esta ação</string>
<string name="local_timeline">Local</string>
<string name="trending_posts_info_banner">Estas são as publicações que estão ganhando força no Mastodon.</string>
<string name="trending_links_info_banner">Estas são as notícias que estão sendo comentadas no Mastodon.</string>
<!-- %s is the server domain -->
<string name="local_timeline_info_banner">Estas são as publicações de todos os usuários em seu servidor (%s).</string>
<string name="recommended_accounts_info_banner">Você pode gostar dessas contas com base em outras que segue.</string>
<string name="see_new_posts">Ver novas publicações</string>
<string name="load_missing_posts">Carregar publicações perdidas</string>
<string name="follow_back">Seguir de volta</string>
@@ -283,6 +330,7 @@
<string name="login_title">Bem-vindo de Volta</string>
<string name="login_subtitle">Faça login no servidor onde você criou sua conta.</string>
<string name="server_url">URL do servidor</string>
<string name="signup_random_server_explain">Escolheremos um servidor com base no seu idioma se você continuar sem fazer uma seleção.</string>
<string name="server_filter_any_language">Qualquer idioma</string>
<string name="server_filter_instant_signup">Cadastro Rápido</string>
<string name="server_filter_manual_review">Revisão manual</string>
@@ -295,6 +343,7 @@
<string name="server_filter_region_oceania">Oceania</string>
<string name="not_accepting_new_members">Não está aceitando novos membros</string>
<string name="category_special_interests">Interesses especiais</string>
<string name="signup_passwords_dont_match">As senhas não correspondem</string>
<string name="pick_server_for_me">Escolher para mim</string>
<string name="profile_add_row">Adicionar linha</string>
<string name="profile_setup">Configuração do perfil</string>
@@ -303,23 +352,218 @@
<string name="popular_on_mastodon">Popular no Mastodon</string>
<string name="follow_all">Seguir todos</string>
<string name="server_rules_disagree">Discordo</string>
<string name="privacy_policy_explanation">TL;DR: Não coletamos ou processamos nada.</string>
<!-- %s is server domain -->
<string name="server_policy_disagree">Discordo de %s</string>
<string name="profile_bio">Bio</string>
<!-- Shown in a progress dialog when you tap "follow all" -->
<string name="sending_follows">Seguindo usuários…</string>
<!-- %1$s is server domain, %2$s is email domain. You can reorder these placeholders to fit your language better. -->
<string name="signup_email_domain_blocked">%1$s não permite inscrições de %2$s. Tente um diferente ou &lt;a&gt;escolha um servidor diferente&lt;/a&gt;.</string>
<string name="spoiler_show">Mostrar mesmo assim</string>
<string name="spoiler_hide">Esconder novamente</string>
<string name="poll_multiple_choice">Escolha um ou mais</string>
<string name="save_changes">Salvar alterações</string>
<string name="profile_featured">Destaques</string>
<string name="view_all">Visualizar tudo</string>
<string name="profile_endorsed_accounts">Contas</string>
<string name="verified_link">Link verificado</string>
<string name="show">Mostrar</string>
<string name="hide">Ocultar</string>
<string name="join_default_server">Junte-se a %s</string>
<string name="pick_server">Escolher outro servidor</string>
<string name="signup_or_login">ou</string>
<string name="learn_more">Saiba mais</string>
<string name="welcome_to_mastodon">Bem-vindo ao Mastodon</string>
<string name="welcome_paragraph1">Mastodon é uma rede social descentralizada, o que significa que nenhuma empresa a controla. É composto de muitos servidores executados de forma independente, todos conectados entre si.</string>
<string name="what_are_servers">O que são servidores?</string>
<string name="welcome_paragraph2"><![CDATA[Cada conta Mastodon é hospedada em um servidor - cada um com seus próprios valores, regras e administradores. Não importa qual você escolha, você pode seguir e interagir com as pessoas que estão em qualquer outro servidor.]]></string>
<string name="opening_link">Abrindo link…</string>
<string name="link_not_supported">Este link não é compatível com o aplicativo</string>
<string name="log_out_all_accounts">Sair de todas as contas</string>
<string name="confirm_log_out_all_accounts">Sair de todas as contas?</string>
<string name="retry">Tentar novamente</string>
<string name="post_failed">Falha ao enviar publicação</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_description_image">%s imagem</string>
<string name="attachment_description_video">%s vídeo</string>
<string name="attachment_description_audio">%s áudio</string>
<string name="attachment_description_unknown">%s arquivo</string>
<string name="attachment_type_image">Imagem</string>
<string name="attachment_type_video">Vídeo</string>
<string name="attachment_type_audio">Áudio</string>
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">Arquivo</string>
<string name="attachment_x_percent_uploaded">%d%% enviado</string>
<string name="add_poll_option">Adicionar opção de enquete</string>
<string name="poll_length">Duração da enquete</string>
<string name="poll_style">Estilo</string>
<string name="compose_poll_single_choice">Escolha única</string>
<string name="compose_poll_multiple_choice">Múltipla escolha</string>
<string name="delete_poll_option">Excluir opção de enquete</string>
<string name="poll_style_title">Estilo da enquete</string>
<string name="alt_text">Texto alternativo</string>
<string name="help">Ajuda</string>
<string name="what_is_alt_text">O que é texto alternativo?</string>
<string name="alt_text_help">O texto alternativo fornece descrições de imagens para pessoas com problemas de visão, conexões de baixa largura de banda ou aqueles que buscam um contexto extra.\n\nVocê pode melhorar a acessibilidade e a compreensão de todos escrevendo um texto alternativo claro, conciso e objetivo.\n\n<ul><li>Capture elementos importantes</li>\n<li>Resuma textos em imagens</li>\n<li>Use estrutura de frase regular</li>\n<li>Evite informações redundantes</li>\n<li>Foque nos principais elementos de visuais complexos (como diagramas ou mapas)</li></ul></string>
<string name="edit_post">Editar publicação</string>
<string name="no_verified_link">Nenhum link verificado</string>
<string name="compose_autocomplete_emoji_empty">Procurar emoji</string>
<string name="compose_autocomplete_users_empty">Encontre quem você está procurando</string>
<string name="no_search_results">Não foi possível encontrar nada para estes termos de busca</string>
<string name="language">Idioma</string>
<string name="language_default">Padrão</string>
<string name="language_system">Sistema</string>
<string name="language_detecting">Detectando idioma</string>
<string name="language_cant_detect">Não foi possível detectar o idioma</string>
<string name="language_detected">Detectado</string>
<string name="media_hidden">Mídia oculta</string>
<string name="post_hidden">Publicação oculta</string>
<string name="report_title_post">Denunciar publicação</string>
<string name="forward_report_explanation">A conta é de outro servidor. Enviar uma cópia anônima desta denúncia para lá também?</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">Encaminhar para %s</string>
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<string name="reported">Denunciado</string>
<string name="report_unfollow_explanation">Para não ver mais as publicações deles em sua página inicial, pare de segui-los.</string>
<string name="muted_user">%s silenciado</string>
<string name="report_sent_already_blocked">Você já bloqueou este usuário, então não há mais nada que você precise fazer enquanto analisamos sua denúncia.</string>
<string name="report_personal_already_blocked">Você já bloqueou este usuário, então não há mais nada que você precise fazer.\n\nObrigado por ajudar a manter o Mastodon um lugar seguro para todos!</string>
<string name="blocked_user">%s bloqueado</string>
<string name="mark_all_notifications_read">Marcar tudo como lido</string>
<string name="settings_display">Exibição</string>
<string name="settings_filters">Filtros</string>
<string name="settings_server_explanation">Visão geral, regras, moderadores</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<string name="about_app">Sobre %s</string>
<string name="default_post_language">Idioma padrão de publicação</string>
<string name="settings_alt_text_reminders">Adicionar lembretes de texto alternativo</string>
<string name="settings_confirm_unfollow">Perguntar antes de deixar de seguir alguém</string>
<string name="settings_confirm_boost">Perguntar antes de impulsionar</string>
<string name="settings_confirm_delete_post">Perguntar antes de excluir postagens</string>
<string name="pause_all_notifications">Pausar tudo</string>
<string name="pause_notifications_off">Desligado</string>
<string name="notifications_policy_anyone">Qualquer um</string>
<string name="notifications_policy_followed">Pessoas que te seguem</string>
<string name="notifications_policy_follower">Pessoas que você segue</string>
<string name="notifications_policy_no_one">Ninguém</string>
<string name="settings_notifications_policy">Receba notificações de</string>
<string name="notification_type_mentions_and_replies">Menções e respostas</string>
<string name="pause_all_notifications_title">Pausar todas as notificações</string>
<plurals name="x_weeks">
<item quantity="one">%d semana</item>
<item quantity="other">%d semanas</item>
</plurals>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="date_at_time">%1$s em %2$s</string>
<string name="today">hoje</string>
<string name="yesterday">ontem</string>
<string name="tomorrow">amanhã</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_ends">Termina %s</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="open_system_notification_settings">Vá para as configurações de notificação</string>
<string name="about_server">Sobre</string>
<string name="server_rules">Regras</string>
<string name="server_administrator">Administrador</string>
<string name="notifications_disabled_in_system">Ative as notificações nas configurações do seu dispositivo para ver as atualizações de qualquer lugar.</string>
<string name="settings_even_more">Ainda mais configurações</string>
<string name="settings_show_cws">Mostrar avisos de conteúdo</string>
<string name="settings_hide_sensitive_media">Ocultar mídia marcada como sensível</string>
<string name="settings_show_emoji_in_names">Exibir emojis personalizados em nomes</string>
<plurals name="in_x_seconds">
<item quantity="one">em %d segundo</item>
<item quantity="other">em %d segundos</item>
</plurals>
<plurals name="in_x_minutes">
<item quantity="one">em %d minuto</item>
<item quantity="other">em %d minutos</item>
</plurals>
<plurals name="in_x_hours">
<item quantity="one">em %d hora</item>
<item quantity="other">em %d horas</item>
</plurals>
<plurals name="x_hours_ago">
<item quantity="one">%d hora atrás</item>
<item quantity="other">%d horas atrás</item>
</plurals>
<string name="alt_text_reminder_title">Mídia sem texto alternativo</string>
<plurals name="alt_text_reminder_x_images">
<item quantity="one">%s das suas imagens está faltando o texto alternativo. Publicar mesmo assim?</item>
<item quantity="other">%s das suas imagens estão faltando o texto alternativo. Publicar mesmo assim?</item>
</plurals>
<plurals name="alt_text_reminder_x_attachments">
<item quantity="one">%s dos seus anexos de mídia estão sem texto alternativo. Publicar mesmo assim?</item>
<item quantity="other">%s dos seus anexos de mídia estão sem texto alternativo. Publicar mesmo assim?</item>
</plurals>
<string name="count_one">Um</string>
<string name="count_two">Dois</string>
<string name="count_three">Três</string>
<string name="count_four">Quatro</string>
<string name="alt_text_reminder_post_anyway">Publicação</string>
<!-- %s is the username -->
<string name="unfollow_confirmation">Deixar de seguir %s?</string>
<string name="filter_active">Ativo</string>
<string name="filter_inactive">Inativo</string>
<string name="settings_add_filter">Adicionar filtro</string>
<string name="settings_edit_filter">Editar filtro</string>
<string name="settings_filter_duration">Duração</string>
<string name="settings_filter_muted_words">Palavras silenciadas</string>
<string name="settings_filter_context">Silenciar de</string>
<string name="settings_filter_show_cw">Mostrar com aviso de conteúdo</string>
<string name="settings_filter_show_cw_explanation">Ainda mostra publicações que correspondem com este filtro, mas atrás de um aviso de conteúdo</string>
<string name="settings_delete_filter">Excluir filtro</string>
<string name="filter_duration_forever">Para sempre</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="settings_filter_ends">Termina %s</string>
<plurals name="settings_x_muted_words">
<item quantity="one">%d palavra ou frase silenciada</item>
<item quantity="other">%d palavras ou frases silenciadas</item>
</plurals>
<string name="selection_2_options">%1$s e %2$s</string>
<string name="selection_3_options">%1$s, %2$s, e %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s, %3$d e mais</string>
<string name="filter_context_notifications">Notificações</string>
<string name="filter_context_threads_replies">Tópicos &amp; respostas</string>
<string name="filter_context_profiles">Perfis</string>
<string name="settings_filter_title">Título</string>
<string name="settings_delete_filter_title">Excluir filtro “%s”?</string>
<string name="settings_delete_filter_confirmation">Este filtro será excluído da sua conta em todos os seus dispositivos.</string>
<string name="add_muted_word">Adicionar palavra silenciada</string>
<string name="edit_muted_word">Editar palavra silenciada</string>
<string name="add">Adicionar</string>
<string name="filter_word_or_phrase">Palavra ou frase</string>
<string name="filter_add_word_help">As palavras não diferenciam maiúsculas de minúsculas e correspondem apenas a palavras inteiras.\n\nSe você filtrar a palavra-chave “Apple”, ela ocultará postagens que contenham “apple” ou “aPpLe”, mas não “abacaxi”.</string>
<string name="settings_delete_filter_word">Excluir a palavra “%s”?</string>
<string name="enter_selection_mode">Selecione</string>
<string name="select_all">Selecionar tudo</string>
<string name="settings_filter_duration_title">Duração do filtro</string>
<string name="filter_duration_custom">Personalizado</string>
<plurals name="settings_delete_x_filter_words">
<item quantity="one">Excluir %d palavra?</item>
<item quantity="other">Excluir %d palavras?</item>
</plurals>
<plurals name="x_items_selected">
<item quantity="one">%d selecionado</item>
<item quantity="other">%d selecionado</item>
</plurals>
<string name="required_form_field_blank">Não pode ficar em branco</string>
<string name="filter_word_already_in_list">Já está na lista</string>
<string name="app_update_ready">Atualização de aplicativo pronta</string>
<string name="app_update_version">Versão %s</string>
<string name="downloading_update">Baixando (%d%%)</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="post_matches_filter_x">Corresponde ao filtro “%s”</string>
<string name="search_mastodon">Pesquisar no Mastodon</string>
<string name="clear_all">Limpar tudo</string>
<string name="search_open_url">Abrir URL no Mastodon</string>
<string name="posts_matching_hashtag">Publicações com “%s”</string>
<string name="search_go_to_account">Vá para %s</string>
<string name="posts_matching_string">Publicações com “%s”</string>
<string name="accounts_matching_string">Pessoas com “%s”</string>
<!-- Shown in the post header. Please keep it short -->
<string name="time_seconds_ago_short">%ds atrás</string>
<string name="time_minutes_ago_short">%dm atrás</string>
<string name="time_hours_ago_short">%dh atrás</string>
<string name="time_days_ago_short">%dd atrás</string>
</resources>

View File

@@ -261,15 +261,14 @@
<string name="sk_settings_reply_visibility_all">Todas as respostas</string>
<string name="sk_settings_reply_visibility_following">Respostas para meus seguidores</string>
<string name="sk_settings_reply_visibility_self">Respostas para mim</string>
<string name="sk_reacted_with">reagiu com %s</string>
<string name="sk_reacted">reagiu</string>
<string name="sk_reacted_with">%1$s reagiu com %2$s</string>
<string name="sk_reacted">%s reagiu</string>
<string name="sk_sign_ups">Usuários se inscrevendo</string>
<string name="sk_new_reports">Novas relatórios</string>
<string name="sk_reported">reportado</string>
<string name="sk_settings_auto_reveal_equal_spoilers">Revelar Avisos de Conteúdo em respostas de</string>
<string name="sk_settings_auto_reveal_nobody">ninguém</string>
<string name="sk_settings_auto_reveal_author">autor</string>
<string name="sk_settings_auto_reveal_anyone">todo mundo</string>
<string name="sk_settings_auto_reveal_nobody">Nunca</string>
<string name="sk_settings_auto_reveal_author">Respostas do mesmo autor</string>
<string name="sk_settings_auto_reveal_anyone">Respostas de todos</string>
<string name="sk_open_in_app_failed">Não foi possível abrir no app</string>
<string name="sk_external_share_title">Compartilhar com conta</string>
<string name="sk_external_share_or_open_title">Compartilhar ou abrir com conta</string>
@@ -277,9 +276,9 @@
<string name="sk_error_loading_profile">Falha em carregar o perfil via %s</string>
<string name="sk_settings_allow_remote_loading">Carregar informações de instâncias remotas</string>
<string name="sk_settings_allow_remote_loading_explanation">Tentar buscar listagens mais precisas de seguidores, curtidas e impulsos carregando a informação pela instância de origem.</string>
<string name="sk_settings_prefix_replies_always">todo mundo</string>
<string name="sk_settings_prefix_replies_never">ninguém</string>
<string name="sk_settings_prefix_replies_to_others">outros</string>
<string name="sk_settings_prefix_replies_always">Em resposta a qualquer um</string>
<string name="sk_settings_prefix_replies_never">Nunca</string>
<string name="sk_settings_prefix_replies_to_others">Apenas em resposta a outros</string>
<string name="sk_content_type">Tipo de conteúdo</string>
<string name="sk_content_type_unspecified">Não especificado</string>
<string name="sk_content_type_plain">Texto simples</string>
@@ -309,4 +308,29 @@
<string name="sk_exclusive_list">Lista exclusiva</string>
<string name="sk_list_exclusive_switch">Tornar lista exclusiva</string>
<string name="sk_list_exclusive_switch_explanation">Membros de uma lista exclusiva não irão aparecer na sua linha do tempo inicial - somente se sua instância suportar.</string>
<string name="sk_icon_bed">Cama</string>
<string name="sk_icon_verified">Verificado</string>
<string name="sk_icon_diamond">Diamante</string>
<string name="sk_icon_umbrella">Guarda-chuva</string>
<string name="sk_add_timeline">Adicionar linha do tempo</string>
<string name="sk_edit_timeline_tag_any">…ou qualquer um destes</string>
<string name="sk_edit_timeline_tag_all">…e cada um destes</string>
<string name="sk_edit_timeline_tag_none">…mas nenhum desses</string>
<string name="sk_edit_timeline_tag_hint">Insira a hashtag…</string>
<string name="sk_edit_timeline_tags_hint">Insira as hashtags…</string>
<string name="sk_hashtag_timeline_local_only_switch">Mostrar apenas postagens locais\?</string>
<string name="sk_add_timeline_tag_error_empty">A hashtag não deve estar vazia</string>
<string name="sk_icon_beaker">Béquer</string>
<string name="sk_icon_doctor">Doutor</string>
<string name="sk_edit_timeline_tag_main">Postagens contendo hashtag…</string>
<string name="sk_edit_timeline_tags_explanation">Observe que o servidor lida com essas operações. A combinação deles pode não ser suportada.</string>
<string name="sk_gif_badge">GIF</string>
<string name="sk_advanced_options_show">Mostrar opções avançadas</string>
<string name="sk_advanced_options_hide">Ocultar opções avançadas</string>
<string name="sk_spoiler_show">Mostrar conteúdo</string>
<string name="sk_pronouns_label">Pronomes</string>
<string name="sk_settings_instance">Instância</string>
<string name="sk_switch_timeline">Alternar linha do tempo</string>
<string name="sk_settings_true_black">Modo preto</string>
<string name="sk_search_fediverse">Pesquisar no Fediverso</string>
</resources>

View File

@@ -4,11 +4,15 @@
<string name="next">Seguinte</string>
<string name="loading_instance">A carregar informação do servidor…</string>
<string name="error">Erro</string>
<string name="not_a_mastodon_instance">%s não parece ser um servidor Mastodon.</string>
<string name="ok">OK</string>
<string name="preparing_auth">A preparar a autenticação…</string>
<string name="finishing_auth">A finalizar a autenticação…</string>
<string name="user_boosted">%s reforçou</string>
<string name="in_reply_to">Responder a %s</string>
<string name="notifications">Notificações</string>
<string name="user_followed_you">%s começou a seguir-te</string>
<string name="user_favorited">%s assinalou a sua publicação como favorita</string>
<string name="share_toot_title">Partilhar</string>
<string name="settings">Configurações</string>
<string name="publish">Publicar</string>
@@ -30,6 +34,7 @@
<string name="button_follow">Seguir</string>
<string name="button_following">A seguir</string>
<string name="edit_profile">Editar Perfil</string>
<string name="share_user">Partilhar perfil</string>
<string name="mute_user">Silenciar %s</string>
<string name="unmute_user">Deixar de silenciar @%s</string>
<string name="block_user">Bloquear %s</string>
@@ -77,6 +82,10 @@
<item quantity="one">%d dia restante</item>
<item quantity="other">%d dias restantes</item>
</plurals>
<plurals name="x_votes">
<item quantity="one">%,d voto</item>
<item quantity="other">%,d votos</item>
</plurals>
<string name="poll_closed">Fechado</string>
<string name="confirm_mute_title">Silenciar Conta</string>
<string name="confirm_mute">Confirme para silenciar %s</string>

View File

@@ -338,4 +338,29 @@
<string name="sk_settings_true_black">Mod negru complet</string>
<string name="sk_settings_tabs_disable_swipe">Dezactivați glisarea între file</string>
<string name="sk_disable_pill_shaped_active_indicator">Dezactivați indicatorul de filă activă în formă de pastilă</string>
<string name="sk_search_fediverse">Căutați în Fedivers</string>
<string name="sk_settings_unifiedpush">Folosiți UnifiedPush</string>
<string name="sk_settings_unifiedpush_choose">Alegeți un distribuitor</string>
<string name="sk_settings_unifiedpush_no_distributor">Niciun distribuitor găsit</string>
<string name="sk_settings_unifiedpush_no_distributor_body">Trebuie să instalați un distribuitor pentru ca notificările UnifiedPush să funcționeze. Pentru mai multe informații, vizitați https://unifiedpush.org/</string>
<string name="sk_settings_display_pronouns_in_timelines">Afișați pronume în cronologii</string>
<string name="sk_settings_display_pronouns_in_threads">Afișați pronume în fire de conversații</string>
<string name="sk_settings_display_pronouns_in_user_listings">Afișați pronume în listările utilizatorilor</string>
<string name="sk_tab_home">Acasă</string>
<string name="sk_tab_search">Căutați</string>
<string name="sk_tab_notifications">Notificări</string>
<string name="sk_tab_profile">Profil</string>
<string name="sk_settings_show_labels_in_navigation_bar">Afișați etichetele filelor în bara de navigare</string>
<string name="sk_mute_label">Durație</string>
<string name="sk_duration_indefinite">Indefinită</string>
<string name="sk_duration_minutes_5">5 minute</string>
<string name="sk_duration_minutes_30">30 minute</string>
<string name="sk_duration_hours_1">1 oră</string>
<string name="sk_duration_hours_6">6 ore</string>
<string name="sk_duration_days_1">1 zi</string>
<string name="sk_duration_days_3">3 zile</string>
<string name="sk_duration_days_7">7 zile</string>
<string name="sk_settings_continues_playback">Suprapunere audio</string>
<string name="sk_settings_continues_playback_summary">Permiteți continuarea redării media curente, suprapunând noua redare</string>
<string name="sk_notification_mention">Ați fost menționați de către %s</string>
</resources>

View File

@@ -4,12 +4,17 @@
<string name="next">Далее</string>
<string name="loading_instance">Получение информации о сервере…</string>
<string name="error">Ошибка</string>
<string name="not_a_mastodon_instance">%s не является сервером Mastodon.</string>
<string name="ok">OK</string>
<string name="preparing_auth">Подготовка к авторизации…</string>
<string name="finishing_auth">Завершение авторизации…</string>
<string name="user_boosted">%s продвинул(а)</string>
<string name="in_reply_to">В ответ %s</string>
<string name="notifications">Уведомления</string>
<string name="user_followed_you">%s подписался(ась) на вас</string>
<string name="user_sent_follow_request">%s отправил(а) вам запрос на подписку</string>
<string name="user_favorited">%s добавил(а) в избранное ваш пост</string>
<string name="notification_boosted">%s продвинул(а) ваш пост</string>
<string name="poll_ended">Посмотреть результаты опроса, в котором вы проголосовали</string>
<string name="share_toot_title">Поделиться</string>
<string name="settings">Настройки</string>
@@ -35,7 +40,7 @@
<string name="profile_about">О себе</string>
<string name="button_follow">Подписаться</string>
<string name="button_following">В подписках</string>
<string name="edit_profile">Редактировать профиль</string>
<string name="edit_profile">Изменить профиль</string>
<string name="share_user">Поделиться профилем</string>
<string name="mute_user">Игнорировать %s</string>
<string name="unmute_user">Убрать %s из игнорируемых</string>
@@ -100,14 +105,20 @@
<item quantity="many">Осталось %d дней</item>
<item quantity="other">Осталось %d дней</item>
</plurals>
<plurals name="x_votes">
<item quantity="one">%,d голос</item>
<item quantity="few">%,d голоса</item>
<item quantity="many">%,d голосов</item>
<item quantity="other">%,d голосов</item>
</plurals>
<string name="poll_closed">Завершён</string>
<string name="confirm_mute_title">Игнорировать аккаунт</string>
<string name="confirm_mute_title">Игнорировать</string>
<string name="confirm_mute">Игнорировать %s?</string>
<string name="do_mute">Игнорировать</string>
<string name="confirm_unmute_title">Убрать из игнорируемых</string>
<string name="confirm_unmute_title">Не игнорировать</string>
<string name="confirm_unmute">Убрать %s из игнорируемых?</string>
<string name="do_unmute">Убрать из игнорируемых</string>
<string name="confirm_block_title">Заблокировать аккаунт</string>
<string name="confirm_block_title">Заблокировать</string>
<string name="confirm_block_domain_title">Заблокировать узел</string>
<string name="confirm_block">Заблокировать %s?</string>
<string name="do_block">Заблокировать</string>
@@ -130,6 +141,7 @@
<string name="hashtags">Хэштеги</string>
<string name="news">Новости</string>
<string name="for_you">Для вас</string>
<string name="all_notifications">Все</string>
<string name="mentions">Упоминания</string>
<plurals name="x_people_talking">
<item quantity="one">%d человек обсуждает</item>
@@ -147,6 +159,7 @@
<string name="report_reason_spam_subtitle">Вредоносные ссылки, фальшивое взаимодействие или повторяющиеся ответы</string>
<string name="report_reason_violation">Нарушаются правила сервера</string>
<string name="report_reason_violation_subtitle">Вы знаете, что подобное нарушает определенные правила</string>
<string name="report_reason_other">Это что-то другое</string>
<string name="report_reason_other_subtitle">Проблема не попадает ни под одну из категорий</string>
<string name="report_choose_rule">Какие правила нарушены?</string>
<string name="report_choose_rule_subtitle">Выберите все подходящие варианты</string>
@@ -156,8 +169,13 @@
<string name="report_comment_hint">Дополнительные комментарии</string>
<string name="sending_report">Отправка жалобы…</string>
<string name="report_sent_title">Спасибо за обращение, мы его рассмотрим.</string>
<string name="report_sent_subtitle">Пока мы проверяем это, вы можете принять меры против %s:</string>
<string name="unfollow_user">Отписаться от %s</string>
<string name="unfollow">Отписаться</string>
<string name="mute_user_explain">Вы не будете видеть их посты. Они по-прежнему могут подписываться на вас и видеть ваши посты, но не будут знать, что они в списке игнорируемых.</string>
<string name="block_user_explain">Вы не будете видеть их посты. Они не смогут видеть ваши посты или подписываться на вас. Они поймут, что они заблокированы.</string>
<string name="report_personal_title">Не хотите видеть это?</string>
<string name="report_personal_subtitle">Вот несколько опций управления тем, что вы видите в Mastodon:</string>
<string name="back">Назад</string>
<string name="search_communities">Имя сервера или URL</string>
<string name="instance_rules_title">Правила сервера</string>
@@ -184,14 +202,19 @@
<string name="category_tech">Технологии</string>
<string name="confirm_email_title">Проверьте входящие сообщения</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">Нажмите на ссылку, которую мы вам отправили, чтобы подтвердить %s. Мы подождем здесь.</string>
<string name="confirm_email_didnt_get">Не получили ссылку?</string>
<string name="resend">Отправить заново</string>
<string name="open_email_app">Открыть почту</string>
<string name="resent_email">Письмо подтверждения отправлено</string>
<string name="compose_hint">Напишите то, о чём думаете</string>
<string name="content_warning">Предупреждение о содержании</string>
<string name="save">Сохранить</string>
<string name="add_alt_text">Добавить альтернативный текст</string>
<string name="visibility_public">Публичный</string>
<string name="visibility_followers_only">Для подписчиков</string>
<string name="visibility_private">Для упомянутых</string>
<string name="recent_searches">Недавние</string>
<string name="skip">Пропустить</string>
<string name="notification_type_follow">Новые подписчики</string>
<string name="notification_type_favorite">Избранное</string>
@@ -200,8 +223,16 @@
<string name="notification_type_poll">Опросы</string>
<string name="choose_account">Выберите аккаунт</string>
<string name="err_not_logged_in">Сначала войдите в Mastodon</string>
<plurals name="cant_add_more_than_x_attachments">
<item quantity="one">Можно добавить не более %d вложения</item>
<item quantity="few">Можно добавить не более %d вложений</item>
<item quantity="many">Можно добавить не более %d вложений</item>
<item quantity="other">Можно добавить не более %d вложений</item>
</plurals>
<string name="media_attachment_unsupported_type">Тип файла %s не поддерживается</string>
<string name="media_attachment_too_big">Размер файла %1$s превышает ограничение в %2$s МБ</string>
<string name="settings_theme">Внешний вид</string>
<string name="theme_auto">Как на устройстве</string>
<string name="theme_light">Светлый</string>
<string name="theme_dark">Тёмный</string>
<string name="settings_behavior">Поведение</string>
@@ -211,17 +242,20 @@
<string name="settings_contribute">Внести вклад в Mastodon</string>
<string name="settings_tos">Условия использования</string>
<string name="settings_privacy_policy">Политика конфиденциальности</string>
<string name="settings_clear_cache">Очистить кэш медиа</string>
<string name="settings_clear_cache">Очистить кэш данных</string>
<string name="settings_app_version">Mastodon для Android v%1$s (%2$d)</string>
<string name="media_cache_cleared">Кэш медиа очищен</string>
<string name="media_cache_cleared">Кэш очищен</string>
<string name="confirm_log_out">Выйти из %s?</string>
<string name="sensitive_content_explain">Автор отметил что это материал деликатного характера.</string>
<string name="avatar_description">Перейти в профиль %s</string>
<string name="more_options">Дополнительные настройки</string>
<string name="new_post">Новый пост</string>
<string name="button_reply">Ответить</string>
<string name="button_reblog">Продвинуть</string>
<string name="button_favorite">Добавить в избранное</string>
<string name="button_share">Поделиться</string>
<string name="media_no_description">Медиа без описания</string>
<string name="add_media">Добавить медиа</string>
<string name="media_no_description">Файлы без описания</string>
<string name="add_media">Добавить файл</string>
<string name="add_poll">Добавить опрос</string>
<string name="emoji">Эмодзи</string>
<string name="home_timeline">Домашняя лента</string>
@@ -229,6 +263,7 @@
<string name="media_viewer">Просмотрщик медиа</string>
<string name="follow_user">Подписаться на %s</string>
<string name="unfollowed_user">Вы отписались от %s</string>
<string name="followed_user">Вы подписались на %s</string>
<string name="following_user_requested">Отправлен запрос на подписку %s</string>
<string name="open_in_browser">Открыть в браузере</string>
<string name="hide_boosts_from_user">Скрыть продвигаемые от %s</string>
@@ -236,8 +271,8 @@
<string name="signup_reason">Почему вы хотите присоединиться?</string>
<string name="signup_reason_note">Это поможет нам рассмотреть вашу заявку.</string>
<string name="clear">Очистить</string>
<string name="profile_header">Изображение шапки</string>
<string name="profile_picture">Аватарка</string>
<string name="profile_header">Обложка профиля</string>
<string name="profile_picture">Фото профиля</string>
<string name="reorder">Изменить порядок</string>
<string name="download">Скачать</string>
<string name="permission_required">Требуется доступ</string>
@@ -246,7 +281,13 @@
<string name="error_saving_file">Ошабка при сохранении файла</string>
<string name="file_saved">Файл сохранён</string>
<string name="downloading">Скачивание…</string>
<string name="no_app_to_handle_action">Нет приложения для обработки этого действия</string>
<string name="local_timeline">Локальные</string>
<string name="trending_posts_info_banner">Эти посты набирают популярность в Mastodon.</string>
<string name="trending_links_info_banner">Это новости, о которых говорят в Mastodon.</string>
<!-- %s is the server domain -->
<string name="local_timeline_info_banner">Это все посты от всех пользователей на вашем сервере (%s).</string>
<string name="recommended_accounts_info_banner">Вам могут понравиться эти учетные записи, основаные на ваших подписках.</string>
<string name="see_new_posts">Показать новые</string>
<string name="load_missing_posts">Загрузить недостающие посты</string>
<string name="follow_back">Подписаться в ответ</string>
@@ -295,21 +336,21 @@
<item quantity="many">%d минут назад</item>
<item quantity="other">%d минут назад</item>
</plurals>
<string name="edited_timestamp">редактировано %s</string>
<string name="edit_original_post">Начальное сообщение</string>
<string name="edit_text_edited">Текст отредактирован</string>
<string name="edited_timestamp">изменено %s</string>
<string name="edit_original_post">Оригинальный пост</string>
<string name="edit_text_edited">Текст изменён</string>
<string name="edit_spoiler_added">Предупреждение о содержании добавлено</string>
<string name="edit_spoiler_edited">Предупреждение о содержании отредактировано</string>
<string name="edit_spoiler_edited">Предупреждение о содержании изменено</string>
<string name="edit_spoiler_removed">Предупреждение о содержании удалено</string>
<string name="edit_poll_added">Опрос добавлен</string>
<string name="edit_poll_edited">Опрос изменён</string>
<string name="edit_poll_removed">Опрос удалён</string>
<string name="edit_media_added">Файл добавлен</string>
<string name="edit_media_removed">Файл удалён</string>
<string name="edit_media_reordered">Файл переупорядочен</string>
<string name="edit_marked_sensitive">Отметить как «не для всех»</string>
<string name="edit_marked_not_sensitive">Снять отметку «не для всех»</string>
<string name="edit_multiple_changed">Публикация изменена</string>
<string name="edit_media_reordered">Файлы переупорядочены</string>
<string name="edit_marked_sensitive">Отметить как «деликатный»</string>
<string name="edit_marked_not_sensitive">Снять отметку «деликатный»</string>
<string name="edit_multiple_changed">Пост изменён</string>
<string name="edit">Редактировать</string>
<string name="discard_changes">Отменить изменения?</string>
<string name="upload_failed">Сбой загрузки</string>
@@ -336,6 +377,7 @@
<string name="login_title">С возвращением</string>
<string name="login_subtitle">Войдите на сервер, на котором вы создали свою учётную запись.</string>
<string name="server_url">URL-адрес сервера</string>
<string name="signup_random_server_explain">Мы выберем сервер на основе вашего языка, если вы продолжите, не сделав выбор.</string>
<string name="server_filter_any_language">Любой язык</string>
<string name="server_filter_instant_signup">Мгновенная регистрация</string>
<string name="server_filter_manual_review">Ручная проверка</string>
@@ -348,6 +390,7 @@
<string name="server_filter_region_oceania">Океания</string>
<string name="not_accepting_new_members">Не принимает новых участников</string>
<string name="category_special_interests">Особые интересы</string>
<string name="signup_passwords_dont_match">Пароли не совпадают</string>
<string name="pick_server_for_me">Выбрать за меня</string>
<string name="profile_add_row">Добавить строку</string>
<string name="profile_setup">Настройка профиля</string>
@@ -356,12 +399,14 @@
<string name="popular_on_mastodon">Популярно на Mastodon</string>
<string name="follow_all">Подписаться на всех</string>
<string name="server_rules_disagree">Отклонить</string>
<string name="privacy_policy_explanation">TL;DR: Мы ничего не собираем и не обрабатываем.</string>
<!-- %s is server domain -->
<string name="server_policy_disagree">Отклонить %s</string>
<string name="profile_bio">О себе</string>
<!-- Shown in a progress dialog when you tap "follow all" -->
<string name="sending_follows">Подписка на пользователей…</string>
<!-- %1$s is server domain, %2$s is email domain. You can reorder these placeholders to fit your language better. -->
<string name="signup_email_domain_blocked">%1$s не позволяет зарегистрироваться от %2$s. Попробуйте другой или &lt;a&gt;выберите другой сервер&lt;/a&gt;.</string>
<string name="spoiler_show">Все равно показать</string>
<string name="spoiler_hide">Спрятать повторно</string>
<string name="poll_multiple_choice">Выберите один или более</string>
@@ -369,7 +414,7 @@
<string name="profile_featured">Избранное</string>
<string name="profile_timeline">Лента</string>
<string name="view_all">Посмотреть все</string>
<string name="profile_endorsed_accounts">Учётные записи</string>
<string name="profile_endorsed_accounts">Аккаунты</string>
<string name="verified_link">Подтвержденная ссылка</string>
<string name="show">Показать</string>
<string name="hide">Скрыть</string>
@@ -381,15 +426,218 @@
<string name="welcome_paragraph1">Mastodon - это децентрализованная социальная сеть, то есть ни одна компания не контролирует ее. Она состоит из множества независимо управляемых серверов, соединенных вместе.</string>
<string name="what_are_servers">Что такое сервер?</string>
<string name="welcome_paragraph2"><![CDATA[Каждый аккаунт Mastodon размещается на сервере - каждый со своими ценностями, правилами и администраторами. Независимо от того, какой сервер вы выберете, вы можете следить и взаимодействовать с людьми на любом сервере.]]></string>
<string name="opening_link">Открытие ссылки…</string>
<string name="link_not_supported">Эта ссылка не поддерживается в приложении</string>
<string name="log_out_all_accounts">Выйти из всех аккаунтов</string>
<string name="confirm_log_out_all_accounts">Выйти из всех аккаунтов?</string>
<string name="retry">Повторить</string>
<string name="post_failed">Не удалось отправить</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_description_image">%s изображение</string>
<string name="attachment_description_video">%s видео</string>
<string name="attachment_description_audio">%s аудиозапись</string>
<string name="attachment_description_unknown">%s файл</string>
<string name="attachment_type_image">Изображение</string>
<string name="attachment_type_video">Видео</string>
<string name="attachment_type_audio">Аудио</string>
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">Файл</string>
<string name="attachment_x_percent_uploaded">%d%% загружен</string>
<string name="add_poll_option">Добавить вариант ответа</string>
<string name="poll_length">Срок</string>
<string name="poll_style">Стиль</string>
<string name="compose_poll_single_choice">Только один</string>
<string name="compose_poll_multiple_choice">Несколько</string>
<string name="delete_poll_option">Удалить опцию опроса</string>
<string name="poll_style_title">Стиль опроса</string>
<string name="alt_text">Альтернативный текст</string>
<string name="help">Помощь</string>
<string name="what_is_alt_text">Что такое альтернативный текст?</string>
<string name="alt_text_help">Альтернативный текст содержит описания изображений для людей с ограничениями и тех, кому нужен дополнительный контекст.\n\nВы можете улучшить доступность и понимание для всех, написав четкий, краткий и объективный альтернативный текст.\n\n<ul><li>Фиксируйте важные элементы</li>\n<li>Описывайте изображение</li>\n<li>Используйте правильную структуру предложений</li>\n<li>Избегайте избыточной информации</li>\n<li>Сосредоточьтесь на основных и ключевых визуальных элементах (таких как диаграммы или карты)</li></ul></string>
<string name="edit_post">Изменить пост</string>
<string name="no_verified_link">Не подтвержденная ссылка</string>
<string name="compose_autocomplete_emoji_empty">Просмотр эмодзи</string>
<string name="compose_autocomplete_users_empty">Найдите тех, кого ищете</string>
<string name="no_search_results">Ничего не найдено по этому запросу</string>
<string name="language">Язык</string>
<string name="language_default">По умолчанию</string>
<string name="language_system">Система</string>
<string name="language_detecting">Определение языка</string>
<string name="language_cant_detect">Не удается определить язык</string>
<string name="language_detected">Определён</string>
<string name="media_hidden">Файлы скрыты</string>
<string name="post_hidden">Пост скрыт</string>
<string name="report_title_post">Пожаловаться</string>
<string name="forward_report_explanation">Аккаунт принадлежит другому серверу. Отправить туда анонимную копию этого отчета?</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">Переслать на %s</string>
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<string name="reported">Сообщено</string>
<string name="report_unfollow_explanation">Чтобы больше не видеть их посты в вашей ленте, отмените подписку на них.</string>
<string name="muted_user">Игнорировать %s</string>
<string name="report_sent_already_blocked">Вы уже заблокировали этого пользователя, так что вам больше ничего не нужно делать, пока мы просматриваем ваше обращение.</string>
<string name="report_personal_already_blocked">Вы уже заблокировали этого пользователя, так что вам больше ничего не нужно делать.\n\nСпасибо, что помогаете сделать Mastodon безопасным для всех!</string>
<string name="blocked_user">Заблокировать %s</string>
<string name="mark_all_notifications_read">Отметить всё как прочитанное</string>
<string name="settings_display">Отображение</string>
<string name="settings_filters">Фильтры</string>
<string name="settings_server_explanation">Обзор, правила, модераторы</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<string name="about_app">О %s</string>
<string name="default_post_language">Язык по умолчанию</string>
<string name="settings_alt_text_reminders">Напоминать об альтернативном тексте</string>
<string name="settings_confirm_unfollow">Подтверждать отписку</string>
<string name="settings_confirm_boost">Подтверждать продвижение</string>
<string name="settings_confirm_delete_post">Подтверждать удаление поста</string>
<string name="pause_all_notifications">Приостановить все</string>
<string name="pause_notifications_off">Отключено</string>
<string name="notifications_policy_anyone">Всех</string>
<string name="notifications_policy_followed">Тех, кто на меня подписан(а)</string>
<string name="notifications_policy_follower">Тех, на кого я подписан(а)</string>
<string name="notifications_policy_no_one">Никого</string>
<string name="settings_notifications_policy">Получать уведомления от</string>
<string name="notification_type_mentions_and_replies">Упоминания и ответы</string>
<string name="pause_all_notifications_title">Просмотреть все уведомления</string>
<plurals name="x_weeks">
<item quantity="one">%d неделя</item>
<item quantity="few">%d недели</item>
<item quantity="many">%d недель</item>
<item quantity="other">%d недель</item>
</plurals>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="date_at_time">%1$s в %2$s</string>
<string name="today">сегодня</string>
<string name="yesterday">вчера</string>
<string name="tomorrow">завтра</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_ends">Закончится %s</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_banner">Уведомления возобновятся %s.</string>
<string name="resume_notifications_now">Возобновить</string>
<string name="open_system_notification_settings">Перейти к настройкам уведомлений</string>
<string name="about_server">О нас</string>
<string name="server_rules">Правила</string>
<string name="server_administrator">Администратор</string>
<string name="send_email_to_server_admin">Написать администратору</string>
<string name="notifications_disabled_in_system">Включите уведомления из настроек вашего устройства, чтобы увидеть обновления откуда угодно.</string>
<string name="settings_even_more">Еще больше настроек</string>
<string name="settings_show_cws">Показывать предупреждения о содержании</string>
<string name="settings_hide_sensitive_media">Скрывать материал деликатного характера</string>
<string name="settings_show_interaction_counts">Показывать количество взаимодействий под постами</string>
<string name="settings_show_emoji_in_names">Пользовательские эмодзи в именах</string>
<plurals name="in_x_seconds">
<item quantity="one">через %d секунду</item>
<item quantity="few">через %d секунд(ы)</item>
<item quantity="many">через %d секунд(ы)</item>
<item quantity="other">через %d секунд(ы)</item>
</plurals>
<plurals name="in_x_minutes">
<item quantity="one">через %d минуту</item>
<item quantity="few">через %d минут(ы)</item>
<item quantity="many">через %d минут(ы)</item>
<item quantity="other">через %d минут(ы)</item>
</plurals>
<plurals name="in_x_hours">
<item quantity="one">через %d час</item>
<item quantity="few">через %d часа(ов)</item>
<item quantity="many">через %d часов</item>
<item quantity="other">через %d часов</item>
</plurals>
<plurals name="x_hours_ago">
<item quantity="one">%d час назад</item>
<item quantity="few">%d часов(-а) назад</item>
<item quantity="many">%d часов(-а) назад</item>
<item quantity="other">%d часов(-а) назад</item>
</plurals>
<string name="alt_text_reminder_title">В материале отсутствует альтернативный текст</string>
<plurals name="alt_text_reminder_x_images">
<item quantity="one">В %s вашем изображении отсутствует альтернативный текст. Опубликовать в любом случае?</item>
<item quantity="few">В %s ваших изображениях отсутствует альтернативный текст. Опубликовать в любом случае?</item>
<item quantity="many">В %s ваших изображениях отсутствует альтернативный текст. Опубликовать в любом случае?</item>
<item quantity="other">В %s ваших изображениях отсутствует альтернативный текст. Опубликовать в любом случае?</item>
</plurals>
<plurals name="alt_text_reminder_x_attachments">
<item quantity="one">В %s вашем файле отсутствует альтернативный текст. Опубликовать в любом случае?</item>
<item quantity="few">В %s ваших файлах отсутствует альтернативный текст. Опубликовать в любом случае?</item>
<item quantity="many">В %s ваших файлах отсутствует альтернативный текст. Опубликовать в любом случае?</item>
<item quantity="other">В %s ваших файлах отсутствует альтернативный текст. Опубликовать в любом случае?</item>
</plurals>
<string name="count_one">Один</string>
<string name="count_two">Два</string>
<string name="count_three">Три</string>
<string name="count_four">Четыре</string>
<string name="alt_text_reminder_post_anyway">Пост</string>
<!-- %s is the username -->
<string name="unfollow_confirmation">Отписаться от %s?</string>
<string name="filter_active">Активный</string>
<string name="filter_inactive">Неактивный</string>
<string name="settings_add_filter">Добавить фильтр</string>
<string name="settings_edit_filter">Изменить фильтр</string>
<string name="settings_filter_duration">Продолжительность</string>
<string name="settings_filter_muted_words">Игнорируемые слова</string>
<string name="settings_filter_context">Игнорировать</string>
<string name="settings_filter_show_cw">Показывать предупреждения о содержании</string>
<string name="settings_filter_show_cw_explanation">Показывать посты, которые соответствуют этому фильтру, но с предупреждением о содержании</string>
<string name="settings_delete_filter">Удалить фильтр</string>
<string name="filter_duration_forever">Всегда</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="settings_filter_ends">Закончится %s</string>
<plurals name="settings_x_muted_words">
<item quantity="one">%d игнорируемое слово или фраза</item>
<item quantity="few">%d игнорируемых слов(а) или фраз</item>
<item quantity="many">%d игнорируемых слов(а) или фраз</item>
<item quantity="other">%d игнорируемых слов(а) или фраз</item>
</plurals>
<string name="selection_2_options">%1$s и %2$s</string>
<string name="selection_3_options">%1$s, %2$s и %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s и ещё %3$d</string>
<string name="filter_context_home_lists">Главная &amp; списки</string>
<string name="filter_context_notifications">Уведомления</string>
<string name="filter_context_public_timelines">Публичная лента</string>
<string name="filter_context_threads_replies">Темы &amp; ответы</string>
<string name="filter_context_profiles">Профили</string>
<string name="settings_filter_title">Название</string>
<string name="settings_delete_filter_title">Удалить фильтр “%s”?</string>
<string name="settings_delete_filter_confirmation">Этот фильтр будет удален из аккаунта на всех ваших устройствах.</string>
<string name="add_muted_word">Добавить игнорируемое слово</string>
<string name="edit_muted_word">Изменить игнорируемое слово</string>
<string name="add">Добавить</string>
<string name="filter_word_or_phrase">Слово или фраза</string>
<string name="filter_add_word_help">Слова не чувствительны к регистру и соответствуют только целым словам.\n\nЕсли вы отфильтруете ключевое слово “Apple”, оно скроет посты, содержащие “apple” или “aPpLe” но не “pineapple.”</string>
<string name="settings_delete_filter_word">Удалить слово “%s”?</string>
<string name="enter_selection_mode">Выбрать</string>
<string name="select_all">Выбрать все</string>
<string name="settings_filter_duration_title">Продолжительность фильтра</string>
<string name="filter_duration_custom">Другое</string>
<plurals name="settings_delete_x_filter_words">
<item quantity="one">Удалить %d слово?</item>
<item quantity="few">Удалить %d слова?</item>
<item quantity="many">Удалить %d слов?</item>
<item quantity="other">Удалить %d слов?</item>
</plurals>
<plurals name="x_items_selected">
<item quantity="one">Выбрано %d</item>
<item quantity="few">Выбрано %d</item>
<item quantity="many">Выбрано %d</item>
<item quantity="other">Выбрано %d</item>
</plurals>
<string name="required_form_field_blank">Не может быть пустым</string>
<string name="filter_word_already_in_list">Уже в списке</string>
<string name="app_update_ready">Приложение готово к обновлению</string>
<string name="app_update_version">Версия %s</string>
<string name="downloading_update">Скачивание (%d%%)</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="post_matches_filter_x">Соответствует фильтру “%s”</string>
<string name="search_mastodon">Поиск в Mastodon</string>
<string name="clear_all">Очистить все</string>
<string name="search_open_url">Открывать ссылки в Mastodon</string>
<string name="posts_matching_hashtag">Посты с “%s”</string>
<string name="search_go_to_account">Перейти в %s</string>
<string name="posts_matching_string">Посты с “%s”</string>
<string name="accounts_matching_string">Аккаунты с “%s”</string>
<!-- Shown in the post header. Please keep it short -->
<string name="time_seconds_ago_short">%d сек. назад</string>
<string name="time_minutes_ago_short">%d мин. назад</string>
<string name="time_hours_ago_short">%d ч. назад</string>
<string name="time_days_ago_short">%d д. назад</string>
</resources>

View File

@@ -270,8 +270,57 @@
<string name="sk_settings_reply_visibility_self">Ответы мне</string>
<string name="sk_settings_confirm_before_reblog">Подтверждение перед продвижением</string>
<string name="sk_compact_reblog_reply_line">Компактная строка продвижения/ответа</string>
<string name="sk_reacted_with">отреагировал с %s</string>
<string name="sk_reacted">отреагировал</string>
<string name="sk_reacted_with">%1$s отреагировал: %2$s</string>
<string name="sk_reacted">%s отреагировал</string>
<string name="sk_notification_action_replied">Отправлен ответ на %s</string>
<string name="sk_show_thread">Показать тему</string>
<string name="sk_icon_feed">Новости</string>
<string name="sk_settings_auto_reveal_nobody">Никогда</string>
<string name="sk_settings_auto_reveal_author">Ответы от этого автора</string>
<string name="sk_settings_auto_reveal_anyone">Ответы ото всех</string>
<string name="sk_external_share_title">Поделиться с учётной записью</string>
<string name="sk_settings_prefix_replies_always">В ответ кому угодно</string>
<string name="sk_settings_prefix_replies_never">Никогда</string>
<string name="sk_icon_umbrella">Зонт</string>
<string name="sk_icon_beaker">Хим. стакан</string>
<string name="sk_icon_bed">Кровать</string>
<string name="sk_icon_recycle_bin">Мусорное ведро</string>
<string name="sk_icon_verified">Проверен</string>
<string name="sk_icon_doctor">Доктор</string>
<string name="sk_icon_diamond">Алмаз</string>
<string name="sk_add_timeline">Добавить ленту</string>
<string name="sk_edit_timeline_tag_main">Посты с хештегом…</string>
<string name="sk_edit_timeline_tag_any">...или любые из этих</string>
<string name="sk_edit_timeline_tag_all">...и все из этих</string>
<string name="sk_edit_timeline_tag_none">...но без этих</string>
<string name="sk_edit_timeline_tag_hint">Введите хештег…</string>
<string name="sk_edit_timeline_tags_hint">Введите хештеги…</string>
<string name="sk_edit_timeline_tags_explanation">Пожалуйста, имейте в виду, что эти операции обрабатываются сервером. Совмещение может не поддерживаться.</string>
<string name="sk_hashtag_timeline_local_only_switch">Отображать только местные посты\?</string>
<string name="sk_add_timeline_tag_error_empty">Хештег не может быть пустым</string>
<string name="sk_content_type_html">HTML</string>
<string name="sk_content_type_markdown">Markdown</string>
<string name="sk_content_type_bbcode">BB-код</string>
<string name="sk_advanced_options_hide">Скрыть дополнительные опции</string>
<string name="sk_timeline_bubble">Круг</string>
<string name="sk_gif_badge">GIF</string>
<string name="sk_content_type_plain">Обычный текст</string>
<string name="sk_settings_content_types">Включить форматирование постов</string>
<string name="sk_settings_default_content_type">Тип содержимого по умолчанию</string>
<string name="sk_instance_info_unavailable">Информация о сервере временно недоступна</string>
<string name="sk_open_in_app">Открыть в приложении</string>
<string name="sk_error_loading_profile">Не удалось загрузить профиль с %s</string>
<string name="sk_settings_allow_remote_loading">Загрузить информацию с удалённых серверов</string>
<string name="sk_advanced_options_show">Показать дополнительные опции</string>
<string name="sk_spoiler_show">Показать содержимое</string>
<string name="sk_pronouns_label">Произношение</string>
<string name="sk_settings_instance">Сервер</string>
<string name="sk_open_in_app_failed">Невозможно открыть в приложении</string>
<string name="sk_external_share_or_open_title">Поделиться или открыть с учётной записью</string>
<string name="sk_no_remote_info_hint">удалённая информация недоступна</string>
<string name="sk_switch_timeline">Переключить ленту</string>
<string name="sk_content_type">Тип содержимого</string>
<string name="sk_content_type_unspecified">Не указано</string>
<string name="sk_bubble_timeline_info_banner">Это недавние посты из сети, управляемой администраторами этого сервера.</string>
<string name="sk_search_fediverse">Искать в Федивёрсе</string>
</resources>

View File

@@ -15,6 +15,7 @@
<string name="user_sent_follow_request">%s vam je poslal_a zahtevo za sledenje</string>
<string name="user_favorited">%s je vzljubil/a vašo objavo</string>
<string name="notification_boosted">%s je izpostavila/a vašo objavo</string>
<string name="poll_ended">Pokaži rezultate ankete, v kateri sem sodeloval_a</string>
<string name="share_toot_title">Deli</string>
<string name="settings">Nastavitve</string>
<string name="publish">Objavi</string>
@@ -40,6 +41,7 @@
<string name="button_follow">Sledi</string>
<string name="button_following">Sledi</string>
<string name="edit_profile">Uredi profil</string>
<string name="share_user">Profil v skupno rabo</string>
<string name="mute_user">Utišaj %s</string>
<string name="unmute_user">Odtišaj %s</string>
<string name="block_user">Blokiraj %s</string>
@@ -206,6 +208,7 @@
<string name="visibility_public">Javno</string>
<string name="visibility_followers_only">Samo sledilci</string>
<string name="visibility_private">Samo osebe, ki jih omenjam</string>
<string name="recent_searches">Nedavno</string>
<string name="skip">Preskoči</string>
<string name="notification_type_follow">Novi sledilci</string>
<string name="notification_type_favorite">Priljubljeni</string>
@@ -230,6 +233,8 @@
<string name="settings_clear_cache">Počisti medijski predpomnilnik</string>
<string name="settings_app_version">Mastodon za Android v%1$s (%2$d)</string>
<string name="media_cache_cleared">Predpomnilnik medijev počiščen</string>
<string name="confirm_log_out">Ali se želite odjaviti iz %s?</string>
<string name="sensitive_content_explain">Avtor je to vsebino označil kot občutljivo.</string>
<string name="avatar_description">Pojdi na profil %s</string>
<string name="more_options">Več možnosti</string>
<string name="new_post">Nova objava</string>
@@ -265,6 +270,7 @@
<string name="file_saved">Datoteka shranjena</string>
<string name="downloading">Prejemanje …</string>
<string name="no_app_to_handle_action">Ni programa za ravnanje s tem dejanjem</string>
<string name="local_timeline">Krajevno</string>
<string name="trending_posts_info_banner">To so objave, ki plenijo pozornost po Mastodonu.</string>
<!-- %s is the server domain -->
<string name="see_new_posts">Pokaži nove objave</string>
@@ -424,8 +430,13 @@
<string name="mark_all_notifications_read">Označi vse kot prebrano</string>
<string name="settings_filters">Filtri</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<string name="about_app">O programu %s</string>
<string name="default_post_language">Privzeti jezik objave</string>
<string name="pause_all_notifications">Premor za vse</string>
<string name="pause_notifications_off">Izklopljeno</string>
<string name="notifications_policy_no_one">Nihče</string>
<string name="notification_type_mentions_and_replies">Omembe in odgovori</string>
<string name="pause_all_notifications_title">Zaustavi vsa obvestila</string>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="today">danes</string>
<string name="yesterday">včeraj</string>
@@ -436,20 +447,28 @@
<string name="about_server">O programu</string>
<string name="server_rules">Pravila</string>
<string name="server_administrator">Skrbnik</string>
<string name="settings_even_more">Še več nastavitev</string>
<string name="settings_show_cws">Pokaži opozorilo o vsebini</string>
<string name="settings_hide_sensitive_media">Skrij medij, ki je označen kot občutljiv</string>
<string name="count_one">Ena</string>
<string name="alt_text_reminder_post_anyway">Objavi</string>
<!-- %s is the username -->
<string name="filter_active">Dejaven</string>
<string name="filter_inactive">Nedejaven</string>
<string name="settings_add_filter">Dodaj filter</string>
<string name="settings_edit_filter">Uredi filter</string>
<string name="settings_filter_duration">Trajanje</string>
<string name="settings_filter_muted_words">Utišane besede</string>
<string name="settings_filter_show_cw">Pokaži z oporozilom o vsebini</string>
<string name="settings_delete_filter">Izbriši filter</string>
<string name="filter_duration_forever">Za vedno</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="filter_context_notifications">Obvestila</string>
<string name="filter_context_public_timelines">Javne časovnice</string>
<string name="filter_context_threads_replies">Niti in odgovori</string>
<string name="filter_context_profiles">Profili</string>
<string name="settings_filter_title">Naslov</string>
<string name="settings_delete_filter_title">Ali želite izbrisati filter »%s«?</string>
<string name="add">Dodaj</string>
<string name="filter_word_or_phrase">Beseda ali besedna zveza</string>
<string name="select_all">Izberi vse</string>
@@ -457,12 +476,18 @@
<string name="filter_duration_custom">Po meri</string>
<string name="required_form_field_blank">Ne sme biti prazno</string>
<string name="filter_word_already_in_list">Že na seznamu</string>
<string name="app_update_ready">Posodobitev aplikacije je pripravljena</string>
<string name="app_update_version">Različica %s</string>
<string name="downloading_update">Prenos %d%%</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="post_matches_filter_x">Se ujema s filtrom »%s«</string>
<string name="search_mastodon">Išči v Mastodonu</string>
<string name="clear_all">Počisti vse</string>
<string name="search_open_url">Odpri URL v Mastodonu</string>
<string name="posts_matching_hashtag">Objave s/z »%s«</string>
<string name="search_go_to_account">Pojdi na %s</string>
<string name="posts_matching_string">Objave s/z »%s«</string>
<string name="accounts_matching_string">Osebe s/z »%s«</string>
<!-- Shown in the post header. Please keep it short -->
<string name="time_seconds_ago_short">pred %d s</string>
<string name="time_minutes_ago_short">pred %d meseci</string>

View File

@@ -252,7 +252,7 @@
<string name="sk_icon_gauge">Merilnik</string>
<string name="sk_expand">Razširi</string>
<string name="sk_unfinished_attachments_message">Nekatere priloge se niso naložile do konca.</string>
<string name="sk_settings_prefix_reply_cw_with_re">CW predpona odgovora z »re:«</string>
<string name="sk_settings_prefix_reply_cw_with_re">CW predpona odgovora z re:</string>
<string name="sk_collapse">Strni</string>
<string name="sk_settings_collapse_long_posts">Strni zelo dolge objave</string>
<string name="sk_filtered">Filtrirano: %s</string>
@@ -312,4 +312,28 @@
<string name="sk_reacted_with">%1$s se je odzval z %2$s</string>
<string name="sk_reacted">%s se je odzval</string>
<string name="sk_bubble_timeline_info_banner">To so najnovejše objave iz omrežja, ki so jih kurirali skrbniki vaše instance.</string>
<string name="sk_settings_auto_reveal_equal_spoilers">Samodejno razkrij enake CW-je v odgovorih</string>
<string name="sk_settings_auto_reveal_nobody">Nikoli</string>
<string name="sk_settings_auto_reveal_author">Odgovori istega avtorja</string>
<string name="sk_settings_auto_reveal_anyone">Odgovori vseh</string>
<string name="sk_settings_prefix_replies_always">V odgovor komurkoli</string>
<string name="sk_settings_prefix_replies_never">Nikoli</string>
<string name="sk_settings_prefix_replies_to_others">Samo v odgovoru drugim</string>
<string name="sk_list_exclusive_switch_explanation">Člani ekskluzivnega seznama ne bodo prikazani na vaši domači časovnici če to podpira vaša instanca.</string>
<string name="sk_advanced_options_show">Prikaži napredne možnosti</string>
<string name="sk_advanced_options_hide">Skrij napredne možnosti</string>
<string name="sk_exclusive_list">Ekskluzivni seznam</string>
<string name="sk_list_exclusive_switch">Naj bo seznam ekskluziven</string>
<string name="sk_settings_forward_report_default">Privzeto stikalo “Posreduj poročilo”</string>
<string name="sk_followed_as">Spremljan od %s</string>
<string name="sk_settings_default_content_type_explanation">To vam omogoča, da pri ustvarjanju novih objav predhodno izberete vrsto vsebine, s čimer prepišete vrednost, nastavljeno v »Nastavitvah objav«.</string>
<string name="sk_settings_allow_remote_loading_explanation">Poskusite pridobiti natančnejše sezname za sledilce, všečke in spodbude, tako da naložite informacije iz originalne instance.</string>
<string name="sk_spoiler_show">Prikaži vsebino</string>
<string name="sk_pronouns_label">Zaimki</string>
<string name="sk_switch_timeline">Preklopi časovnico</string>
<string name="sk_settings_instance">Instanca</string>
<string name="sk_disable_pill_shaped_active_indicator">Onemogoči indikator aktivnega zavihka v obliki tabletke</string>
<string name="sk_settings_true_black">Čisto črni način</string>
<string name="sk_settings_reply_visibility_self">Odgovori meni</string>
<string name="sk_search_fediverse">Iskanje v Fediverse</string>
</resources>

View File

@@ -4,12 +4,14 @@
<string name="next">Nästa</string>
<string name="loading_instance">Hämtar serverinfo…</string>
<string name="error">Fel</string>
<string name="not_a_mastodon_instance">%s verkar inte vara en mastodon server.</string>
<string name="ok">OK</string>
<string name="preparing_auth">Förbereder för autentisering…</string>
<string name="finishing_auth">Slutför autentisering…</string>
<string name="user_boosted">%s boostade</string>
<string name="in_reply_to">Som svar på %s</string>
<string name="notifications">Notiser</string>
<string name="user_followed_you">%s följde dig</string>
<string name="share_toot_title">Dela</string>
<string name="settings">Inställningar</string>
<string name="publish">Publicera</string>
@@ -31,6 +33,7 @@
<string name="button_follow">Följ</string>
<string name="button_following">Följer</string>
<string name="edit_profile">Redigera profil</string>
<string name="share_user">Dela profil</string>
<string name="mute_user">Tysta %s</string>
<string name="unmute_user">Avtysta %s</string>
<string name="block_user">Blockera %s</string>
@@ -78,6 +81,10 @@
<item quantity="one">%d dag kvar</item>
<item quantity="other">%d dagar kvar</item>
</plurals>
<plurals name="x_votes">
<item quantity="one">%,d röst</item>
<item quantity="other">%,d röster</item>
</plurals>
<string name="poll_closed">Stängd</string>
<string name="confirm_mute_title">Tysta konto</string>
<string name="confirm_mute">Bekräfta för att tysta %s</string>
@@ -96,11 +103,13 @@
<string name="button_blocked">Blockerad</string>
<string name="action_vote">Rösta</string>
<string name="delete">Radera</string>
<string name="confirm_delete_title">Radera inlägg</string>
<string name="confirm_delete">Är du säker på att du vill radera detta inlägg?</string>
<string name="deleting">Raderar…</string>
<string name="notification_channel_audio_player">Ljuduppspelning</string>
<string name="play">Spela</string>
<string name="pause">Pausa</string>
<string name="log_out">Logga ut</string>
<string name="add_account">Lägg till konto</string>
<string name="search_hint">Sök</string>
<string name="hashtags">Hashtaggar</string>
@@ -113,7 +122,9 @@
</plurals>
<string name="report_title">Rapportera %s</string>
<string name="report_choose_reason_subtitle">Välj den bästa träffen</string>
<string name="report_reason_personal">Jag gillar det inte</string>
<string name="report_reason_personal_subtitle">Det är inget som du vill se</string>
<string name="report_reason_spam">Det är skräppost</string>
<string name="report_reason_spam_subtitle">Skadliga länkar, bedrägligt beteende eller repetitiva svar</string>
<string name="report_reason_violation">Det bryter mot serverns regler</string>
<string name="report_reason_violation_subtitle">Du är medveten om att det bryter mot specifika regler</string>
@@ -161,6 +172,7 @@
<string name="add_alt_text">Lägg till alternativtext</string>
<string name="visibility_public">Offentlig</string>
<string name="visibility_followers_only">Endast följare</string>
<string name="recent_searches">Nyligen</string>
<string name="skip">Hoppa över</string>
<string name="notification_type_follow">Nya följare</string>
<string name="notification_type_favorite">Favoriter</string>
@@ -170,6 +182,7 @@
<string name="err_not_logged_in">Logga in på Mastodon först</string>
<string name="media_attachment_unsupported_type">Filen %s är av en typ som inte stöds</string>
<string name="media_attachment_too_big">Filen %1$s överskrider storleksgränsen på %2$s MB</string>
<string name="settings_theme">Utseende</string>
<string name="theme_light">Ljust</string>
<string name="theme_dark">Mörkt</string>
<string name="settings_behavior">Beteende</string>
@@ -182,6 +195,7 @@
<string name="settings_clear_cache">Rensa mediacache</string>
<string name="settings_app_version">Mastodon för Android v%1$s (%2$d)</string>
<string name="media_cache_cleared">Mediacache rensad</string>
<string name="confirm_log_out">Logga ut från %s?</string>
<string name="more_options">Fler alternativ</string>
<string name="new_post">Nytt inlägg</string>
<string name="button_reply">Svara</string>
@@ -197,6 +211,7 @@
<string name="media_viewer">Mediavisare</string>
<string name="follow_user">Följ %s</string>
<string name="unfollowed_user">Avföljde %s</string>
<string name="followed_user">Du följer nu %s</string>
<string name="open_in_browser">Öppna i webbläsare</string>
<string name="signup_reason">Varför vill du gå med?</string>
<string name="signup_reason_note">Detta kommer hjälpa oss att granska din ansökan.</string>
@@ -297,6 +312,7 @@
<string name="server_filter_region_oceania">Oceanien</string>
<string name="not_accepting_new_members">Accepterar inte nya medlemmar</string>
<string name="category_special_interests">Specialintressen</string>
<string name="signup_passwords_dont_match">Lösenorden matchar inte</string>
<string name="pick_server_for_me">Välj för mig</string>
<string name="profile_add_row">Lägg till rad</string>
<string name="profile_setup">Konfiguration av profil</string>
@@ -321,21 +337,74 @@
<string name="show">Visa</string>
<string name="hide">Dölj</string>
<string name="join_default_server">Gå med %s</string>
<string name="pick_server">Välj en annan server</string>
<string name="signup_or_login">eller</string>
<string name="learn_more">Läs mer</string>
<string name="welcome_to_mastodon">Välkommen till Mastodon</string>
<string name="welcome_paragraph1">Mastodon är ett decentraliserat socialt nätverk, vilket innebär att inget enskilt företag kontrollerar det. Det består av många oberoende servrar, alla sammankopplade.</string>
<string name="what_are_servers">Vad är servrar?</string>
<string name="welcome_paragraph2"><![CDATA[Varje Mastodon-konto finns på en server — var och en med sina värderingar, regler och administratörer. Oavsett vilken du väljer kan du följa och interagera med människor på vilken server som helst.]]></string>
<string name="log_out_all_accounts">Logga ut från alla konton</string>
<string name="confirm_log_out_all_accounts">Logga ut från alla konton?</string>
<string name="retry">Försök igen</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_description_image">%s bild</string>
<string name="attachment_description_video">%s video</string>
<string name="attachment_description_audio">%s ljud</string>
<string name="attachment_description_unknown">%s fil</string>
<string name="attachment_type_audio">Ljud</string>
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">Fil</string>
<string name="help">Hjälp</string>
<string name="edit_post">Redigera inlägg</string>
<string name="language">Språk</string>
<string name="language_default">Standard</string>
<string name="report_title_post">Rapportera inlägg</string>
<!-- %s is the server domain -->
<!-- Shown on the "stamp" on the screen that appears after you report a post/user. Please keep the translation short, preferably a single word -->
<string name="mark_all_notifications_read">Markera alla som lästa</string>
<string name="settings_filters">Filter</string>
<string name="settings_server_explanation">Översikt, regler och moderatorer</string>
<!-- %s is the app name (Mastodon, key app_name). I made it a placeholder so everything Just Works™ with forks -->
<string name="about_app">Om %s</string>
<string name="settings_confirm_delete_post">Fråga innan du raderar inlägg</string>
<string name="notifications_policy_no_one">Ingen</string>
<plurals name="x_weeks">
<item quantity="one">%d vecka</item>
<item quantity="other">%d veckor</item>
</plurals>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="about_server">Om</string>
<string name="server_rules">Regler</string>
<string name="server_administrator">Administratör</string>
<plurals name="x_hours_ago">
<item quantity="one">%d timme sedan</item>
<item quantity="other">%d timmar sedan</item>
</plurals>
<!-- %s is the username -->
<string name="filter_active">Aktiv</string>
<string name="filter_inactive">Inaktiv</string>
<string name="settings_add_filter">Lägg till filter</string>
<string name="settings_edit_filter">Redigera filter</string>
<string name="settings_delete_filter">Radera filter</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="selection_2_options">%1$s och %2$s</string>
<string name="selection_3_options">%1$s, %2$s och %3$s</string>
<string name="filter_context_profiles">Profiler</string>
<string name="add">Lägg till</string>
<string name="filter_word_or_phrase">Ord eller fras</string>
<string name="enter_selection_mode">Välj</string>
<string name="select_all">Välj alla</string>
<string name="app_update_version">Version %s</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="clear_all">Rensa alla</string>
<string name="search_open_url">Öppna URL i Mastodon</string>
<string name="search_go_to_account">Gå till %s</string>
<!-- Shown in the post header. Please keep it short -->
<string name="time_seconds_ago_short">%ds sedan</string>
<string name="time_minutes_ago_short">%dm sedan</string>
<string name="time_hours_ago_short">%dt sedan</string>
<string name="time_days_ago_short">%dd sedan</string>
</resources>

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