Compare commits

...

213 Commits

Author SHA1 Message Date
Grishka
1124bc48c2 Update CI Ruby to 3.3.0 and add Gemfile.lock 2024-04-12 18:31:43 +03:00
Grishka
69b7484a4a Merge commit '4dd5a80ef27bd4abf1eaa272d1e3c67b7d9a3a13' 2024-04-12 17:59:55 +03:00
Grishka
19939e457b Prepare for release 2024-04-12 17:57:14 +03:00
Grishka
3e256d41d2 Fix alert text size 2024-04-11 22:36:55 +03:00
Grishka
72f546ed15 update string 2024-04-11 17:42:18 +03:00
Gregory K
0b48414715 Merge pull request #824 from FineFindus/fix/featured-hastag-crash
fix: include account when opening FeaturedHashtags
2024-04-10 17:25:56 +03:00
FineFindus
ca67c1eaca fix: include account when opening FeaturedHashtags
Closes https://github.com/mastodon/mastodon-android/issues/803.
2024-04-10 16:16:11 +02:00
Eugen Rochko
4dd5a80ef2 New translations strings.xml (Persian) 2024-04-09 12:29:17 +02:00
Eugen Rochko
c9f211807a New translations strings.xml (Lithuanian) 2024-04-09 05:53:52 +02:00
Eugen Rochko
440c15d9fa New translations full_description.txt (Lithuanian) 2024-04-07 22:44:40 +02:00
Eugen Rochko
86a443c39f New translations strings.xml (Lithuanian) 2024-04-07 22:44:39 +02:00
Eugen Rochko
a8d86db57f New translations strings.xml (Lithuanian) 2024-04-07 21:46:44 +02:00
Eugen Rochko
8359b48285 New translations strings.xml (Persian) 2024-04-04 13:08:30 -04:00
Grishka
36f4770cae Media layout: improve the case of two horizontal attachments 2024-04-02 05:09:55 +03:00
Eugen Rochko
932cf91800 New translations strings.xml (Vietnamese) 2024-03-29 22:27:06 -04:00
Eugen Rochko
5cf02e66b7 New translations strings.xml (Armenian) 2024-03-29 03:51:21 -04:00
Grishka
b7251972a8 Show the profile header view if we know the username 2024-03-28 23:00:03 +03:00
Eugen Rochko
006a423d5c New translations strings.xml (Greek) 2024-03-27 16:29:16 -04:00
Eugen Rochko
374b1edc81 New translations strings.xml (Basque) 2024-03-27 13:16:30 -04:00
Eugen Rochko
0894549687 New translations strings.xml (Basque) 2024-03-27 11:50:23 -04:00
Eugen Rochko
cc5963cc34 New translations strings.xml (Persian) 2024-03-26 14:19:20 +01:00
Eugen Rochko
fffe77501d New translations strings.xml (Greek) 2024-03-26 12:17:29 +01:00
Eugen Rochko
3443c2ae82 New translations strings.xml (Slovenian) 2024-03-25 13:25:24 +01:00
Eugen Rochko
01324af544 New translations strings.xml (Icelandic) 2024-03-25 11:23:46 +01:00
Eugen Rochko
d56b1fe89b New translations strings.xml (Icelandic) 2024-03-25 09:14:16 +01:00
Eugen Rochko
92457d54df New translations strings.xml (Icelandic) 2024-03-24 22:36:45 +01:00
Eugen Rochko
4d2e30ff85 New translations strings.xml (French) 2024-03-24 17:29:05 +01:00
Eugen Rochko
1d0c279956 New translations strings.xml (Greek) 2024-03-24 16:28:56 +01:00
Eugen Rochko
0202ca5b23 New translations strings.xml (Hungarian) 2024-03-23 21:34:53 +01:00
Eugen Rochko
5e8ebeadc3 New translations strings.xml (Thai) 2024-03-23 19:14:41 +01:00
Eugen Rochko
8bfb0c45a8 New translations strings.xml (Thai) 2024-03-23 18:05:28 +01:00
Eugen Rochko
2c1ecf32ad New translations strings.xml (Thai) 2024-03-23 17:07:59 +01:00
Eugen Rochko
9cc4bd722d New translations full_description.txt (Indonesian) 2024-03-23 08:38:04 +01:00
Eugen Rochko
d5f1e091b8 New translations strings.xml (Indonesian) 2024-03-23 08:38:03 +01:00
Eugen Rochko
439f3b44cb New translations strings.xml (Indonesian) 2024-03-23 07:33:06 +01:00
Eugen Rochko
e07bd39e95 New translations strings.xml (Chinese Simplified) 2024-03-23 05:48:47 +01:00
Eugen Rochko
11fe2ba2a4 New translations strings.xml (Hungarian) 2024-03-22 20:50:32 +01:00
Eugen Rochko
2b0e507f45 New translations strings.xml (Dutch) 2024-03-22 18:48:03 +01:00
Eugen Rochko
84bad0aa6c New translations strings.xml (Dutch) 2024-03-22 17:50:30 +01:00
Eugen Rochko
b41cda84e4 New translations strings.xml (Hungarian) 2024-03-22 14:19:35 +01:00
Eugen Rochko
0ae6fb2833 New translations strings.xml (Hungarian) 2024-03-22 11:26:06 +01:00
Eugen Rochko
21b6a1f4ef New translations strings.xml (Hungarian) 2024-03-22 09:52:08 +01:00
Eugen Rochko
69f9da4be4 New translations strings.xml (Indonesian) 2024-03-22 03:15:21 +01:00
Eugen Rochko
032db0921d New translations strings.xml (Italian) 2024-03-22 02:20:19 +01:00
Eugen Rochko
eef4601ce2 New translations strings.xml (Chinese Traditional) 2024-03-22 01:20:13 +01:00
Eugen Rochko
71701048f5 New translations strings.xml (Italian) 2024-03-22 01:20:12 +01:00
Eugen Rochko
2361bb7682 New translations strings.xml (Chinese Traditional) 2024-03-21 22:55:40 +01:00
Eugen Rochko
0b1b8c5c5a New translations strings.xml (Slovenian) 2024-03-21 22:55:36 +01:00
Eugen Rochko
fb885b0e00 New translations strings.xml (Hungarian) 2024-03-21 22:55:18 +01:00
Grishka
a2dec4f7cf Notification requests tweaks 2024-03-22 00:49:42 +03:00
Eugen Rochko
521797d070 New translations strings.xml (Hungarian) 2024-03-21 20:51:30 +01:00
Eugen Rochko
d2922dc226 New translations strings.xml (Hungarian) 2024-03-21 19:20:59 +01:00
Eugen Rochko
ecc2b675d5 New translations strings.xml (Persian) 2024-03-21 14:09:21 +01:00
Eugen Rochko
5a49b650b0 New translations strings.xml (Chinese Traditional) 2024-03-21 02:31:23 +01:00
Eugen Rochko
5fd57caabf New translations strings.xml (Slovenian) 2024-03-21 00:57:01 +01:00
Eugen Rochko
bad6afc543 New translations strings.xml (Slovenian) 2024-03-20 23:53:49 +01:00
Eugen Rochko
ffaa036115 New translations strings.xml (Urdu (India)) 2024-03-20 21:23:27 +01:00
Eugen Rochko
65133e969e New translations strings.xml (Kabyle) 2024-03-20 21:23:26 +01:00
Eugen Rochko
267ee4e03e New translations strings.xml (Igbo) 2024-03-20 21:23:25 +01:00
Eugen Rochko
db972ae421 New translations strings.xml (Occitan) 2024-03-20 21:23:24 +01:00
Eugen Rochko
ea93dd5b2d New translations strings.xml (Scottish Gaelic) 2024-03-20 21:23:23 +01:00
Eugen Rochko
c4d738844e New translations strings.xml (Sinhala) 2024-03-20 21:23:22 +01:00
Eugen Rochko
f124d2cabc New translations strings.xml (Bosnian) 2024-03-20 21:23:21 +01:00
Eugen Rochko
022038878b New translations strings.xml (Filipino) 2024-03-20 21:23:20 +01:00
Eugen Rochko
c6a846c602 New translations strings.xml (Burmese) 2024-03-20 21:23:18 +01:00
Eugen Rochko
31986a1ce5 New translations strings.xml (Croatian) 2024-03-20 21:23:17 +01:00
Eugen Rochko
04eea3b6e4 New translations strings.xml (Thai) 2024-03-20 21:23:16 +01:00
Eugen Rochko
09a5482df5 New translations strings.xml (Bengali) 2024-03-20 21:23:15 +01:00
Eugen Rochko
ba8e5a03ea New translations strings.xml (Indonesian) 2024-03-20 21:23:14 +01:00
Eugen Rochko
ddb3c34078 New translations strings.xml (Portuguese, Brazilian) 2024-03-20 21:23:13 +01:00
Eugen Rochko
8d4daa5d00 New translations strings.xml (Icelandic) 2024-03-20 21:23:12 +01:00
Eugen Rochko
65e1787987 New translations strings.xml (Galician) 2024-03-20 21:23:11 +01:00
Eugen Rochko
202f41b34b New translations strings.xml (Vietnamese) 2024-03-20 21:23:09 +01:00
Eugen Rochko
10497f358e New translations strings.xml (Chinese Traditional) 2024-03-20 21:23:08 +01:00
Eugen Rochko
ffe0dafbdc New translations strings.xml (Chinese Simplified) 2024-03-20 21:23:06 +01:00
Eugen Rochko
5828be28e8 New translations strings.xml (Ukrainian) 2024-03-20 21:23:05 +01:00
Eugen Rochko
b4e0605016 New translations strings.xml (Turkish) 2024-03-20 21:23:04 +01:00
Eugen Rochko
da7686b9b3 New translations strings.xml (Swedish) 2024-03-20 21:23:03 +01:00
Eugen Rochko
651d5ae56a New translations strings.xml (Slovenian) 2024-03-20 21:23:02 +01:00
Eugen Rochko
570d8ce7eb New translations strings.xml (Portuguese) 2024-03-20 21:23:01 +01:00
Eugen Rochko
a9491e22e4 New translations strings.xml (Norwegian) 2024-03-20 21:23:00 +01:00
Eugen Rochko
1ba31afa23 New translations strings.xml (Lithuanian) 2024-03-20 21:22:58 +01:00
Eugen Rochko
8f30d0d468 New translations strings.xml (Korean) 2024-03-20 21:22:57 +01:00
Eugen Rochko
4a8cea262b New translations strings.xml (Georgian) 2024-03-20 21:22:56 +01:00
Eugen Rochko
e25574ce9a New translations strings.xml (Japanese) 2024-03-20 21:22:55 +01:00
Eugen Rochko
9773c1cb98 New translations strings.xml (Italian) 2024-03-20 21:22:54 +01:00
Eugen Rochko
6d3eafe9e8 New translations strings.xml (Armenian) 2024-03-20 21:22:53 +01:00
Eugen Rochko
19acab9d18 New translations strings.xml (Hebrew) 2024-03-20 21:22:52 +01:00
Eugen Rochko
bfcda1d73c New translations strings.xml (Irish) 2024-03-20 21:22:51 +01:00
Eugen Rochko
600fc7939e New translations strings.xml (Finnish) 2024-03-20 21:22:50 +01:00
Eugen Rochko
1189aaae4f New translations strings.xml (Basque) 2024-03-20 21:22:49 +01:00
Eugen Rochko
e9c8e8d764 New translations strings.xml (German) 2024-03-20 21:22:48 +01:00
Eugen Rochko
3e90620fcc New translations strings.xml (Danish) 2024-03-20 21:22:47 +01:00
Eugen Rochko
62a364a110 New translations strings.xml (Czech) 2024-03-20 21:22:47 +01:00
Eugen Rochko
fbbbe99bf4 New translations strings.xml (Arabic) 2024-03-20 21:22:45 +01:00
Eugen Rochko
d078ccc78c New translations strings.xml (Spanish) 2024-03-20 21:22:44 +01:00
Eugen Rochko
cbacb6568e New translations strings.xml (French) 2024-03-20 21:22:43 +01:00
Eugen Rochko
65f220b570 New translations strings.xml (Romanian) 2024-03-20 21:22:42 +01:00
Eugen Rochko
22d83d831d New translations strings.xml (Dutch) 2024-03-20 21:22:41 +01:00
Eugen Rochko
ac564a67ca New translations strings.xml (Persian) 2024-03-20 21:22:40 +01:00
Eugen Rochko
d27a8dc29c New translations strings.xml (Catalan) 2024-03-20 21:22:39 +01:00
Eugen Rochko
568dfe911e New translations strings.xml (Belarusian) 2024-03-20 21:22:38 +01:00
Eugen Rochko
64a647ca84 New translations strings.xml (Hindi) 2024-03-20 21:22:37 +01:00
Eugen Rochko
6b3c3ac9b0 New translations strings.xml (Greek) 2024-03-20 21:22:36 +01:00
Eugen Rochko
6438df92c6 New translations strings.xml (Russian) 2024-03-20 21:22:35 +01:00
Eugen Rochko
5f98fdfafc New translations strings.xml (Polish) 2024-03-20 21:22:34 +01:00
Eugen Rochko
4a1c8aadf8 New translations strings.xml (Hungarian) 2024-03-20 21:22:33 +01:00
Grishka
441567f9d2 Notification requests (AND-154) 2024-03-20 23:18:04 +03:00
Eugen Rochko
381fd434ad New translations strings.xml (Japanese) 2024-03-20 18:45:42 +01:00
Eugen Rochko
89f713899b New translations strings.xml (Japanese) 2024-03-20 17:16:49 +01:00
Eugen Rochko
a82c61791e New translations strings.xml (Thai) 2024-03-19 19:16:37 +01:00
Eugen Rochko
734c1ddab6 New translations strings.xml (Dutch) 2024-03-19 19:16:35 +01:00
Eugen Rochko
1d0b31e9de New translations strings.xml (Chinese Traditional) 2024-03-19 17:56:57 +01:00
Eugen Rochko
1441036475 New translations strings.xml (French) 2024-03-19 13:19:22 +01:00
Eugen Rochko
7a84352723 New translations strings.xml (Hungarian) 2024-03-19 13:19:21 +01:00
Eugen Rochko
6f153f3879 New translations strings.xml (Icelandic) 2024-03-19 11:06:29 +01:00
Grishka
f888091e22 Add unlisted visibility option as "quiet public"
closes #189, closes #103, closes #37
2024-03-18 20:34:23 +03:00
Grishka
e59cf2afca Make alt text selectable 2024-03-18 20:25:28 +03:00
Eugen Rochko
7516b8e662 New translations strings.xml (Persian) 2024-03-18 11:01:25 +01:00
Eugen Rochko
bb4a480250 New translations strings.xml (Persian) 2024-03-17 18:19:22 +01:00
Eugen Rochko
c6df18c456 New translations strings.xml (Persian) 2024-03-17 17:09:46 +01:00
Eugen Rochko
cb945998d3 New translations strings.xml (Persian) 2024-03-17 16:13:47 +01:00
Grishka
5622c93bd9 Fix fragment stack breaking after opening a notification 2024-03-17 04:24:12 +03:00
Eugen Rochko
7552227da0 New translations strings.xml (Dutch) 2024-03-16 19:18:36 +01:00
Eugen Rochko
1904fce32d New translations strings.xml (Greek) 2024-03-16 19:18:35 +01:00
Eugen Rochko
f1e5e572f4 New translations strings.xml (Kabyle) 2024-03-16 13:44:30 +01:00
Eugen Rochko
d8f83170be New translations strings.xml (Dutch) 2024-03-16 13:44:30 +01:00
Eugen Rochko
95c135b270 New translations strings.xml (Dutch) 2024-03-16 12:48:38 +01:00
Eugen Rochko
8408daf070 New translations strings.xml (Dutch) 2024-03-16 00:08:45 +01:00
Eugen Rochko
bd8eb6a034 New translations strings.xml (Slovenian) 2024-03-15 23:03:06 +01:00
Eugen Rochko
9c4d0ef85e New translations strings.xml (Dutch) 2024-03-15 23:03:05 +01:00
Eugen Rochko
1ee441314f New translations strings.xml (Slovenian) 2024-03-15 22:04:35 +01:00
Eugen Rochko
d5d1e51bbc New translations strings.xml (Dutch) 2024-03-15 19:48:48 +01:00
Eugen Rochko
84aa99ba88 New translations strings.xml (Dutch) 2024-03-15 18:23:19 +01:00
Eugen Rochko
23e02d2c24 New translations strings.xml (Dutch) 2024-03-15 17:10:51 +01:00
Eugen Rochko
3ea66c6c4c New translations strings.xml (Belarusian) 2024-03-15 11:12:27 +01:00
Eugen Rochko
50cf737db6 New translations strings.xml (Vietnamese) 2024-03-13 16:46:20 +01:00
Grishka
bf55b5a802 Swap poll options around 2024-03-13 17:13:25 +03:00
Grishka
49bf04c6c6 Tweak line height for posts
#791
2024-03-13 17:05:57 +03:00
Eugen Rochko
f5d64f3882 New translations strings.xml (Slovenian) 2024-03-12 12:31:29 +01:00
Eugen Rochko
48d7de53c0 New translations strings.xml (Georgian) 2024-03-12 10:00:34 +01:00
Eugen Rochko
d53bace4ce New translations strings.xml (Thai) 2024-03-11 20:09:04 +01:00
Eugen Rochko
02c800496c New translations strings.xml (Icelandic) 2024-03-11 18:48:27 +01:00
Eugen Rochko
0ce39946cb New translations strings.xml (Chinese Traditional) 2024-03-11 18:48:26 +01:00
Eugen Rochko
52b573d20f New translations strings.xml (Russian) 2024-03-11 16:19:01 +01:00
Grishka
5be6faa07c New posts button tweaks 2024-03-11 18:09:29 +03:00
Eugen Rochko
ee05e818d9 New translations strings.xml (Italian) 2024-03-11 13:45:02 +01:00
Eugen Rochko
29d5e4fa13 New translations strings.xml (Urdu (India)) 2024-03-11 12:06:58 +01:00
Eugen Rochko
9bd830b368 New translations strings.xml (Kabyle) 2024-03-11 12:06:56 +01:00
Eugen Rochko
7d70f816d1 New translations strings.xml (Igbo) 2024-03-11 12:06:55 +01:00
Eugen Rochko
0d0cf04b57 New translations strings.xml (Occitan) 2024-03-11 12:06:54 +01:00
Eugen Rochko
4a6e514b81 New translations strings.xml (Scottish Gaelic) 2024-03-11 12:06:53 +01:00
Eugen Rochko
b74f9092e7 New translations strings.xml (Sinhala) 2024-03-11 12:06:52 +01:00
Eugen Rochko
a061347d76 New translations strings.xml (Bosnian) 2024-03-11 12:06:50 +01:00
Eugen Rochko
71586b1100 New translations strings.xml (Filipino) 2024-03-11 12:06:49 +01:00
Eugen Rochko
809aa6afd2 New translations strings.xml (Burmese) 2024-03-11 12:06:48 +01:00
Eugen Rochko
0067a036ae New translations strings.xml (Croatian) 2024-03-11 12:06:47 +01:00
Eugen Rochko
794d3329fe New translations strings.xml (Thai) 2024-03-11 12:06:46 +01:00
Eugen Rochko
f96ed6c56f New translations strings.xml (Bengali) 2024-03-11 12:06:45 +01:00
Eugen Rochko
92d44eebe6 New translations strings.xml (Indonesian) 2024-03-11 12:06:44 +01:00
Eugen Rochko
93fe734636 New translations strings.xml (Portuguese, Brazilian) 2024-03-11 12:06:43 +01:00
Eugen Rochko
71a5c132f4 New translations strings.xml (Icelandic) 2024-03-11 12:06:42 +01:00
Eugen Rochko
15a514aca5 New translations strings.xml (Galician) 2024-03-11 12:06:41 +01:00
Eugen Rochko
71f74ced7d New translations strings.xml (Vietnamese) 2024-03-11 12:06:40 +01:00
Eugen Rochko
5c86c911c1 New translations strings.xml (Chinese Traditional) 2024-03-11 12:06:38 +01:00
Eugen Rochko
7aebc44062 New translations strings.xml (Chinese Simplified) 2024-03-11 12:06:37 +01:00
Eugen Rochko
6f6e1f1009 New translations strings.xml (Ukrainian) 2024-03-11 12:06:36 +01:00
Eugen Rochko
2e7f17b823 New translations strings.xml (Turkish) 2024-03-11 12:06:35 +01:00
Eugen Rochko
5194dae9a6 New translations strings.xml (Swedish) 2024-03-11 12:06:34 +01:00
Eugen Rochko
2db03669ce New translations strings.xml (Slovenian) 2024-03-11 12:06:33 +01:00
Eugen Rochko
a6c4f83973 New translations strings.xml (Portuguese) 2024-03-11 12:06:32 +01:00
Eugen Rochko
f625cea183 New translations strings.xml (Norwegian) 2024-03-11 12:06:31 +01:00
Eugen Rochko
d6ee9db6ff New translations strings.xml (Lithuanian) 2024-03-11 12:06:30 +01:00
Eugen Rochko
9ea94ce177 New translations strings.xml (Korean) 2024-03-11 12:06:29 +01:00
Eugen Rochko
8102163c5b New translations strings.xml (Georgian) 2024-03-11 12:06:27 +01:00
Eugen Rochko
1034c16bfb New translations strings.xml (Japanese) 2024-03-11 12:06:26 +01:00
Eugen Rochko
956f9547e7 New translations strings.xml (Italian) 2024-03-11 12:06:25 +01:00
Eugen Rochko
95fb241da1 New translations strings.xml (Armenian) 2024-03-11 12:06:24 +01:00
Eugen Rochko
7b06af4c8b New translations strings.xml (Hebrew) 2024-03-11 12:06:23 +01:00
Eugen Rochko
1ca0ff53c8 New translations strings.xml (Irish) 2024-03-11 12:06:22 +01:00
Eugen Rochko
1e0bdf44c2 New translations strings.xml (Finnish) 2024-03-11 12:06:21 +01:00
Eugen Rochko
c611d6386a New translations strings.xml (Basque) 2024-03-11 12:06:20 +01:00
Eugen Rochko
b326dc3bc2 New translations strings.xml (German) 2024-03-11 12:06:18 +01:00
Eugen Rochko
7f6e21450a New translations strings.xml (Danish) 2024-03-11 12:06:17 +01:00
Eugen Rochko
ee911a15c6 New translations strings.xml (Czech) 2024-03-11 12:06:16 +01:00
Eugen Rochko
aa0e05f085 New translations strings.xml (Arabic) 2024-03-11 12:06:15 +01:00
Eugen Rochko
f1fe078cf2 New translations strings.xml (Spanish) 2024-03-11 12:06:14 +01:00
Eugen Rochko
e53dcf27ec New translations strings.xml (French) 2024-03-11 12:06:13 +01:00
Eugen Rochko
6e9ce8d5a5 New translations strings.xml (Romanian) 2024-03-11 12:06:12 +01:00
Eugen Rochko
686d88557b New translations strings.xml (Dutch) 2024-03-11 12:06:11 +01:00
Eugen Rochko
b07f14d01b New translations strings.xml (Persian) 2024-03-11 12:06:09 +01:00
Eugen Rochko
c200a72031 New translations strings.xml (Catalan) 2024-03-11 12:06:08 +01:00
Eugen Rochko
2a8ff3e50a New translations strings.xml (Belarusian) 2024-03-11 12:06:07 +01:00
Eugen Rochko
06cde138c1 New translations strings.xml (Hindi) 2024-03-11 12:06:06 +01:00
Eugen Rochko
9fae62f289 New translations strings.xml (Greek) 2024-03-11 12:06:04 +01:00
Eugen Rochko
a1333929e9 New translations strings.xml (Russian) 2024-03-11 12:06:03 +01:00
Eugen Rochko
6a05fafe04 New translations strings.xml (Polish) 2024-03-11 12:06:02 +01:00
Eugen Rochko
13c6fc60f8 New translations strings.xml (Hungarian) 2024-03-11 12:06:01 +01:00
Grishka
ff7948ad83 Add conversation muting 2024-03-11 13:31:32 +03:00
Grishka
3972ab207c New post notifications (AND-151) 2024-03-11 13:18:45 +03:00
Gregory K
33a8f1dab4 Merge pull request #795 from Arthur-GYT/per-app-language
Enable auto generated per-app language file
2024-03-11 12:06:02 +03:00
Eugen Rochko
27f261ae4a New translations strings.xml (Armenian) 2024-03-10 20:52:20 +01:00
Eugen Rochko
ef59331dd3 New translations strings.xml (Armenian) 2024-03-10 19:14:55 +01:00
Eugen Rochko
b019731249 New translations strings.xml (French) 2024-03-10 10:28:55 +01:00
Arthur-GYT
47aa7fc191 Enable auto generated per-app language file 2024-03-09 19:07:04 +01:00
Eugen Rochko
9356b26dfd New translations strings.xml (Scottish Gaelic) 2024-03-09 11:27:32 +01:00
Eugen Rochko
41b626ddbd New translations strings.xml (Polish) 2024-03-08 18:16:47 +01:00
Eugen Rochko
f76b41581b New translations strings.xml (Polish) 2024-03-08 17:10:58 +01:00
Eugen Rochko
14f08b7759 New translations strings.xml (French) 2024-03-08 15:45:22 +01:00
Eugen Rochko
8c1cec09d6 New translations strings.xml (Russian) 2024-03-08 13:20:37 +01:00
Eugen Rochko
15c10cb14c New translations strings.xml (Armenian) 2024-03-07 22:56:57 +01:00
Eugen Rochko
3b2f68a400 New translations strings.xml (Armenian) 2024-03-07 21:17:50 +01:00
Eugen Rochko
2a9e4e0b82 New translations strings.xml (Turkish) 2024-03-07 17:30:18 +01:00
120 changed files with 2966 additions and 467 deletions

View File

@@ -21,7 +21,7 @@ jobs:
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.2
ruby-version: 3.3.0
bundler-cache: true
- name: Set up Android SDK

218
Gemfile.lock Normal file
View File

@@ -0,0 +1,218 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.7)
base64
nkf
rexml
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.913.0)
aws-sdk-core (3.191.6)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.78.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.146.1)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.8)
aws-sigv4 (1.8.0)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
claide (1.1.0)
colored (1.2)
colored2 (3.1.2)
commander (4.6.0)
highline (~> 2.0.0)
declarative (0.0.20)
digest-crc (0.6.5)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.6.20240107)
dotenv (2.8.1)
emoji_regex (3.2.3)
excon (0.110.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0)
faraday-multipart (~> 1.0)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.0)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
faraday-retry (~> 1.0)
ruby2_keywords (>= 0.0.4)
faraday-cookie_jar (0.0.7)
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.3.1)
fastlane (2.220.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
aws-sdk-s3 (~> 1.0)
babosa (>= 1.0.3, < 2.0.0)
bundler (>= 1.12.0, < 3.0.0)
colored (~> 1.2)
commander (~> 4.6)
dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 4.0)
excon (>= 0.71.0, < 1.0.0)
faraday (~> 1.0)
faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 1.0)
fastimage (>= 2.1.0, < 3.0.0)
gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.3)
google-apis-playcustomapp_v1 (~> 0.1)
google-cloud-env (>= 1.6.0, < 2.0.0)
google-cloud-storage (~> 1.31)
highline (~> 2.0)
http-cookie (~> 1.0.5)
json (< 3.0.0)
jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (>= 2.0.0, < 3.0.0)
naturally (~> 2.2)
optparse (>= 0.1.1, < 1.0.0)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.5)
simctl (~> 1.6.3)
terminal-notifier (>= 2.0.0, < 3.0.0)
terminal-table (~> 3)
tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.54.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.3)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
mini_mime (~> 1.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
rexml
google-apis-iamcredentials_v1 (0.17.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-playcustomapp_v1 (0.13.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.31.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.7.0)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.4.0)
google-cloud-storage (1.47.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.31.0)
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
highline (2.0.3)
http-cookie (1.0.5)
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.6.2)
json (2.7.2)
jwt (2.8.1)
base64
mini_magick (4.12.0)
mini_mime (1.1.5)
multi_json (1.15.0)
multipart-post (2.4.0)
nanaimo (0.3.0)
naturally (2.2.1)
nkf (0.2.0)
optparse (0.4.0)
os (1.1.4)
plist (3.7.1)
public_suffix (5.0.5)
rake (13.2.1)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.2.6)
rouge (2.0.7)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
security (0.1.5)
signet (0.19.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.10)
CFPropertyList
naturally
terminal-notifier (2.0.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
trailblazer-option (0.1.2)
tty-cursor (0.7.1)
tty-screen (0.8.2)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
uber (0.1.0)
unicode-display_width (2.5.0)
word_wrap (1.0.0)
xcodeproj (1.24.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
rexml (~> 3.2.4)
xcpretty (0.3.0)
rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)
PLATFORMS
arm64-darwin-22
ruby
DEPENDENCIES
fastlane
BUNDLED WITH
2.5.4

View File

@@ -0,0 +1,8 @@
- Adjust filters in the Notifications tab to silence unwanted alerts*
- Opt into push notifications when a user posts by tapping the bell 🔔 in the top corner of a user's profile.
- Mute overly active conversation notifications via the More button ⋮ on your posts
- When writing a post, choose Quiet public 🌙 visibility to avoid appearing in feeds or searches
- Improved post legibility with adjusted line height
- Bug fixes
*Your server must support filtered notifications to see this option.

View File

@@ -1,6 +1,6 @@
Mastodon dalah jaringan sosial terdesentralisasi terbesar di internet. Bukan hanya satu situs web, ini adalah jaringan dari jutaan pengguna dalam komunitas tersendiri yang dapat saling interaksi antar sesama, tanpa batasan. Apapun yang kamu minati, kamu dapat bertemu orang-orang baru yang mengirimkan apa yang mereka minati di Mastodon!
Bergabunglah dalam sebuah komunitas dan buat profil kalian. Temukan dan ikuti orang-orang yang menarik dan baca postingan mereka dalam linimasa yang kronologis serta bebas iklan. Ekspresikan diri Anda dengan emoji kustom, gambar, GIF, video, dan audio dalam kiriman dengan batasan 500 karakter. Balas ke utasan dan bagikan kiriman dari siapa pun ke pengikut Anda untuk membagikan hal-hal yang keren. Temukan akun baru untuk diikuti dan tagar yang sedang tren untuk memperluas jejaring Anda.
Bergabunglah dalam sebuah komunitas dan buat profil kalian. Temukan dan ikuti orang-orang yang menarik dan baca postingan mereka dalam lini masa yang kronologis serta bebas iklan. Ekspresikan diri Anda dengan emoji kustom, gambar, GIF, video, dan audio dalam kiriman dengan batasan 500 karakter. Balas ke utasan dan bagikan kiriman dari siapa pun ke pengikut Anda untuk membagikan hal-hal yang keren. Temukan akun baru untuk diikuti dan tagar yang sedang tren untuk memperluas jejaring Anda.
Mastodon dibuat dengan fokus pada privasi dan keamanan. Tentukan apakah kiriman Anda dibagikan kepada pengikut, hanya orang yang disebut, atau seluruh dunia. Peringatan konten memungkinkan Anda untuk menyembunyikan kiriman yang berisi material sensitif atau memicu sampai Anda siap untuk terlibat dengan mereka. Setiap komunitas memiliki pedoman dan moderator sendiri-sendiri untuk menjaga anggotanya aman, dan alat pemblokiran dan pelaporan yang kokoh membantu mencegah pelecehan.

View File

@@ -6,11 +6,11 @@ Mastodon sukurtas daugiausia dėmesio skiriant privatumui ir saugumui. Nuspręsk
Daugiau funkcijų:
• Tamsusis režimas: skaityk įrašus šviesiu, tamsiu arba tikru juodu režimu
• Apklausos: paklausk sekėjų nuomonės ir suskaičiuok balsus
• Naršyti: tendencingos saitažodžiai ir paskyros vos nuo vieno prisilietimo
• Pranešimai: gauk pranešimus apie naujus sekėjus, atsakymus ir tinklaraščių perrašymus
• Bendrinimas: skelbk tiesiogiai į Mastodon iš bet kurio bendrinimo lapo bet kurioje programėlėje
• Mielumas: mūsų talismanas yra žavus drambliukas, kurį retkarčiais pamatysi
• Tamsusis režimas: skaityk įrašus šviesiu, tamsiu arba tikru juodu režimu.
• Apklausos: paklausk sekėjų nuomonės ir suskaičiuok balsus.
• Naršyti: tendencingos saitažodžiai ir paskyros vos nuo vieno prisilietimo.
• Pranešimai: gauk pranešimus apie naujus sekėjus, atsakymus ir perrašymus.
• Bendrinti: skelbk tiesiogiai į Mastodon iš bet kurio bendrinimo lapo bet kurioje programėlėje.
• Mielumas: mūsų talismanas žavus drambliukas, kurį retkarčiais pamatysi.
Mastodon yra registruota ne pelno siekianti organizacija, kurios plėtra yra tiesiogiai paremta aukomis. Nėra jokios reklamos, jokių monetizacijos ir rizikos kapitalo, ir mes planuojame, kad taip ir liks.
Mastodon registruota ne pelno siekianti organizacija, kurios plėtra yra tiesiogiai paremta aukomis. Nėra jokios reklamos, jokių monetizacijos ir rizikos kapitalo, ir mes planuojame, kad taip ir liks.

View File

@@ -4,15 +4,18 @@ plugins {
}
android {
androidResources {
generateLocaleConfig = true
}
compileSdk 33
defaultConfig {
applicationId "org.joinmastodon.android"
minSdk 23
targetSdk 33
versionCode 89
versionName "2.4.1"
versionCode 93
versionName "2.5.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
resConfigs "ar-rSA", "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", "ka-rGE", "kab", "ko-rKR", "lt-rLT", "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"
}
buildTypes {
@@ -87,7 +90,7 @@ dependencies {
implementation 'me.grishka.litex:viewpager:1.0.0'
implementation 'me.grishka.litex:viewpager2:1.0.0'
implementation 'me.grishka.litex:palette:1.0.0'
implementation 'me.grishka.appkit:appkit:1.2.16'
implementation 'me.grishka.appkit:appkit:1.2.17'
implementation 'com.google.code.gson:gson:2.8.9'
implementation 'org.jsoup:jsoup:1.14.3'
implementation 'com.squareup:otto:1.3.8'

View File

@@ -31,7 +31,6 @@
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"
android:localeConfig="@xml/locales_config"
android:icon="@mipmap/ic_launcher"
android:theme="@style/Theme.Mastodon.AutoLightDark"
android:largeHeap="true">

View File

@@ -152,6 +152,11 @@ public class MainActivity extends FragmentStackActivity{
}
fragment.setArguments(args);
showFragment(fragment);
Intent intent=getIntent();
intent.removeExtra("fromNotification");
intent.removeExtra("notification");
intent.removeExtra("accountID");
setIntent(intent);
}
private void showCompose(){

View File

@@ -4,10 +4,10 @@ import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.Relationship;
public class SetAccountFollowed extends MastodonAPIRequest<Relationship>{
public SetAccountFollowed(String id, boolean followed, boolean showReblogs){
public SetAccountFollowed(String id, boolean followed, boolean showReblogs, boolean notify){
super(HttpMethod.POST, "/accounts/"+id+"/"+(followed ? "follow" : "unfollow"), Relationship.class);
if(followed)
setRequestBody(new Request(showReblogs, null));
setRequestBody(new Request(showReblogs, notify));
else
setRequestBody(new Object());
}

View File

@@ -0,0 +1,14 @@
package org.joinmastodon.android.api.requests.notifications;
import com.google.gson.reflect.TypeToken;
import org.joinmastodon.android.api.requests.HeaderPaginationRequest;
import org.joinmastodon.android.model.NotificationRequest;
public class GetNotificationRequests extends HeaderPaginationRequest<NotificationRequest>{
public GetNotificationRequests(String maxID){
super(HttpMethod.GET, "/notifications/requests", new TypeToken<>(){});
if(maxID!=null)
addQueryParameter("max_id", maxID);
}
}

View File

@@ -1,6 +1,7 @@
package org.joinmastodon.android.api.requests.notifications;
import com.google.gson.annotations.SerializedName;
import android.text.TextUtils;
import com.google.gson.reflect.TypeToken;
import org.joinmastodon.android.api.ApiUtils;
@@ -12,6 +13,10 @@ import java.util.List;
public class GetNotifications extends MastodonAPIRequest<List<Notification>>{
public GetNotifications(String maxID, int limit, EnumSet<Notification.Type> includeTypes){
this(maxID, limit, includeTypes, null);
}
public GetNotifications(String maxID, int limit, EnumSet<Notification.Type> includeTypes, String onlyAccountID){
super(HttpMethod.GET, "/notifications", new TypeToken<>(){});
if(maxID!=null)
addQueryParameter("max_id", maxID);
@@ -25,6 +30,8 @@ public class GetNotifications extends MastodonAPIRequest<List<Notification>>{
addQueryParameter("exclude_types[]", type);
}
}
if(!TextUtils.isEmpty(onlyAccountID))
addQueryParameter("account_id", onlyAccountID);
removeUnsupportedItems=true;
}
}

View File

@@ -0,0 +1,10 @@
package org.joinmastodon.android.api.requests.notifications;
import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.NotificationsPolicy;
public class GetNotificationsPolicy extends MastodonAPIRequest<NotificationsPolicy>{
public GetNotificationsPolicy(){
super(HttpMethod.GET, "/notifications/policy", NotificationsPolicy.class);
}
}

View File

@@ -0,0 +1,10 @@
package org.joinmastodon.android.api.requests.notifications;
import org.joinmastodon.android.api.ResultlessMastodonAPIRequest;
public class RespondToNotificationRequest extends ResultlessMastodonAPIRequest{
public RespondToNotificationRequest(String id, boolean allow){
super(HttpMethod.POST, "/notifications/requests/"+id+(allow ? "/accept" : "/dismiss"));
setRequestBody(new Object());
}
}

View File

@@ -0,0 +1,11 @@
package org.joinmastodon.android.api.requests.notifications;
import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.NotificationsPolicy;
public class SetNotificationsPolicy extends MastodonAPIRequest<NotificationsPolicy>{
public SetNotificationsPolicy(NotificationsPolicy policy){
super(HttpMethod.PUT, "/notifications/policy", NotificationsPolicy.class);
setRequestBody(policy);
}
}

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 SetStatusConversationMuted extends MastodonAPIRequest<Status>{
public SetStatusConversationMuted(String id, boolean muted){
super(HttpMethod.POST, "/statuses/"+id+(muted ? "/mute" : "/unmute"), Status.class);
setRequestBody(new Object());
}
}

View File

@@ -0,0 +1,10 @@
package org.joinmastodon.android.events;
public class NotificationRequestRespondedEvent{
public final String accountID, requestID;
public NotificationRequestRespondedEvent(String accountID, String requestID){
this.accountID=accountID;
this.requestID=requestID;
}
}

View File

@@ -0,0 +1,181 @@
package org.joinmastodon.android.fragments;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import org.joinmastodon.android.E;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.requests.notifications.GetNotifications;
import org.joinmastodon.android.api.requests.notifications.RespondToNotificationRequest;
import org.joinmastodon.android.events.NotificationRequestRespondedEvent;
import org.joinmastodon.android.model.Account;
import org.joinmastodon.android.model.Notification;
import org.joinmastodon.android.ui.Snackbar;
import org.joinmastodon.android.ui.displayitems.StatusDisplayItem;
import org.joinmastodon.android.ui.utils.UiUtils;
import org.parceler.Parcels;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import me.grishka.appkit.api.Callback;
import me.grishka.appkit.api.ErrorResponse;
import me.grishka.appkit.api.SimpleCallback;
import me.grishka.appkit.utils.MergeRecyclerAdapter;
import me.grishka.appkit.utils.SingleViewRecyclerAdapter;
public class AccountNotificationsListFragment extends BaseNotificationsListFragment{
private Account account;
private String requestID;
private TextView expandedTitle;
private boolean choiceMade, allowed;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
account=Parcels.unwrap(getArguments().getParcelable("targetAccount"));
requestID=getArguments().getString("requestID");
setTitleMarqueeEnabled(false);
loadData();
setTitle(getString(R.string.notifications_from_user, account.displayName));
setHasOptionsMenu(true);
}
@Override
protected void doLoadData(int offset, int count){
if(!refreshing && endMark!=null)
endMark.setVisibility(View.GONE);
currentRequest=new GetNotifications(offset==0 ? null : maxID, count, EnumSet.allOf(Notification.Type.class), account.id)
.setCallback(new SimpleCallback<>(this){
@Override
public void onSuccess(List<Notification> result){
onDataLoaded(result, !result.isEmpty());
maxID=result.isEmpty() ? null : result.get(result.size()-1).id;
endMark.setVisibility(result.isEmpty() ? View.VISIBLE : View.GONE);
}
})
.exec(accountID);
}
@Override
protected boolean needDividerForExtraItem(View child, View bottomSibling, RecyclerView.ViewHolder holder, RecyclerView.ViewHolder siblingHolder){
return super.needDividerForExtraItem(child, bottomSibling, holder, siblingHolder) || (siblingHolder!=null && siblingHolder.getAbsoluteAdapterPosition()>=list.getAdapter().getItemCount());
}
@Override
protected RecyclerView.Adapter getAdapter(){
MergeRecyclerAdapter mergeAdapter=new MergeRecyclerAdapter();
expandedTitle=(TextView) LayoutInflater.from(getActivity()).inflate(R.layout.expanded_title_medium, list, false);
expandedTitle.setText(getTitle());
mergeAdapter.addAdapter(new SingleViewRecyclerAdapter(expandedTitle));
mergeAdapter.addAdapter(super.getAdapter());
return mergeAdapter;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState){
super.onViewCreated(view, savedInstanceState);
list.addOnScrollListener(new RecyclerView.OnScrollListener(){
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy){
if(recyclerView.getChildCount()==0)
return;
float fraction;
View topChild=recyclerView.getChildAt(0);
if(recyclerView.getChildAdapterPosition(topChild)>0){
fraction=1;
}else{
fraction=(-topChild.getTop())/(float)(topChild.getHeight()-topChild.getPaddingBottom());
}
expandedTitle.setAlpha(1f-fraction);
toolbarTitleView.setAlpha(fraction);
}
});
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
inflater.inflate(R.menu.notification_request, menu);
MenuItem mute=menu.findItem(R.id.mute);
MenuItem allow=menu.findItem(R.id.allow);
if(choiceMade && allowed){
allow.setIcon(R.drawable.ic_check_wght700_24px);
tintMenuIcon(allow, R.attr.colorM3Primary);
}else{
tintMenuIcon(allow, R.attr.colorM3OnSurfaceVariant);
}
if(choiceMade && !allowed){
mute.setIcon(R.drawable.ic_delete_wght700_24px);
tintMenuIcon(mute, R.attr.colorM3Primary);
}else{
tintMenuIcon(mute, R.attr.colorM3OnSurfaceVariant);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
if(choiceMade)
return true;
allowed=item.getItemId()==R.id.allow;
new RespondToNotificationRequest(requestID, allowed)
.setCallback(new Callback<>(){
@Override
public void onSuccess(Void result){
choiceMade=true;
invalidateOptionsMenu();
E.post(new NotificationRequestRespondedEvent(accountID, requestID));
new Snackbar.Builder(getActivity())
.setText(getString(allowed ? R.string.notifications_allowed : R.string.notifications_muted, account.displayName))
.show();
}
@Override
public void onError(ErrorResponse error){
error.showToast(getActivity());
}
})
.wrapProgress(getActivity(), R.string.loading, false)
.exec(accountID);
return true;
}
@Override
protected List<StatusDisplayItem> buildDisplayItems(Notification n){
if(n.type==Notification.Type.MENTION || n.type==Notification.Type.STATUS){
return StatusDisplayItem.buildItems(this, n.status, accountID, n, knownAccounts, StatusDisplayItem.FLAG_MEDIA_FORCE_HIDDEN);
}
return super.buildDisplayItems(n);
}
@Override
protected boolean wantsToolbarMenuIconsTinted(){
return false;
}
private void tintMenuIcon(MenuItem item, int color){
int tintColor=UiUtils.getThemeColor(getActivity(), color);
if(Build.VERSION.SDK_INT<Build.VERSION_CODES.O){
Drawable icon=item.getIcon();
if(icon!=null && icon.getColorFilter()==null){
icon=icon.mutate();
icon.setTintList(ColorStateList.valueOf(tintColor));
item.setIcon(icon);
}
}else{
item.setIconTintList(ColorStateList.valueOf(tintColor));
}
}
}

View File

@@ -140,11 +140,6 @@ public class AccountTimelineFragment extends StatusListFragment{
return mergeAdapter;
}
@Override
protected int getMainAdapterOffset(){
return super.getMainAdapterOffset()+1;
}
private FilterChipView getViewForFilter(GetAccountStatuses.Filter filter){
return switch(filter){
case DEFAULT -> defaultFilter;

View File

@@ -0,0 +1,120 @@
package org.joinmastodon.android.fragments;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import org.joinmastodon.android.R;
import org.joinmastodon.android.model.Notification;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.ui.displayitems.NotificationHeaderStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.StatusDisplayItem;
import org.joinmastodon.android.ui.utils.InsetStatusItemDecoration;
import org.parceler.Parcels;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import androidx.recyclerview.widget.RecyclerView;
import me.grishka.appkit.Nav;
public abstract class BaseNotificationsListFragment extends BaseStatusListFragment<Notification>{
protected String maxID;
protected View endMark;
@Override
protected List<StatusDisplayItem> buildDisplayItems(Notification n){
NotificationHeaderStatusDisplayItem titleItem;
if(n.type==Notification.Type.MENTION || n.type==Notification.Type.STATUS){
titleItem=null;
}else{
titleItem=new NotificationHeaderStatusDisplayItem(n.id, this, n, accountID);
if(n.status!=null){
n.status.card=null;
n.status.spoilerText=null;
}
}
if(n.status!=null){
int flags=titleItem==null ? 0 : (StatusDisplayItem.FLAG_NO_FOOTER | StatusDisplayItem.FLAG_INSET | StatusDisplayItem.FLAG_NO_HEADER);
ArrayList<StatusDisplayItem> items=StatusDisplayItem.buildItems(this, n.status, accountID, n, knownAccounts, flags);
if(titleItem!=null)
items.add(0, titleItem);
return items;
}else if(titleItem!=null){
return Collections.singletonList(titleItem);
}else{
return Collections.emptyList();
}
}
@Override
protected void addAccountToKnown(Notification s){
if(!knownAccounts.containsKey(s.account.id))
knownAccounts.put(s.account.id, s.account);
if(s.status!=null && !knownAccounts.containsKey(s.status.account.id))
knownAccounts.put(s.status.account.id, s.status.account);
}
@Override
public void onItemClick(String id){
Notification n=getNotificationByID(id);
if(n.status!=null){
Status status=n.status;
Bundle args=new Bundle();
args.putString("account", accountID);
args.putParcelable("status", Parcels.wrap(status.clone()));
if(status.inReplyToAccountId!=null && knownAccounts.containsKey(status.inReplyToAccountId))
args.putParcelable("inReplyToAccount", Parcels.wrap(knownAccounts.get(status.inReplyToAccountId)));
Nav.go(getActivity(), ThreadFragment.class, args);
}else{
Bundle args=new Bundle();
args.putString("account", accountID);
args.putParcelable("profileAccount", Parcels.wrap(n.account));
Nav.go(getActivity(), ProfileFragment.class, args);
}
}
private Notification getNotificationByID(String id){
for(Notification n : data){
if(n.id.equals(id))
return n;
}
return null;
}
protected void removeNotification(Notification n){
data.remove(n);
preloadedData.remove(n);
int index=-1;
for(int i=0; i<displayItems.size(); i++){
if(n.id.equals(displayItems.get(i).parentID)){
index=i;
break;
}
}
if(index==-1)
return;
int lastIndex;
for(lastIndex=index; lastIndex<displayItems.size(); lastIndex++){
if(!displayItems.get(lastIndex).parentID.equals(n.id))
break;
}
displayItems.subList(index, lastIndex).clear();
adapter.notifyItemRangeRemoved(index, lastIndex-index);
}
@Override
protected View onCreateFooterView(LayoutInflater inflater){
View v=inflater.inflate(R.layout.load_more_with_end_mark, null);
endMark=v.findViewById(R.id.end_mark);
endMark.setVisibility(View.GONE);
return v;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState){
super.onViewCreated(view, savedInstanceState);
list.addItemDecoration(new InsetStatusItemDecoration(this));
}
}

View File

@@ -325,7 +325,7 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
toolbar.setNavigationContentDescription(R.string.back);
}
protected int getMainAdapterOffset(){
public int getMainAdapterOffset(){
if(list.getAdapter() instanceof MergeRecyclerAdapter mergeAdapter){
return mergeAdapter.getPositionForAdapter(adapter);
}

View File

@@ -915,6 +915,8 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
int id=item.getItemId();
if(id==R.id.vis_public){
statusVisibility=StatusPrivacy.PUBLIC;
}else if(id==R.id.vis_unlisted){
statusVisibility=StatusPrivacy.UNLISTED;
}else if(id==R.id.vis_followers){
statusVisibility=StatusPrivacy.PRIVATE;
}else if(id==R.id.vis_private){
@@ -950,12 +952,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
private void applyPreferencesForPostVisibility(Preferences prefs, Bundle savedInstanceState){
// Only override the reply visibility if our preference is more private
if(prefs.postingDefaultVisibility.isLessVisibleThan(statusVisibility)){
// Map unlisted from the API onto public, because we don't have unlisted in the UI
statusVisibility=switch(prefs.postingDefaultVisibility){
case PUBLIC, UNLISTED -> StatusPrivacy.PUBLIC;
case PRIVATE -> StatusPrivacy.PRIVATE;
case DIRECT -> StatusPrivacy.DIRECT;
};
statusVisibility=prefs.postingDefaultVisibility;
}
// A saved privacy setting from a previous compose session wins over all
@@ -973,12 +970,14 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
statusVisibility=StatusPrivacy.PUBLIC;
}
visibilityBtn.setText(switch(statusVisibility){
case PUBLIC, UNLISTED -> R.string.visibility_public;
case PUBLIC -> R.string.visibility_public;
case UNLISTED -> R.string.visibility_unlisted;
case PRIVATE -> R.string.visibility_followers_only;
case DIRECT -> R.string.visibility_private;
});
Drawable icon=getResources().getDrawable(switch(statusVisibility){
case PUBLIC, UNLISTED -> R.drawable.ic_public_20px;
case PUBLIC -> R.drawable.ic_public_20px;
case UNLISTED -> R.drawable.ic_clear_night_20px;
case PRIVATE -> R.drawable.ic_group_20px;
case DIRECT -> R.drawable.ic_alternate_email_20px;
}, getActivity().getTheme()).mutate();

View File

@@ -34,7 +34,6 @@ import me.grishka.appkit.Nav;
import me.grishka.appkit.api.Callback;
import me.grishka.appkit.api.ErrorResponse;
import me.grishka.appkit.api.SimpleCallback;
import me.grishka.appkit.utils.CubicBezierInterpolator;
import me.grishka.appkit.utils.MergeRecyclerAdapter;
import me.grishka.appkit.utils.SingleViewRecyclerAdapter;
import me.grishka.appkit.utils.V;
@@ -155,7 +154,7 @@ public class HashtagTimelineFragment extends StatusListFragment{
}
@Override
protected int getMainAdapterOffset(){
public int getMainAdapterOffset(){
return 1;
}

View File

@@ -0,0 +1,250 @@
package org.joinmastodon.android.fragments;
import android.annotation.SuppressLint;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import com.squareup.otto.Subscribe;
import org.joinmastodon.android.E;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.requests.notifications.GetNotificationRequests;
import org.joinmastodon.android.api.requests.notifications.RespondToNotificationRequest;
import org.joinmastodon.android.events.NotificationRequestRespondedEvent;
import org.joinmastodon.android.model.HeaderPaginationList;
import org.joinmastodon.android.model.NotificationRequest;
import org.joinmastodon.android.model.viewmodel.AccountViewModel;
import org.joinmastodon.android.ui.BetterItemAnimator;
import org.joinmastodon.android.ui.DividerItemDecoration;
import org.joinmastodon.android.ui.OutlineProviders;
import org.joinmastodon.android.ui.Snackbar;
import org.parceler.Parcels;
import java.util.HashMap;
import java.util.Objects;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import me.grishka.appkit.Nav;
import me.grishka.appkit.api.Callback;
import me.grishka.appkit.api.ErrorResponse;
import me.grishka.appkit.api.SimpleCallback;
import me.grishka.appkit.imageloader.ImageLoaderRecyclerAdapter;
import me.grishka.appkit.imageloader.ImageLoaderViewHolder;
import me.grishka.appkit.imageloader.requests.ImageLoaderRequest;
import me.grishka.appkit.utils.BindableViewHolder;
import me.grishka.appkit.views.UsableRecyclerView;
public class NotificationRequestsFragment extends MastodonRecyclerFragment<NotificationRequest>{
private String accountID;
private String maxID;
private HashMap<String, AccountViewModel> accountViewModels=new HashMap<>();
private View endMark;
private NotificationRequestsAdapter adapter;
public NotificationRequestsFragment(){
super(50);
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
accountID=getArguments().getString("account");
setTitle(R.string.filtered_notifications);
loadData();
E.register(this);
}
@Override
public void onDestroy(){
E.unregister(this);
super.onDestroy();
}
@Override
protected void doLoadData(int offset, int count){
if(!refreshing && endMark!=null)
endMark.setVisibility(View.GONE);
currentRequest=new GetNotificationRequests(offset==0 ? null : maxID)
.setCallback(new SimpleCallback<>(this){
@Override
public void onSuccess(HeaderPaginationList<NotificationRequest> result){
if(data.isEmpty() || refreshing)
accountViewModels.clear();
maxID=result.getNextPageMaxID();
for(NotificationRequest req:result){
accountViewModels.put(req.account.id, new AccountViewModel(req.account, accountID, false));
}
onDataLoaded(result, !TextUtils.isEmpty(maxID));
endMark.setVisibility(TextUtils.isEmpty(maxID) ? View.VISIBLE : View.GONE);
}
})
.exec(accountID);
}
@Override
protected RecyclerView.Adapter<?> getAdapter(){
return adapter=new NotificationRequestsAdapter();
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState){
super.onViewCreated(view, savedInstanceState);
list.setItemAnimator(new BetterItemAnimator());
list.addItemDecoration(new DividerItemDecoration(getActivity(), R.attr.colorM3OutlineVariant, 1, 0, 0, vh->vh instanceof NotificationRequestViewHolder).setDrawBelowLastItem(true));
}
@Override
protected View onCreateFooterView(LayoutInflater inflater){
View v=inflater.inflate(R.layout.load_more_with_end_mark, null);
endMark=v.findViewById(R.id.end_mark);
endMark.setVisibility(View.GONE);
return v;
}
@Subscribe
public void onNotificationRequestResponded(NotificationRequestRespondedEvent ev){
if(adapter==null || !ev.accountID.equals(accountID))
return;
for(int i=0;i<data.size();i++){
if(data.get(i).id.equals(ev.requestID)){
data.remove(i);
adapter.notifyItemRemoved(i);
return;
}
}
for(NotificationRequest nr:preloadedData){
if(nr.id.equals(ev.requestID)){
preloadedData.remove(nr);
break;
}
}
}
private class NotificationRequestsAdapter extends UsableRecyclerView.Adapter<NotificationRequestViewHolder> implements ImageLoaderRecyclerAdapter{
public NotificationRequestsAdapter(){
super(imgLoader);
}
@NonNull
@Override
public NotificationRequestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType){
return new NotificationRequestViewHolder();
}
@Override
public int getItemCount(){
return data.size();
}
@Override
public void onBindViewHolder(NotificationRequestViewHolder holder, int position){
holder.bind(data.get(position));
super.onBindViewHolder(holder, position);
}
@Override
public int getImageCountForItem(int position){
return Objects.requireNonNull(accountViewModels.get(data.get(position).account.id)).emojiHelper.getImageCount()+1;
}
@Override
public ImageLoaderRequest getImageRequest(int position, int image){
AccountViewModel model=Objects.requireNonNull(accountViewModels.get(data.get(position).account.id));
return switch(image){
case 0 -> model.avaRequest;
default -> model.emojiHelper.getImageRequest(image-1);
};
}
}
private class NotificationRequestViewHolder extends BindableViewHolder<NotificationRequest> implements ImageLoaderViewHolder, UsableRecyclerView.Clickable{
private final TextView name, username, badge;
private final ImageView ava;
private final ImageButton allow, mute;
public NotificationRequestViewHolder(){
super(getActivity(), R.layout.item_notification_request, list);
name=findViewById(R.id.name);
username=findViewById(R.id.username);
badge=findViewById(R.id.badge);
ava=findViewById(R.id.ava);
allow=findViewById(R.id.btn_allow);
mute=findViewById(R.id.btn_mute);
ava.setOutlineProvider(OutlineProviders.roundedRect(8));
ava.setClipToOutline(true);
allow.setOnClickListener(this::onAllowClick);
mute.setOnClickListener(this::onMuteClick);
}
@SuppressLint("DefaultLocale")
@Override
public void onBind(NotificationRequest item){
AccountViewModel model=Objects.requireNonNull(accountViewModels.get(item.account.id));
name.setText(model.parsedName);
username.setText(item.account.getDisplayUsername());
badge.setText(item.notificationsCount>99 ? String.format("%d+", 99) : String.format("%d", item.notificationsCount));
}
@Override
public void setImage(int index, Drawable image){
if(index==0){
if(image==null)
ava.setImageResource(R.drawable.image_placeholder);
else
ava.setImageDrawable(image);
}else{
AccountViewModel model=Objects.requireNonNull(accountViewModels.get(item.account.id));
model.emojiHelper.setImageDrawable(index-1, image);
name.invalidate();
}
}
@Override
public void onClick(){
Bundle args=new Bundle();
args.putString("account", accountID);
args.putParcelable("targetAccount", Parcels.wrap(item.account));
args.putString("requestID", item.id);
Nav.go(getActivity(), AccountNotificationsListFragment.class, args);
}
private void onAllowClick(View v){
acceptOrDecline(true);
}
private void onMuteClick(View v){
acceptOrDecline(false);
}
private void acceptOrDecline(boolean accept){
new RespondToNotificationRequest(item.id, accept)
.setCallback(new Callback<>(){
@Override
public void onSuccess(Void result){
int pos=data.indexOf(item);
data.remove(pos);
adapter.notifyItemRemoved(pos);
new Snackbar.Builder(getActivity())
.setText(getString(accept ? R.string.notifications_allowed : R.string.notifications_muted, item.account.displayName))
.show();
}
@Override
public void onError(ErrorResponse error){
error.showToast(getActivity());
}
})
.wrapProgress(getActivity(), R.string.loading, false)
.exec(accountID);
}
}
}

View File

@@ -1,57 +1,70 @@
package org.joinmastodon.android.fragments;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import com.squareup.otto.Subscribe;
import org.joinmastodon.android.E;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.requests.markers.SaveMarkers;
import org.joinmastodon.android.api.requests.notifications.GetNotificationsPolicy;
import org.joinmastodon.android.api.requests.notifications.SetNotificationsPolicy;
import org.joinmastodon.android.api.session.AccountSessionManager;
import org.joinmastodon.android.events.PollUpdatedEvent;
import org.joinmastodon.android.events.RemoveAccountPostsEvent;
import org.joinmastodon.android.model.Notification;
import org.joinmastodon.android.model.NotificationsPolicy;
import org.joinmastodon.android.model.PaginatedResponse;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.model.viewmodel.CheckableListItem;
import org.joinmastodon.android.model.viewmodel.ListItem;
import org.joinmastodon.android.ui.M3AlertDialogBuilder;
import org.joinmastodon.android.ui.OutlineProviders;
import org.joinmastodon.android.ui.displayitems.NotificationHeaderStatusDisplayItem;
import org.joinmastodon.android.ui.adapters.GenericListItemsAdapter;
import org.joinmastodon.android.ui.displayitems.StatusDisplayItem;
import org.joinmastodon.android.ui.utils.InsetStatusItemDecoration;
import org.joinmastodon.android.ui.utils.UiUtils;
import org.joinmastodon.android.ui.viewcontrollers.GenericListItemsViewController;
import org.joinmastodon.android.ui.views.NestedRecyclerScrollView;
import org.joinmastodon.android.utils.ObjectIdComparator;
import org.parceler.Parcels;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import me.grishka.appkit.Nav;
import me.grishka.appkit.api.Callback;
import me.grishka.appkit.api.ErrorResponse;
import me.grishka.appkit.api.SimpleCallback;
import me.grishka.appkit.utils.MergeRecyclerAdapter;
public class NotificationsListFragment extends BaseStatusListFragment<Notification>{
public class NotificationsListFragment extends BaseNotificationsListFragment{
private boolean onlyMentions;
private String maxID;
private View tabBar;
private View mentionsTab, allTab;
private View endMark;
private String unreadMarker, realUnreadMarker;
private MenuItem markAllReadItem;
private boolean reloadingFromCache;
private ListItem<Void> requestsItem=new ListItem<>(R.string.filtered_notifications, 0, R.drawable.ic_inventory_2_24px, i->openNotificationRequests());
private ArrayList<ListItem<Void>> requestsItems=new ArrayList<>();
private GenericListItemsAdapter<Void> requestsRowAdapter=new GenericListItemsAdapter<>(requestsItems);
private NotificationsPolicy lastPolicy;
@Override
public void onCreate(Bundle savedInstanceState){
@@ -74,43 +87,12 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
setTitle(R.string.notifications);
}
@Override
protected List<StatusDisplayItem> buildDisplayItems(Notification n){
NotificationHeaderStatusDisplayItem titleItem;
if(n.type==Notification.Type.MENTION || n.type==Notification.Type.STATUS){
titleItem=null;
}else{
titleItem=new NotificationHeaderStatusDisplayItem(n.id, this, n, accountID);
if(n.status!=null){
n.status.card=null;
n.status.spoilerText=null;
}
}
if(n.status!=null){
int flags=titleItem==null ? 0 : (StatusDisplayItem.FLAG_NO_FOOTER | StatusDisplayItem.FLAG_INSET | StatusDisplayItem.FLAG_NO_HEADER);
ArrayList<StatusDisplayItem> items=StatusDisplayItem.buildItems(this, n.status, accountID, n, knownAccounts, flags);
if(titleItem!=null)
items.add(0, titleItem);
return items;
}else if(titleItem!=null){
return Collections.singletonList(titleItem);
}else{
return Collections.emptyList();
}
}
@Override
protected void addAccountToKnown(Notification s){
if(!knownAccounts.containsKey(s.account.id))
knownAccounts.put(s.account.id, s.account);
if(s.status!=null && !knownAccounts.containsKey(s.status.account.id))
knownAccounts.put(s.status.account.id, s.status.account);
}
@Override
protected void doLoadData(int offset, int count){
if(!refreshing && !reloadingFromCache)
endMark.setVisibility(View.GONE);
if(offset==0)
reloadPolicy();
AccountSessionManager.getInstance()
.getAccount(accountID).getCacheController()
.getNotifications(offset>0 ? maxID : null, count, onlyMentions, refreshing && !reloadingFromCache, new SimpleCallback<>(this){
@@ -142,30 +124,10 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
resetUnreadBackground();
}
@Override
public void onItemClick(String id){
Notification n=getNotificationByID(id);
if(n.status!=null){
Status status=n.status;
Bundle args=new Bundle();
args.putString("account", accountID);
args.putParcelable("status", Parcels.wrap(status.clone()));
if(status.inReplyToAccountId!=null && knownAccounts.containsKey(status.inReplyToAccountId))
args.putParcelable("inReplyToAccount", Parcels.wrap(knownAccounts.get(status.inReplyToAccountId)));
Nav.go(getActivity(), ThreadFragment.class, args);
}else{
Bundle args=new Bundle();
args.putString("account", accountID);
args.putParcelable("profileAccount", Parcels.wrap(n.account));
Nav.go(getActivity(), ProfileFragment.class, args);
}
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState){
tabBar=view.findViewById(R.id.tabbar);
super.onViewCreated(view, savedInstanceState);
list.addItemDecoration(new InsetStatusItemDecoration(this));
View tabBarItself=view.findViewById(R.id.tabbar_inner);
tabBarItself.setOutlineProvider(OutlineProviders.roundedRect(20));
@@ -215,14 +177,6 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
return views;
}
private Notification getNotificationByID(String id){
for(Notification n:data){
if(n.id.equals(id))
return n;
}
return null;
}
@Subscribe
public void onPollUpdated(PollUpdatedEvent ev){
if(!ev.accountID.equals(accountID))
@@ -249,25 +203,9 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
}
}
private void removeNotification(Notification n){
data.remove(n);
preloadedData.remove(n);
int index=-1;
for(int i=0;i<displayItems.size();i++){
if(n.id.equals(displayItems.get(i).parentID)){
index=i;
break;
}
}
if(index==-1)
return;
int lastIndex;
for(lastIndex=index;lastIndex<displayItems.size();lastIndex++){
if(!displayItems.get(lastIndex).parentID.equals(n.id))
break;
}
displayItems.subList(index, lastIndex).clear();
adapter.notifyItemRangeRemoved(index, lastIndex-index);
@Override
protected boolean needDividerForExtraItem(View child, View bottomSibling, RecyclerView.ViewHolder holder, RecyclerView.ViewHolder siblingHolder){
return super.needDividerForExtraItem(child, bottomSibling, holder, siblingHolder) || (siblingHolder!=null && siblingHolder.getAbsoluteAdapterPosition()>=adapter.getItemCount()) || holder.getAbsoluteAdapterPosition()<requestsItems.size();
}
private void onTabClick(View v){
@@ -285,34 +223,34 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
AccountSessionManager.get(accountID).setNotificationsMentionsOnly(onlyMentions);
}
@Override
protected View onCreateFooterView(LayoutInflater inflater){
View v=inflater.inflate(R.layout.load_more_with_end_mark, null);
endMark=v.findViewById(R.id.end_mark);
endMark.setVisibility(View.GONE);
return v;
}
@Override
protected boolean needDividerForExtraItem(View child, View bottomSibling, RecyclerView.ViewHolder holder, RecyclerView.ViewHolder siblingHolder){
return super.needDividerForExtraItem(child, bottomSibling, holder, siblingHolder) || (siblingHolder!=null && siblingHolder.getAbsoluteAdapterPosition()>=adapter.getItemCount());
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
inflater.inflate(R.menu.notifications, menu);
markAllReadItem=menu.findItem(R.id.mark_all_read);
MenuItem filters=menu.findItem(R.id.filters);
filters.setVisible(lastPolicy!=null);
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
if(item.getItemId()==R.id.mark_all_read){
int id=item.getItemId();
if(id==R.id.mark_all_read){
markAsRead();
resetUnreadBackground();
}else if(id==R.id.filters){
showFiltersAlert();
}
return true;
}
@Override
protected RecyclerView.Adapter getAdapter(){
MergeRecyclerAdapter mergeAdapter=new MergeRecyclerAdapter();
mergeAdapter.addAdapter(requestsRowAdapter);
mergeAdapter.addAdapter(super.getAdapter());
return mergeAdapter;
}
private void markAsRead(){
if(data.isEmpty())
return;
@@ -366,4 +304,93 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
}
return true;
}
private void updatePolicy(NotificationsPolicy policy){
int count=policy.summary==null ? 0 : policy.summary.pendingRequestsCount;
boolean isShown=!requestsItems.isEmpty();
boolean needShow=count>0;
if(isShown && !needShow){
requestsItems.clear();
requestsRowAdapter.notifyItemRemoved(0);
}else if(!isShown && needShow){
requestsItem.subtitle=getResources().getQuantityString(R.plurals.x_people_you_may_know, count, count);
requestsItems.add(requestsItem);
requestsRowAdapter.notifyItemInserted(0);
}else if(isShown){
requestsItem.subtitle=getResources().getQuantityString(R.plurals.x_people_you_may_know, count, count);
requestsRowAdapter.notifyItemChanged(0);
}
lastPolicy=policy;
invalidateOptionsMenu();
}
private void reloadPolicy(){
new GetNotificationsPolicy()
.setCallback(new Callback<>(){
@Override
public void onSuccess(NotificationsPolicy policy){
updatePolicy(policy);
}
@Override
public void onError(ErrorResponse errorResponse){
}
})
.exec(accountID);
}
private void showFiltersAlert(){
GenericListItemsViewController<Void> controller=new GenericListItemsViewController<>(getActivity());
Consumer<CheckableListItem<Void>> toggler=item->{
item.toggle();
controller.rebindItem(item);
};
CheckableListItem<Void> followingItem, followersItem, newAccountsItem, mentionsItem;
List<ListItem<Void>> items=List.of(
followingItem=new CheckableListItem<>(R.string.notification_filter_following, R.string.notification_filter_following_explanation, CheckableListItem.Style.CHECKBOX, lastPolicy.filterNotFollowing, toggler, true),
followersItem=new CheckableListItem<>(R.string.notification_filter_followers, R.string.notification_filter_followers_explanation, CheckableListItem.Style.CHECKBOX, lastPolicy.filterNotFollowers, toggler, true),
newAccountsItem=new CheckableListItem<>(R.string.notification_filter_new_accounts, R.string.notification_filter_new_accounts_explanation, CheckableListItem.Style.CHECKBOX, lastPolicy.filterNewAccounts, toggler, true),
mentionsItem=new CheckableListItem<>(R.string.notification_filter_mentions, R.string.notification_filter_mentions_explanation, CheckableListItem.Style.CHECKBOX, lastPolicy.filterPrivateMentions, toggler, true)
);
controller.setItems(items);
AlertDialog dlg=new M3AlertDialogBuilder(getActivity())
.setTitle(R.string.filter_notifications)
.setView(controller.getView())
.setPositiveButton(R.string.save, null)
.show();
Button btn=dlg.getButton(Dialog.BUTTON_POSITIVE);
btn.setOnClickListener(v->{
UiUtils.showProgressForAlertButton(btn, true);
NotificationsPolicy newPolicy=new NotificationsPolicy();
newPolicy.filterNotFollowing=followingItem.checked;
newPolicy.filterNotFollowers=followersItem.checked;
newPolicy.filterNewAccounts=newAccountsItem.checked;
newPolicy.filterPrivateMentions=mentionsItem.checked;
new SetNotificationsPolicy(newPolicy)
.setCallback(new Callback<>(){
@Override
public void onSuccess(NotificationsPolicy policy){
updatePolicy(policy);
dlg.dismiss();
}
@Override
public void onError(ErrorResponse errorResponse){
Activity activity=getActivity();
if(activity==null)
return;
UiUtils.showProgressForAlertButton(btn, false);
errorResponse.showToast(activity);
}
})
.exec(accountID);
});
}
private void openNotificationRequests(){
Bundle args=new Bundle();
args.putString("account", accountID);
Nav.go(getActivity(), NotificationRequestsFragment.class, args);
}
}

View File

@@ -198,6 +198,7 @@ public class ProfileFeaturedFragment extends BaseStatusListFragment<SearchResult
private void showAllFeaturedHashtags(){
Bundle args=new Bundle();
args.putString("account", accountID);
args.putParcelable("profileAccount", Parcels.wrap(profileAccount));
ArrayList<Parcelable> tags=featuredTags.stream().map(Parcels::wrap).collect(Collectors.toCollection(ArrayList::new));
args.putParcelableArrayList("hashtags", tags);
Nav.go(getActivity(), FeaturedHashtagsListFragment.class, args);

View File

@@ -20,7 +20,6 @@ import android.os.Build;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.SpannedString;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.text.style.ImageSpan;
@@ -29,7 +28,6 @@ import android.transition.Fade;
import android.transition.Transition;
import android.transition.TransitionManager;
import android.transition.TransitionSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@@ -67,6 +65,7 @@ import org.joinmastodon.android.ui.M3AlertDialogBuilder;
import org.joinmastodon.android.ui.OutlineProviders;
import org.joinmastodon.android.ui.SimpleViewHolder;
import org.joinmastodon.android.ui.SingleImagePhotoViewerListener;
import org.joinmastodon.android.ui.Snackbar;
import org.joinmastodon.android.ui.photoviewer.PhotoViewer;
import org.joinmastodon.android.ui.sheets.DecentralizationExplainerSheet;
import org.joinmastodon.android.ui.tabs.TabLayout;
@@ -136,6 +135,8 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
private View actionButtonWrap;
private CustomDrawingOrderLinearLayout scrollableContent;
private ImageButton qrCodeButton;
private ProgressBar innerProgress;
private View actions;
private Account account;
private String accountID;
@@ -219,6 +220,8 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
actionButtonWrap=content.findViewById(R.id.profile_action_btn_wrap);
scrollableContent=content.findViewById(R.id.scrollable_content);
qrCodeButton=content.findViewById(R.id.qr_code);
innerProgress=content.findViewById(R.id.profile_progress);
actions=content.findViewById(R.id.profile_actions);
avatar.setOutlineProvider(OutlineProviders.roundedRect(24));
avatar.setClipToOutline(true);
@@ -306,6 +309,8 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
followingBtn.setOnClickListener(this::onFollowersOrFollowingClick);
username.setOnLongClickListener(v->{
if(account==null)
return true;
String username=account.acct;
if(!username.contains("@")){
username+="@"+AccountSessionManager.getInstance().getAccount(accountID).domain;
@@ -331,7 +336,11 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
nameEdit.addTextChangedListener(new SimpleTextWatcher(e->editDirty=true));
bioEdit.addTextChangedListener(new SimpleTextWatcher(e->editDirty=true));
usernameDomain.setOnClickListener(v->new DecentralizationExplainerSheet(getActivity(), accountID, account).show());
usernameDomain.setOnClickListener(v->{
if(account==null)
return;
new DecentralizationExplainerSheet(getActivity(), accountID, account).show();
});
qrCodeButton.setOnClickListener(v->{
Bundle args=new Bundle();
args.putString("account", accountID);
@@ -462,6 +471,8 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
return true;
}
});
if(!loaded)
bindHeaderViewForPreviewMaybe();
}
@Override
@@ -506,7 +517,41 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
}
}
private void bindHeaderViewForPreviewMaybe(){
if(loaded)
return;
String username=getArguments().getString("accountUsername");
String domain=getArguments().getString("accountDomain");
if(TextUtils.isEmpty(username) || TextUtils.isEmpty(domain))
return;
content.setVisibility(View.VISIBLE);
progress.setVisibility(View.GONE);
errorView.setVisibility(View.GONE);
innerProgress.setVisibility(View.VISIBLE);
this.username.setText(username);
name.setText(username);
usernameDomain.setText(domain);
avatar.setImageResource(R.drawable.image_placeholder);
cover.setImageResource(R.drawable.image_placeholder);
actions.setVisibility(View.GONE);
bio.setVisibility(View.GONE);
countersLayout.setVisibility(View.GONE);
tabsDivider.setVisibility(View.GONE);
}
private void bindHeaderView(){
if(innerProgress.getVisibility()==View.VISIBLE){
TransitionManager.beginDelayedTransition(contentView, new TransitionSet()
.addTransition(new Fade(Fade.IN | Fade.OUT))
.excludeChildren(actions, true)
.setDuration(250)
.setInterpolator(CubicBezierInterpolator.DEFAULT)
);
innerProgress.setVisibility(View.GONE);
countersLayout.setVisibility(View.VISIBLE);
actions.setVisibility(View.VISIBLE);
tabsDivider.setVisibility(View.VISIBLE);
}
setTitle(account.displayName);
setSubtitle(getResources().getQuantityString(R.plurals.x_posts, (int)(account.statusesCount%1000), account.statusesCount));
ViewImageLoader.load(avatar, null, new UrlImageLoaderRequest(GlobalUserPreferences.playGifs ? account.avatar : account.avatarStatic, V.dp(100), V.dp(100)));
@@ -635,6 +680,13 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
menu.findItem(R.id.block_domain).setVisible(false);
menu.findItem(R.id.add_to_list).setVisible(relationship.following);
if(relationship.following){
MenuItem notifications=menu.findItem(R.id.notifications);
notifications.setVisible(true);
notifications.setIcon(relationship.notifying ? R.drawable.ic_notifications_fill1_24px : R.drawable.ic_notifications_24px);
notifications.setTitle(getString(relationship.notifying ? R.string.disable_new_post_notifications : R.string.enable_new_post_notifications, account.getDisplayUsername()));
}
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.P && !UiUtils.isEMUI()){
menu.setGroupDividerEnabled(true);
}
@@ -663,7 +715,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
updateRelationship();
}, this::updateRelationship);
}else if(id==R.id.hide_boosts){
new SetAccountFollowed(account.id, true, !relationship.showingReblogs)
new SetAccountFollowed(account.id, true, !relationship.showingReblogs, relationship.notifying)
.setCallback(new Callback<>(){
@Override
public void onSuccess(Relationship result){
@@ -693,6 +745,24 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
args.putString("account", accountID);
args.putParcelable("targetAccount", Parcels.wrap(account));
Nav.go(getActivity(), AddAccountToListsFragment.class, args);
}else if(id==R.id.notifications){
new SetAccountFollowed(account.id, true, relationship.showingReblogs, !relationship.notifying)
.setCallback(new Callback<>(){
@Override
public void onSuccess(Relationship result){
updateRelationship(result);
new Snackbar.Builder(getActivity())
.setText(result.notifying ? R.string.new_post_notifications_enabled : R.string.new_post_notifications_disabled)
.show();
}
@Override
public void onError(ErrorResponse error){
error.showToast(getActivity());
}
})
.wrapProgress(getActivity(), R.string.loading, false)
.exec(accountID);
}
return true;
}
@@ -1058,6 +1128,8 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
}
private void onAvatarClick(View v){
if(account==null)
return;
if(isInEditMode){
startImagePicker(AVATAR_RESULT);
}else{
@@ -1071,6 +1143,8 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
}
private void onCoverClick(View v){
if(account==null)
return;
if(isInEditMode){
startImagePicker(COVER_RESULT);
}else{

View File

@@ -133,7 +133,7 @@ public class OnboardingFollowSuggestionsFragment extends BaseAccountListFragment
}
numRunningFollowRequests++;
String id=accountIdsToFollow.remove(0);
new SetAccountFollowed(id, true, true)
new SetAccountFollowed(id, true, true, false)
.setCallback(new Callback<>(){
@Override
public void onSuccess(Relationship result){

View File

@@ -134,7 +134,7 @@ public class ReportAddPostsChoiceFragment extends StatusListFragment{
}
@Override
protected int getMainAdapterOffset(){
public int getMainAdapterOffset(){
return 1;
}

View File

@@ -34,7 +34,6 @@ import me.grishka.appkit.api.Callback;
import me.grishka.appkit.api.ErrorResponse;
import me.grishka.appkit.imageloader.ViewImageLoader;
import me.grishka.appkit.imageloader.requests.UrlImageLoaderRequest;
import me.grishka.appkit.utils.CubicBezierInterpolator;
import me.grishka.appkit.utils.V;
public class ReportDoneFragment extends MastodonToolbarFragment{
@@ -177,7 +176,7 @@ public class ReportDoneFragment extends MastodonToolbarFragment{
}
private void onUnfollowClick(){
new SetAccountFollowed(reportAccount.id, false, false)
new SetAccountFollowed(reportAccount.id, false, false, false)
.setCallback(new Callback<>(){
@Override
public void onSuccess(Relationship result){

View File

@@ -0,0 +1,27 @@
package org.joinmastodon.android.model;
import org.joinmastodon.android.api.ObjectValidationException;
import org.joinmastodon.android.api.RequiredField;
import java.time.Instant;
public class NotificationRequest extends BaseModel{
@RequiredField
public String id;
@RequiredField
public Instant createdAt;
@RequiredField
public Instant updatedAt;
public int notificationsCount;
@RequiredField
public Account account;
public Status lastStatus;
@Override
public void postprocess() throws ObjectValidationException{
super.postprocess();
account.postprocess();
if(lastStatus!=null)
lastStatus.postprocess();
}
}

View File

@@ -0,0 +1,14 @@
package org.joinmastodon.android.model;
public class NotificationsPolicy extends BaseModel{
public boolean filterNewAccounts;
public boolean filterNotFollowers;
public boolean filterNotFollowing;
public boolean filterPrivateMentions;
public Summary summary;
public static class Summary{
public int pendingNotificationsCount;
public int pendingRequestsCount;
}
}

View File

@@ -58,7 +58,7 @@ public class Status extends BaseModel implements DisplayItemsParent{
public boolean favourited;
public boolean reblogged;
public boolean muted;
public Boolean muted;
public boolean bookmarked;
public Boolean pinned;

View File

@@ -25,6 +25,10 @@ public class AccountViewModel{
public final String verifiedLink;
public AccountViewModel(Account account, String accountID){
this(account, accountID, true);
}
public AccountViewModel(Account account, String accountID, boolean needBio){
this.account=account;
avaRequest=new UrlImageLoaderRequest(GlobalUserPreferences.playGifs ? account.avatar : account.avatarStatic, V.dp(50), V.dp(50));
emojiHelper=new CustomEmojiHelper();
@@ -32,9 +36,13 @@ public class AccountViewModel{
parsedName=HtmlParser.parseCustomEmoji(account.displayName, account.emojis);
else
parsedName=account.displayName;
parsedBio=HtmlParser.parse(account.note, account.emojis, Collections.emptyList(), Collections.emptyList(), accountID, account);
SpannableStringBuilder ssb=new SpannableStringBuilder(parsedName);
ssb.append(parsedBio);
if(needBio){
parsedBio=HtmlParser.parse(account.note, account.emojis, Collections.emptyList(), Collections.emptyList(), accountID, account);
ssb.append(parsedBio);
}else{
parsedBio=null;
}
emojiHelper.setText(ssb);
String verifiedLink=null;
for(AccountField fld:account.fields){

View File

@@ -35,8 +35,9 @@ public class DividerItemDecoration extends RecyclerView.ItemDecoration{
this.drawDividerPredicate=drawDividerPredicate;
}
public void setDrawBelowLastItem(boolean drawBelowLastItem){
public DividerItemDecoration setDrawBelowLastItem(boolean drawBelowLastItem){
this.drawBelowLastItem=drawBelowLastItem;
return this;
}
@Override

View File

@@ -50,6 +50,11 @@ public class M3AlertDialogBuilder extends AlertDialog.Builder{
helpButton.setSelected(helpText.getVisibility()==View.VISIBLE);
});
setCustomTitle(titleLayout);
}else if(!TextUtils.isEmpty(title)){
View titleLayout=getContext().getSystemService(LayoutInflater.class).inflate(R.layout.alert_title, null);
TextView title=titleLayout.findViewById(R.id.title);
title.setText(this.title);
setCustomTitle(titleLayout);
}
alert=super.create();

View File

@@ -58,7 +58,7 @@ public class PhotoLayoutHelper{
float avgRatio=!ratios.isEmpty() ? sum(ratios)/ratios.size() : 1.0f;
if(cnt==2){
if(allAreWide && avgRatio>1.4*maxRatio && (ratios.get(1)-ratios.get(0))<0.2){ // two wide photos, one above the other
if(allAreWide && avgRatio>1.4*maxRatio && Math.abs(ratios.get(1)-ratios.get(0))<0.2){ // two wide photos, one above the other
float h=Math.max(Math.min(MAX_WIDTH/ratios.get(0), Math.min(MAX_WIDTH/ratios.get(1), (MAX_HEIGHT-GAP)/2.0f)), MIN_HEIGHT/2f);
result.width=MAX_WIDTH;
@@ -69,7 +69,23 @@ public class PhotoLayoutHelper{
new TiledLayoutResult.Tile(1, 1, 0, 0),
new TiledLayoutResult.Tile(1, 1, 0, 1)
};
}else if(allAreWide || allAreSquare){ // next to each other, same ratio
}else if(allAreWide){ // two wide photos, one above the other, different ratios
result.width=MAX_WIDTH;
float h0=MAX_WIDTH/ratios.get(0);
float h1=MAX_WIDTH/ratios.get(1);
if(h0+h1<MIN_HEIGHT){
float prevTotalHeight=h0+h1;
h0=MIN_HEIGHT*(h0/prevTotalHeight);
h1=MIN_HEIGHT*(h1/prevTotalHeight);
}
result.height=Math.round(h0+h1+GAP);
result.rowSizes=new int[]{Math.round(h0), Math.round(h1)};
result.columnSizes=new int[]{MAX_WIDTH};
result.tiles=new TiledLayoutResult.Tile[]{
new TiledLayoutResult.Tile(1, 1, 0, 0),
new TiledLayoutResult.Tile(1, 1, 0, 1)
};
}else if(allAreSquare){ // next to each other, same ratio
float w=((MAX_WIDTH-GAP)/2);
float h=Math.max(Math.min(w/ratios.get(0), Math.min(w/ratios.get(1), MAX_HEIGHT)), MIN_HEIGHT);

View File

@@ -25,11 +25,13 @@ import org.joinmastodon.android.GlobalUserPreferences;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.requests.accounts.GetAccountRelationships;
import org.joinmastodon.android.api.requests.statuses.GetStatusSourceText;
import org.joinmastodon.android.api.requests.statuses.SetStatusConversationMuted;
import org.joinmastodon.android.api.requests.statuses.SetStatusPinned;
import org.joinmastodon.android.api.session.AccountSessionManager;
import org.joinmastodon.android.fragments.AddAccountToListsFragment;
import org.joinmastodon.android.fragments.BaseStatusListFragment;
import org.joinmastodon.android.fragments.ComposeFragment;
import org.joinmastodon.android.fragments.NotificationsListFragment;
import org.joinmastodon.android.fragments.ProfileFragment;
import org.joinmastodon.android.fragments.report.ReportReasonChoiceFragment;
import org.joinmastodon.android.model.Account;
@@ -228,6 +230,22 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
})
.wrapProgress(activity, R.string.loading, true)
.exec(item.accountID);
}else if(id==R.id.mute_conversation){
new SetStatusConversationMuted(item.status.id, !item.status.muted)
.setCallback(new Callback<>(){
@Override
public void onSuccess(Status result){
// TODO snackbar?
item.status.muted=result.muted;
}
@Override
public void onError(ErrorResponse error){
error.showToast(activity);
}
})
.wrapProgress(activity, R.string.loading, true)
.exec(item.accountID);
}
return true;
});
@@ -314,6 +332,7 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
MenuItem follow=menu.findItem(R.id.follow);
MenuItem bookmark=menu.findItem(R.id.bookmark);
MenuItem pin=menu.findItem(R.id.pin);
MenuItem muteConversation=menu.findItem(R.id.mute_conversation);
if(item.status!=null){
bookmark.setVisible(true);
bookmark.setTitle(item.status.bookmarked ? R.string.remove_bookmark : R.string.add_bookmark);
@@ -340,6 +359,12 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
report.setTitle(item.parentFragment.getString(R.string.report_user, account.displayName));
follow.setTitle(item.parentFragment.getString(relationship!=null && relationship.following ? R.string.unfollow_user : R.string.follow_user, account.displayName));
}
if(item.status.muted!=null){
muteConversation.setVisible(isOwnPost || item.parentFragment instanceof NotificationsListFragment);
muteConversation.setTitle(item.status.muted ? R.string.unmute_conversation : R.string.mute_conversation);
}else{
muteConversation.setVisible(false);
}
menu.findItem(R.id.add_to_list).setVisible(relationship!=null && relationship.following);
}
}

View File

@@ -151,10 +151,12 @@ public abstract class StatusDisplayItem{
if(!imageAttachments.isEmpty()){
PhotoLayoutHelper.TiledLayoutResult layout=PhotoLayoutHelper.processThumbs(imageAttachments);
MediaGridStatusDisplayItem mediaGrid=new MediaGridStatusDisplayItem(parentID, fragment, layout, imageAttachments, statusForContent);
if((flags & FLAG_MEDIA_FORCE_HIDDEN)!=0)
if((flags & FLAG_MEDIA_FORCE_HIDDEN)!=0){
mediaGrid.sensitiveTitle=fragment.getString(R.string.media_hidden);
else if(statusForContent.sensitive && !AccountSessionManager.get(accountID).getLocalPreferences().hideSensitiveMedia)
mediaGrid.sensitiveRevealed=false;
}else if(statusForContent.sensitive && !AccountSessionManager.get(accountID).getLocalPreferences().hideSensitiveMedia){
mediaGrid.sensitiveRevealed=true;
}
contentItems.add(mediaGrid);
}
for(Attachment att:statusForContent.mediaAttachments){

View File

@@ -86,6 +86,7 @@ public class HtmlParser{
// Hashtags in remote posts have remote URLs, these have local URLs so they don't match.
// Map<String, String> tagsByUrl=tags.stream().collect(Collectors.toMap(t->t.url, t->t.name));
Map<String, Hashtag> tagsByTag=tags.stream().distinct().collect(Collectors.toMap(t->t.name.toLowerCase(), Function.identity()));
Map<String, Mention> mentionsByID=mentions.stream().distinct().collect(Collectors.toMap(m->m.id, Function.identity()));
final SpannableStringBuilder ssb=new SpannableStringBuilder();
Jsoup.parseBodyFragment(source).body().traverse(new NodeVisitor(){
@@ -115,6 +116,7 @@ public class HtmlParser{
if(id!=null){
linkType=LinkSpan.Type.MENTION;
href=id;
linkObject=mentionsByID.get(id);
}else{
linkType=LinkSpan.Type.URL;
}

View File

@@ -2,9 +2,12 @@ package org.joinmastodon.android.ui.text;
import android.content.Context;
import android.text.TextPaint;
import android.text.TextUtils;
import android.text.style.CharacterStyle;
import org.joinmastodon.android.api.session.AccountSessionManager;
import org.joinmastodon.android.model.Hashtag;
import org.joinmastodon.android.model.Mention;
import org.joinmastodon.android.ui.utils.UiUtils;
public class LinkSpan extends CharacterStyle {
@@ -39,7 +42,21 @@ public class LinkSpan extends CharacterStyle {
public void onClick(Context context){
switch(getType()){
case URL -> UiUtils.openURL(context, accountID, link, parentObject);
case MENTION -> UiUtils.openProfileByID(context, accountID, link);
case MENTION -> {
String username, domain;
if(linkObject instanceof Mention m && !TextUtils.isEmpty(m.acct)){
String[] parts=m.acct.split("@", 2);
username=parts[0];
if(parts.length==2){
domain=parts[1];
}else{
domain=AccountSessionManager.get(accountID).domain;
}
}else{
username=domain=null;
}
UiUtils.openProfileByID(context, accountID, link, username, domain);
}
case HASHTAG -> {
if(linkObject instanceof Hashtag ht)
UiUtils.openHashtagTimeline(context, accountID, ht);

View File

@@ -37,7 +37,7 @@ public class InsetStatusItemDecoration extends RecyclerView.ItemDecoration{
for(int i=0; i<parent.getChildCount(); i++){
View child=parent.getChildAt(i);
RecyclerView.ViewHolder holder=parent.getChildViewHolder(child);
pos=holder.getAbsoluteAdapterPosition();
pos=holder.getAbsoluteAdapterPosition()-listFragment.getMainAdapterOffset();
boolean inset=(holder instanceof StatusDisplayItem.Holder<?> sdi) && sdi.getItem().inset;
if(inset){
if(rect.isEmpty()){
@@ -82,7 +82,7 @@ public class InsetStatusItemDecoration extends RecyclerView.ItemDecoration{
RecyclerView.ViewHolder holder=parent.getChildViewHolder(view);
if(holder instanceof StatusDisplayItem.Holder<?> sdi){
boolean inset=sdi.getItem().inset;
int pos=holder.getAbsoluteAdapterPosition();
int pos=holder.getAbsoluteAdapterPosition()-listFragment.getMainAdapterOffset();
if(inset){
boolean topSiblingInset=pos>0 && displayItems.get(pos-1).inset;
boolean bottomSiblingInset=pos<displayItems.size()-1 && displayItems.get(pos+1).inset;

View File

@@ -26,8 +26,6 @@ import android.os.SystemClock;
import android.os.ext.SdkExtensions;
import android.provider.MediaStore;
import android.provider.OpenableColumns;
import android.system.ErrnoException;
import android.system.Os;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextUtils;
@@ -37,7 +35,6 @@ import android.transition.ChangeScroll;
import android.transition.Fade;
import android.transition.TransitionManager;
import android.transition.TransitionSet;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -47,17 +44,14 @@ import android.view.ViewGroup;
import android.view.WindowInsets;
import android.webkit.MimeTypeMap;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.PopupMenu;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.Toolbar;
import org.joinmastodon.android.E;
import org.joinmastodon.android.FileProvider;
import org.joinmastodon.android.GlobalUserPreferences;
import org.joinmastodon.android.MainActivity;
import org.joinmastodon.android.MastodonApp;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.requests.accounts.SetAccountBlocked;
@@ -359,9 +353,17 @@ public class UiUtils{
}
public static void openProfileByID(Context context, String selfID, String id){
openProfileByID(context, selfID, id, null, null);
}
public static void openProfileByID(Context context, String selfID, String id, String username, String domain){
Bundle args=new Bundle();
args.putString("account", selfID);
args.putString("profileAccountID", id);
if(username!=null && domain!=null){
args.putString("accountUsername", username);
args.putString("accountDomain", domain);
}
Nav.go((Activity)context, ProfileFragment.class, args);
}
@@ -590,7 +592,7 @@ public class UiUtils{
}else{
Runnable action=()->{
progressCallback.accept(true);
new SetAccountFollowed(account.id, !relationship.following && !relationship.requested, true)
new SetAccountFollowed(account.id, !relationship.following && !relationship.requested, true, false)
.setCallback(new Callback<>(){
@Override
public void onSuccess(Relationship result){

View File

@@ -0,0 +1,60 @@
package org.joinmastodon.android.ui.viewcontrollers;
import android.content.Context;
import android.view.View;
import org.joinmastodon.android.R;
import org.joinmastodon.android.model.viewmodel.ListItem;
import org.joinmastodon.android.ui.BetterItemAnimator;
import org.joinmastodon.android.ui.DividerItemDecoration;
import org.joinmastodon.android.ui.adapters.GenericListItemsAdapter;
import org.joinmastodon.android.ui.viewholders.CheckableListItemViewHolder;
import org.joinmastodon.android.ui.viewholders.ListItemViewHolder;
import org.joinmastodon.android.ui.viewholders.SimpleListItemViewHolder;
import java.util.List;
import androidx.recyclerview.widget.LinearLayoutManager;
import me.grishka.appkit.views.UsableRecyclerView;
public class GenericListItemsViewController<T>{
private UsableRecyclerView list;
private List<ListItem<T>> items;
private GenericListItemsAdapter<T> adapter;
private Context context;
public GenericListItemsViewController(Context context, List<ListItem<T>> items){
this.context=context;
setItems(items);
}
public GenericListItemsViewController(Context context){
this.context=context;
}
public void setItems(List<ListItem<T>> items){
if(this.items!=null)
throw new IllegalStateException("items already set");
this.items=items;
adapter=new GenericListItemsAdapter<>(items);
list=new UsableRecyclerView(context);
list.setLayoutManager(new LinearLayoutManager(context));
list.setAdapter(adapter);
list.addItemDecoration(new DividerItemDecoration(context, R.attr.colorM3OutlineVariant, 1, 16, 16, vh->(vh instanceof SimpleListItemViewHolder ivh && ivh.getItem().dividerAfter) || (vh instanceof CheckableListItemViewHolder cvh && cvh.getItem().dividerAfter)));
list.setItemAnimator(new BetterItemAnimator());
}
public GenericListItemsAdapter<T> getAdapter(){
return adapter;
}
public View getView(){
return list;
}
public void rebindItem(ListItem<?> item){
if(list.findViewHolderForAdapterPosition(items.indexOf(item)) instanceof ListItemViewHolder<?> holder){
holder.rebind();
}
}
}

View File

@@ -3,8 +3,6 @@ package org.joinmastodon.android.ui.viewholders;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Fragment;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.Drawable;
@@ -15,7 +13,6 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageButton;
import android.widget.ImageView;
@@ -254,7 +251,7 @@ public class AccountViewHolder extends BindableViewHolder<AccountViewModel> impl
bindRelationship();
}, this::updateRelationship);
}else if(id==R.id.hide_boosts){
new SetAccountFollowed(account.id, true, !relationship.showingReblogs)
new SetAccountFollowed(account.id, true, !relationship.showingReblogs, relationship.notifying)
.setCallback(new Callback<>(){
@Override
public void onSuccess(Relationship result){

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?colorM3OnSurfaceVariant" android:state_enabled="true"/>
<item android:color="?colorM3OnSurfaceVariant" android:alpha="0.38"/>
<item android:color="?colorM3OnSurface" android:alpha="0.38"/>
</selector>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="?colorM3Primary"/>
<corners android:radius="100dp"/>
<stroke android:color="?colorM3Background" android:width="1dp"/>
</shape>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:fillColor="@android:color/white"
android:pathData="M9.25,16V6.875L5.062,11.062L4,10L10,4L16,10L14.938,11.062L10.75,6.875V16Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<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="M9.55,18.8 L3.05,12.3 5.3,10.05 9.55,14.3 18.7,5.15 20.95,7.4Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:fillColor="@android:color/white"
android:pathData="M10,16.583Q11.125,16.583 12.135,16.26Q13.146,15.938 14.021,15.271Q12.229,14.604 10.865,13.427Q9.5,12.25 8.656,10.74Q7.812,9.229 7.542,7.448Q7.271,5.667 7.667,3.812Q5.771,4.5 4.594,6.177Q3.417,7.854 3.417,10Q3.417,12.75 5.333,14.667Q7.25,16.583 10,16.583ZM10,18.333Q8.271,18.333 6.75,17.677Q5.229,17.021 4.104,15.896Q2.979,14.771 2.323,13.25Q1.667,11.729 1.667,10Q1.667,7 3.635,4.729Q5.604,2.458 8.521,1.854Q9.208,1.708 9.51,2.135Q9.812,2.562 9.562,3.312Q9.021,5 9.198,6.708Q9.375,8.417 10.177,9.875Q10.979,11.333 12.323,12.406Q13.667,13.479 15.438,13.917Q16.208,14.104 16.427,14.594Q16.646,15.083 16.167,15.604Q15.021,16.896 13.438,17.615Q11.854,18.333 10,18.333Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<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="M6.725,21.85Q5.4,21.85 4.488,20.938Q3.575,20.025 3.575,18.7V6.275H2V3.125H8.425V1.55H15.525V3.125H22V6.275H20.425V18.7Q20.425,20.025 19.513,20.938Q18.6,21.85 17.275,21.85ZM17.275,6.275H6.725V18.7Q6.725,18.7 6.725,18.7Q6.725,18.7 6.725,18.7H17.275Q17.275,18.7 17.275,18.7Q17.275,18.7 17.275,18.7ZM8.55,16.975H11.125V7.975H8.55ZM12.875,16.975H15.45V7.975H12.875ZM6.725,6.275V18.7Q6.725,18.7 6.725,18.7Q6.725,18.7 6.725,18.7Q6.725,18.7 6.725,18.7Q6.725,18.7 6.725,18.7Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<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="M3,20V8.7Q2.575,8.425 2.288,8Q2,7.575 2,7V4Q2,3.175 2.588,2.587Q3.175,2 4,2H20Q20.825,2 21.413,2.587Q22,3.175 22,4V7Q22,7.575 21.712,8Q21.425,8.425 21,8.7V20Q21,20.825 20.413,21.413Q19.825,22 19,22H5Q4.175,22 3.587,21.413Q3,20.825 3,20ZM5,9V20Q5,20 5,20Q5,20 5,20H19Q19,20 19,20Q19,20 19,20V9ZM20,7Q20,7 20,7Q20,7 20,7V4Q20,4 20,4Q20,4 20,4H4Q4,4 4,4Q4,4 4,4V7Q4,7 4,7Q4,7 4,7ZM9,14H15V12H9ZM5,20Q5,20 5,20Q5,20 5,20V9V20Q5,20 5,20Q5,20 5,20Z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<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="M3,19V17H9V19ZM3,7V5H13V7ZM11,21V15H13V17H21V19H13V21ZM7,15V13H3V11H7V9H9V15ZM11,13V11H21V13ZM15,9V3H17V5H21V7H17V9Z"/>
</vector>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="24dp">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?android:windowTitleStyle"
tools:text="Title"/>
</LinearLayout>

View File

@@ -15,9 +15,7 @@
android:paddingRight="16dp"
android:paddingTop="16dp"
android:paddingBottom="8dp"
android:lineSpacingExtra="6dp"
android:lineHeight="25sp"
android:textAppearance="@style/m3_body_large"/>
android:lineSpacingExtra="5.25dp"/>
<ViewStub
android:id="@+id/translation_info"

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/m3_headline_small"
android:textColor="?colorM3OnSurface"
android:paddingHorizontal="16dp"
android:paddingBottom="24dp"
android:paddingTop="4dp"
android:maxLines="2"
android:ellipsize="end"
tools:text="Very long title that does not fit on one line"/>

View File

@@ -32,7 +32,7 @@
android:id="@+id/cover"
android:layout_width="match_parent"
android:layout_height="144dp"
android:background="#808080"
android:background="@drawable/image_placeholder"
android:contentDescription="@string/profile_header"
android:scaleType="centerCrop" />
@@ -134,6 +134,14 @@
</RelativeLayout>
<ProgressBar
android:id="@+id/profile_progress"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:visibility="gone"/>
<org.joinmastodon.android.ui.views.LinkedTextView
android:id="@+id/bio"
android:layout_width="match_parent"
@@ -284,6 +292,7 @@
</org.joinmastodon.android.ui.views.FloatingHintEditTextLayout>
<LinearLayout
android:id="@+id/profile_actions"
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="horizontal"

View File

@@ -42,17 +42,17 @@
<Button
android:id="@+id/new_posts_btn"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_margin="16dp"
android:layout_height="36dp"
android:layout_margin="8dp"
android:background="@drawable/round_rect"
android:backgroundTint="?colorM3Primary"
android:paddingHorizontal="16dp"
android:paddingHorizontal="12dp"
android:paddingVertical="0dp"
android:textAppearance="@style/m3_label_large"
android:textColor="?colorM3OnPrimary"
android:drawableStart="@drawable/ic_arrow_upward_24px"
android:drawableStart="@drawable/ic_arrow_upward_20px"
android:drawableTint="?colorM3OnPrimary"
android:drawablePadding="8dp"
android:drawablePadding="4dp"
android:elevation="@dimen/m3_sys_elevation_level4"
android:stateListAnimator="@animator/squish"
android:text="@string/see_new_posts"/>

View File

@@ -0,0 +1,83 @@
<?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:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="16dp">
<ImageView
android:id="@+id/ava"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginVertical="20dp"
android:layout_marginEnd="12dp"
android:importantForAccessibility="no"
tools:src="#0f0"/>
<TextView
android:id="@+id/badge"
android:layout_width="wrap_content"
android:layout_height="16dp"
android:layout_alignEnd="@id/ava"
android:layout_alignBottom="@id/ava"
android:layout_marginEnd="-4dp"
android:layout_marginBottom="-4dp"
android:minWidth="16dp"
android:gravity="center"
android:background="@drawable/bg_ava_badge"
android:paddingHorizontal="4dp"
android:textAppearance="@style/m3_label_small"
android:textColor="?colorM3OnPrimary"
tools:text="99+"/>
<ImageButton
android:id="@+id/btn_allow"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="12dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
style="@style/Widget.Mastodon.M3.Button.Outlined"
android:contentDescription="@string/allow_notifications"
android:src="@drawable/ic_check_24px"/>
<ImageButton
android:id="@+id/btn_mute"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="12dp"
android:layout_toStartOf="@id/btn_allow"
android:layout_centerVertical="true"
style="@style/Widget.Mastodon.M3.Button.Outlined"
android:contentDescription="@string/mute_notifications"
android:src="@drawable/ic_delete_24px"/>
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="24dp"
android:layout_toEndOf="@id/ava"
android:layout_toStartOf="@id/btn_mute"
android:layout_marginTop="14dp"
android:singleLine="true"
android:ellipsize="end"
android:textAppearance="@style/m3_body_large"
android:gravity="center_vertical"
android:textColor="?colorM3OnSurface"
tools:text="User Name"/>
<TextView
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_below="@id/name"
android:layout_toEndOf="@id/ava"
android:layout_toStartOf="@id/btn_mute"
android:singleLine="true"
android:ellipsize="end"
android:textAppearance="@style/m3_body_medium"
android:gravity="center_vertical"
android:textColor="?colorM3OnSurfaceVariant"
tools:text="\@username@domain"/>
</RelativeLayout>

View File

@@ -7,43 +7,6 @@
android:paddingTop="8dp"
android:paddingHorizontal="8dp">
<org.joinmastodon.android.ui.views.CheckableLinearLayout
android:id="@+id/multiple_choice"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginHorizontal="8dp"
android:orientation="vertical"
android:paddingTop="8dp"
android:background="@drawable/bg_rect_4dp_ripple"
android:gravity="center_horizontal">
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/poll_multiple"
android:duplicateParentState="true"
android:importantForAccessibility="no"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:textAppearance="@style/m3_title_small"
android:textColor="?colorM3OnSurface"
android:text="@string/compose_poll_multiple_choice"/>
<FrameLayout
android:layout_width="48dp"
android:layout_height="48dp"
android:duplicateParentState="true">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:clickable="false"
android:focusable="false"
android:duplicateParentState="true"/>
</FrameLayout>
</org.joinmastodon.android.ui.views.CheckableLinearLayout>
<org.joinmastodon.android.ui.views.CheckableLinearLayout
android:id="@+id/single_choice"
android:layout_width="0dp"
@@ -81,4 +44,41 @@
</FrameLayout>
</org.joinmastodon.android.ui.views.CheckableLinearLayout>
<org.joinmastodon.android.ui.views.CheckableLinearLayout
android:id="@+id/multiple_choice"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginHorizontal="8dp"
android:orientation="vertical"
android:paddingTop="8dp"
android:background="@drawable/bg_rect_4dp_ripple"
android:gravity="center_horizontal">
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/poll_multiple"
android:duplicateParentState="true"
android:importantForAccessibility="no"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:textAppearance="@style/m3_title_small"
android:textColor="?colorM3OnSurface"
android:text="@string/compose_poll_multiple_choice"/>
<FrameLayout
android:layout_width="48dp"
android:layout_height="48dp"
android:duplicateParentState="true">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:clickable="false"
android:focusable="false"
android:duplicateParentState="true"/>
</FrameLayout>
</org.joinmastodon.android.ui.views.CheckableLinearLayout>
</LinearLayout>

View File

@@ -56,6 +56,7 @@
android:layout_marginHorizontal="16dp"
android:textAppearance="@style/m3_body_large"
android:textColor="?colorM3OnSurface"
android:textIsSelectable="true"
tools:text="A cute black cat"/>
</LinearLayout>

View File

@@ -2,6 +2,8 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/vis_public"
android:title="@string/visibility_public"/>
<item android:id="@+id/vis_unlisted"
android:title="@string/visibility_unlisted"/>
<item android:id="@+id/vis_followers"
android:title="@string/visibility_followers_only"/>
<item android:id="@+id/vis_private"

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/mute"
android:title="@string/mute_notifications"
android:icon="@drawable/ic_delete_24px"
android:checkable="true"
android:showAsAction="always"/>
<item
android:id="@+id/allow"
android:title="@string/allow_notifications"
android:icon="@drawable/ic_check_24px"
android:checkable="true"
android:showAsAction="always"/>
</menu>

View File

@@ -1,4 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/mark_all_read" android:icon="@drawable/ic_done_all_24px" android:title="@string/mark_all_notifications_read" android:showAsAction="always"/>
<item
android:id="@+id/mark_all_read"
android:icon="@drawable/ic_done_all_24px"
android:showAsAction="always"
android:title="@string/mark_all_notifications_read" />
<item
android:id="@+id/filters"
android:icon="@drawable/ic_tune_24px"
android:showAsAction="always"
android:title="@string/filter_notifications"/>
</menu>

View File

@@ -9,6 +9,7 @@
<item android:id="@+id/copy_link" android:title="@string/fallback_menu_item_copy_link"/>
<item android:id="@+id/edit" android:title="@string/edit"/>
<item android:id="@+id/delete" android:title="@string/delete"/>
<item android:id="@+id/mute_conversation" android:title="@string/mute_conversation"/>
</group>
<group android:id="@+id/menu_group2">
<item android:id="@+id/add_to_list" android:title="@string/add_user_to_list"/>

View File

@@ -1,5 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/notifications"
android:icon="@drawable/ic_tab_notifications"
android:showAsAction="always"
android:visible="false"
tools:ignore="MenuTitle" />
<group android:orderInCategory="1" android:id="@+id/menu_group1">
<item android:id="@+id/share" android:title="@string/share_user"/>
<item android:id="@+id/copy_link" android:title="@string/copy_profile_link"/>

View File

@@ -0,0 +1 @@
unqualifiedResLocale=en-US

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">تسجيلُ الدخول</string>
<string name="next">التالي</string>
<string name="loading_instance">جارٍ جلب معلومات الخادم…</string>
@@ -707,4 +707,5 @@
<string name="list_find_users">البحث عن مستخدمين للإضافة</string>
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Увайсці</string>
<string name="next">Далей</string>
<string name="loading_instance">Атрыманне інфармацыі аб серверы…</string>
@@ -35,10 +35,13 @@
<item quantity="other">падпісаны</item>
</plurals>
<string name="posts">Допісы</string>
<string name="posts_and_replies">Допісы і адказы</string>
<string name="media">Медыя</string>
<string name="profile_about">Інфармацыя</string>
<string name="button_follow">Падпісацца</string>
<string name="button_following">Вы падпісаны</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>
@@ -165,7 +168,9 @@
<string name="report_personal_subtitle">Вось вашыя варыянты кантролю над тым, што вы бачыце в Mastodon:</string>
<string name="back">Назад</string>
<string name="search_communities">Назва сервера або URL</string>
<string name="instance_rules_title">Правілы сервера</string>
<string name="instance_rules_subtitle">Працягваючы, вы згаджаецеся выконваць правілы, устаноўленыя мадэратарам %s.</string>
<string name="signup_title">Стварыць уліковы запіс</string>
<string name="display_name">Імя</string>
<string name="username">Імя карыстальніка</string>
<string name="email">Электронная пошта</string>
@@ -173,6 +178,7 @@
<string name="confirm_password">Пацвердзіць пароль</string>
<string name="password_note">Выкарыстоўвайце вялікія літары, спецыяльныя сімвалы і лічбы, каб павялічыць надзейнасць пароля.</string>
<string name="category_general">Асноўныя</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>
@@ -209,6 +215,7 @@
<string name="theme_dark">Цёмная</string>
<string name="settings_behavior">Паводзіны</string>
<string name="settings_gif">Прайграваць аніміраваныя аватары і эмодзі</string>
<string name="settings_custom_tabs">Адкрываць спасылкі ў</string>
<string name="settings_notifications">Апавяшчэнні</string>
<string name="settings_contribute">Унесці ўклад у Mastodon</string>
<string name="settings_tos">Умовы выкарыстання</string>
@@ -237,6 +244,8 @@
<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">Схаваць пашырэнні</string>
<string name="show_boosts_from_user">Паказаць пашырэнні</string>
<string name="signup_reason">Чаму вы хочаце далучыцца?</string>
<string name="signup_reason_note">Гэта дапаможа нам разгледзець вашу заяўку.</string>
<string name="clear">Ачысціць</string>
@@ -259,6 +268,7 @@
<string name="recommended_accounts_info_banner">Вам могуць спадабацца гэтыя ўліковыя запісы на аснове вашых падпісак.</string>
<string name="see_new_posts">Новыя допісы</string>
<string name="load_missing_posts">Загрузіць адсутныя допісы</string>
<string name="follow_back">Падпісацца ў адказ</string>
<string name="button_follow_pending">Чакаюць</string>
<string name="follows_you">Падпісаны(-а) на вас</string>
<string name="manually_approves_followers">Уручную пацвярджае падпісчыкаў</string>
@@ -329,15 +339,23 @@
<!-- %s is file size -->
<string name="download_update">Спампаваць (%s)</string>
<string name="install_update">Усталяваць</string>
<string name="privacy_policy_title">Ваша прыватнасць</string>
<string name="privacy_policy_subtitle">Нягледзячы на ​​тое, што праграма Mastodon не збірае даных, сервер, на якім вы рэгіструецеся, можа мець іншую палітыку.\n\nКалі вы адмовіцеся ад палітыкі %s, вы можаце вярнуцца і выбраць іншы сервер.</string>
<string name="i_agree">Прыняць</string>
<string name="empty_list">Гэты ліст пусты</string>
<string name="instance_signup_closed">Гэты сервер не прымае новыя рэгістрацыі.</string>
<string name="text_copied">Скапіявана ў буфер абмену</string>
<string name="add_bookmark">Закладка</string>
<string name="remove_bookmark">Выдаліць закладку</string>
<string name="bookmarks">Закладкі</string>
<string name="your_favorites">Вашыя ўпадабанні</string>
<string name="login_title">З вяртаннем</string>
<string name="login_subtitle">Увайдзіце з дапамогай сервера, на якім вы стварылі свой уліковы запіс.</string>
<string name="server_url">URL-адрас сервера</string>
<string name="server_filter_any_language">Любая мова</string>
<string name="server_filter_instant_signup">Імгненная рэгістрацыя</string>
<string name="server_filter_manual_review">Ручная праверка</string>
<string name="server_filter_any_signup_speed">Любая хуткасць рэгістрацыі</string>
<string name="server_filter_region_europe">Еўропа</string>
<string name="server_filter_region_north_america">Паўночная Амерыка</string>
<string name="server_filter_region_south_america">Паўднёвая Амерыка</string>
@@ -345,6 +363,7 @@
<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="profile_add_row">Дадаць радок</string>
<string name="profile_setup">Налады профілю</string>
@@ -637,6 +656,7 @@
<string name="remove">Выдаліць</string>
<string name="add_list_member">Дадаць удзельніка</string>
<string name="search_among_people_you_follow">Шукайце сярод людзей, на якіх Вы падпісаны</string>
<string name="add_user_to_list">Дадаць/выдаліць са спісаў…</string>
<string name="add_user_to_list_title">Дадаць да спісу</string>
<!-- %s is a username -->
<string name="manage_user_lists">Кіраваць спісамі з %s</string>
@@ -737,5 +757,31 @@
<string name="what_is_activitypub_title">Што такое ActivityPub?</string>
<string name="what_is_activitypub">ActivityPub - гэта мова, на якой Mastodon размаўляе з іншымі сацыяльнымі сеткамі.\n\nГэта дазваляе вам звязвацца і ўзаемадзейнічаць з людзьмі не толькі ў Mastodon, але і ў розных сацыяльных праграмах.</string>
<string name="handle_copied">Ідэнтыфікатар карыстальніка скапіяваны ў буфер абмену.</string>
<string name="qr_code">QR-код</string>
<string name="scan_qr_code">Сканіраваць QR-код</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
<string name="saved">Захавана</string>
<string name="image_saved">Выява захаваная.</string>
<string name="video_saved">Відэа захавана.</string>
<string name="view_file">Паглядзець</string>
<string name="share_sheet_preview_profile">%s у Mastodon</string>
<string name="share_sheet_preview_post">%1$s у Mastodon “%2$s”</string>
<string name="copy_profile_link">Скапіраваць спасылку на профіль</string>
<string name="in_app_browser">Убудаваны браўзер</string>
<string name="system_browser">Сістэмны браўзер</string>
<string name="add_muted_word_short">Дадаць слова</string>
<string name="tab_home">Галоўная</string>
<string name="tab_search">Агляд</string>
<string name="tab_profile">Профіль</string>
<string name="pin_post">Замацаваць у профілі</string>
<string name="unpin_post">Адмацаваць ад профілю</string>
<string name="post_pinned">Допіс быў замацаваны</string>
<string name="post_unpinned">Допіс была адмацаваны</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">Апавяшчаць мяне пра допісы %s</string>
<string name="disable_new_post_notifications">Не паведамляць мне пра допісы %s</string>
<string name="new_post_notifications_enabled">Вы будзеце атрымліваць апавяшчэнні аб новых допісах.</string>
<string name="new_post_notifications_disabled">Вы больш не будзеце атрымліваць апавяшчэнні аб новых допісах.</string>
<string name="mute_conversation">Ігнараваць размову</string>
<string name="unmute_conversation">Не ігнараваць размову</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">লগ ইন করুন</string>
<string name="next">এরপর</string>
<string name="loading_instance">সার্ভারের তথ্য পুনরূদ্ধার করা হচ্ছে…</string>
@@ -189,4 +189,5 @@
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Loguj se</string>
<string name="next">Dalje</string>
<string name="error">Greška</string>
@@ -162,4 +162,5 @@
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Inicia sessió</string>
<string name="next">Següent</string>
<string name="loading_instance">S\'està recuperant la informació del servidor…</string>
@@ -279,4 +279,5 @@
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Přihlásit se</string>
<string name="next">Další</string>
<string name="loading_instance">Načítání informací o serveru…</string>
@@ -773,4 +773,5 @@
<string name="tab_home">Domů</string>
<string name="tab_search">Prozkoumat</string>
<string name="tab_profile">Profil</string>
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Log ind</string>
<string name="next">Næste</string>
<string name="loading_instance">Henter serverinfo…</string>
@@ -461,4 +461,5 @@
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Anmelden</string>
<string name="next">Weiter</string>
<string name="loading_instance">Server-Informationen werden abgerufen …</string>
@@ -614,4 +614,5 @@
<string name="saved">Gespeichert</string>
<string name="image_saved">Bild gespeichert.</string>
<string name="video_saved">Video gespeichert.</string>
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Σύνδεση</string>
<string name="next">Επόμενο</string>
<string name="loading_instance">Ανάκτηση πληροφοριών διακομιστή…</string>
@@ -686,7 +686,7 @@
<string name="handle_server_explanation">Το ψηφιακό τους σπίτι, όπου ζουν όλες οι αναρτήσεις τους.</string>
<string name="handle_explanation">Από τη στιγμή που τα handles λένε ποιος είναι κάποιος και πού είναι, μπορείς να αλληλεπιδράσεις με τους ανθρώπους απ\' όλο τον κοινωνικό ιστό των &lt;a&gt; πλατφορμών που στηρίζονται στο ActivityPub&lt;/a&gt;.</string>
<string name="handle_server_explanation_own">Το ψηφιακό σπίτι σου, όπου ζουν όλες οι αναρτήσεις σου. Δεν σ\' αρέσει αυτός; Μετακινήσου σε διακομιστές ανά πάσα στιγμή και φέρε και τους ακόλουθούς σου.</string>
<string name="handle_explanation_own">Επειδή το handle σου λέει ποιος είσαι και πού βρίσκεσαι, οι άνθρωποι μπορούν να αλληλεπιδράσουν μαζί σας στον κοινωνικό ιστό των &lt;a&gt;πλατφορμών που στηρίζονται στο ActivityPub&lt;/a&gt;.</string>
<string name="handle_explanation_own">Επειδή το handle σου λέει ποιος είσαι και πού βρίσκεσαι, οι άνθρωποι μπορούν να αλληλεπιδράσουν μαζί σou στον κοινωνικό ιστό των &lt;a&gt;πλατφορμών που στηρίζονται στο ActivityPub&lt;/a&gt;.</string>
<string name="what_is_activitypub_title">Τί είναι το ActivityPub;</string>
<string name="what_is_activitypub">Το ActivityPub είναι σαν τη γλώσσα που μιλάει το Mastodon με άλλα κοινωνικά δίκτυα.\n\nΣου επιτρέπει να συνδεθείς και να αλληλεπιδράσεις με ανθρώπους όχι μόνο στο Mastodon, αλλά και σε διαφορετικές κοινωνικές εφαρμογές.</string>
<string name="handle_copied">Το handle αντιγράφηκε στο πρόχειρο.</string>
@@ -706,4 +706,34 @@
<string name="tab_home">Αρχική</string>
<string name="tab_search">Εξερεύνηση</string>
<string name="tab_profile">Προφίλ</string>
<string name="pin_post">Καρφίτσωμα στο προφίλ</string>
<string name="unpin_post">Ξεκαρφίτσωμα από το προφίλ</string>
<string name="post_pinned">Η ανάρτηση καρφιτσώθηκε</string>
<string name="post_unpinned">Η ανάρτηση ξεκαρφιτσώθηκε</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">Ειδοποίησέ με όταν δημοσιεύει ο @%s</string>
<string name="disable_new_post_notifications">Σταμάτα να με ειδοποιείς όταν δημοσιεύει ο @%s</string>
<string name="new_post_notifications_enabled">Θα λάβεις ειδοποιήσεις για νέες αναρτήσεις.</string>
<string name="new_post_notifications_disabled">Δε θα λαμβάνεις πλέον ειδοποιήσεις για νέες αναρτήσεις.</string>
<string name="mute_conversation">Σίγαση συνομιλίας</string>
<string name="unmute_conversation">Αναίρεση σίγασης συνομιλίας</string>
<string name="visibility_unlisted">Ήσυχη δημόσια</string>
<string name="filtered_notifications">Φιλτραρισμένες ειδοποιήσεις</string>
<string name="filter_notifications">Φιλτράρισμα ειδοποιήσεων από...</string>
<string name="notification_filter_following">Άνθρωποι που δεν ακολουθείς</string>
<string name="notification_filter_following_explanation">Μέχρι να τους εγκρίνεις χειροκίνητα</string>
<string name="notification_filter_followers">Άτομα που δε σε ακολουθούν</string>
<string name="notification_filter_followers_explanation">Συμπεριλαμβανομένων των ατόμων που σ\' έχουν ακολουθήσει λιγότερο από 3 ημέρες</string>
<string name="notification_filter_new_accounts">Νέοι λογαριασμοί</string>
<string name="notification_filter_new_accounts_explanation">Δημιουργήθηκαν μέσα στις τελευταίες 30 ημέρες</string>
<string name="notification_filter_mentions">Μη συναινετικές ιδιωτικές αναφορές</string>
<string name="notification_filter_mentions_explanation">Φιλτράρισμα εκτός αν είναι σε απάντηση στη δική σου αναφορά ή αν ακολουθείς τον αποστολέα</string>
<string name="allow_notifications">Να επιτρέπονται οι ειδοποιήσεις</string>
<string name="mute_notifications">Απόρριψη αιτήματος ειδοποίησης</string>
<plurals name="x_people_you_may_know">
<item quantity="one">%,d άτομο που μπορεί να ξέρεις</item>
<item quantity="other">%,d άτομα που μπορεί να γνωρίζεις</item>
</plurals>
<string name="notifications_from_user">Ειδοποιήσεις από %s</string>
<string name="notifications_muted">Οι ειδοποιήσεις από %s έχουν απορριφθεί.</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Iniciar sesión</string>
<string name="next">Siguiente</string>
<string name="loading_instance">Recuperando información del servidor…</string>
@@ -656,4 +656,5 @@ Mientras más personas sigas, más activo e interesante será.</string>
<string name="server_can_interact_with_older">Las personas de este servidor pueden interactuar con tus mensajes antiguos.</string>
<string name="unblocked_domain_x">El dominio %s ya no está bloqueado</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Hasi saioa</string>
<string name="next">Hurrengoa</string>
<string name="loading_instance">Zerbitzariaren informazioa berreskuratzen…</string>
@@ -711,4 +711,31 @@ Zenbat eta jende gehiago jarraitu, orduan eta aktiboagoa eta interesgarriagoa iz
<string name="unpin_post">Desfinkatu profiletik</string>
<string name="post_pinned">Bidalketa finkatu da</string>
<string name="post_unpinned">Bidalketa desfinkatu da</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">Jakinarazi %s erabiltzaileak argitaratzean</string>
<string name="disable_new_post_notifications">Utzi jakinarazteari %s erabiltzaileak argitaratzean</string>
<string name="new_post_notifications_enabled">Bidalketa berrien jakinarazpenak jasoko dituzu.</string>
<string name="new_post_notifications_disabled">Ez duzu bidalketa berrien jakinarazpenak jasoko.</string>
<string name="mute_conversation">Mututu elkarrizketa</string>
<string name="unmute_conversation">Desmututu elkarrizketa</string>
<string name="visibility_unlisted">Deiadar urrikoa</string>
<string name="filtered_notifications">Iragazitako jakinarazpenak</string>
<string name="filter_notifications">Ez iragazi hemengo jakinarazpenak...</string>
<string name="notification_filter_following">Jarraitzen ez duzun jendea</string>
<string name="notification_filter_following_explanation">Eskuz onartzen dituzun arte</string>
<string name="notification_filter_followers">Jarraitzen ez zaituen jendea</string>
<string name="notification_filter_followers_explanation">3 egun baino gutxiagoz jarraitu dizuten pertsonak barne</string>
<string name="notification_filter_new_accounts">Kontu berriak</string>
<string name="notification_filter_new_accounts_explanation">Azken 30 egunetan sortua</string>
<string name="notification_filter_mentions">Eskatu gabeko aipamen pribatuak</string>
<string name="notification_filter_mentions_explanation">Iragazita, baldin eta zure aipamenaren erantzuna bada edo bidaltzailea jarraitzen baduzu</string>
<string name="allow_notifications">Baimendu jakinarazpenak</string>
<string name="mute_notifications">Baztertu jakinarazpen-eskaera</string>
<plurals name="x_people_you_may_know">
<item quantity="one">Ezagutu dezakezun pertsona %,d</item>
<item quantity="other">Ezagutu ditzakezun %,d pertsona</item>
</plurals>
<string name="notifications_from_user">%s erabiltzailearen jakinarazpenak</string>
<string name="notifications_muted">%s(r)en jakinarazpenak baztertu dira.</string>
<string name="notifications_allowed">%s jakinarazpen-zerrendan agertuko da orain.</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">ورود</string>
<string name="next">بعدی</string>
<string name="loading_instance">درحال بازیابی اطلاعات سرور…</string>
@@ -24,17 +24,20 @@
<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>
<item quantity="other">پی‌گرفته</item>
</plurals>
<string name="posts">فرسته‌ها</string>
<string name="posts_and_replies">فرسته‌ها و پاسخ‌ها</string>
<string name="media">رسانه</string>
<string name="profile_about">درباره</string>
<string name="button_follow">پی‌گیری</string>
<string name="button_following">پی می‌گیرید</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>
@@ -141,7 +144,9 @@
<string name="report_personal_subtitle">در اینجا گزینه‌هایی برای کنترل آنچه در ماستودون میبینید، وجود دارد:</string>
<string name="back">بازگشت</string>
<string name="search_communities">نام کارساز یا نشانی</string>
<string name="instance_rules_title">قوانین کارساز</string>
<string name="instance_rules_subtitle">با ادامه دادن، موافقت می‌کنید که از قوانین زیر پیروی کنید که توسط ناظران %s تنظیم و اجرا شده است.</string>
<string name="signup_title">ایجاد حساب</string>
<string name="display_name">نام</string>
<string name="username">نام کاربری</string>
<string name="email">رایانامه</string>
@@ -149,6 +154,7 @@
<string name="confirm_password">تأیید گذرواژه</string>
<string name="password_note">برای افزایش قدرت گذرواژه خود، حروف بزرگ، کاراکترهای خاص و اعداد را اضافه کنید.</string>
<string name="category_general">عمومی</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>
@@ -160,7 +166,7 @@
<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>
@@ -183,6 +189,7 @@
<string name="theme_dark">تاریک</string>
<string name="settings_behavior">رفتار</string>
<string name="settings_gif">پخش ایموجی و آواتار های متحرک</string>
<string name="settings_custom_tabs">باز کردن پیوند در</string>
<string name="settings_notifications">آگاهی‌ها</string>
<string name="settings_contribute">کمک به ماستودون</string>
<string name="settings_tos">شرایط استفاده از خدمات</string>
@@ -211,6 +218,8 @@
<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">نهفتن تقویت‌ها</string>
<string name="show_boosts_from_user">نمایش تقویت‌ها</string>
<string name="signup_reason">چرا می‌خواهید عضو شوید؟</string>
<string name="signup_reason_note">این برای بررسی درخواست شما به ما کمک خواهد کرد.</string>
<string name="clear">پاک‌کردن</string>
@@ -233,17 +242,18 @@
<string name="recommended_accounts_info_banner">ممکن است این حساب‌ها را بر اساس حساب‌های دیگری که پی می‌گیرید بپسندید.</string>
<string name="see_new_posts">فرسته‌های جدید</string>
<string name="load_missing_posts">بارگذاری فرسته‌های گم شده</string>
<string name="follow_back">پیگیری متقابل</string>
<string name="button_follow_pending">منتظر</string>
<string name="follows_you">پی‌گیرتان است</string>
<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="one">%,d پی‌گیر</item>
<item quantity="other">%,d پی‌گیرندگان</item>
<item quantity="other">%,d پی‌گیرنده</item>
</plurals>
<plurals name="x_following">
<item quantity="one">%,d پی‌گیرنده</item>
<item quantity="other">%,d پی‌گیرنده</item>
<item quantity="one">%,d پی‌گرفته</item>
<item quantity="other">%,d پی‌گرفته</item>
</plurals>
<plurals name="x_favorites">
<item quantity="one">%,d برگزیده</item>
@@ -291,15 +301,23 @@
<!-- %s is file size -->
<string name="download_update">بارگیری (%s)</string>
<string name="install_update">نصب</string>
<string name="privacy_policy_title">حریم خصوصی شما</string>
<string name="privacy_policy_subtitle">اگرچه برنامه ماستودون هیچ داده ای را جمع‌آوری نمی کند، کارسازی که از طریق آن ثبت نام می کنید ممکن است خط مشی متفاوتی داشته باشد.\n\nاگر با خط مشی %s موافق نیستید، می توانید به عقب برگردید و سرور دیگری را انتخاب کنید.</string>
<string name="i_agree">می‌پذیرم</string>
<string name="empty_list">این سیاهه خالی است</string>
<string name="instance_signup_closed">این کارساز ثبت نام های جدید را نمی پذیرد.</string>
<string name="text_copied">در تخته‌گیره رونوشت شد</string>
<string name="add_bookmark">نشانک</string>
<string name="remove_bookmark">برداشتن نشانک</string>
<string name="bookmarks">نشانک‌ها</string>
<string name="your_favorites">برگزیده‌های شما</string>
<string name="login_title">خوش برگشتید</string>
<string name="login_subtitle">با کارسازی که حساب خود را در آن ایجاد کردید وارد شوید.</string>
<string name="server_url">نشانی کارساز</string>
<string name="server_filter_any_language">هر زبانی</string>
<string name="server_filter_instant_signup">ثبت نام فوری</string>
<string name="server_filter_manual_review">بازبینی دستی</string>
<string name="server_filter_any_signup_speed">هر سرعت ثبت نام</string>
<string name="server_filter_region_europe">اروپا</string>
<string name="server_filter_region_north_america">آمریکای شمالی</string>
<string name="server_filter_region_south_america">آمریکای جنوبی</string>
@@ -307,6 +325,7 @@
<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="profile_add_row">افزودن سطر</string>
<string name="profile_setup">تنظیم نمایه</string>
@@ -318,7 +337,7 @@
<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>
<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>
@@ -332,7 +351,7 @@
<string name="verified_link">پیوند تأییدشده</string>
<string name="show">نمایش</string>
<string name="hide">نهفتن</string>
<string name="join_default_server">%s پیوست</string>
<string name="join_default_server">پیوستن به %s</string>
<string name="pick_server">انتخاب کارسازی دیگر</string>
<string name="signup_or_login">یا</string>
<string name="learn_more">بیش‌تر بیاموزید</string>
@@ -430,7 +449,7 @@
<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="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>
@@ -574,12 +593,14 @@
<string name="remove">برداشتن</string>
<string name="add_list_member">افزودن عضو</string>
<string name="search_among_people_you_follow">جست‌وجو بین کسانی که پی‌گرفته‌اید</string>
<string name="add_user_to_list">افزودن یا برداشتن از سیاهه‌ها…</string>
<string name="add_user_to_list_title">افزودن به سیاهه</string>
<!-- %s is a username -->
<string name="manage_user_lists">مدیریت سیاهه‌هایی که %s در آن ظاهر می‌شود</string>
<string name="remove_from_list">برداشتن از سیاهه</string>
<string name="confirm_remove_list_member">حذف عضو؟</string>
<string name="no_followed_hashtags_title">با پیگیری برچسب‌ها با علاقه‌مندی‌ها همراه باشید</string>
<string name="no_followed_hashtags_subtitle">پیگیرهای شما اینجا ظاهر می‌شود</string>
<string name="no_followed_hashtags_subtitle">پیگیرهای شما اینجا ظاهر می‌شود</string>
<string name="no_lists_title">سازماندهی کردن خوراک خانه خود با سیاهه‌ها</string>
<string name="no_lists_subtitle">مال شما اینجا ظاهر می‌شود</string>
<string name="manage_accounts">افزودن یا جابجا شدن بین حساب‌ها</string>
@@ -599,23 +620,76 @@
<string name="got_it">فهمیدم</string>
<string name="dont_remind_again">ديگر يادآوری نكن</string>
<!-- %s is a time interval ("5 months") -->
<string name="old_post_sheet_title">این فرسته %s قدیمی است</string>
<string name="old_post_sheet_text">هنوز هم می‌توانید پاسخ دهید، اما ممکن است دیگر مرتبط نباشد.</string>
<plurals name="x_months">
<item quantity="one">%,d ماه</item>
<item quantity="other">%,d ماه</item>
</plurals>
<string name="more_than_two_years">بیش از ۲ سال</string>
<string name="non_mutual_title2">مهربانی را در آغوش بگیر</string>
<string name="non_mutual_text2">لحن مثبت همیشه قدردانی میشود.</string>
<string name="non_mutual_title3">باز باش</string>
<string name="make_profile_discoverable">نمایه من را قابل کشف کن</string>
<string name="article_by_author">توسط %s</string>
<string name="info">اطلاعات</string>
<string name="button_reblogged">تقویت شد</string>
<string name="button_favorited">برگزیده‌ شد</string>
<string name="bookmarked">نشانک‌گذاری شد</string>
<string name="join_server_x_with_invite">پیوستن به %s با دعوت</string>
<string name="expired_invite_link">منقضی کردن پیوند دعوت</string>
<string name="invalid_invite_link">باطل کردن لینک دعوت</string>
<string name="use_invite_link">استفاده از پیوند دعوت</string>
<string name="enter_invite_link">واردکردن پیوند دعوت</string>
<string name="this_invite_is_invalid">این پیوند دعوت معتبر نیست.</string>
<string name="this_invite_has_expired">این پیوند دعوت منقضی شده است.</string>
<string name="invite_link_pasted">پیوند از تخته‌گیره شما جای‌گذاری شد.</string>
<string name="mute_user_confirm_title">کاربران خموش شود؟</string>
<string name="unmuted_user_x">خموشی %s رفع شد</string>
<string name="block_user_confirm_title">کاربر مسدود شود؟</string>
<string name="user_can_see_blocked">آنها می‌توانند ببینند که مسدود شده اند.</string>
<string name="unblocked_user_x">مسدودیت %s رفع شد</string>
<string name="block_domain_confirm_title">دامنه مسدود شود؟</string>
<string name="do_block_server">مسدود کردن کارساز</string>
<string name="block_user_x_instead">درعوض %s را مسدود کنید</string>
<string name="you_wont_see_server_posts">شما هیچ پستی از افراد این سرور نخواهید دید.</string>
<string name="server_followers_will_be_removed">دنبال کننده های شما در این سرور حذف خواهند شد.</string>
<string name="unblocked_domain_x">مسدودیت دامنه %s رفع شد</string>
<string name="handle_username_explanation_own">شناسه منحصر به فرد شما در این کارساز. امکان یافتن کاربرانی با نام کاربری مشابه در کارسازهای مختلف وجود دارد.</string>
<string name="server">کارساز</string>
<string name="handle_server_explanation">خانه دیجیتالی آنها، جایی که همه فرسته‌های آنها در آن زندگی می کنند.</string>
<string name="what_is_activitypub_title">اکتیویتی پاپ چیست؟</string>
<string name="qr_code">کد QR</string>
<string name="scan_qr_code">اسکن کد QR</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
<string name="saved">ذخیره شد</string>
<string name="image_saved">تصویر ذخیره شد.</string>
<string name="video_saved">ویدئو ذخیره شد.</string>
<string name="view_file">نمایش</string>
<string name="share_sheet_preview_profile">%s در ماستودون است</string>
<string name="share_sheet_preview_post">%1$s در ماستودون است: \"%2$s\"</string>
<string name="copy_profile_link">رونوشت پیوند به نمایه</string>
<string name="in_app_browser">مرورگر درون برنامه‌ای</string>
<string name="system_browser">مرورگر سیستم</string>
<string name="add_muted_word_short">افزودن کلمه</string>
<string name="tab_home">خانه</string>
<string name="tab_search">کاوش</string>
<string name="tab_profile">نمایه</string>
<string name="pin_post">سنجاق به نمایه</string>
<string name="unpin_post">برداشتن سنجاق از نمایه</string>
<string name="post_pinned">فرسته سنجاق شد</string>
<string name="post_unpinned">سنجاق فرسته برداشته شد</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">هنگامی که %s فرسته می‌فرستد مرا آگاه کن</string>
<string name="mute_conversation">خموشاندن گفت‌وگو</string>
<string name="unmute_conversation">رفع خموشی گفت‌وگو</string>
<string name="visibility_unlisted">عمومی ساکت</string>
<string name="filtered_notifications">آگاهی‌های پالایه شده</string>
<string name="filter_notifications">پالایه کردن آگاهی‌ها از...</string>
<string name="notification_filter_following">کسانی که شما پی نمی‌گیرید</string>
<string name="notification_filter_followers">کسانی که شما را دنبال نمی‌کنند</string>
<string name="notification_filter_new_accounts">حساب‌های جدید</string>
<string name="allow_notifications">اجازه دادن به آگاهی‌ها</string>
<string name="mute_notifications">رد درخواست آگاهی</string>
<string name="notifications_from_user">آگاهی‌ها از %s</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Kirjaudu sisään</string>
<string name="next">Seuraava</string>
<string name="loading_instance">Haetaan palvelimen tietoja…</string>
@@ -597,4 +597,5 @@
<string name="list_find_users">Etsi lisättäviä käyttäjiä</string>
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Mag-log in</string>
<string name="next">Sunod</string>
<string name="loading_instance">Pagkuha ng impormasyon sa server…</string>
@@ -258,4 +258,5 @@
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Se connecter</string>
<string name="next">Suivant</string>
<string name="loading_instance">Récupération des informations serveur…</string>
@@ -197,7 +197,7 @@
<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="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>
@@ -218,6 +218,8 @@
<string name="followed_user">Vous suivez désormais %s</string>
<string name="following_user_requested">Demande de suivi envoyée à %s</string>
<string name="open_in_browser">Ouvrir dans le navigateur</string>
<string name="hide_boosts_from_user">Masquer les partages</string>
<string name="show_boosts_from_user">Afficher les partages</string>
<string name="signup_reason">Pourquoi voulez-vous vous inscrire ?</string>
<string name="signup_reason_note">Cela nous aidera à examiner votre demande.</string>
<string name="clear">Effacer</string>
@@ -299,6 +301,7 @@
<!-- %s is file size -->
<string name="download_update">Téléchargement (%s)</string>
<string name="install_update">Installer</string>
<string name="privacy_policy_title">Votre vie privée</string>
<string name="privacy_policy_subtitle">Bien que l\'application Mastodon ne collecte aucune donnée, le serveur auquel vous vous inscrivez peut avoir une politique différente.\n\nSi vous n\'êtes pas d\'accord avec la politique de %s, vous pouvez revenir en arrière et choisir un serveur différent.</string>
<string name="i_agree">J\'accepte</string>
<string name="empty_list">Cette liste est vide</string>
@@ -308,9 +311,13 @@
<string name="remove_bookmark">Retirer des marque-pages</string>
<string name="bookmarks">Marque-pages</string>
<string name="your_favorites">Vos favoris</string>
<string name="login_title">Bienvenue à nouveau</string>
<string name="login_subtitle">Connectez-vous avec le serveur sur lequel vous avez créé votre compte.</string>
<string name="server_url">URL du serveur</string>
<string name="server_filter_any_language">N\'importe quelle langue</string>
<string name="server_filter_instant_signup">Inscription instantanée</string>
<string name="server_filter_manual_review">Approbation manuelle</string>
<string name="server_filter_any_signup_speed">Tout délai dinscription</string>
<string name="server_filter_region_europe">Europe</string>
<string name="server_filter_region_north_america">Amérique du Nord</string>
<string name="server_filter_region_south_america">Amérique du Sud</string>
@@ -617,6 +624,10 @@
<!-- %s is a time interval ("5 months") -->
<string name="old_post_sheet_title">Ce message est vieux de %s</string>
<string name="old_post_sheet_text">Vous pouvez toujours y répondre, mais cela peut ne plus être pertinent.</string>
<plurals name="x_months">
<item quantity="one">%,d mois</item>
<item quantity="other">%,d mois</item>
</plurals>
<string name="more_than_two_years">plus de 2 ans</string>
<string name="non_mutual_title1">Soyez respectueux &amp; pertinent</string>
<string name="non_mutual_text1">Assurez-vous que votre réponse est courtoise et en ligne avec le sujet.</string>
@@ -635,15 +646,52 @@
<string name="button_reblogged">Boosté</string>
<string name="button_favorited">Ajouté au favoris</string>
<string name="bookmarked">Ajouté aux signets</string>
<string name="join_server_x_with_invite">Rejoindre %s avec invitation</string>
<string name="expired_invite_link">Lien d\'invitation expiré</string>
<string name="expired_clipboard_invite_link_alert">Le lien d\'invitation pour %1$s dans votre presse-papiers a expiré et ne peut pas être utilisé pour vous inscrire.\n\nVous pouvez demander un nouveau lien à un utilisateur existant, inscrivez-vous via %2$s, ou choisissez un autre serveur pour vous inscrire.</string>
<string name="invalid_invite_link">Lien d\'invitation invalide</string>
<string name="invalid_clipboard_invite_link_alert">Le lien d\'invitation pour %1$s dans votre presse-papiers n\'est pas valide et ne peut pas être utilisé pour vous inscrire.\n\nVous pouvez demander un nouveau lien à un utilisateur existant, inscrivez-vous via %2$s, ou choisissez un autre serveur pour vous inscrire.</string>
<string name="use_invite_link">Utiliser le lien d\'invitation</string>
<string name="enter_invite_link">Entrez le lien d\'invitation</string>
<string name="this_invite_is_invalid">Ce lien d\'invitation n\'est pas valide.</string>
<string name="this_invite_has_expired">Ce lien d\'invitation a expiré.</string>
<string name="invite_link_pasted">Lien collé depuis votre presse-papiers.</string>
<string name="need_invite_to_join_server">Pour rejoindre %s, vous aurez besoin d\'un lien d\'invitation d\'un utilisateur existant.</string>
<string name="mute_user_confirm_title">Masquer l\'utilisateur ?</string>
<string name="user_wont_know_muted">Ils ne sauront pas qu\'ils ont été masqués.</string>
<string name="user_can_still_see_your_posts">Ils peuvent toujours voir vos messages, mais vous ne verrez pas les leurs.</string>
<string name="you_wont_see_user_mentions">Vous ne verrez pas les messages qui les mentionnent.</string>
<string name="user_can_mention_and_follow_you">Iels peuvent vous mentionner et vous suivre, mais vous ne les verrez pas.</string>
<string name="unmuted_user_x">%s n\'est plus masqué</string>
<string name="block_user_confirm_title">Bloquer l\'utilisateur·rice ?</string>
<string name="user_can_see_blocked">Ils peuvent voir quiels sont bloqué·e·s.</string>
<string name="user_cant_see_each_other_posts">Iels ne peuvent pas voir vos messages et vous ne verrez pas les leurs.</string>
<string name="user_cant_mention_or_follow_you">Iels ne peuvent ni vous mentionner ni vous suivre.</string>
<string name="unblocked_user_x">%s débloqué</string>
<string name="block_domain_confirm_title">Bloquer le domaine ?</string>
<string name="do_block_server">Bloquer le serveur</string>
<string name="block_user_x_instead">Bloquer %s à la place</string>
<string name="users_cant_see_blocked">Vous ne verrez plus les messages ou les notifications des utilisateur·rice·s de ce serveur.</string>
<string name="you_wont_see_server_posts">Vous ne verrez aucun message des utilisateur·rice·s de ce serveur.</string>
<string name="server_followers_will_be_removed">Vos abonné·e·s de ce serveur seront supprimés.</string>
<string name="server_cant_mention_or_follow_you">Personne de ce serveur ne peut vous suivre.</string>
<string name="server_can_interact_with_older">Les personnes de ce serveur peuvent interagir avec vos anciennes publications.</string>
<string name="unblocked_domain_x">Débloquage du domaine %s</string>
<string name="handle_help_title">Qu\'est-ce qu\'un identifiant ?</string>
<string name="handle_title">Leur identifiant</string>
<string name="handle_username_explanation">Leur identifiant unique sur leur serveur. Il est possible de trouver des utilisateur·rice·s ayant le même nom d\'utilisateur sur différents serveurs.</string>
<string name="handle_title_own">Votre identifiant</string>
<string name="handle_username_explanation_own">Votre identifiant unique sur ce serveur. Il est possible de trouver des utilisateurs ayant le même nom d\'utilisateur sur différents serveurs.</string>
<string name="server">Serveur</string>
<string name="handle_server_explanation">Leur foyer numérique, là où leurs messages résident.</string>
<string name="handle_explanation">Comme un identifiant contient le nom et le service hébergeant une personne, vous pouvez interagir sur &lt;a&gt;les plateformes sociales implémentant ActivityPub&lt;/a&gt;.</string>
<string name="handle_server_explanation_own">Votre foyer numérique, là où vos messages résident. Vous souhaitez changer ? Lancez un transfert vers un autre serveur quand vous le voulez et vos abonné·e·s suivront automatiquement.</string>
<string name="handle_explanation_own">Comme un identifiant indique votre nom et le service vous hébergeant, vous pouvez interagir avec &lt;a&gt;les autres plateformes sociales implémentant ActivityPub&lt;/a&gt;.</string>
<string name="what_is_activitypub_title">Qu\'est-ce que ActivityPub ?</string>
<string name="what_is_activitypub">ActivityPub est comme la langue que Mastodon parle avec d\'autres réseaux sociaux.\n\nIl vous permet de vous connecter et d\'interagir avec des personnes non seulement sur Mastodon, mais aussi sur différentes applications sociales.</string>
<string name="handle_copied">Identifiant copié dans le presse-papiers.</string>
<string name="qr_code">Code QR</string>
<string name="scan_qr_code">Scanner le code QR</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
<string name="saved">Enregistré</string>
<string name="image_saved">Image enregistrée.</string>
@@ -651,8 +699,10 @@
<string name="view_file">Afficher</string>
<string name="share_sheet_preview_profile">%s sur Mastodon</string>
<string name="share_sheet_preview_post">%1$s sur Mastodon : \"%2$s\"</string>
<string name="copy_profile_link">Copier le lien vers le profil</string>
<string name="in_app_browser">Navigateur intégré</string>
<string name="system_browser">Navigateur système</string>
<string name="add_muted_word_short">Ajouter un mot</string>
<string name="tab_home">Accueil</string>
<string name="tab_search">Explorer</string>
<string name="tab_profile">Profil</string>
@@ -660,4 +710,14 @@
<string name="unpin_post">Retirer du profil</string>
<string name="post_pinned">Le message a été épinglé</string>
<string name="post_unpinned">Le message a été désépinglé</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">Me notifier quand %s publie quelque chose</string>
<string name="disable_new_post_notifications">Ne plus me notifier quand %s publie quelque chose</string>
<string name="new_post_notifications_enabled">Vous recevrez des notifications pour les nouveaux messages.</string>
<string name="new_post_notifications_disabled">Vous ne recevrez plus de notifications pour les nouveaux messages.</string>
<string name="mute_conversation">Masquer la conversation</string>
<string name="unmute_conversation">Ne plus masquer la conversation</string>
<string name="visibility_unlisted">Public calme</string>
<string name="notification_filter_new_accounts">Nouveaux comptes</string>
<string name="allow_notifications">Autoriser les notifications</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- %s is the email address -->
<!-- %s is the server domain -->
<!-- translators: %,d is a valid placeholder, it formats the number with locale-dependent grouping separators -->
@@ -25,4 +25,5 @@
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Clàraich a-steach</string>
<string name="next">Air adhart</string>
<string name="loading_instance">A faighinn fiosrachadh an fhrithealaiche…</string>
@@ -35,10 +35,13 @@
<item quantity="other">ga leantainn</item>
</plurals>
<string name="posts">Postaichean</string>
<string name="posts_and_replies">Postaichean s freagairtean</string>
<string name="media">Meadhanan</string>
<string name="profile_about">Mu dhèidhinn</string>
<string name="button_follow">Lean</string>
<string name="button_following">A leantainn</string>
<string name="edit_profile">Deasaich a phròifil</string>
<string name="share_user">Co-roinn a phròifil le…</string>
<string name="mute_user">Mùch %s</string>
<string name="unmute_user">Dì-mhùch %s</string>
<string name="block_user">Bac %s</string>
@@ -165,7 +168,9 @@
<string name="report_personal_subtitle">Seo na roghainnean a th agad airson stiùireadh na chì thu air Mastodon:</string>
<string name="back">Air ais</string>
<string name="search_communities">Ainm no URL an fhrithealaiche</string>
<string name="instance_rules_title">Riaghailtean an fhrithealaiche</string>
<string name="instance_rules_subtitle">Ma leanas tu air adhart, aontaichidh tu ris na riaghailtean a tha gan suidheachadh is èigneachadh leis na maoir aig %s.</string>
<string name="signup_title">Cruthaich cunntas</string>
<string name="display_name">Ainm</string>
<string name="username">Ainm-cleachdaiche</string>
<string name="email">Post-d</string>
@@ -173,6 +178,7 @@
<string name="confirm_password">Dearbh am facal-faire</string>
<string name="password_note">Gabh a-steach litrichean mòra, caractaran sònraichte agus àireamhan airson am facal-faire agad a dhèanamh nas treasa.</string>
<string name="category_general">Coitcheann</string>
<string name="confirm_email_title">Thoir sùil air a bhogsa a-steach agad</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">Thoir gnogag air a cheangal a chuir sinn thugad a dhearbhadh %s. Fuirichidh sinn ort an-seo.</string>
<string name="confirm_email_didnt_get">Nach dfhuair thu ceangal?</string>
@@ -209,6 +215,7 @@
<string name="theme_dark">Dorcha</string>
<string name="settings_behavior">Giùlan</string>
<string name="settings_gif">Cluich beothachadh nan avataran s nan emoji</string>
<string name="settings_custom_tabs">Fosgail ceanglaichean le </string>
<string name="settings_notifications">Brathan</string>
<string name="settings_contribute">Cuidich le leasachadh Mastodon</string>
<string name="settings_tos">Teirmichean na seirbheise</string>
@@ -237,6 +244,8 @@
<string name="followed_user">Tha thu a leantainn %s a-nis</string>
<string name="following_user_requested">Dhiarr thu %s a leantainn</string>
<string name="open_in_browser">Fosgail sa bhrabhsair</string>
<string name="hide_boosts_from_user">Falaich na brosnachaidhean</string>
<string name="show_boosts_from_user">Seall na brosnachaidhean</string>
<string name="signup_reason">Carson a bu mhiann leat ballrachd fhaighinn?</string>
<string name="signup_reason_note">Bidh e nas fhasa dhuinn lèirmheas a dhèanamh air d iarrtas.</string>
<string name="clear">Falamhaich</string>
@@ -259,6 +268,7 @@
<string name="recommended_accounts_info_banner">Dhfhaoidte gun còrd na cunntasan seo riut stèidhichte air feadhainn eile a tha thu a leantainn.</string>
<string name="see_new_posts">Postaichean ùra</string>
<string name="load_missing_posts">Luchdaich postaichean a dhìth</string>
<string name="follow_back">Lean air ais</string>
<string name="button_follow_pending">Ri dhèiligeadh</string>
<string name="follows_you">Gad leantainn</string>
<string name="manually_approves_followers">Ag aontachadh ri luchd-leantainn ùra a làimh</string>
@@ -329,15 +339,23 @@
<!-- %s is file size -->
<string name="download_update">Luchdaich a-nuas (%s)</string>
<string name="install_update">Stàlaich</string>
<string name="privacy_policy_title">Do phrìobhaideachd</string>
<string name="privacy_policy_subtitle">Ged nach cruinnich aplacaid Mastodon fhèin dàta sam bith, dhfhaoidte gu bheil poileasaidh eadar-dhealaichte aig an fhrithealaiche leis a chlàraicheas tu.\n\nMur aontaich thu ris a phoileasaidh aig %s, rach air ais is tagh frithealaiche eile.</string>
<string name="i_agree">Tha mi ag aontachadh</string>
<string name="empty_list">Tha an liosta seo falamh</string>
<string name="instance_signup_closed">Chan eil am frithealaiche seo a gabhail ri clàraidhean ùra.</string>
<string name="text_copied">Chaidh lethbhreac dheth a chur air an stòr-bhòrd</string>
<string name="add_bookmark">Cruthaich comharra-lìn</string>
<string name="remove_bookmark">Thoir an comharra-lìn air falbh</string>
<string name="bookmarks">Comharran-lìn</string>
<string name="your_favorites">Na h-annsachdan agad</string>
<string name="login_title">Fàilte air ais</string>
<string name="login_subtitle">Clàraich a-steach leis an fhrithealaiche far an do chruthaich thu an cunntas agad.</string>
<string name="server_url">URL an fhrithealaiche</string>
<string name="server_filter_any_language">Cànan sam bith</string>
<string name="server_filter_instant_signup">Clàradh sa bhad</string>
<string name="server_filter_manual_review">Lèirmheas a làimh</string>
<string name="server_filter_any_signup_speed">Luaths clàraidh sam bith</string>
<string name="server_filter_region_europe">An Roinn-Eòrpa</string>
<string name="server_filter_region_north_america">Aimeireaga a Tuath</string>
<string name="server_filter_region_south_america">Aimeireaga a Deas</string>
@@ -345,6 +363,7 @@
<string name="server_filter_region_asia">Àisia</string>
<string name="server_filter_region_oceania">Roinn a Chuain Sèimh</string>
<string name="not_accepting_new_members">Gun ghabhail ri buill ùra</string>
<string name="category_special_interests">Ùidhean sònraichte</string>
<string name="signup_passwords_dont_match">Chan eil an dà fhacal-faire co-ionnann</string>
<string name="profile_add_row">Cuir ràgh ris</string>
<string name="profile_setup">Suidheachadh na pròifile</string>
@@ -599,7 +618,7 @@
<string name="translation_show_original">Seall an tionndadh tùsail</string>
<string name="translation_failed">Dhfhàillig an t-eadar-theangachadh. Dhfhaoidte nach do chuir an rianaire na h-eadar-theangachaidhean an comas air an fhrithealaiche seo no gu bheil am frithealaiche a ruith seann-tionndadh de Mhastodon far nach eil taic ri eadar-theangachadh fhathast.</string>
<string name="settings_privacy">Prìobhaideachd s ruigse</string>
<string name="settings_discoverable">Brosnaich a phròifil is postaichean agad sna h-algairimean luirg</string>
<string name="settings_discoverable">Brosnaich a phròifil is postaichean agad sna h-algairimean rùrachaidh</string>
<string name="settings_indexable">Gabh na postaichean poblach a-staigh ann an toraidhean luirg</string>
<plurals name="x_participants">
<item quantity="one">%,d chom-pàirtiche</item>
@@ -626,7 +645,136 @@
<string name="delete_list">Sguab às an liosta</string>
<!-- %s is the name of the list -->
<string name="delete_list_confirm">A bheil thu airson “%s” a sguabadh às?</string>
<string name="list_exclusive">Falaich na buill san leantainn</string>
<string name="list_exclusive_subtitle">Falaich an fheadhainn a tha air an liosta seo air loidhne-ama an fheadhainn a leanas tu ach nach fhaic thu na postaichean aca dà thuras.</string>
<string name="list_name">Ainm na liosta</string>
<string name="list_show_replies_to">Seall na freagairtean gu</string>
<string name="list_replies_no_one">Na seall idir</string>
<string name="list_replies_members">Buill na liosta</string>
<string name="list_replies_anyone">Duine sam bith a leanas mi</string>
<string name="confirm_remove_list_members">A bheil thu airson na buill a thoirt air falbh?</string>
<string name="remove">Thoir air falbh</string>
<string name="add_list_member">Cuir ball ris</string>
<string name="search_among_people_you_follow">Lorg am measg nan daoine a leanas tu</string>
<string name="add_user_to_list">Cuir ris/Thoir air falbh o liostaichean…</string>
<string name="add_user_to_list_title">Cuir ris an liosta</string>
<!-- %s is a username -->
<string name="manage_user_lists">Stiùirich na liostaichean air an nochd %s</string>
<string name="remove_from_list">Thoir air falbh on liosta</string>
<string name="confirm_remove_list_member">A bheil thu airson am ball a thoirt air falbh?</string>
<string name="no_followed_hashtags_title">Cùm suas ri d ùidhean le leantainn thagaichean hais</string>
<string name="no_followed_hashtags_subtitle">Nochdaidh na leanas tu an-seo</string>
<string name="no_lists_title">Cuir rian air do dhachaigh le liostaichean</string>
<string name="no_lists_subtitle">Nochdaidh an fheadhainn agad an-seo</string>
<string name="manage_accounts">Cuir ris no leum eadar cunntasan</string>
<plurals name="x_posts_recently">
<item quantity="one">%,d phost o chionn goirid</item>
<item quantity="two">%,d phost o chionn goirid</item>
<item quantity="few">%,d postaichean o chionn goirid</item>
<item quantity="other">%,d post o chionn goirid</item>
</plurals>
<string name="create_list">Cruthaich liosta</string>
<string name="step_x_of_y">Ceum %1$d à %2$d</string>
<string name="create">Cruthaich</string>
<string name="manage_list_members">Stiùir buill na liosta</string>
<string name="list_no_members">Chan eil ball ann fhathast</string>
<string name="list_find_users">Lorg cleachdaichean ri chur ris</string>
<string name="reply_to_user">Freagair %s</string>
<string name="posted_at">Air a phostadh aig %s</string>
<string name="non_mutual_sheet_title">Fàilte ort, a dhàimh ùir!</string>
<string name="non_mutual_sheet_text">Tha coltas gu bheil thu an impis cuideigin fhreagairt nach eil na cho-dhàimh fhathast. Bi caoimhneil aithneach.</string>
<string name="got_it">Tha mi agaibh</string>
<string name="dont_remind_again">Na cuir seo nam chuimhne a-rithist</string>
<!-- %s is a time interval ("5 months") -->
<string name="old_post_sheet_title">Tha am post seo %s a dhaois</string>
<string name="old_post_sheet_text">S urrainn dhut freagairt fhathast ach dhfhaoidte nach bi e buntainneach tuilleadh.</string>
<plurals name="x_months">
<item quantity="one">%,d mhìos</item>
<item quantity="two">%,d mhìos</item>
<item quantity="few">%,d mìosan</item>
<item quantity="other">%,d mìos</item>
</plurals>
<string name="more_than_two_years">barrachd air 2 bhliadhna</string>
<string name="non_mutual_title1">Bi modhail ⁊ buntainneach</string>
<string name="non_mutual_text1">Dèan cinnteach gum bi do fhreagairt modhail s a buntainn ris a chuspair.</string>
<string name="non_mutual_title2">Cha mhiste dhut am bàidh</string>
<string name="non_mutual_text2">Is caomh le daoine an caoimhneas.</string>
<string name="non_mutual_title3">Cùm d aigne fosgailte</string>
<string name="non_mutual_text3">Tha stoidhle còmhraidh eadar-dhealaichte aig gach neach. Fàs suas ris.</string>
<string name="make_profile_discoverable">Bu mhath leam gun gabh a phròifil agam a rùrachadh</string>
<string name="discoverability">Rùrachadh</string>
<string name="discoverability_help">Ma chuir thu romhad gun gabh a phròifil agad a rùrachadh air Mastodon, faodaidh na postaichean agad nochdadh ann an toraidhean luirg agus treandaichean.\n\nDhfhaoidte gun dèid a phròifil agad a mholadh dhan fheadhainn aig a bheil ùidhean coltach ri d ùidhean-sa.\n\nMa chuir thu romhad nach gabh thu a rùrachadh, cha dèid a phròifil agad fhalach ma nì cuideigin lorg mu d ainm.</string>
<string name="app_version_copied">Chaidh lethbhreac de dhàireamh an tionndaidh a chur air an stòr-bhòrd</string>
<string name="onboarding_recommendations_intro">Stiùirichidh tu fhèin na chì thu nad dhachaigh.Mar as motha an àireamh de dhaoine a leanas tu, s ann nas trainge is inntinniche a bhios e.</string>
<string name="onboarding_recommendations_title">Cuir dreach pearsanta air do dhachaigh</string>
<string name="article_by_author">Le %s</string>
<string name="info">Fiosrachadh</string>
<string name="button_reblogged">Ga bhrosnachadh</string>
<string name="button_favorited">Na annsachd</string>
<string name="bookmarked">Na chomharra-lìn</string>
<string name="join_server_x_with_invite">Faigh ballrachd air %s le cuireadh</string>
<string name="expired_invite_link">Dhfhalbh an ùine air ceangal a chuiridh</string>
<string name="expired_clipboard_invite_link_alert">Dhfhalbh an ùine air ceangal a cuiridh airson %1$s a tha san stòr-bhòrd agad agus cha ghabh a chleachdadh airson clàradh.\n\nS urrainn dhut ceangal ùr iarraidh o chleachdaiche a tha ann, clàradh le %2$s no frithealaiche eile far an clàraich thu a thaghadh.</string>
<string name="invalid_invite_link">Ceangal cuiridh mì-dhligheach</string>
<string name="invalid_clipboard_invite_link_alert">Chan eil ceangal a cuiridh airson %1$s a tha san stòr-bhòrd agad dligheach agus cha ghabh a chleachdadh airson clàradh.\n\nS urrainn dhut ceangal ùr iarraidh o chleachdaiche a tha ann, clàradh le %2$s no frithealaiche eile far an clàraich thu a thaghadh.</string>
<string name="use_invite_link">Cleachd ceangal cuiridh</string>
<string name="enter_invite_link">Cuir a-steach ceangal cuiridh</string>
<string name="this_invite_is_invalid">Chan eil ceangal a cuiridh seo dligheach.</string>
<string name="this_invite_has_expired">Dhfhalbh an ùine air ceangal a chuiridh seo.</string>
<string name="invite_link_pasted">Chaidh an ceangal a chur ann on stòr-bhòrd.</string>
<string name="need_invite_to_join_server">Airson ballrachd fhaighinn air %s, feumaidh tu ceangal cuiridh o chleachdaiche a tha ann.</string>
<string name="mute_user_confirm_title">A bheil thu airson an cleachdaiche a mhùchadh?</string>
<string name="user_wont_know_muted">Cha bhi fios aca gun do mhùch thu iad.</string>
<string name="user_can_still_see_your_posts">Chì iad na postaichean agad fhathast ach chan fhaic thu na postaichean aca-san.</string>
<string name="you_wont_see_user_mentions">Chan fhaic thu na postaichean a bheir iomradh orra.</string>
<string name="user_can_mention_and_follow_you">S urrainn dhaibh iomradh a thoirt ort agus do leantainn ach chan fhaic thu iad-san.</string>
<string name="unmuted_user_x">Dhì-mhùch thu %s</string>
<string name="block_user_confirm_title">A bheil thu airson an cleachdaiche a bhacadh?</string>
<string name="user_can_see_blocked">Chì iad gun deach am bacadh.</string>
<string name="user_cant_see_each_other_posts">Chan fhaic iad na postaichean agad s chan fhaic thu na postaichean aca-san.</string>
<string name="user_cant_mention_or_follow_you">Chan urrainn dhaibh iomradh a thoirt ort no do leantainn.</string>
<string name="unblocked_user_x">Dhì-bhac thu %s</string>
<string name="block_domain_confirm_title">A bheil thu airson an àrainn a bhacadh?</string>
<string name="do_block_server">Bac am frithealaiche</string>
<string name="block_user_x_instead">Bac %s na àite</string>
<string name="users_cant_see_blocked">Chan fhaic thu postaichean no brathan o chleachdaichean a th air an fhrithealaiche seo.</string>
<string name="you_wont_see_server_posts">Chan fhaic thu post sam bith o chleachdaichean a th air an fhrithealaiche seo.</string>
<string name="server_followers_will_be_removed">Thèid an luchd-leantainn agad a th air an fhrithealaiche seo a thoirt air falbh.</string>
<string name="server_cant_mention_or_follow_you">Chan urrainn do neach sam bith a th air an fhrithealaiche seo do leantainn.</string>
<string name="server_can_interact_with_older">S urrainn do dhaoine a th air an fhrithealaiche seo eadar-ghabhail leis na seann-phostaichean agad.</string>
<string name="unblocked_domain_x">Dhì-bhac thu an àrainn %s</string>
<string name="handle_help_title">Dè th ann an aithnichear?</string>
<string name="handle_title">An t-aithnichear aca</string>
<string name="handle_username_explanation">Seo an t-aithnichear àraidh aca air an fhrithealaiche aca. Dhfhaoidte gu bheil luchd-cleachdaidh air a bheil an t-aon ainm air frithealaichean eile.</string>
<string name="handle_title_own">An t-aithnichear agad</string>
<string name="handle_username_explanation_own">Seo an t-aithnichear àraidh agad air an fhrithealaiche seo. Dhfhaoidte gu bheil luchd-cleachdaidh air a bheil an t-aon ainm air frithealaichean eile.</string>
<string name="server">Frithealaiche</string>
<string name="handle_server_explanation">An dachaigh dhigiteach far a bheil na postaichean uile aca a fuireach.</string>
<string name="handle_explanation">On a dhinnseas aithnichearan cò cuideigin agus càit a bheil iad, s urrainn dhut conaltradh le daoine thar an lìonraidh shòisealta de &lt;a&gt;dhùrlaran le cumhachd ActivityPub&lt;/a&gt;.</string>
<string name="handle_server_explanation_own">Do dhachaigh dhigiteach far a bheil na postaichean uile agad a fuireach. Nach toigh leat an tè seo? Dèan imrich gu frithealaiche eile uair sam bith is thoir an luchd-leantainn agad leat cuideachd.</string>
<string name="handle_explanation_own">On a dhinnseas d aithnichear cò thusa agus càit a bheil thu, s urrainn do dhaoine conaltradh leat thar an lìonraidh shòisealta de &lt;a&gt;dhùrlaran le cumhachd ActivityPub&lt;/a&gt;.</string>
<string name="what_is_activitypub_title">Dè th ann an ActivityPub?</string>
<string name="what_is_activitypub">Tha ActivityPub coltach ri cànan a bhruidhneas Mastodon ri lìonraidhean sòisealta eile.\n\nLeigidh e leat ceangal a dhèanamh ri daoine chan ann air Mastodon a-mhàin ach air feadh aplacaidean sòisealta eile cuideachd agus conaltradh leotha.</string>
<string name="handle_copied">Chaidh lethbhreac dhen aithnichear a chur air an stòr-bhòrd.</string>
<string name="qr_code">Còd QR</string>
<string name="scan_qr_code">Sganaich còd QR</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
<string name="saved">Chaidh a shàbhaladh</string>
<string name="image_saved">Chaidh an dealbh a shàbhaladh.</string>
<string name="video_saved">Chaidh a video a shàbhaladh.</string>
<string name="view_file">Seall</string>
<string name="share_sheet_preview_profile">%s air Mastodon</string>
<string name="share_sheet_preview_post">%1$s air Mastodon: “%2$s”</string>
<string name="copy_profile_link">Dèan lethbhreac dhen cheangal dhan phròifil</string>
<string name="in_app_browser">Brabhsair am broinn na h-aplacaid</string>
<string name="system_browser">Brabhsair an t-siostaim</string>
<string name="add_muted_word_short">Cuir facal ris</string>
<string name="tab_home">Dachaigh</string>
<string name="tab_search">Rùraich</string>
<string name="tab_profile">Pròifil</string>
<string name="pin_post">Prìnich ris a phròifil</string>
<string name="unpin_post">Dì-phrìnich on phròifil</string>
<string name="post_pinned">Chaidh am post a phrìneachadh</string>
<string name="post_unpinned">Chaidh am post a dhì-phrìneachadh</string>
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Acceder</string>
<string name="next">Seguinte</string>
<string name="loading_instance">Obtendo info do servidor…</string>
@@ -639,4 +639,5 @@ Canta máis xente sigas, máis activo e interesante será.</string>
<string name="invite_link_pasted">Pegouse a ligazón desde o portapapeis.</string>
<string name="need_invite_to_join_server">Precisas unha ligazón de convite dunha usuaria actual para unirte a %s.</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">लॉग इन करें</string>
<string name="next">अगला</string>
<string name="loading_instance">सर्वर की जानकारी ला रहे…</string>
@@ -358,4 +358,5 @@
<string name="non_mutual_text3">सबका बात करने का तरीका अलग है। ज़रूरत के हिसाब से बदलने को तैयार रहें।</string>
<string name="info">जानकारी</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Prijavi se</string>
<string name="next">Nastavi</string>
<string name="error">Pogreška</string>
@@ -207,4 +207,5 @@
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Bejelentkezés</string>
<string name="next">Következő</string>
<string name="loading_instance">Kiszolgáló információinak lekérése…</string>
@@ -35,8 +35,8 @@
<string name="media">Média</string>
<string name="profile_about">Névjegy</string>
<string name="button_follow">Követés</string>
<string name="button_following">Követve</string>
<string name="edit_profile">Profil szerkesztése</string>
<string name="button_following">Követett</string>
<string name="edit_profile">Profil módosítása</string>
<string name="mute_user">%s némítása</string>
<string name="unmute_user">%s némításának feloldása</string>
<string name="block_user">%s letiltása</string>
@@ -45,8 +45,8 @@
<string name="block_domain">%s letiltása</string>
<string name="unblock_domain">%s tiltásának feloldása</string>
<plurals name="x_posts">
<item quantity="one">%,d poszt</item>
<item quantity="other">%,d poszt</item>
<item quantity="one">%,d bejegyzés</item>
<item quantity="other">%,d bejegyzés</item>
</plurals>
<string name="profile_joined">Csatlakozott</string>
<string name="done">Kész</string>
@@ -54,7 +54,7 @@
<string name="field_label">Címke</string>
<string name="field_content">Tartalom</string>
<string name="saving">Mentés…</string>
<string name="post_from_user">Poszt tőle: %s</string>
<string name="post_from_user">Bejegyzés tőle: %s</string>
<string name="poll_option_hint">%d. opció</string>
<plurals name="x_minutes">
<item quantity="one">%d perc</item>
@@ -115,7 +115,7 @@
<item quantity="other">%d ember beszél róla</item>
</plurals>
<string name="report_title">%s jelentése</string>
<string name="report_choose_reason">Mi a probléma ezzel a poszttal?</string>
<string name="report_choose_reason">Mi a probléma ezzel a bejegyzéssel?</string>
<string name="report_choose_reason_account">Mi a probléma ezzel: %s?</string>
<string name="report_choose_reason_subtitle">Válassza ki a legjobb találatot</string>
<string name="report_reason_personal">Nem tetszik</string>
@@ -143,7 +143,9 @@
<string name="report_personal_subtitle">Itt vannak a beállítások, melyek szabályozzák, hogy mit lát a Mastodonon:</string>
<string name="back">Vissza</string>
<string name="search_communities">Kiszolgáló neve vagy URL</string>
<string name="instance_rules_title">Szerver szabályok</string>
<string name="instance_rules_subtitle">A folytatással beleegyezik, hogy követi a következő szabályokat, melyeket a %s moderátorai alkottak és tartatnak be.</string>
<string name="signup_title">Fiók létrehozása</string>
<string name="display_name">Név</string>
<string name="username">Felhasználónév</string>
<string name="email">Email</string>
@@ -151,6 +153,7 @@
<string name="confirm_password">Jelszó megerősítése</string>
<string name="password_note">A jelszó erősségének növelése érdekében használjon nagybetűket, speciális karaktereket és számokat.</string>
<string name="category_general">Általános</string>
<string name="confirm_email_title">Bejövő postaláda ellenőrzése</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">Kattintson a hivatkozásra, melyet a %s ellenőrzése céljából küldtünk önnek. Mi addig itt várunk.</string>
<string name="confirm_email_didnt_get">Nem kapta meg a hivatkozást?</string>
@@ -214,6 +217,8 @@
<string name="followed_user">Most már követi őt: %s</string>
<string name="following_user_requested">Követési kérelem elküldve %s felhasználónak</string>
<string name="open_in_browser">Megnyitás böngészőben</string>
<string name="hide_boosts_from_user">Megtolások elrejtése</string>
<string name="show_boosts_from_user">Megtolások megjelenítése</string>
<string name="signup_reason">Miért szeretne csatlakozni?</string>
<string name="signup_reason_note">Ez segít nekünk átnézni a jelentkezését.</string>
<string name="clear">Törlés</string>
@@ -234,8 +239,9 @@
<!-- %s is the server domain -->
<string name="local_timeline_info_banner">Itt található az összes bejegyzés az összes felhasznólótól a példányán (%s).</string>
<string name="recommended_accounts_info_banner">Ezek a fiókok tetszhetnek önnek azok alapján, akiket követ.</string>
<string name="see_new_posts">Új posztok</string>
<string name="see_new_posts">Új bejegyzések</string>
<string name="load_missing_posts">Hiányzó bejegyzések betöltése</string>
<string name="follow_back">Visszakövetés</string>
<string name="button_follow_pending">Függőben</string>
<string name="follows_you">Követi önt</string>
<string name="manually_approves_followers">Kézzel erősíti meg a követőit</string>
@@ -258,7 +264,7 @@
</plurals>
<string name="time_now">most</string>
<string name="edit_history">Szerkesztési előzmények</string>
<string name="last_edit_at_x">Utoljára szerkesztve: %s</string>
<string name="last_edit_at_x">Utoljára módosítva: %s</string>
<string name="time_just_now">épp most</string>
<plurals name="x_seconds_ago">
<item quantity="one">%d másodperce</item>
@@ -268,11 +274,11 @@
<item quantity="one">%d perce</item>
<item quantity="other">%d perce</item>
</plurals>
<string name="edited_timestamp">szerkesztve %s</string>
<string name="edited_timestamp">módosítva %s</string>
<string name="edit_original_post">Eredeti bejegyzés</string>
<string name="edit_text_edited">Szöveg szerkesztve</string>
<string name="edit_text_edited">Szöveg módosítva</string>
<string name="edit_spoiler_added">Tartalmi figyelmeztetés hozzáadva</string>
<string name="edit_spoiler_edited">Tartalmi figyelmeztetés szerkesztve</string>
<string name="edit_spoiler_edited">Tartalmi figyelmeztetés módosítva</string>
<string name="edit_spoiler_removed">Tartalmi figyelmeztetés eltávolítva</string>
<string name="edit_poll_added">Szavazás hozzáadva</string>
<string name="edit_poll_edited">Szavazás módosítva</string>
@@ -281,9 +287,9 @@
<string name="edit_media_removed">Média eltávolítva</string>
<string name="edit_media_reordered">Csatolmányok átrendezve</string>
<string name="edit_marked_sensitive">Érzékenynek jelölve</string>
<string name="edit_marked_not_sensitive">Kényesnek nem jelölve</string>
<string name="edit_multiple_changed">Poszt módosítva</string>
<string name="edit">Szerkesztés</string>
<string name="edit_marked_not_sensitive">Nem érzékenynek jelölve</string>
<string name="edit_multiple_changed">Bejegyzés módosítva</string>
<string name="edit">Módosítás</string>
<string name="discard_changes">Módosítások elvetése?</string>
<string name="upload_failed">Sikertelen feltöltés</string>
<string name="file_size_bytes">%d bájt</string>
@@ -295,15 +301,18 @@
<string name="download_update">(%s) letöltése</string>
<string name="install_update">Telepítés</string>
<string name="privacy_policy_subtitle">Bár a Mastodon app nem gyűjt adatokat, a kiszolgáló, melyen bejelentkezik rendelkezhet más szabályokkal.\n\nHa nem ért egyet a %s szabályzatával, visszamehet és választhat egy másik kiszolgálót.</string>
<string name="i_agree">Elfogadom</string>
<string name="empty_list">A lista üres</string>
<string name="instance_signup_closed">Ez a szerver nem fogad új regisztrációkat.</string>
<string name="text_copied">A szöveg a vágólapra másolva</string>
<string name="add_bookmark">Könyvjelzőzés</string>
<string name="remove_bookmark">Könyvjelző eltávolítása</string>
<string name="bookmarks">Könyvjelzők</string>
<string name="login_title">Üdv ismét</string>
<string name="your_favorites">Kedvencek</string>
<string name="login_title">Üdv újra itt</string>
<string name="login_subtitle">Azon a kiszolgálón jelentkezzen be, ahol a fiókját létrehozta.</string>
<string name="server_url">Kiszolgáló URL</string>
<string name="server_filter_any_language">Bármely nyelv</string>
<string name="server_filter_region_europe">Európa</string>
<string name="server_filter_region_north_america">Észak-Amerika</string>
<string name="server_filter_region_south_america">Dél-Amerika</string>
@@ -311,21 +320,22 @@
<string name="server_filter_region_asia">Ázsia</string>
<string name="server_filter_region_oceania">Óceánia</string>
<string name="not_accepting_new_members">Nem fogad új tagokat</string>
<string name="category_special_interests">Különleges érdeklődés</string>
<string name="signup_passwords_dont_match">A jelszavak nem egyeznek</string>
<string name="profile_add_row">Sor hozzáadása</string>
<string name="profile_setup">Profilbeállítás</string>
<string name="profile_setup_subtitle">Ezt később is bármikor kitöltheti a Profil fülön.</string>
<string name="follow_all">Összes követése</string>
<string name="server_rules_disagree">Elutasítás</string>
<string name="server_rules_disagree">Nem értek egyet vele</string>
<string name="privacy_policy_explanation">Röviden: Nem gyűjtünk és nem dolgozunk fel semmit.</string>
<!-- %s is server domain -->
<string name="server_policy_disagree">Nem egyezek bele a %s szabályzatába</string>
<string name="profile_bio">Bemutatkozás</string>
<!-- Shown in a progress dialog when you tap "follow all" -->
<string name="sending_follows">Felhasználók bekövetése…</string>
<string name="sending_follows">Felhasználók követése…</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 nem engedélyez feliratkozásokat innen: %2$s. Próbáljon egy másikat, vagy &lt;a&gt;válasszon másik kiszolgálót&lt;/a&gt;.</string>
<string name="spoiler_show">Megjelenítés mindenképp</string>
<string name="spoiler_show">Megjelenítés</string>
<string name="spoiler_hide">Elrejt</string>
<string name="poll_multiple_choice">Válasszon egyet vagy többet</string>
<string name="save_changes">Módosítások mentése</string>
@@ -349,7 +359,7 @@
<string name="log_out_all_accounts">Kilépés mindegyik fiókból</string>
<string name="confirm_log_out_all_accounts">Kilépés mindegyik fiókból?</string>
<string name="retry">Újra</string>
<string name="post_failed">Hiba poszt elküldése közben</string>
<string name="post_failed">Hiba bejegyzés elküldése közben</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="attachment_description_image">%s kép</string>
<string name="attachment_description_video">%s videó</string>
@@ -372,7 +382,7 @@
<string name="help">Súgó</string>
<string name="what_is_alt_text">Mi az az alt szöveg?</string>
<string name="alt_text_help">Az Alt szöveg képleírást biztosít a látássérültek, az alacsony sávszélességű kapcsolatokkal rendelkezők, illetve az extra kontextust keresők számára.\n\nAz egyértelmű, tömör és objektív alt szöveg megírásával mindenki számára javíthatja a hozzáférhetőséget és a megértést.\n\n<ul><li>Fontos elemek rögzítése</li>\n<li>Szöveg összefoglalása képekben</li>\n<li>Használjon szabályos mondatszerkezetet</li>\n<li>Kerülje a felesleges információkat</li>\n<li>Összetett vizuális ábrákon (például diagramokon vagy térképeken) a trendekre és a legfontosabb megállapításokra összpontosíthat.</li></ul></string>
<string name="edit_post">Poszt szerkesztése</string>
<string name="edit_post">Bejegyzés módosítása</string>
<string name="no_verified_link">Nem ellenőrzött link</string>
<string name="compose_autocomplete_emoji_empty">Emoji böngésző</string>
<string name="compose_autocomplete_users_empty">Találja meg akiket keres</string>
@@ -383,14 +393,14 @@
<string name="language_cant_detect">A nyelv nem ismerhető fel</string>
<string name="language_detected">Észlelt</string>
<string name="media_hidden">Rejtett média</string>
<string name="post_hidden">Rejtett poszt</string>
<string name="report_title_post">Poszt jelentése</string>
<string name="post_hidden">Rejtett bejegyzés</string>
<string name="report_title_post">Bejegyzés jelentése</string>
<string name="forward_report_explanation">A fiók egy másik szerverről származik. Elküldi a jelentés anonimizált másolatát oda is?</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">Tovább a következőnek: %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">Jelentve</string>
<string name="report_unfollow_explanation">Ha nem szeretné többé látni a posztjait a főoldalon, törölje a követését.</string>
<string name="report_unfollow_explanation">Ha nem szeretné többé látni a bejegyzéseit a főoldalon, törölje a követését.</string>
<string name="muted_user">Némítva %s</string>
<string name="report_sent_already_blocked">Már letiltotta ezt a felhasználót, így nincs más teendője, amíg átnézzük a jelentését.</string>
<string name="report_personal_already_blocked">Ezt a felhasználót már letiltotta, így nincs más teendője.\n\nKöszönjük, hogy segít, hogy a Mastodon mindenki számára biztonságos hely maradjon!</string>
@@ -401,7 +411,7 @@
<string name="settings_server_explanation">Áttekintés, szabályok, moderátorok</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 névjegy</string>
<string name="default_post_language">Posztok alapértelmezett nyelve</string>
<string name="default_post_language">Bejegyzések alapértelmezett nyelve</string>
<string name="settings_alt_text_reminders">Alt szöveges emlékeztetők</string>
<string name="settings_confirm_unfollow">Kikövetés előtt rákérdezés</string>
<string name="settings_confirm_boost">Megtolás előtt rákérdezés</string>
@@ -435,7 +445,7 @@
<string name="settings_even_more">További beállítások</string>
<string name="settings_show_cws">Tartalmi figyelmeztetések megjelenítése</string>
<string name="settings_hide_sensitive_media">Kényesnek jelölt média elrejtése</string>
<string name="settings_show_interaction_counts">Poszt interakciók számlálója</string>
<string name="settings_show_interaction_counts">Bejegyzés interakciók számlálója</string>
<string name="settings_show_emoji_in_names">Egyéni emojik a megjelenített nevekben</string>
<plurals name="in_x_seconds">
<item quantity="one">%d mp-en belül</item>
@@ -449,13 +459,13 @@
<string name="count_two">Kettő</string>
<string name="count_three">Három</string>
<string name="count_four">Négy</string>
<string name="alt_text_reminder_post_anyway">Poszt</string>
<string name="alt_text_reminder_post_anyway">Bejegyzés</string>
<!-- %s is the username -->
<string name="unfollow_confirmation">%s kikövetése?</string>
<string name="filter_active">Aktív</string>
<string name="filter_inactive">Inaktív</string>
<string name="settings_add_filter">Szűrő hozzáadása</string>
<string name="settings_edit_filter">Szűrő szerkesztése</string>
<string name="settings_edit_filter">Szűrő módosítása</string>
<string name="settings_filter_duration">Időtartam</string>
<string name="settings_filter_muted_words">Némított szavak</string>
<string name="settings_filter_context">Némítás</string>
@@ -472,13 +482,13 @@
<string name="filter_context_home_lists">Főoldal &amp; listák</string>
<string name="filter_context_notifications">Értesítések</string>
<string name="filter_context_public_timelines">Nyilvános idővonalak</string>
<string name="filter_context_threads_replies">Témák &amp; válaszok</string>
<string name="filter_context_threads_replies">Témák és válaszok</string>
<string name="filter_context_profiles">Profilok</string>
<string name="settings_filter_title">Cím</string>
<string name="settings_delete_filter_title">Szűrő törlése \"%s\"?</string>
<string name="settings_delete_filter_confirmation">Ez a szűrő minden eszközén törlődik a fiókjából.</string>
<string name="add_muted_word">Némított szó hozzáadása</string>
<string name="edit_muted_word">Némított szó szerkesztése</string>
<string name="edit_muted_word">Némított szó módosítása</string>
<string name="add">Hozzáadás</string>
<string name="filter_word_or_phrase">Szó vagy kifejezés</string>
<string name="settings_delete_filter_word">Szó törlése \"%s\"?</string>
@@ -511,7 +521,7 @@
<string name="time_hours_ago_short">%d órája</string>
<string name="time_days_ago_short">%d napja</string>
<!-- %s is the name of the post language -->
<string name="translate_post">Fordítás erre: %s</string>
<string name="translate_post">Fordítás %s nyelvről</string>
<!-- %1$s is the language, %2$s is the name of the translation service -->
<string name="post_translated">%1$s nyelvről fordítva %2$s szolgáltatással</string>
<string name="translation_show_original">Eredeti megjelenítése</string>
@@ -535,7 +545,7 @@
<string name="manage_hashtags">Címkék kezelése</string>
<!-- Screen reader description for the menu on the home timeline screen -->
<string name="dropdown_menu">Legördülő menü</string>
<string name="edit_list">Lista szerkesztése</string>
<string name="edit_list">Lista módosítása</string>
<string name="list_members">Lista tagok</string>
<string name="delete_list">Lista törlése</string>
<!-- %s is the name of the list -->
@@ -598,11 +608,15 @@
<string name="mute_user_confirm_title">Felhasználó némítása?</string>
<string name="block_user_confirm_title">Felhasználó blokkolása?</string>
<string name="user_can_see_blocked">Látják, hogy blokkolva vannak.</string>
<string name="user_cant_see_each_other_posts">Nem látják az ön hozzászólásait, és ön sem fogja látni az övéiket.</string>
<string name="user_cant_see_each_other_posts">Nem látják az ön bejegyzéseit, és ön sem fogja látni az övéiket.</string>
<string name="unblocked_user_x">Feloldva %s</string>
<string name="block_domain_confirm_title">Domain letiltása?</string>
<string name="do_block_server">Szerver blokkolása</string>
<string name="server_followers_will_be_removed">A követőid erről a szerverről eltávolításra kerülnek.</string>
<string name="server_cant_mention_or_follow_you">Erről a kiszolgálóról senki sem követhet.</string>
<string name="server">Szerver</string>
<string name="what_is_activitypub_title">Mi az az ActivityPub?</string>
<string name="what_is_activitypub">Az ActivityPub olyan, mint egy nyelv, amelyet a Mastodon más közösségi hálózatokkal beszél.\n\nLehetővé teszi, hogy ne csak a Mastodonon, hanem különböző közösségi alkalmazásokon keresztül is kapcsolatba és interakcióba lépjen az emberekkel.</string>
<string name="qr_code">QR kód</string>
<string name="scan_qr_code">QR kód beolvasása</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
@@ -610,9 +624,29 @@
<string name="image_saved">Kép elmentve.</string>
<string name="video_saved">Videó elmentve.</string>
<string name="view_file">Megtekintés</string>
<string name="copy_profile_link">Hivatkozás másolása a profilba</string>
<string name="in_app_browser">Beépített böngésző</string>
<string name="system_browser">Rendszer böngésző</string>
<string name="add_muted_word_short">Szó hozzáadása</string>
<string name="tab_home">Főoldal</string>
<string name="tab_search">Felfedezés</string>
<string name="tab_profile">Profil</string>
<string name="pin_post">Kitűzés a profilodra</string>
<string name="unpin_post">Kitűzés eltávolítása a profilodról</string>
<string name="post_pinned">A bejegyzés ki van tűzve</string>
<string name="post_unpinned">A bejegyzés kitűzése visszavonva</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">Figyelmeztés, ha @%s bejegyzést tesz közzé</string>
<string name="new_post_notifications_disabled">Többé nem kap értesítést az új bejegyzésekről.</string>
<string name="mute_conversation">Beszélgetés némítása</string>
<string name="unmute_conversation">Beszélgetés némításának feloldása</string>
<string name="filtered_notifications">Szűrt értesítések</string>
<string name="notification_filter_following">Nem követett emberek</string>
<string name="notification_filter_following_explanation">Amíg kézileg jóvá nem hagyja őket</string>
<string name="notification_filter_followers">Olyan emberek, akik nem követnek</string>
<string name="notification_filter_followers_explanation">Beleértve azokat is, akik kevesebb, mint 3 napja követnek téged</string>
<string name="notification_filter_new_accounts">Új fiókok</string>
<string name="notification_filter_new_accounts_explanation">Az elmúlt 30 napban létrehozott</string>
<string name="notification_filter_mentions">Kéretlen privát említések</string>
<string name="allow_notifications">Értesítések engedélyezése</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Մուտք գործել</string>
<string name="next">Հաջորդը</string>
<string name="loading_instance">Սերվերի տվյալների ստացում...</string>
@@ -282,6 +282,7 @@
<!-- %s is file size -->
<string name="download_update">Ներբեռնել (%s)</string>
<string name="install_update">Տեղադրել</string>
<string name="privacy_policy_title">Ձեր գաղտնիությունը</string>
<string name="privacy_policy_subtitle">Չնայած նրան, որ Մաստոդոնի ծրագիրը չի պահպանում անձնական տվյալներ, սերվերը, որտեղ դուք գրանցվում եք, կարող է ունենալ այլ գաղտնիության քաղաքականություն։\n\nԵթե դուք համաձայն չեք %s-ի գաղտնիության քաղաքականության հետ, դուք կարող եք հետ գնալ եւ ընտրել ուրիշ սերվեր։</string>
<string name="i_agree">Համաձայն եմ</string>
<string name="empty_list">Ցանկը դատարկ է</string>
@@ -323,6 +324,7 @@
<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>
@@ -337,6 +339,8 @@
<string name="welcome_paragraph1">Մաստոդոնը ապակենտրոնացված սոցցանց է, այսինքն՝ այն չի պատկանում մի ընկերության։ Այն բաղկացած է բազմաթիվ անկախ և կապակցված սերվերներից։</string>
<string name="what_are_servers">Ի՞նչ է սերվերը։</string>
<string name="welcome_paragraph2">Մաստոդոնի որևէ հաշիվ գտնվում է սերվերի վրա - ամեն մեկը՝ իր արժեքներով, կանոններով և ադմիններով։ Դուք կարող եք հետևել և շփվել որևէ սերվերի մարդկանց հետ՝ անկախ ձեր ընտրությունից։</string>
<string name="opening_link">Հղումը բացվում է...</string>
<string name="link_not_supported">Հղումը համատեղելի չէ ծրագրի հետ</string>
<string name="log_out_all_accounts">Ելք բոլոր հաշիվներից</string>
<string name="retry">Կրկին</string>
<string name="post_failed">Չհաջողվեց ուղարկել գրառումը</string>
@@ -381,8 +385,12 @@
<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="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>
@@ -440,6 +448,10 @@
<item quantity="one">%s նկար չունի բացատրություն։ Հրապարակե՞լ։</item>
<item quantity="other">%s նկար չունի բացատրություն։ Հրապարակե՞լ։</item>
</plurals>
<plurals name="alt_text_reminder_x_attachments">
<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>
@@ -513,6 +525,9 @@
<!-- %1$s is the language, %2$s is the name of the translation service -->
<string name="post_translated">Թարգմանված %1$sից` %2$s-ի միջոցով</string>
<string name="translation_show_original">Ցոյց տալ բնօրինակը</string>
<string name="settings_privacy">Գաղտնիություն և հասանելիություն</string>
<string name="settings_discoverable">Ցուցադրել հաշիվը եւ գրառումները հայտնաբերման ալգորիթմներում</string>
<string name="settings_indexable">Ցուցադրել հանրային գրառումները որոնման արդյունքներում</string>
<plurals name="x_participants">
<item quantity="one">%,d մասնակից</item>
<item quantity="other">%,d մասնակից</item>
@@ -529,7 +544,9 @@
<string name="delete_list">Ջնջել ցանկը</string>
<!-- %s is the name of the list -->
<string name="delete_list_confirm">Ջնջե՞լ «%s»-ը</string>
<string name="list_name">Ցանկի անվանում</string>
<string name="list_show_replies_to">Ցույց տալ պատասխանները</string>
<string name="list_replies_no_one">Ոչ ոք</string>
<string name="remove">Ջնջել</string>
<string name="add_list_member">Ավելացնել անդամ</string>
<string name="search_among_people_you_follow">Փնտրել ձեր հետեւումների մեջ</string>
@@ -556,5 +573,21 @@
<string name="non_mutual_title3">Բաց եղեք</string>
<string name="non_mutual_text3">Բոլորի շփման ձևը տարբեր է։ Պատրաստ եղեք հարմարվելու։</string>
<string name="discoverability">Տեսանելիություն</string>
<string name="app_version_copied">Տարբերակի համարը պատճենվեց</string>
<string name="join_server_x_with_invite">Միանալ %s-ին հրավերով</string>
<string name="expired_invite_link">Հղման ժամկետը անցել է</string>
<string name="expired_clipboard_invite_link_alert">%1$s-ի` ձեր սեղմատաղտակում գտնվող հրավերի հղման վավերության ժամկետը անցել է, և այն չի կարելի օգտագործել գրանցման համար։ \n\nԴուք կարող եք գրանցված օգտատիրոջից խնդրել նորը, գրանցվել %2$s-ի միջոցով, կամ ընտրել այլ սերվեր` գրանցվելու համար։</string>
<string name="invalid_invite_link">Անվավեր հրավերի հղում</string>
<string name="invalid_clipboard_invite_link_alert">%1$s-ի` ձեր սեղմատաղտակում գտնվող հրավերի հղումը անվավեր է, և այն չի կարելի օգտագործել գրանցման համար։ \n\nԴուք կարող եք գրանցված օգտատիրոջից խնդրել նորը, գրանցվել %2$s-ի միջոցով, կամ ընտրել այլ սերվեր` գրանցվելու համար։</string>
<string name="use_invite_link">Օգտագործել հղումը</string>
<string name="enter_invite_link">Մուտքագրեք հրավերի հղում</string>
<string name="this_invite_is_invalid">Այս հղումը անվավեր է։</string>
<string name="this_invite_has_expired">Այս հղման վավերության ժամկետը անցել է։</string>
<string name="invite_link_pasted">Հղումը տեղադրվեց ձեր սեղմատաղտակից։</string>
<string name="need_invite_to_join_server">%s-ին միանալու համար ձեզ պետք է հրավերի հղում։</string>
<string name="mute_user_confirm_title">Լռեցնե՞լ օգտատերին:</string>
<string name="user_wont_know_muted">Նա չի իմանա, որ լռեցված է։</string>
<string name="user_can_still_see_your_posts">Նա դեռ կարող է տեսնել ձեր գրառումները, բայց դուք նրա գրառումները չեք տեսնի։</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- %s is the email address -->
<!-- %s is the server domain -->
<!-- translators: %,d is a valid placeholder, it formats the number with locale-dependent grouping separators -->
@@ -25,4 +25,5 @@
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Masuk</string>
<string name="next">Selanjutnya</string>
<string name="loading_instance">Mengambil info server…</string>
@@ -8,13 +8,13 @@
<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="user_boosted">%s membagikan ulang</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="notification_boosted">%s membagikan ulang 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>
@@ -29,10 +29,13 @@
<item quantity="other">mengikuti</item>
</plurals>
<string name="posts">Kiriman</string>
<string name="posts_and_replies">Kiriman dan balasan</string>
<string name="media">Media</string>
<string name="profile_about">Tentang</string>
<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 melalui…</string>
<string name="mute_user">Bisukan %s</string>
<string name="unmute_user">Berhenti membisukan %s</string>
<string name="block_user">Blokir %s</string>
@@ -129,7 +132,9 @@
<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>
<string name="instance_rules_subtitle">Dengan melanjutkan, Anda setuju mengikuti peraturan berikut yang ditetapkan oleh moderator %s.</string>
<string name="signup_title">Buat akun</string>
<string name="display_name">Nama</string>
<string name="username">Nama pengguna</string>
<string name="email">Surel</string>
@@ -137,6 +142,7 @@
<string name="confirm_password">Konfirmasi kata sandi</string>
<string name="password_note">Tambahkan huruf besar, karakter spesial, dan nomor untuk meningkatkan kekuatan kata sandi Anda.</string>
<string name="category_general">Umum</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>
@@ -154,7 +160,7 @@
<string name="skip">Lewati</string>
<string name="notification_type_follow">Pengikut baru</string>
<string name="notification_type_favorite">Favorit</string>
<string name="notification_type_reblog">Boost</string>
<string name="notification_type_reblog">Pembagian ulang</string>
<string name="notification_type_mention">Sebutan</string>
<string name="notification_type_poll">Pemungutan suara</string>
<string name="choose_account">Pilih akun</string>
@@ -170,6 +176,7 @@
<string name="theme_dark">Gelap</string>
<string name="settings_behavior">Perilaku</string>
<string name="settings_gif">Mainkan avatar dan emoji beranimasi</string>
<string name="settings_custom_tabs">Buka tautan dalam</string>
<string name="settings_notifications">Notifikasi</string>
<string name="settings_contribute">Berkontribusi ke Mastodon</string>
<string name="settings_tos">Ketentuan layanan</string>
@@ -183,7 +190,7 @@
<string name="more_options">Opsi lain</string>
<string name="new_post">Kiriman baru</string>
<string name="button_reply">Balas</string>
<string name="button_reblog">Boost</string>
<string name="button_reblog">Bagikan ulang</string>
<string name="button_favorite">Favorit</string>
<string name="button_share">Bagikan</string>
<string name="media_no_description">Media tanpa deskripsi</string>
@@ -198,6 +205,8 @@
<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 pembagian ulang</string>
<string name="show_boosts_from_user">Tampilkan pembagian ulang</string>
<string name="signup_reason">Mengapa Anda ingin bergabung?</string>
<string name="signup_reason_note">Ini akan membantu kami meninjau aplikasi Anda.</string>
<string name="clear">Hapus</string>
@@ -218,7 +227,9 @@
<!-- %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">Kiriman baru</string>
<string name="load_missing_posts">Muat kiriman yang hilang</string>
<string name="follow_back">Ikuti balik</string>
<string name="button_follow_pending">Ditunda</string>
<string name="follows_you">Mengikuti Anda</string>
<string name="manually_approves_followers">Menerima pengikut secara manual</string>
@@ -233,7 +244,7 @@
<item quantity="other">%,d favorit</item>
</plurals>
<plurals name="x_reblogs">
<item quantity="other">%,d boost</item>
<item quantity="other">%,d pembagian ulang</item>
</plurals>
<string name="time_now">sekarang</string>
<string name="edit_history">Riwayat penyuntingan</string>
@@ -271,15 +282,23 @@
<!-- %s is file size -->
<string name="download_update">Unduh (%s)</string>
<string name="install_update">Pasang</string>
<string name="privacy_policy_title">Privasi Anda</string>
<string name="privacy_policy_subtitle">Walaupun aplikasi Mastodon tidak mengumpulkan data apa pun, server yang Anda daftarkan di sana dapat memiliki kebijakan yang berbeda.\n\nJika Anda tidak setuju dengan kebijakan %s, Anda dapat kembali dan pilih server yang lain.</string>
<string name="i_agree">Saya setuju</string>
<string name="empty_list">Daftar ini kosong</string>
<string name="instance_signup_closed">Server ini tidak menerima pendaftaran baru.</string>
<string name="text_copied">Disalin ke papan klip</string>
<string name="add_bookmark">Markah</string>
<string name="remove_bookmark">Hapus markah</string>
<string name="bookmarks">Markah</string>
<string name="your_favorites">Favorit Anda</string>
<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="server_filter_any_language">Bahasa apa pun</string>
<string name="server_filter_instant_signup">Pendaftaran instan</string>
<string name="server_filter_manual_review">Peninjauan manual</string>
<string name="server_filter_any_signup_speed">Kecepatan pendaftaran apa pun</string>
<string name="server_filter_region_europe">Eropa</string>
<string name="server_filter_region_north_america">Amerika Utara</string>
<string name="server_filter_region_south_america">Amerika Selatan</string>
@@ -287,6 +306,7 @@
<string name="server_filter_region_asia">Asia</string>
<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="profile_add_row">Tambahkan baris</string>
<string name="profile_setup">Pengaturan profil</string>
@@ -306,7 +326,7 @@
<string name="poll_multiple_choice">Pilih satu atau lebih</string>
<string name="save_changes">Simpan perubahan</string>
<string name="profile_featured">Sorotan</string>
<string name="profile_timeline">Linimasa</string>
<string name="profile_timeline">Lini Masa</string>
<string name="view_all">Lihat semua</string>
<string name="profile_endorsed_accounts">Akun</string>
<string name="verified_link">Pranala terverifikasi</string>
@@ -519,9 +539,168 @@
<plurals name="x_posts_today">
<item quantity="other">%,d kiriman hari ini</item>
</plurals>
<string name="error_playing_video">Terjadi kesalahan memutar video</string>
<string name="timeline_following">Beranda</string>
<string name="lists">Daftar</string>
<string name="followed_hashtags">Tagar yang diikuti</string>
<string name="manage_lists">Kelola daftar</string>
<string name="manage_hashtags">Kelola tagar</string>
<!-- Screen reader description for the menu on the home timeline screen -->
<string name="dropdown_menu">Menu tarik-turun</string>
<string name="edit_list">Sunting daftar</string>
<string name="list_members">Daftar anggota</string>
<string name="delete_list">Hapus daftar</string>
<!-- %s is the name of the list -->
<string name="delete_list_confirm">Hapus “%s”?</string>
<string name="list_exclusive">Sembunyikan anggota dalam Mengikuti</string>
<string name="list_exclusive_subtitle">Jika seseorang berada dalam daftar ini, sembunyikan mereka dalam lini masa Mengikuti Anda untuk mencegah menampilkan kiriman mereka dua kali.</string>
<string name="list_name">Nama daftar</string>
<string name="list_show_replies_to">Tampilkan balasan ke</string>
<string name="list_replies_no_one">Tidak ada</string>
<string name="list_replies_members">Anggota dalam daftar</string>
<string name="list_replies_anyone">Siapa pun yang saya ikuti</string>
<string name="confirm_remove_list_members">Hapus anggota?</string>
<string name="remove">Hapus</string>
<string name="add_list_member">Tambahkan anggota</string>
<string name="search_among_people_you_follow">Cari di antara orang-orang yang Anda ikuti</string>
<string name="add_user_to_list">Tambah/hapus dari daftar…</string>
<string name="add_user_to_list_title">Tambah ke daftar</string>
<!-- %s is a username -->
<string name="manage_user_lists">Kelola daftar %s yang ditampilkan</string>
<string name="remove_from_list">Hapus dari daftar</string>
<string name="confirm_remove_list_member">Hapus anggota?</string>
<string name="no_followed_hashtags_title">Ikuti terus minat Anda dengan mengikuti tagar</string>
<string name="no_followed_hashtags_subtitle">Tagar yang diikuti akan muncul di sini</string>
<string name="no_lists_title">Rapikan umpan beranda Anda dengan Daftar</string>
<string name="no_lists_subtitle">Daftar Anda akan muncul di sini</string>
<string name="manage_accounts">Tambah atau ganti akun</string>
<plurals name="x_posts_recently">
<item quantity="other">%,d kiriman terkini</item>
</plurals>
<string name="create_list">Buat daftar</string>
<string name="step_x_of_y">Langkah %1$d dari %2$d</string>
<string name="create">Buat</string>
<string name="manage_list_members">Kelola anggota daftar</string>
<string name="list_no_members">Belum ada anggota</string>
<string name="list_find_users">Cari pengguna untuk ditambahkan</string>
<string name="reply_to_user">Balas ke %s</string>
<string name="posted_at">Dikirim pada %s</string>
<string name="non_mutual_sheet_title">Halo, hubungan baru!</string>
<string name="non_mutual_sheet_text">Sepertinya Anda akan membalas ke seseorang yang belum merupakan hubungan mutual. Mari kita membuat perkenalan yang baik.</string>
<string name="got_it">Saya mengerti</string>
<string name="dont_remind_again">Jangan ingatkan saya lagi</string>
<!-- %s is a time interval ("5 months") -->
<string name="old_post_sheet_title">Kiriman ini berumur %s</string>
<string name="old_post_sheet_text">Anda masih bisa membalas, tetapi mungkin sudah tidak relevan lagi.</string>
<plurals name="x_months">
<item quantity="other">%,d bulan</item>
</plurals>
<string name="more_than_two_years">lebih dari 2 tahun</string>
<string name="non_mutual_title1">Tetap menghormati &amp; relevan</string>
<string name="non_mutual_text1">Pastikan balasan Anda sopan dan masuk dalam topik.</string>
<string name="non_mutual_title2">Budayakan kebaikan</string>
<string name="non_mutual_text2">Sebuah nada yang positif selalu dihargai.</string>
<string name="non_mutual_title3">Jadilah terbuka</string>
<string name="non_mutual_text3">Gaya percakapan semua orang unik. Bersiaplah untuk menyesuaikan.</string>
<string name="make_profile_discoverable">Buat profil saya dapat ditemukan</string>
<string name="discoverability">Kemampuan penemuan</string>
<string name="discoverability_help">Ketika Anda masuk ke kemampuan penemuan di Mastodon, kiriman Anda dapat muncul dalam hasil pencarian dan tren.\n\nProfil Anda dapat disarankan kepads orang-orang dengan minat yang sama seperti Anda.\n\nPengeluaran dari kemampuan penemuan tidak akan menyembunyikan profil Anda jika seseorang mencari Anda dengan nama.</string>
<string name="app_version_copied">Nomor versi disalin ke papan klip</string>
<string name="onboarding_recommendations_intro">Anda mengkurasikan umpan beranda Anda. Semakin banyak orang-orang yang Anda ikuti, semakin aktif dan menarik umpan beranda Anda.</string>
<string name="onboarding_recommendations_title">Sesuaikan umpan beranda Anda</string>
<string name="article_by_author">Oleh %s</string>
<string name="info">Info</string>
<string name="button_reblogged">Dibagikan ulang</string>
<string name="button_favorited">Difavorit</string>
<string name="bookmarked">Dimarkahi</string>
<string name="join_server_x_with_invite">Bergabung ke %s dengan undangan</string>
<string name="expired_invite_link">Tautan undangan kedaluwarsa</string>
<string name="expired_clipboard_invite_link_alert">Tautan undangan untuk %1$s dalam papan klip Anda telah kedaluwarsa dan tidak dapat digunakan untuk mendaftar.\n\nAnda dapat meminta tautan baru dari pengguna yang sudah ada, daftar melalui %2$s, atau pilih server lain untuk mendaftar.</string>
<string name="invalid_invite_link">Tautan undangan tidak valid</string>
<string name="invalid_clipboard_invite_link_alert">Tautan undangan untuk %1$s dalam papan klip Anda tidak valid dan tidak dapat digunakan untuk mendaftar.\n\nAnda dapat meminta tautan baru dari pengguna yang sudah ada, daftar melalui %2$s, atau pilih server lain untuk mendaftar.</string>
<string name="use_invite_link">Gunakan tautan undangan</string>
<string name="enter_invite_link">Masukkan tautan undangan</string>
<string name="this_invite_is_invalid">Tautan undangan ini tidak valid.</string>
<string name="this_invite_has_expired">Tautan undangan sudah kedaluwarsa.</string>
<string name="invite_link_pasted">Tautan ditempelkan dari papan klip.</string>
<string name="need_invite_to_join_server">Untuk bergabung ke %s, Anda membutuhkan tautan undangan dari pengguna yang sudah ada.</string>
<string name="mute_user_confirm_title">Bisukan pengguna?</string>
<string name="user_wont_know_muted">Mereka tidak akan tahu bahwa mereka dibisukan.</string>
<string name="user_can_still_see_your_posts">Mereka masih dapat melihat kiriman Anda, tetapi Anda tidak dapat melihat kiriman mereka.</string>
<string name="you_wont_see_user_mentions">Anda tidak akan melihat kiriman yang menyebutkan mereka.</string>
<string name="user_can_mention_and_follow_you">Mereka dapat menyebut dan mengikuti Anda, tetapi Anda tidak dapat melihat mereka.</string>
<string name="unmuted_user_x">%s disuarakan</string>
<string name="block_user_confirm_title">Blokir pengguna?</string>
<string name="user_can_see_blocked">Mereka dapat melihat bahwa mereka telah diblokir.</string>
<string name="user_cant_see_each_other_posts">Mereka tidak dapat melihat kiriman Anda dan Anda tidak dapat melihat kiriman mereka.</string>
<string name="user_cant_mention_or_follow_you">Mereka tidak dapat menyebutkan atau mengikuti Anda.</string>
<string name="unblocked_user_x">%s dibuka pemblokirnya</string>
<string name="block_domain_confirm_title">Blokir domain?</string>
<string name="do_block_server">Blokir server</string>
<string name="block_user_x_instead">Blokir %s saja</string>
<string name="users_cant_see_blocked">Anda tidak akan melihat kiriman atau notifikasi dari pengguna di server ini.</string>
<string name="you_wont_see_server_posts">Anda tidak akan melihat kiriman apa pun dari pengguna di server ini.</string>
<string name="server_followers_will_be_removed">Pengikut Anda dari server ini akan dihapus.</string>
<string name="server_cant_mention_or_follow_you">Tidak ada siapa pun dari server ini yang dapat mengikuti Anda.</string>
<string name="server_can_interact_with_older">Orang-orang dari server ini dapat berinteraksi dengan kiriman lama Anda.</string>
<string name="unblocked_domain_x">Domain %s dibuka pemblokirannya</string>
<string name="handle_help_title">Apa saja yang ada dalam nama pengguna?</string>
<string name="handle_title">Nama penggunanya</string>
<string name="handle_username_explanation">Pengenal unik mereka di server mereka. Pengguna yang memiliki nama pengguna yang sama di server lain juga memungkinkan.</string>
<string name="handle_title_own">Nama pengguna Anda</string>
<string name="handle_username_explanation_own">Pengenal unik Anda di server ini. Pengguna yang memiliki nama pengguna yang sama di server lain juga memungkinkan.</string>
<string name="server">Server</string>
<string name="handle_server_explanation">Rumah digital mereka, di mana semua kiriman mereka tinggal.</string>
<string name="handle_explanation">Karena nama pengguna mengatakan siapakah seseorang dan di manakah seseorang tinggal, Anda dapat berinteraksi dengan orang-orang melalui web sosial dari &lt;a&gt;platform yang diberdayakan oleh ActivityPub&lt;/a&gt;.</string>
<string name="handle_server_explanation_own">Rumah digital Anda, di mana kiriman Anda tinggal. Tidak suka yang ini? Transfer server kapan pun dan bawa pengikut Anda juga.</string>
<string name="handle_explanation_own">Karena nama pengguna Anda mengatakan siapakah Anda dan di manakah Anda, orang-orang dapat berinteraksi dengan Anda melalui web sosial dari &lt;a&gt;platform yang diberdayakan oleh ActivityPub&lt;/a&gt;.</string>
<string name="what_is_activitypub_title">Apa itu ActivityPub?</string>
<string name="what_is_activitypub">ActivityPub seperti bahasa yang digunakan oleh Mastodon untuk berkomunikasi dengan jaringan sosial lainnya.\n\nIni memungkinkan Anda untuk menghubungi dan berinteraksi dengan orang-orang yang bukan hanya di Mastodon, tetapi juga di berbagai aplikasi sosial lainnya juga.</string>
<string name="handle_copied">Nama pengguna disalin ke papan klip.</string>
<string name="qr_code">Kode QR</string>
<string name="scan_qr_code">Pindai kode QR</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
<string name="saved">Disimpan</string>
<string name="image_saved">Gambar disimpan.</string>
<string name="video_saved">Video disimpan.</string>
<string name="view_file">Tampilan</string>
<string name="share_sheet_preview_profile">%s di Mastodon</string>
<string name="share_sheet_preview_post">%1$s di Mastodon: “%2$s”</string>
<string name="copy_profile_link">Salin tautan ke profil</string>
<string name="in_app_browser">Peramban dalam aplikasi</string>
<string name="system_browser">Peramban sistem</string>
<string name="add_muted_word_short">Tambahkan kata</string>
<string name="tab_home">Beranda</string>
<string name="tab_search">Jelajahi</string>
<string name="tab_profile">Profil</string>
<string name="pin_post">Sematkan di profil</string>
<string name="unpin_post">Lepaskan sematan dari profil</string>
<string name="post_pinned">Kiriman telah disematkan</string>
<string name="post_unpinned">Kiriman telah dilepaskan sematannya</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">Beri tahu saya ketika %s mengirimkan sesuatu</string>
<string name="disable_new_post_notifications">Berhenti memberi tahu saya ketika %s mengirimkan sesuatu</string>
<string name="new_post_notifications_enabled">Anda akan mendapatkan notifikasi untuk kiriman baru.</string>
<string name="new_post_notifications_disabled">Anda tidak akan lagi mendapatkan notifikasi untuk kiriman baru.</string>
<string name="mute_conversation">Bisukan percakapan</string>
<string name="unmute_conversation">Bunyikan percakapan</string>
<string name="visibility_unlisted">Umum diam</string>
<string name="filtered_notifications">Notifikasi yang disaring</string>
<string name="filter_notifications">Saring notifikasi dari...</string>
<string name="notification_filter_following">Orang-orang yang tidak Anda ikuti</string>
<string name="notification_filter_following_explanation">Sampai Anda menyetujui secara manual</string>
<string name="notification_filter_followers">Orang-orang yang tidak mengikuti Anda</string>
<string name="notification_filter_followers_explanation">Termasuk orang-orang yang telah mengikuti Anda kurang dari 3 hari</string>
<string name="notification_filter_new_accounts">Akun baru</string>
<string name="notification_filter_new_accounts_explanation">Dibuat dalam 30 hari terakhir</string>
<string name="notification_filter_mentions">Penyebutan pribadi yang tidak diinginkan</string>
<string name="notification_filter_mentions_explanation">Disaring kecuali dalam balasan ke penyebutan Anda sendiri atau jika Anda mengikuti pengirim</string>
<string name="allow_notifications">Izinkan notifikasi</string>
<string name="mute_notifications">Abaikan permintaan notifikasi</string>
<plurals name="x_people_you_may_know">
<item quantity="other">%,d orang yang mungkin Anda tahu</item>
</plurals>
<string name="notifications_from_user">Notifikasi dari %s</string>
<string name="notifications_muted">Notifikasi dari %s telah diabaikan.</string>
<string name="notifications_allowed">%s sekarang akan muncul dalam daftar notifikasi Anda.</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Skrá inn</string>
<string name="next">Næsta</string>
<string name="loading_instance">Sæki upplýsingar um netþjón…</string>
@@ -711,4 +711,31 @@
<string name="unpin_post">Losa af notandasniði</string>
<string name="post_pinned">Færslan hefur verið fest</string>
<string name="post_unpinned">Færslan hefur verið losuð</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">Láta mig vita þegar %s sendir inn</string>
<string name="disable_new_post_notifications">Hætta að láta mig vita þegar %s sendir inn</string>
<string name="new_post_notifications_enabled">Þú munt fá tilkynningar um nýjar færslur.</string>
<string name="new_post_notifications_disabled">Þú munt ekki lengur fá tilkynningar um nýjar færslur.</string>
<string name="mute_conversation">Þagga niður í samtali</string>
<string name="unmute_conversation">Hætta að þagga niður í samtali</string>
<string name="visibility_unlisted">Hljóðlátt opinbert</string>
<string name="filtered_notifications">Síaðar tilkynningar</string>
<string name="filter_notifications">Sía út tilkynningar frá...</string>
<string name="notification_filter_following">Fólk sem þú fylgist ekki með</string>
<string name="notification_filter_following_explanation">Þar til þú samþykkir viðkomandi handvirkt</string>
<string name="notification_filter_followers">Fólk sem fylgist ekki með þér</string>
<string name="notification_filter_followers_explanation">Að meðtöldum þeim sem hafa verið að fylgjast með þér í minna en 3 daga</string>
<string name="notification_filter_new_accounts">Nýir notendur</string>
<string name="notification_filter_new_accounts_explanation">Útbúnar síðustu 30 daga</string>
<string name="notification_filter_mentions">Óumbeðið einkaspjall</string>
<string name="notification_filter_mentions_explanation">Síað nema það sé í svari við einhverju þar sem þú minntist á viðkomandi eða ef þú fylgist með sendandanum</string>
<string name="allow_notifications">Leyfa tilkynningar</string>
<string name="mute_notifications">Hunsa beiðni um tilkynningu</string>
<plurals name="x_people_you_may_know">
<item quantity="one">%,d aðili sem þú gætir þekkt</item>
<item quantity="other">%,d aðilar sem þú gætir þekkt</item>
</plurals>
<string name="notifications_from_user">Tilkynningar frá %s</string>
<string name="notifications_muted">Tilkynningum frá %s hefur verið hafnað.</string>
<string name="notifications_allowed">%s mun núna birtast í tilkynningalistanum þínum.</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Accedi</string>
<string name="next">Avanti</string>
<string name="loading_instance">Recupero delle informazioni sul server…</string>
@@ -678,19 +678,19 @@ Più persone segui, più sarà attivo e interessante.</string>
<string name="server_cant_mention_or_follow_you">Nessuno da questo server può seguirti.</string>
<string name="server_can_interact_with_older">Le persone da questo server possono interagire con i tuoi vecchi post.</string>
<string name="unblocked_domain_x">Dominio %s sbloccato</string>
<string name="handle_help_title">Cosa c\'è in un nome utente?</string>
<string name="handle_title">Il loro nome utente</string>
<string name="handle_help_title">Cosa c\'è in un nome univoco?</string>
<string name="handle_title">Il loro nome univoco</string>
<string name="handle_username_explanation">Il loro identificatore univoco sul loro server. È possibile trovare utenti con lo stesso nome utente su server diversi.</string>
<string name="handle_title_own">Il tuo nome utente</string>
<string name="handle_title_own">Il tuo nome univoco</string>
<string name="handle_username_explanation_own">Il tuo identificatore univoco su questo server. È possibile trovare utenti con lo stesso nome utente su server diversi.</string>
<string name="server">Server</string>
<string name="handle_server_explanation">La loro casa digitale, dove risiedono tutti i loro post.</string>
<string name="handle_explanation">Poiché i nomi utente indicano chi sia qualcuno e dove si trovi, puoi interagire con le persone attraverso il social web delle &lt;a&gt;piattaforme basate su ActivityPub&lt;/a&gt;.</string>
<string name="handle_explanation">Poiché i nomi univoci indicano chi sia qualcuno e dove si trovi, puoi interagire con le persone attraverso la rete sociale delle &lt;a&gt;piattaforme basate su ActivityPub&lt;/a&gt;.</string>
<string name="handle_server_explanation_own">La tua casa digitale, dove vivono tutti i tuoi post. Non ti piace questa? Cambia server in qualsiasi momento e porta con te anche i tuoi seguaci.</string>
<string name="handle_explanation_own">Poiché il tuo nome utente indica chi tu sia e dove ti trovi, le persone possono interagire con te attraverso il social web delle &lt;a&gt;piattaforme basate su ActivityPub&lt;/a&gt;.</string>
<string name="handle_explanation_own">Poiché il tuo nome univoco indica chi tu sia e dove ti trovi, le persone possono interagire con te attraverso la rete sociale delle &lt;a&gt;piattaforme basate su ActivityPub&lt;/a&gt;.</string>
<string name="what_is_activitypub_title">Cos\'è ActivityPub?</string>
<string name="what_is_activitypub">ActivityPub è come il linguaggio che Mastodon parla con altri social network.\n\nTi consente di connetterti e interagire con le persone non solo su Mastodon, ma anche attraverso diverse app social.</string>
<string name="handle_copied">Nome utente copiato negli appunti.</string>
<string name="handle_copied">Nome univoco copiato negli appunti.</string>
<string name="qr_code">Codice QR</string>
<string name="scan_qr_code">Scansiona il codice QR</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
@@ -711,4 +711,31 @@ Più persone segui, più sarà attivo e interessante.</string>
<string name="unpin_post">Sblocca dal profilo</string>
<string name="post_pinned">Il post è stato fissato</string>
<string name="post_unpinned">Il post è stato sbloccato</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">Avvisami quando %s pubblica un post</string>
<string name="disable_new_post_notifications">Smetti di avvisarmi quando %s pubblica un post</string>
<string name="new_post_notifications_enabled">Riceverai notifiche per i nuovi post.</string>
<string name="new_post_notifications_disabled">Non riceverai più notifiche per i nuovi post.</string>
<string name="mute_conversation">Silenzia la conversazione</string>
<string name="unmute_conversation">Riattiva le notifiche della conversazione</string>
<string name="visibility_unlisted">Pubblico tranquillo</string>
<string name="filtered_notifications">Notifiche filtrate</string>
<string name="filter_notifications">Filtra le notifiche da...</string>
<string name="notification_filter_following">Persone che non segui</string>
<string name="notification_filter_following_explanation">Fino a quando non le approvi manualmente</string>
<string name="notification_filter_followers">Persone che non ti seguono</string>
<string name="notification_filter_followers_explanation">Incluse le persone che ti seguono da meno di 3 giorni</string>
<string name="notification_filter_new_accounts">Nuovi account</string>
<string name="notification_filter_new_accounts_explanation">Creati negli ultimi 30 giorni</string>
<string name="notification_filter_mentions">Menzioni private indesiderate</string>
<string name="notification_filter_mentions_explanation">Filtrate, a meno che non sia in risposta alla tua menzione o se segui il mittente</string>
<string name="allow_notifications">Consenti le notifiche</string>
<string name="mute_notifications">Respingi la richiesta di notifica</string>
<plurals name="x_people_you_may_know">
<item quantity="one">%,d persona che potresti conoscere</item>
<item quantity="other">%,d persone che potresti conoscere</item>
</plurals>
<string name="notifications_from_user">Notifiche da %s</string>
<string name="notifications_muted">Le notifiche da %s sono state respinte.</string>
<string name="notifications_allowed">%s apparirà ora nella tua lista di notifiche.</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">התחברו</string>
<string name="next">הבא</string>
<string name="error">שגיאה</string>
@@ -82,4 +82,5 @@
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">ログイン</string>
<string name="next">次へ</string>
<string name="loading_instance">サーバー情報を取得しています…</string>
@@ -678,4 +678,12 @@
<string name="unpin_post">プロフィールへの固定を解除</string>
<string name="post_pinned">投稿を固定しました</string>
<string name="post_unpinned">投稿の固定を解除しました</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">%s さんの投稿を通知</string>
<string name="disable_new_post_notifications">%s さんの投稿通知を停止</string>
<string name="new_post_notifications_enabled">新着投稿の通知を受け取ります。</string>
<string name="new_post_notifications_disabled">新着投稿の通知を受け取りません。</string>
<string name="mute_conversation">会話をミュート</string>
<string name="unmute_conversation">会話のミュートを解除</string>
<string name="visibility_unlisted">ひかえめな公開</string>
</resources>

View File

@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">შესვლა</string>
<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="notifications">შეტყობინებები</string>
@@ -22,6 +23,8 @@
<string name="media">მედია</string>
<string name="profile_about">ჩემს შესახებ</string>
<string name="button_follow">გამოწერა</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>
@@ -103,6 +106,8 @@
<string name="sending_report">მიმდინარეობს საჩივრის გაგზავნა…</string>
<string name="back">უკან</string>
<string name="search_communities">სერვერის სახელი ან URL მისამართი</string>
<string name="instance_rules_title">სერვერის წესები</string>
<string name="signup_title">ანგარიშის შექმნა</string>
<string name="display_name">სახელი</string>
<string name="username">მომხმარებლის სახელი</string>
<string name="email">ელექტრონული ფოსტის მისამართი</string>
@@ -110,6 +115,7 @@
<string name="confirm_password">დაადასტურეთ პაროლი</string>
<string name="password_note">გამოიყენეთ დიდი ასოები, ციფრები და სპეციალური სიმბოლოები, რათა გაზარდოთ პაროლის სიძლიერე.</string>
<string name="category_general">ზოგადი</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>
@@ -130,14 +136,82 @@
<string name="notification_type_mention">მონიშვნები</string>
<string name="notification_type_poll">გამოკითხვები</string>
<string name="choose_account">აირჩიეთ ანგარიში</string>
<string name="err_not_logged_in">თავდაპირველად, გაიარეთ ავტორიზაცია Mastodon-ში</string>
<string name="err_not_logged_in">გთხოვთ, თავდაპირველად, გაიარეთ ავტორიზაცია Mastodon-ში</string>
<string name="settings_notifications">შეტყობინებები</string>
<string name="settings_tos">მომსახურების პირობები</string>
<string name="settings_privacy_policy">კონფიდენციალურობის პოლიტიკა</string>
<string name="button_share">გაზიარება</string>
<string name="emoji">Emoji</string>
<string name="my_profile">ჩემი პროფილი</string>
<string name="open_in_browser">ბრაუზერში გახსნა</string>
<string name="signup_reason">რატომ გსურთ შემოუერთდეთ?</string>
<string name="clear">გასუფთავება</string>
<string name="profile_picture">პროფილის სურათი</string>
<string name="download">გადმოწერა</string>
<string name="permission_required">საჭიროა ნებართვა</string>
<string name="open_settings">პარამეტრების გახსნა</string>
<string name="error_saving_file">შეცდომა ფაილის შენახვისას</string>
<string name="file_saved">ფაილი შენახულია</string>
<string name="downloading">მიმდინარეობს გადმოწერა…</string>
<!-- %s is the server domain -->
<string name="see_new_posts">ახალი პოსტები</string>
<!-- translators: %,d is a valid placeholder, it formats the number with locale-dependent grouping separators -->
<string name="time_just_now">ახლახანს</string>
<plurals name="x_seconds_ago">
<item quantity="one">%d წამის წინ</item>
<item quantity="other">%d წამის წინ</item>
</plurals>
<plurals name="x_minutes_ago">
<item quantity="one">%d წუთის წინ</item>
<item quantity="other">%d წუთის წინ</item>
</plurals>
<string name="edit_original_post">Original post</string>
<string name="edit">რედაქტირება</string>
<string name="discard_changes">გსურთ ცვლილებების გაუქმება?</string>
<string name="upload_failed">ატვირთვა ვერ მოხერხდა</string>
<string name="file_size_bytes">%d bytes</string>
<string name="file_size_kb">%.2f KB</string>
<string name="file_size_mb">%.2f MB</string>
<string name="file_size_gb">%.2f GB</string>
<string name="upload_processing">მუშავდება…</string>
<!-- %s is file size -->
<string name="install_update">დაყენება</string>
<string name="privacy_policy_title">თქვენი კონფიდენციალურობა</string>
<string name="i_agree">ვეთანხმები</string>
<string name="empty_list">ეს სია ცარიელია</string>
<string name="instance_signup_closed">ეს სერვერი არ იღებს ახალ რეგისტრაციას.</string>
<string name="text_copied">დაკოპირებულია ბუფერში</string>
<string name="server_url">სერვერის URL მისამართი</string>
<string name="server_filter_region_europe">ევროპა</string>
<string name="server_filter_region_north_america">ჩრდილოეთ ამერიკა</string>
<string name="server_filter_region_south_america">სამხრეთ ამერიკა</string>
<string name="server_filter_region_africa">აფრიკა</string>
<string name="server_filter_region_asia">აზია</string>
<string name="server_filter_region_oceania">ოკეანეთი</string>
<string name="not_accepting_new_members">არ იღებს ახალ წევრებს</string>
<string name="signup_passwords_dont_match">პაროლები არ ემთხვევა</string>
<!-- %s is server domain -->
<!-- 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="save_changes">ცვლილებების შენახვა</string>
<string name="profile_endorsed_accounts">ანგარიშები</string>
<string name="learn_more">გაიგეთ მეტი</string>
<string name="welcome_to_mastodon">მოგესალმებათ Mastodon</string>
<string name="what_are_servers">რა არის სერვერები?</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_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="poll_style">სტილი</string>
<string name="help">დახმარება</string>
<string name="what_is_alt_text">რა არის ალტერნატიული ტექსტი?</string>
<string name="edit_post">პოსტის რედაქტირება</string>
<string name="language">ენა</string>
<string name="language_default">ნაგულისხმევი</string>
<string name="language_system">სისტემის შესაბამისი</string>
@@ -202,5 +276,28 @@
<!-- %s is the name of the list -->
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<string name="do_block_server">სერვერის დაბლოკვა</string>
<string name="users_cant_see_blocked">You wont see posts or notifications from users on this server.</string>
<string name="server">სერვერი</string>
<string name="qr_code">QR code</string>
<string name="scan_qr_code">QR კოდის დასკანერება</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
<string name="saved">შენახულია</string>
<string name="image_saved">სურათი შენახულია.</string>
<string name="video_saved">ვიდეო შენახულია.</string>
<string name="copy_profile_link">პროფილის ბმულის დაკოპირება</string>
<string name="in_app_browser">აპლიკაციის ბრაუზერი</string>
<string name="system_browser">სისტემური ბრაუზერი</string>
<string name="tab_home">მთავარი</string>
<string name="tab_search">დათვალიერება</string>
<string name="tab_profile">პროფილი</string>
<string name="pin_post">პროფილზე მიმაგრება</string>
<string name="unpin_post">პროფილიდან მოხსნა</string>
<string name="post_pinned">პოსტი მიმაგრებულია</string>
<string name="post_unpinned">პოსტი მოხსნილია</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">შემატყობინე, როდესაც %s დაპოსტავს</string>
<string name="disable_new_post_notifications">აღარ შემატყობინო, როდესაც %s დაპოსტავს</string>
<string name="new_post_notifications_enabled">თქვენ მიიღებთ შეტყობინებებს ახალი პოსტის შესახებ.</string>
<string name="new_post_notifications_disabled">თქვენ აღარ მიიღებთ შეტყობინებებს ახალი პოსტის შესახებ.</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Qqen</string>
<string name="next">Uḍfiṛ</string>
<string name="error">Tuccḍa</string>
@@ -87,6 +87,7 @@
<string name="notification_channel_audio_player">Taɣuri n umeslaw</string>
<string name="play">Urar</string>
<string name="pause">Seḥbes</string>
<string name="log_out">Ffeɣ</string>
<string name="add_account">Rnu amiḍan</string>
<string name="search_hint">Nadi</string>
<string name="hashtags">Ihacṭagen</string>
@@ -114,6 +115,7 @@
<string name="unfollow_user">Y•Teḥbes aḍfar n %s</string>
<string name="unfollow">Ur ṭṭafaṛ ara</string>
<string name="back">Tuɣalin</string>
<string name="instance_rules_title">Ilugan n uqeddac</string>
<string name="display_name">Isem</string>
<string name="username">Isem n useqdac</string>
<string name="email">Imayl</string>
@@ -150,6 +152,8 @@
<string name="settings_clear_cache">Sfeḍ takatut tuffirt n umidyat</string>
<string name="settings_app_version">Mastodon i Android v%1$s (%2$d)</string>
<string name="media_cache_cleared">Takatut tuffirt n umidyat tettwasfeḍ</string>
<string name="confirm_log_out">Ffeɣ seg %s?</string>
<string name="avatar_description">Ddu ɣer umaɣnu n %s</string>
<string name="more_options">Ugar n yiɣewwaren</string>
<string name="new_post">Tasuffeɣt tamaynut</string>
<string name="button_reply">Err</string>
@@ -178,6 +182,7 @@
<string name="file_saved">Afaylu yettwasekles</string>
<string name="downloading">Asader…</string>
<!-- %s is the server domain -->
<string name="see_new_posts">Tisuffaɣ timaynutin</string>
<string name="load_missing_posts">Sali tisuffaɣ i iruḥen</string>
<string name="button_follow_pending">Yettraǧu</string>
<string name="follows_you">Yeṭṭafaṛ-ik·em-id</string>
@@ -190,30 +195,67 @@
<!-- %s is file size -->
<string name="download_update">Asider (%s)</string>
<string name="install_update">Sbedd</string>
<string name="i_agree">Qebleɣ</string>
<string name="add_bookmark">Creḍ</string>
<string name="bookmarks">Ticraḍ</string>
<string name="your_favorites">Ismenyifen-ik·im</string>
<string name="login_title">Ansuf yes-k·m tikkelt niḍen</string>
<string name="server_filter_any_language">Yal tutlayt</string>
<string name="server_filter_region_europe">Turuft</string>
<string name="server_filter_region_north_america">Tamrikt n ugafa</string>
<string name="server_filter_region_africa">Tafriqt</string>
<string name="server_filter_region_asia">Asya</string>
<string name="server_filter_region_oceania">Usyani</string>
<string name="follow_all">Ḍfeṛ-iten akk</string>
<!-- %s is server domain -->
<!-- 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="save_changes">Sekles ibeddilen</string>
<string name="profile_endorsed_accounts">Imiḍanen</string>
<string name="show">Sken</string>
<string name="hide">Ffer</string>
<string name="join_default_server">Zeddi deg %s</string>
<string name="pick_server">Fren aqeddac nniḍen</string>
<string name="signup_or_login">neɣ</string>
<string name="learn_more">Issin ugar</string>
<string name="welcome_to_mastodon">Ansuf ɣer Mastodon</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="language_detecting">Tifinagh tawurmant n tutlayt</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 -->
<!-- %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">ass-a</string>
<string name="yesterday">iḍelli</string>
<string name="tomorrow">azekka</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="about_server">Ɣef</string>
<string name="server_rules">Alugen</string>
<string name="server_administrator">Anedbal</string>
<string name="count_one">Yiwen</string>
<string name="count_two">Sin</string>
<!-- %s is the username -->
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="settings_filter_title">Azwel</string>
<string name="add">Rnu</string>
<string name="enter_selection_mode">Fren</string>
<string name="select_all">Fren-iten akk</string>
<string name="app_update_version">Lqem %s</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<!-- Shown in the post header. Please keep it short -->
<!-- %s is the name of the post language -->
<!-- %1$s is the language, %2$s is the name of the translation service -->
<!-- Screen reader description for the menu on the home timeline screen -->
<!-- %s is the name of the list -->
<string name="remove">Kkes</string>
<!-- %s is a username -->
<string name="create">Snulfu</string>
<!-- %s is a time interval ("5 months") -->
<string name="server">Aqeddac</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
<string name="add_muted_word_short">Rnu awal</string>
<string name="tab_profile">Amaɣnu</string>
<string name="pin_post">Senteḍ-itt ɣef umaɣnu</string>
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">로그인</string>
<string name="next">다음</string>
<string name="loading_instance">서버 정보 받아오는 중...</string>
@@ -264,4 +264,5 @@
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Prisijungti</string>
<string name="next">Kitas</string>
<string name="loading_instance">Gaunama serverio informacija…</string>
@@ -617,7 +617,7 @@
<string name="post_translated">Išversta iš %1$s naudojant %2$s</string>
<string name="translation_show_original">Rodyti originalą</string>
<string name="translation_failed">Vertimas nepavyko. Galbūt administratorius (-ė) šiame serveryje neįjungė vertimų arba šiame serveryje veikia senesnė Mastodon versija, kurioje vertimai dar nepalaikomi.</string>
<string name="settings_privacy">Privatumas ir pasiekiamas</string>
<string name="settings_privacy">Privatumas ir pasiekiamumas</string>
<string name="settings_discoverable">Rekomenduoti profilį ir įrašus į atradimo algoritmus</string>
<string name="settings_indexable">Įtraukti viešus įrašus į paieškos rezultatus</string>
<plurals name="x_participants">
@@ -712,7 +712,7 @@ Kuo daugiau žmonių seksi, tuo aktyvesnis ir įdomesnis jis bus.</string>
<string name="info">Informacija</string>
<string name="button_reblogged">Pakelta</string>
<string name="button_favorited">Pamėgta</string>
<string name="bookmarked">Pažymėta</string>
<string name="bookmarked">Pridėta</string>
<string name="join_server_x_with_invite">Prisijungti %s su kvietimu</string>
<string name="expired_invite_link">Nebegaliojanti kvietimo nuoroda</string>
<string name="expired_clipboard_invite_link_alert">Tavo iškarpinėje esančios %1$s kvietimo nuorodos galiojimo laikas baigėsi ir jos negalima naudoti registracijai.\n\nGali paprašyti naujos nuorodos iš esamo naudotojo, užsiregistruoti per %2$s arba pasirinkti kitą serverį, per kurį nori užsiregistruoti.</string>
@@ -773,4 +773,37 @@ Kuo daugiau žmonių seksi, tuo aktyvesnis ir įdomesnis jis bus.</string>
<string name="tab_home">Pagrindinis</string>
<string name="tab_search">Naršyti</string>
<string name="tab_profile">Profilis</string>
<string name="pin_post">Prisegti prie profilio</string>
<string name="unpin_post">Atsegti iš profilio</string>
<string name="post_pinned">Įrašas buvo prisegtas</string>
<string name="post_unpinned">Įrašas buvo atsegtas</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">Pranešti man, kai %s paskelbia</string>
<string name="disable_new_post_notifications">Nustoti man pranešti, kai %s paskelbia</string>
<string name="new_post_notifications_enabled">Gausi pranešimus apie naujus įrašus.</string>
<string name="new_post_notifications_disabled">Negausi daugiau pranešimus apie naujus įrašus.</string>
<string name="mute_conversation">Nutildyti pokalbį</string>
<string name="unmute_conversation">Atšaukti pokalbio nutildymą</string>
<string name="visibility_unlisted">Tyliai vieša</string>
<string name="filtered_notifications">Filtruojami pranešimai</string>
<string name="filter_notifications">Filtruoti pranešimus iš...</string>
<string name="notification_filter_following">Žmonės, kurių neseki</string>
<string name="notification_filter_following_explanation">Kol jų nepatvirtinsi rankiniu būdu. </string>
<string name="notification_filter_followers">Žmonės, kurie neseka</string>
<string name="notification_filter_followers_explanation">Įtraukant žmones, kurie tave seka mažiau nei 3 dienas.</string>
<string name="notification_filter_new_accounts">Naujos paskyros</string>
<string name="notification_filter_new_accounts_explanation">Sukurta per pastarąsias 30 dienų</string>
<string name="notification_filter_mentions">Nepageidaujami privatūs paminėjimai</string>
<string name="notification_filter_mentions_explanation">Filtruojama, nebent tai atsakymas į tavo paties paminėjimą arba jei seki siuntėją.</string>
<string name="allow_notifications">Leisti pranešimus</string>
<string name="mute_notifications">Atmesti pranešimo prašymą</string>
<plurals name="x_people_you_may_know">
<item quantity="one">%,d žmogus, kurį galbūt pažįsti</item>
<item quantity="few">%,d žmonės, kuriuos galbūt pažįsti</item>
<item quantity="many">%,d žmones, kuriuos galbūt pažįsti</item>
<item quantity="other">%,d žmonių, kurių galbūt pažįsti</item>
</plurals>
<string name="notifications_from_user">Pranešimai iš %s</string>
<string name="notifications_muted">Pranešimai iš %s buvo atmesti.</string>
<string name="notifications_allowed">%s dabar bus rodomi pranešimų sąraše.</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">လော့ဂ်အင်ဝင်မည်</string>
<string name="next">ရှေ့သို့</string>
<string name="loading_instance">ဆာဗာအချက်အလက်များကို ရယူနေသည်…</string>
@@ -162,4 +162,5 @@
<!-- %s is a username -->
<!-- %s is a time interval ("5 months") -->
<!-- Shown on a button that saves a file, after it was successfully saved -->
<!-- %s is the username -->
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="log_in">Inloggen</string>
<string name="next">Volgende</string>
<string name="loading_instance">Serverinformatie ophalen…</string>
@@ -39,22 +39,22 @@
<string name="edit_profile">Profiel bewerken</string>
<string name="share_user">Profiel delen via…</string>
<string name="mute_user">Negeer %s</string>
<string name="unmute_user">%s niet langer negeren</string>
<string name="unmute_user">Negeer niet langer %s</string>
<string name="block_user">Blokkeer %s</string>
<string name="unblock_user">Deblokkeer %s</string>
<string name="report_user">%s rapporteren</string>
<string name="report_user">Rapporteer %s</string>
<string name="block_domain">Blokkeer %s</string>
<string name="unblock_domain">Deblokkeer %s</string>
<plurals name="x_posts">
<item quantity="one">%,d bericht</item>
<item quantity="other">%,d berichten</item>
</plurals>
<string name="profile_joined">Geregistreerd</string>
<string name="profile_joined">Geregistreerd op</string>
<string name="done">Klaar</string>
<string name="loading">Aan het laden…</string>
<string name="field_label">Label</string>
<string name="field_content">Inhoud</string>
<string name="saving">Opslaan…</string>
<string name="saving">Aan het opslaan…</string>
<string name="post_from_user">Bericht van %s</string>
<string name="poll_option_hint">Optie %d</string>
<plurals name="x_minutes">
@@ -102,7 +102,7 @@
<string name="deleting">Aan het verwijderen…</string>
<string name="notification_channel_audio_player">Geluid afspelen</string>
<string name="play">Afspelen</string>
<string name="pause">Pauze</string>
<string name="pause">Pauzeren</string>
<string name="log_out">Afmelden</string>
<string name="add_account">Account toevoegen</string>
<string name="search_hint">Zoeken</string>
@@ -115,7 +115,7 @@
<item quantity="one">%d persoon praat hierover</item>
<item quantity="other">%d mensen praten hierover</item>
</plurals>
<string name="report_title">%s rapporteren</string>
<string name="report_title">Rapporteer %s</string>
<string name="report_choose_reason">Wat is er mis met dit bericht?</string>
<string name="report_choose_reason_account">Wat is er mis met %s?</string>
<string name="report_choose_reason_subtitle">Kies wat het beste overeenkomt</string>
@@ -132,11 +132,11 @@
<string name="report_choose_posts">Zijn er berichten die deze rapportage ondersteunen?</string>
<string name="report_choose_posts_subtitle">Selecteer wat van toepassing is</string>
<string name="report_comment_title">Zijn er nog andere dingen die wij moeten weten?</string>
<string name="report_comment_hint">Extra opmerkingen</string>
<string name="report_comment_hint">Aanvullende opmerkingen</string>
<string name="sending_report">Rapport verzenden…</string>
<string name="report_sent_title">Bedankt voor het rapporteren, we zullen hiernaar kijken.</string>
<string name="report_sent_title">Bedankt voor het rapporteren, we gaan hiernaar kijken.</string>
<string name="report_sent_subtitle">Terwijl we dit onderzoeken kun je deze acties tegen %s nemen:</string>
<string name="unfollow_user">Ontvolgen</string>
<string name="unfollow_user">Ontvolg %s</string>
<string name="unfollow">Ontvolgen</string>
<string name="mute_user_explain">Je kunt diens berichten niet zien. Je kunt nog wel gevolgd worden en jouw berichten zijn nog zichtbaar, maar diegene kan niet zien dat die wordt genegeerd.</string>
<string name="block_user_explain">Je kunt diens berichten niet zien. Je kunt door diegene niet gevolgd worden en jouw berichten zijn onzichtbaar. Diegene kan zien dat die door jou is geblokkeerd.</string>
@@ -145,7 +145,7 @@
<string name="back">Terug</string>
<string name="search_communities">Servernaam of URL</string>
<string name="instance_rules_title">Serverregels</string>
<string name="instance_rules_subtitle">Door verder te gaan, ga je akkoord met het volgen van de regels ingesteld door de %s-moderatoren.</string>
<string name="instance_rules_subtitle">Door verder te gaan ga je akkoord met het volgen van de regels, die door de moderatoren van %s worden gehanteerd.</string>
<string name="signup_title">Account registreren</string>
<string name="display_name">Naam</string>
<string name="username">Gebruikersnaam</string>
@@ -156,7 +156,7 @@
<string name="category_general">Algemeen</string>
<string name="confirm_email_title">Controleer jouw e-mail</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">Klik op de koppeling die we je hebben gestuurd om %s te verifiëren. We wachten op je.</string>
<string name="confirm_email_subtitle">Klik op de link die we je hebben gestuurd om %s te verifiëren. We wachten op je.</string>
<string name="confirm_email_didnt_get">Geen verificatielink ontvangen?</string>
<string name="resend">Opnieuw verzenden</string>
<string name="open_email_app">E-mail-app openen</string>
@@ -167,8 +167,8 @@
<string name="add_alt_text">Alt-tekst toevoegen</string>
<string name="visibility_public">Openbaar</string>
<string name="visibility_followers_only">Alleen volgers</string>
<string name="visibility_private">Alleen genoemde personen</string>
<string name="recent_searches">Recente</string>
<string name="visibility_private">Privébericht</string>
<string name="recent_searches">Recent gezocht</string>
<string name="skip">Overslaan</string>
<string name="notification_type_follow">Nieuwe volgers</string>
<string name="notification_type_favorite">Favorieten</string>
@@ -197,8 +197,8 @@
<string name="settings_clear_cache">Mediabuffer leegmaken</string>
<string name="settings_app_version">Mastodon voor Android v%1$s (%2$d)</string>
<string name="media_cache_cleared">Mediabuffer leeggemaakt</string>
<string name="confirm_log_out">Afmelden van %s?</string>
<string name="sensitive_content_explain">De auteur heeft deze media als gevoelig aangemerkt.</string>
<string name="confirm_log_out">Uitloggen van %s?</string>
<string name="sensitive_content_explain">De gebruiker heeft deze media als gevoelig gemarkeerd.</string>
<string name="avatar_description">Ga naar het profiel van %s</string>
<string name="more_options">Meer opties</string>
<string name="new_post">Nieuw bericht</string>
@@ -213,9 +213,9 @@
<string name="home_timeline">Starttijdlijn</string>
<string name="my_profile">Mijn profiel</string>
<string name="media_viewer">Mediaviewer</string>
<string name="follow_user">%s volgen</string>
<string name="unfollowed_user">%s ontvolgd</string>
<string name="followed_user">Je volgt %s nu</string>
<string name="follow_user">Volg %s</string>
<string name="unfollowed_user">Ontvolg %s</string>
<string name="followed_user">Je volgt nu %s</string>
<string name="following_user_requested">Je volgverzoek is aan %s verstuurd</string>
<string name="open_in_browser">In browser openen</string>
<string name="hide_boosts_from_user">Boosts verbergen</string>
@@ -330,7 +330,7 @@
<string name="profile_add_row">Rij toevoegen</string>
<string name="profile_setup">Profiel instellen</string>
<string name="profile_setup_subtitle">Je kunt dit later altijd aanvullen op het tabblad Profiel.</string>
<string name="follow_all">Volg iedereen</string>
<string name="follow_all">Iedereen volgen</string>
<string name="server_rules_disagree">Ik ga niet akkoord</string>
<string name="privacy_policy_explanation">TL;DR: We verzamelen of verwerken niets.</string>
<!-- %s is server domain -->
@@ -359,10 +359,10 @@
<string name="welcome_paragraph1">Mastodon is een gedecentraliseerd sociaal netwerk, wat betekent dat geen enkel bedrijf het controleert. Het bestaat uit veel onafhankelijk opererende servers, allemaal met elkaar verbonden.</string>
<string name="what_are_servers">Wat zijn servers?</string>
<string name="welcome_paragraph2">Elk Mastodon-account wordt gehost op een server elk met diens eigen waarden, regels en beheerders. Het maakt niet uit welke server je kiest, je kunt mensen op elke server volgen en ermee communiceren.</string>
<string name="opening_link">Koppeling aan het openen…</string>
<string name="link_not_supported">Deze koppeling wordt niet ondersteund in de app</string>
<string name="log_out_all_accounts">Bij alle accounts afmelden</string>
<string name="confirm_log_out_all_accounts">Bij alle accounts afmelden?</string>
<string name="opening_link">Link aan het openen…</string>
<string name="link_not_supported">Deze link wordt door de app ondersteund</string>
<string name="log_out_all_accounts">Bij alle accounts uitloggen</string>
<string name="confirm_log_out_all_accounts">Bij alle accounts uitloggen?</string>
<string name="retry">Opnieuw proberen</string>
<string name="post_failed">Kan bericht niet versturen</string>
<!-- %s is formatted file size ("467 KB image") -->
@@ -376,19 +376,19 @@
<string name="attachment_type_gif">GIF</string>
<string name="attachment_type_unknown">Bestand</string>
<string name="attachment_x_percent_uploaded">%d%% geüpload</string>
<string name="add_poll_option">Enquete-optie toevoegen</string>
<string name="poll_length">Lengte enquête</string>
<string name="add_poll_option">Optie toevoegen</string>
<string name="poll_length">Tijdsduur</string>
<string name="poll_style">Stijl</string>
<string name="compose_poll_single_choice">Kies een</string>
<string name="compose_poll_single_choice">Kies er een</string>
<string name="compose_poll_multiple_choice">Meerkeuze</string>
<string name="delete_poll_option">Optie verwijderen</string>
<string name="poll_style_title">Enquêtestijl</string>
<string name="poll_style_title">Pollstijl</string>
<string name="alt_text">Alternatieve tekst</string>
<string name="help">Hulp</string>
<string name="what_is_alt_text">Wat is alternatieve tekst?</string>
<string name="alt_text_help">Alt tekst biedt afbeeldingsbeschrijvingen voor mensen met een visiuele beperking en verbindingen met een lage bandbreedte of voor mensen die naar extra context zoeken.\n\nJe kunt de toegankelijkheid en het begrip voor iedereen verbeteren door duidelijk, beknopt en objectief te schrijven.\n\n<ul><li>Beschrijf belangrijke elementen</li>\n<li>Vat tekst in afbeeldingen samen</li>\n<li>Gebruik de reguliere zinsopbouw</li>\n<li>Vermijd overbodige informatie</li>\n<li>Focus op trends en belangrijke bevindingen in complexe beelden (zoals diagrammen of kaarten)</li></ul> \n</string>
<string name="alt_text_help">Alt-tekst biedt afbeeldingsbeschrijvingen voor mensen met een visuele beperking en verbindingen met een lage bandbreedte of voor mensen die naar extra context zoeken.\n\nJe kunt de toegankelijkheid en de begrijpelijkheid voor iedereen verbeteren door duidelijk, beknopt en objectief te schrijven.\n\n<ul><li>Beschrijf belangrijke elementen</li>\n<li>Vat tekst in afbeeldingen samen</li>\n<li>Gebruik een normale zinsbouw</li>\n<li>Vermijd overbodige informatie</li>\n<li>Focus op trends en belangrijke bevindingen in complexe beelden (zoals diagrammen of kaarten)</li></ul> \n</string>
<string name="edit_post">Bericht bewerken</string>
<string name="no_verified_link">Geen geverifieerde koppeling</string>
<string name="no_verified_link">Geen geverifieerde link</string>
<string name="compose_autocomplete_emoji_empty">Emoji doorzoeken</string>
<string name="compose_autocomplete_users_empty">Vind wie je zoekt</string>
<string name="no_search_results">Deze zoektermen leveren geen resultaat op</string>
@@ -401,15 +401,15 @@
<string name="media_hidden">Media verborgen</string>
<string name="post_hidden">Bericht verborgen</string>
<string name="report_title_post">Bericht rapporteren</string>
<string name="forward_report_explanation">De account bevindt zich op een andere server. Wil je daar eveneens een geanonimiseerde kopie van dit rapport naar toesturen?</string>
<string name="forward_report_explanation">Het account bevindt zich op een andere server. Wil je daar eveneens een geanonimiseerde kopie van dit rapport naar toesturen?</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">Doorsturen naar %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">Gerapporteerd</string>
<string name="report_unfollow_explanation">Als je hun berichten niet meer in je home feed wilt zien, moet je deze persoon niet meer volgen.</string>
<string name="report_unfollow_explanation">Als je hun berichten niet meer op je starttijdlijn wilt zien, moet je deze persoon niet meer volgen.</string>
<string name="muted_user">%s wordt genegeerd</string>
<string name="report_sent_already_blocked">Je hebt deze gebruiker al geblokkeerd, dus je hoeft niets meer te doen terwijl we je rapport beoordelen.</string>
<string name="report_personal_already_blocked">Je hebt deze gebruiker al geblokkeerd, dus er is niets anders dat je hoeft te doen.\n\nBedankt voor het helpen om Mastodon een veilige plek voor iedereen te behouden!</string>
<string name="report_personal_already_blocked">Je hebt deze gebruiker al geblokkeerd, dus er is niets anders dat je hoeft te doen.\n\nBedankt voor je hulp om Mastodon voor iedereen veilig te houden!</string>
<string name="blocked_user">%s geblokkeerd</string>
<string name="mark_all_notifications_read">Alles als gelezen markeren</string>
<string name="settings_display">Weergave</string>
@@ -419,9 +419,9 @@
<string name="about_app">Over %s</string>
<string name="default_post_language">Standaardtaal voor berichten</string>
<string name="settings_alt_text_reminders">Alt-tekst-herinneringen toevoegen</string>
<string name="settings_confirm_unfollow">Vragen voordat je iemand ontvolgd</string>
<string name="settings_confirm_boost">Vragen voordat je boost</string>
<string name="settings_confirm_delete_post">Vragen voordat berichten worden verwijderd</string>
<string name="settings_confirm_unfollow">Voordat je iemand ontvolgd om bevestiging vragen</string>
<string name="settings_confirm_boost">Voordat je een bericht boost om bevestiging vragen</string>
<string name="settings_confirm_delete_post">Voordat je een bericht verwijderd om bevestiging vragen</string>
<string name="pause_all_notifications">Alles pauzeren</string>
<string name="pause_notifications_off">Uit</string>
<string name="notifications_policy_anyone">Iedereen</string>
@@ -429,7 +429,7 @@
<string name="notifications_policy_follower">Mensen die je volgt</string>
<string name="notifications_policy_no_one">Niemand</string>
<string name="settings_notifications_policy">Meldingen ontvangen van</string>
<string name="notification_type_mentions_and_replies">Vermeldingen en antwoorden</string>
<string name="notification_type_mentions_and_replies">Vermeldingen en reacties</string>
<string name="pause_all_notifications_title">Alle meldingen pauzeren</string>
<plurals name="x_weeks">
<item quantity="one">%d week</item>
@@ -441,9 +441,9 @@
<string name="yesterday">gisteren</string>
<string name="tomorrow">morgen</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_ends">Eindigt %s</string>
<string name="pause_notifications_ends">Eindigt om %s</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="pause_notifications_banner">Notificaties worden hervat %s.</string>
<string name="pause_notifications_banner">Meldingen worden om %s hervat.</string>
<string name="resume_notifications_now">Nu hervatten</string>
<string name="open_system_notification_settings">Ga naar de meldingsinstellingen</string>
<string name="about_server">Over</string>
@@ -492,10 +492,10 @@
<string name="filter_inactive">Inactief</string>
<string name="settings_add_filter">Filter toevoegen</string>
<string name="settings_edit_filter">Filter bewerken</string>
<string name="settings_filter_duration">Duur</string>
<string name="settings_filter_duration">Tijdsduur</string>
<string name="settings_filter_muted_words">Genegeerde woorden</string>
<string name="settings_filter_context">Genegeerd op</string>
<string name="settings_filter_show_cw">Toon met inhoudswaarschuwing</string>
<string name="settings_filter_show_cw">Met inhoudswaarschuwing tonen</string>
<string name="settings_filter_show_cw_explanation">Berichten die met dit filter overeenkomen, maar achter een inhoudswaarschuwing zitten toch tonen</string>
<string name="settings_delete_filter">Filter verwijderen</string>
<string name="filter_duration_forever">Voor altijd</string>
@@ -508,23 +508,23 @@
<string name="selection_2_options">%1$s en %2$s</string>
<string name="selection_3_options">%1$s, %2$s en %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s en %3$d meer</string>
<string name="filter_context_home_lists">Startpagina &amp; lijsten</string>
<string name="filter_context_home_lists">Starttijdlijn en lijsten</string>
<string name="filter_context_notifications">Meldingen</string>
<string name="filter_context_public_timelines">Openbare tijdlijnen</string>
<string name="filter_context_threads_replies">Threads &amp; antwoorden</string>
<string name="filter_context_threads_replies">Gesprekken en reacties</string>
<string name="filter_context_profiles">Profielen</string>
<string name="settings_filter_title">Titel</string>
<string name="settings_delete_filter_title">Filter %s verwijderen?</string>
<string name="settings_delete_filter_confirmation">Dit filter zal op al uw apparaten uit uw account worden verwijderd.</string>
<string name="settings_delete_filter_confirmation">Dit filter wordt op al je apparaten uit je account verwijderd.</string>
<string name="add_muted_word">Genegeerd woord toevoegen</string>
<string name="edit_muted_word">Genegeerd woord bewerken</string>
<string name="add">Toevoegen</string>
<string name="filter_word_or_phrase">Woord of zin</string>
<string name="filter_add_word_help">Woorden zijn niet hoofdlettergevoelig en komen alleen overeen met volledige woorden.\n\nAls je op de term Apple filtert, verbergt het berichten die apple of aPpLe bevatten, maar niet ananas.</string>
<string name="filter_word_or_phrase">Woord of zinsdeel</string>
<string name="filter_add_word_help">Woorden zijn niet hoofdlettergevoelig en komen alleen overeen met volledige woorden.\n\nWanneer je op de term Appel filtert, verbergt het berichten die appel of aPpEl bevatten, maar niet ananas.</string>
<string name="settings_delete_filter_word">%s verwijderen?</string>
<string name="enter_selection_mode">Selecteren</string>
<string name="select_all">Alles selecteren</string>
<string name="settings_filter_duration_title">Filter tijdsduur</string>
<string name="settings_filter_duration_title">Tijdsduur filter</string>
<string name="filter_duration_custom">Aangepast</string>
<plurals name="settings_delete_x_filter_words">
<item quantity="one">%d woord verwijderen?</item>
@@ -583,7 +583,7 @@
<string name="delete_list">Lijst verwijderen</string>
<!-- %s is the name of the list -->
<string name="delete_list_confirm">“%s” verwijderen?</string>
<string name="list_exclusive">Verberg lijstleden op je starttijdlijn</string>
<string name="list_exclusive">Lijstleden op je starttijdlijn verbergen</string>
<string name="list_exclusive_subtitle">Wanneer iemand lid is van deze lijst, verberg deze gebruiker dan op je starttijdlijn, om zo te voorkomen dat je diens berichten twee keer ziet.</string>
<string name="list_name">Naam nieuwe lijst</string>
<string name="list_show_replies_to">Reacties tonen aan</string>
@@ -601,10 +601,10 @@
<string name="remove_from_list">Uit lijst verwijderen</string>
<string name="confirm_remove_list_member">Lid verwijderen?</string>
<string name="no_followed_hashtags_title">Blijf op de hoogte van je interesses door hashtags te volgen</string>
<string name="no_followed_hashtags_subtitle">Accounts die je volgt verschijnen hier</string>
<string name="no_lists_title">Organiseer jouw tijdlijn met lijsten</string>
<string name="no_lists_subtitle">Je eigen verschijnen hier</string>
<string name="manage_accounts">Accounts toevoegen of omschakelen</string>
<string name="no_followed_hashtags_subtitle">Berichten met hashtags die je volgt verschijnen hier</string>
<string name="no_lists_title">Jouw starttijdlijn met behulp van lijsten organiseren</string>
<string name="no_lists_subtitle">Je eigen lijsten verschijnen hier</string>
<string name="manage_accounts">Accounts toevoegen of wisselen</string>
<plurals name="x_posts_recently">
<item quantity="one">Onlangs %,d bericht</item>
<item quantity="other">Recentelijk %,d berichten</item>
@@ -620,10 +620,10 @@
<string name="non_mutual_sheet_title">Hallo, een nieuwe connectie!</string>
<string name="non_mutual_sheet_text">Het lijkt erop dat je gaat reageren op iemand die nog geen wederzijdse connectie is. Laten we een goede eerste indruk maken.</string>
<string name="got_it">Begrepen</string>
<string name="dont_remind_again">Herrinner me niet opnieuw</string>
<string name="dont_remind_again">Herinner me niet opnieuw</string>
<!-- %s is a time interval ("5 months") -->
<string name="old_post_sheet_title">Dit bericht is %s oud</string>
<string name="old_post_sheet_text">Je kunt nog steeds reageren, maar het is misschien niet langer relevant.</string>
<string name="old_post_sheet_text">Je kunt nog steeds reageren, maar het is misschien niet langer meer relevant.</string>
<plurals name="x_months">
<item quantity="one">%,d maand</item>
<item quantity="other">%,d maanden</item>
@@ -639,7 +639,7 @@
<string name="discoverability">Vindbaarheid</string>
<string name="discoverability_help">Wanneer je akkoord gaat met het vindbaar zijn op Mastodon, verschijnen je berichten in zoekresultaten en kunnen ze trending worden.\n\nJe profiel kan aan andere mensen worden aanbevolen wanneer ze vergelijkbare interesses hebben.\n\nWanneer je niet akkoord gaat verbergt dat niet je profiel wanneer iemand direct op je naam zoekt.</string>
<string name="app_version_copied">Versienummer naar het klembord gekopieerd</string>
<string name="onboarding_recommendations_intro">Je beheert je eigen starttijdlijn. Hoe meer mensen je volgt, hoe actiever en interessanter het zal zijn.</string>
<string name="onboarding_recommendations_intro">Je beheert je eigen starttijdlijn. Hoe meer mensen je volgt, hoe actiever en interessanter het wordt.</string>
<string name="onboarding_recommendations_title">Personaliseer je starttijdlijn</string>
<string name="article_by_author">Door %s</string>
<string name="info">Info</string>
@@ -653,15 +653,15 @@
<string name="invalid_clipboard_invite_link_alert">De uitnodigingslink op je klembord voor %1$s is niet geldig en kan niet worden gebruikt om te registreren.\n\nJe kunt een nieuwe link van een bestaande gebruiker aanvragen, op %2$s registreren, of op een andere server registreren.</string>
<string name="use_invite_link">Uitnodigingslink gebruiken</string>
<string name="enter_invite_link">Uitnodigingslink invoeren</string>
<string name="this_invite_is_invalid">Deze uitnodigingslink is niet geldig.</string>
<string name="this_invite_has_expired">Uitnodigingslink is verlopen.</string>
<string name="invite_link_pasted">Koppeling is vanaf je klembord geplakt.</string>
<string name="this_invite_is_invalid">Deze uitnodigingslink is ongeldig.</string>
<string name="this_invite_has_expired">Deze uitnodigingslink is verlopen.</string>
<string name="invite_link_pasted">Link is vanaf je klembord geplakt.</string>
<string name="need_invite_to_join_server">Om je aan te sluiten bij %s, heb je een uitnodigingslink van een bestaande gebruiker nodig.</string>
<string name="mute_user_confirm_title">Gebruiker negeren?</string>
<string name="user_wont_know_muted">De persoon zal niet weten dat die wordt genegeerd.</string>
<string name="user_can_still_see_your_posts">De persoon kan nog steeds jouw berichten zien, maar je ziet diens berichten niet.</string>
<string name="you_wont_see_user_mentions">Je zult geen berichten zien die dit account vermeldt.</string>
<string name="user_can_mention_and_follow_you">De persoon kan jou vermelden en volgen, maar jij zult niks van deze persoon zien.</string>
<string name="user_wont_know_muted">De persoon krijgt niet te weten dat die wordt genegeerd.</string>
<string name="user_can_still_see_your_posts">De persoon kan nog steeds jouw berichten zien, maar diens berichten zie je niet meer.</string>
<string name="you_wont_see_user_mentions">Je ziet geen berichten meer die dit account vermelden.</string>
<string name="user_can_mention_and_follow_you">De persoon kan jou vermelden en volgen, maar jij ziet niks meer van deze persoon.</string>
<string name="unmuted_user_x">%s wordt niet meer genegeerd</string>
<string name="block_user_confirm_title">Gebruiker blokkeren?</string>
<string name="user_can_see_blocked">De persoon kan zien dat die wordt geblokkeerd.</string>
@@ -671,25 +671,25 @@
<string name="block_domain_confirm_title">Server blokkeren?</string>
<string name="do_block_server">Server blokkeren</string>
<string name="block_user_x_instead">In plaats hiervan %s blokkeren</string>
<string name="users_cant_see_blocked">Je zult geen berichten of meldingen zien van gebruikers op deze server.</string>
<string name="you_wont_see_server_posts">Je zult geen berichten zien van gebruikers op deze server.</string>
<string name="users_cant_see_blocked">Je ziet geen berichten of meldingen meer van gebruikers op deze server.</string>
<string name="you_wont_see_server_posts">Je ziet geen berichten meer van gebruikers op deze server.</string>
<string name="server_followers_will_be_removed">Jouw volgers van deze server worden ontvolgd.</string>
<string name="server_cant_mention_or_follow_you">Niemand van deze server kan jou volgen.</string>
<string name="server_cant_mention_or_follow_you">Niemand op deze server kan jou volgen.</string>
<string name="server_can_interact_with_older">Mensen op deze server kunnen interactie hebben met jouw oude berichten.</string>
<string name="unblocked_domain_x">De server %s is gedeblokkeerd</string>
<string name="handle_help_title">Wat is een Mastodon-adres?</string>
<string name="handle_title">Hun Mastodon-adres</string>
<string name="handle_username_explanation">Hun unieke identificatie-adres op hun server, bestaande uit @gebruikersnaam@server.tld. Het is mogelijk dat er gebruikers met dezelfde gebruikersnaam op verschillende servers te vinden zijn.</string>
<string name="handle_title_own">Jouw Mastodon-adres</string>
<string name="handle_username_explanation_own">Jouw unieke identificatie-adres op jouw server, bestaande uit @gebruikersnaam@server.tld. Het is mogelijk dat er gebruikers met dezelfde gebruikersnaam op verschillende servers te vinden zijn.</string>
<string name="handle_help_title">Wat is een fediverse-adres?</string>
<string name="handle_title">Hun fediverse-adres</string>
<string name="handle_username_explanation">Hun unieke identificatie-adres op hun server. Het is mogelijk dat er gebruikers met dezelfde gebruikersnaam op verschillende servers te vinden zijn.</string>
<string name="handle_title_own">Jouw fediverse-adres</string>
<string name="handle_username_explanation_own">Jouw unieke identificatie-adres op deze server. Het is mogelijk dat er gebruikers met dezelfde gebruikersnaam op verschillende servers te vinden zijn.</string>
<string name="server">Server</string>
<string name="handle_server_explanation">Hun digitale thuis, waar al hun berichten zich bevinden.</string>
<string name="handle_explanation">Omdat je aan een Mastodon-adres kunt zien wie iemand is en waar die zich bevindt, kun je met mensen op het sociale web aan &lt;a&gt;ActivityPub-platformen&lt;/a&gt; communiceren.</string>
<string name="handle_server_explanation_own">Jouw digitale thuis, waar al jouw berichten zich bevinden. Is deze server toch niet naar jouw wens? Dan kun je op elk moment naar een andere server verhuizen en jouw volgers ook overbrengen.</string>
<string name="handle_explanation_own">Omdat je aan jouw Mastodon-adres kunt zien wie je bent is en waar jij je bevindt, kunnen mensen op het sociale web aan &lt;a&gt;ActivityPub-platformen&lt;/a&gt; met jou communiceren.</string>
<string name="handle_explanation">Omdat je aan een fediverse-adres kunt zien wie iemand is en waar die zich bevindt, kun je met mensen op het door &lt;a&gt;ActivityPub aangedreven&lt;/a&gt; sociale web (fediverse) communiceren.</string>
<string name="handle_server_explanation_own">Jouw digitale thuis, waar al jouw berichten zich bevinden. Is deze server toch niet naar jouw wens? Dan kun je op elk moment naar een andere server verhuizen en ook jouw volgers overbrengen.</string>
<string name="handle_explanation_own">Omdat je aan jouw fediverse-adres kunt zien wie jij bent is en waar je je bevindt, kunnen mensen op het door &lt;a&gt;ActivityPub aangedreven&lt;/a&gt; sociale web (fediverse) met jou communiceren.</string>
<string name="what_is_activitypub_title">Wat is ActivityPub?</string>
<string name="what_is_activitypub">ActivityPub is de taal die Mastodon met andere sociale netwerken spreekt.\n\nHet zorgt ervoor dat je niet alleen maar kunt verbinden en communiceren met mensen op Mastodon, maar ook met andere sociale apps.</string>
<string name="handle_copied">Mastodon-adres naar het klembord gekopieerd.</string>
<string name="what_is_activitypub">ActivityPub is de taal die Mastodon met andere sociale netwerken (fediverse) spreekt.\n\nHet zorgt ervoor dat je niet alleen maar kunt verbinden en communiceren met mensen op Mastodon, maar ook met andere sociale apps.</string>
<string name="handle_copied">Fediverse-adres naar het klembord gekopieerd.</string>
<string name="qr_code">QR-code</string>
<string name="scan_qr_code">QR-code scannen</string>
<!-- Shown on a button that saves a file, after it was successfully saved -->
@@ -706,4 +706,35 @@
<string name="tab_home">Start</string>
<string name="tab_search">Verkennen</string>
<string name="tab_profile">Profiel</string>
<string name="pin_post">Aan profielpagina vastmaken</string>
<string name="unpin_post">Van profielpagina losmaken</string>
<string name="post_pinned">Bericht is vastgemaakt</string>
<string name="post_unpinned">Bericht is losgemaakt</string>
<!-- %s is the username -->
<string name="enable_new_post_notifications">Geef een melding wanneer %s een bericht plaatst</string>
<string name="disable_new_post_notifications">Geen melding meer geven wanneer %s een bericht plaatst</string>
<string name="new_post_notifications_enabled">Je krijgt meldingen voor nieuwe berichten.</string>
<string name="new_post_notifications_disabled">Je krijgt geen meldingen meer voor nieuwe berichten.</string>
<string name="mute_conversation">Gesprek negeren</string>
<string name="unmute_conversation">Gesprek niet langer negeren</string>
<string name="visibility_unlisted">Minder openbaar</string>
<string name="filtered_notifications">Gefilterde meldingen</string>
<string name="filter_notifications">Meldingen verbergen van…</string>
<string name="notification_filter_following">Mensen die jij niet volgt</string>
<string name="notification_filter_following_explanation">Totdat je ze handmatig goedkeurt</string>
<string name="notification_filter_followers">Mensen die jou niet volgen</string>
<string name="notification_filter_followers_explanation">Inclusief mensen die jou korter dan 3 dagen volgen</string>
<string name="notification_filter_new_accounts">Nieuwe accounts</string>
<string name="notification_filter_new_accounts_explanation">In de afgelopen 30 dagen geregistreerd</string>
<string name="notification_filter_mentions">Ongevraagde privéberichten</string>
<string name="notification_filter_mentions_explanation">Onzichtbaar tenzij het een antwoord is op een privébericht van jou of wanneer je de afzender volgt</string>
<string name="allow_notifications">Meldingen toestaan</string>
<string name="mute_notifications">Meldingen afwijzen</string>
<plurals name="x_people_you_may_know">
<item quantity="one">%,d persoon die je misschien kent</item>
<item quantity="other">%,d mensen die je misschien kent</item>
</plurals>
<string name="notifications_from_user">Meldingen van %s</string>
<string name="notifications_muted">Notifications from %s zijn afgewezen.</string>
<string name="notifications_allowed">%s verschijnt vanaf nu onder jouw meldingen.</string>
</resources>

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