Compare commits

...

19 Commits

Author SHA1 Message Date
Grishka
645af12c3f Merge branch 'l10n_master' 2023-09-12 02:32:38 +03:00
Grishka
fadc42d72b New version 2023-09-12 02:32:23 +03:00
Eugen Rochko
fc831e7d42 New translations strings.xml (Portuguese, Brazilian) 2023-09-11 22:36:20 +02:00
Eugen Rochko
2998ee9145 New translations strings.xml (Finnish) 2023-09-11 20:09:41 +02:00
Eugen Rochko
971c4e5879 New translations strings.xml (Finnish) 2023-09-11 19:00:28 +02:00
Eugen Rochko
b396ee7987 New translations strings.xml (Indonesian) 2023-09-10 15:07:27 +02:00
Eugen Rochko
0f803cd4fa New translations strings.xml (Finnish) 2023-09-09 20:30:25 +02:00
Eugen Rochko
167a14b8db New translations strings.xml (Finnish) 2023-09-09 19:29:29 +02:00
Eugen Rochko
81cbc2d10c New translations strings.xml (Ukrainian) 2023-09-09 15:40:28 +02:00
Eugen Rochko
9bd8aff99b New translations strings.xml (Finnish) 2023-09-09 12:08:15 +02:00
Eugen Rochko
a770828165 New translations strings.xml (Finnish) 2023-09-09 11:09:40 +02:00
Eugen Rochko
ab457035ff New translations strings.xml (Finnish) 2023-09-09 08:34:27 +02:00
Grishka
f886e4c1d2 Fix #658, fix #620 2023-09-09 03:39:27 +03:00
Gregory K
1789d90dc3 Merge pull request #685 from LucasGGamerM/mastodon-android
fix(editing-alt-text): fix small oversight on editing existing attachments without alt text
2023-09-06 01:42:41 +03:00
LucasGGamerM
57306ff7fe fix(editing-alt-text): fix small oversight on editing existing attachments without alt text
This makes the implementation hopefully bug free
2023-09-05 19:37:12 -03:00
Gregory K
16ef577a7a Merge pull request #678 from LucasGGamerM/mastodon-android
fix: fix alt texts not being able to be edited
2023-08-31 20:31:39 +03:00
LucasGGamerM
734b3bced6 fix: fix alt texts not being able to be edited
fixes #70 cc: @sk22
2023-08-31 14:18:32 -03:00
Gregory K
5f6f3c94c9 Merge pull request #677 from tinsukE/gap-local-filter
When loading gap posts, apply filters before building display items.
2023-08-31 15:06:07 +03:00
Angelo Suzuki
09ba42a974 When loading gap posts, apply filters before building display items.
This will make sure that items that are filtered out don't show up on the interface.
Fixes #675
2023-08-31 14:01:58 +02:00
10 changed files with 534 additions and 5 deletions

View File

@@ -9,8 +9,8 @@ android {
applicationId "org.joinmastodon.android"
minSdk 23
targetSdk 33
versionCode 63
versionName "2.0.3"
versionCode 64
versionName "2.0.4"
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", "kab", "ko-rKR", "my-rMM", "nl-rNL", "no-rNO", "oc-rFR", "pl-rPL", "pt-rBR", "pt-rPT", "ro-rRO", "ru-rRU", "si-rLK", "sl-rSI", "sv-rSE", "th-rTH", "tr-rTR", "uk-rUA", "ur-rIN", "vi-rVN", "zh-rCN", "zh-rTW"
}

View File

@@ -6,6 +6,9 @@ import org.joinmastodon.android.model.FilterContext;
import java.util.EnumSet;
import java.util.List;
import androidx.annotation.Keep;
@Keep
class FilterRequest{
public String title;
public EnumSet<FilterContext> context;

View File

@@ -17,6 +17,7 @@ public class CreateStatus extends MastodonAPIRequest<Status>{
public static class Request{
public String status;
public List<MediaAttribute> mediaAttributes;
public List<String> mediaIds;
public Poll poll;
public String inReplyToId;
@@ -32,5 +33,17 @@ public class CreateStatus extends MastodonAPIRequest<Status>{
public boolean multiple;
public boolean hideTotals;
}
public static class MediaAttribute{
public String id;
public String description;
public String focus;
public MediaAttribute(String id, String description, String focus){
this.id=id;
this.description=description;
this.focus=focus;
}
}
}
}

View File

@@ -691,6 +691,9 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
req.visibility=statusVisibility;
if(!mediaViewController.isEmpty()){
req.mediaIds=mediaViewController.getAttachmentIDs();
if(editingStatus != null){
req.mediaAttributes=mediaViewController.getAttachmentAttributes();
}
}
if(replyTo!=null){
req.inReplyToId=replyTo.id;

View File

@@ -270,6 +270,7 @@ public class HomeTimelineFragment extends StatusListFragment{
}else{
result=result.subList(0, endIndex);
}
AccountSessionManager.get(accountID).filterStatuses(result, FilterContext.HOME);
List<StatusDisplayItem> targetList=displayItems.subList(gapPos, gapPos+1);
targetList.clear();
List<Status> insertedPosts=data.subList(gapPostIndex+1, gapPostIndex+1);
@@ -279,7 +280,6 @@ public class HomeTimelineFragment extends StatusListFragment{
targetList.addAll(buildDisplayItems(s));
insertedPosts.add(s);
}
AccountSessionManager.get(accountID).filterStatuses(insertedPosts, FilterContext.HOME);
if(targetList.isEmpty()){
// oops. We didn't add new posts, but at least we know there are none.
adapter.notifyItemRemoved(getMainAdapterOffset()+gapPos);

View File

@@ -27,10 +27,14 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.joinmastodon.android.MastodonApp;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.MastodonAPIController;
import org.joinmastodon.android.api.ProgressListener;
import org.joinmastodon.android.api.requests.statuses.CreateStatus;
import org.joinmastodon.android.api.requests.statuses.GetAttachmentByID;
import org.joinmastodon.android.api.requests.statuses.UpdateAttachment;
import org.joinmastodon.android.api.requests.statuses.UploadAttachment;
@@ -47,8 +51,11 @@ import org.parceler.Parcel;
import org.parceler.Parcels;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Locale;
import java.util.Objects;
import java.util.function.Consumer;
@@ -540,6 +547,14 @@ public class ComposeMediaViewController{
public List<String> getAttachmentIDs(){
return attachments.stream().map(a->a.serverAttachment.id).collect(Collectors.toList());
}
public List<CreateStatus.Request.MediaAttribute> getAttachmentAttributes(){
List<CreateStatus.Request.MediaAttribute> mediaAttributes = new ArrayList<>();
for (DraftMediaAttachment att:attachments){
mediaAttributes.add(new CreateStatus.Request.MediaAttribute(att.serverAttachment.id, att.description, null));
}
return mediaAttributes;
}
public boolean isEmpty(){
return attachments.isEmpty();
@@ -582,7 +597,7 @@ public class ComposeMediaViewController{
public void saveAltTextsBeforePublishing(Runnable onSuccess, Consumer<ErrorResponse> onError){
ArrayList<UpdateAttachment> updateAltTextRequests=new ArrayList<>();
for(DraftMediaAttachment att:attachments){
if(!att.descriptionSaved){
if(!att.descriptionSaved && (fragment.editingStatus==null || !fragment.editingStatus.mediaAttachments.contains(att.serverAttachment))){
UpdateAttachment req=new UpdateAttachment(att.serverAttachment.id, att.description);
req.setCallback(new Callback<>(){
@Override

View File

@@ -2,13 +2,167 @@
<resources>
<string name="log_in">Kirjaudu sisään</string>
<string name="next">Seuraava</string>
<string name="loading_instance">Haetaan palvelimen tietoja…</string>
<string name="error">Virhe</string>
<string name="not_a_mastodon_instance">%s ei näytä olevan Mastodonin palvelin.</string>
<string name="ok">OK</string>
<string name="preparing_auth">Valmistellaan todennusta…</string>
<string name="finishing_auth">Viimeistellään todennusta…</string>
<string name="user_boosted">%s tehosti</string>
<string name="in_reply_to">Vastauksessa %s</string>
<string name="notifications">Ilmoitukset</string>
<string name="user_followed_you">%s seurasi sinua</string>
<string name="user_sent_follow_request">%s lähetti sinulle seurauspyynnön</string>
<string name="user_favorited">%s tykkäsi julkaisustasi</string>
<string name="notification_boosted">%s tehosti viestiäsi</string>
<string name="poll_ended">Katso tulokset äänestyksestä johon osallistuit</string>
<string name="share_toot_title">Jaa</string>
<string name="settings">Asetukset</string>
<string name="publish">Julkaise</string>
<string name="discard_draft">Hylkää luonnos?</string>
<string name="discard">Hylkää</string>
<string name="cancel">Kumoa</string>
<plurals name="followers">
<item quantity="one">seuraaja</item>
<item quantity="other">seuraajat</item>
</plurals>
<plurals name="following">
<item quantity="one">seurataan</item>
<item quantity="other">seurataan</item>
</plurals>
<string name="posts">Viestit</string>
<string name="posts_and_replies">Viestit ja vastaukset</string>
<string name="media">Media</string>
<string name="profile_about">Tietoja</string>
<string name="button_follow">Seuraa</string>
<string name="button_following">Seurataan</string>
<string name="edit_profile">Muokkaa profiilia</string>
<string name="share_user">Jaa profiili</string>
<string name="mute_user">Mykistä %s</string>
<string name="unmute_user">Poista mykistys tililtä %s</string>
<string name="block_user">Estä %s</string>
<string name="unblock_user">Poista käyttäjän %s esto</string>
<string name="report_user">Raportoi %s</string>
<string name="block_domain">Estä %s</string>
<string name="unblock_domain">Poista käyttäjän %s esto</string>
<plurals name="x_posts">
<item quantity="one">%,d julkaisu</item>
<item quantity="other">%,d julkaisua</item>
</plurals>
<string name="profile_joined">Liittynyt</string>
<string name="done">Valmis</string>
<string name="loading">Ladataan…</string>
<string name="field_label">Nimi</string>
<string name="field_content">Sisältö</string>
<string name="saving">Tallennetaan…</string>
<string name="post_from_user">Julkaisu tililtä %s</string>
<string name="poll_option_hint">Vaihtoehto %d</string>
<plurals name="x_minutes">
<item quantity="one">%d minuutti</item>
<item quantity="other">%d minuuttia</item>
</plurals>
<plurals name="x_hours">
<item quantity="one">%d tunti</item>
<item quantity="other">%d tuntia</item>
</plurals>
<plurals name="x_days">
<item quantity="one">%d päivä</item>
<item quantity="other">%d päivää</item>
</plurals>
<plurals name="x_seconds_left">
<item quantity="one">%d sekunti jäljellä</item>
<item quantity="other">%d sekunttia jäljellä</item>
</plurals>
<plurals name="x_minutes_left">
<item quantity="one">%d minuutti jäljellä</item>
<item quantity="other">%d minuuttia jäljellä</item>
</plurals>
<plurals name="x_hours_left">
<item quantity="one">%d tunti jäljellä</item>
<item quantity="other">%d tuntia jäljellä</item>
</plurals>
<plurals name="x_days_left">
<item quantity="one">%d päivä jäljellä</item>
<item quantity="other">%d päivää jäljellä</item>
</plurals>
<plurals name="x_votes">
<item quantity="one">%d ääni</item>
<item quantity="other">%d ääntä</item>
</plurals>
<string name="poll_closed">Suljettu</string>
<string name="confirm_mute_title">Mykistä tili</string>
<string name="confirm_mute">Vahvista käyttäjän %s mykistys</string>
<string name="do_mute">Mykistä</string>
<string name="confirm_unmute_title">Poista tilin mykistys</string>
<string name="confirm_unmute">Vahvista, että haluat poistaa mykistyksen tililtä %s</string>
<string name="do_unmute">Poista mykistys</string>
<string name="confirm_block_title">Estä tili</string>
<string name="confirm_block_domain_title">Estä verkkotunnus</string>
<string name="confirm_block">Vahvista käyttäjän %s esto</string>
<string name="do_block">Estä</string>
<string name="confirm_unblock_title">Poista tilin esto</string>
<string name="confirm_unblock_domain_title">Poista verkkotunnuksen esto</string>
<string name="confirm_unblock">Vahvista, että haluat poistaa tilin %s eston</string>
<string name="do_unblock">Poista esto</string>
<string name="button_blocked">Estetty</string>
<string name="action_vote">Äänestä</string>
<string name="delete">Poista</string>
<string name="confirm_delete_title">Poista julkaisu</string>
<string name="confirm_delete">Haluatko varmasti poistaa tämän julkaisun?</string>
<string name="deleting">Poistetaan…</string>
<string name="notification_channel_audio_player">Äänen toisto</string>
<string name="play">Toista</string>
<string name="pause">Tauko</string>
<string name="log_out">Kirjaudu ulos</string>
<string name="add_account">Lisää tili</string>
<string name="search_hint">Haku</string>
<string name="hashtags">Aihetunnisteet</string>
<string name="news">Uutiset</string>
<string name="for_you">Sinulle</string>
<string name="all_notifications">Kaikki</string>
<string name="mentions">Maininnat</string>
<plurals name="x_people_talking">
<item quantity="one">%d henkilö puhuu</item>
<item quantity="other">%d henkilöä puhuu</item>
</plurals>
<string name="report_title">Raportoi %s</string>
<string name="report_choose_reason">Mikä on väärin tässä julkaisussa?</string>
<string name="report_choose_reason_account">Mikä on vialla käyttäjässä %s?</string>
<string name="report_choose_reason_subtitle">Valitse se, mikä sopii parhaiten</string>
<string name="report_reason_personal">En pidä siitä</string>
<string name="report_reason_personal_subtitle">Tätä ei halua nähdä</string>
<string name="report_reason_spam">Se on roskapostia</string>
<string name="report_reason_spam_subtitle">Haitalliset linkit, väärennetyt sitoutumiset tai toistuvat vastaukset</string>
<string name="report_reason_violation">Se rikkoo palvelimen sääntöjä</string>
<string name="report_reason_violation_subtitle">Tiedät, että se rikkoo tiettyjä sääntöjä</string>
<string name="report_reason_other">Jotain muuta</string>
<string name="report_reason_other_subtitle">Ongelma ei sovi muihin kategorioihin</string>
<string name="report_choose_rule">Mitä sääntöjä rikotaan?</string>
<string name="report_choose_rule_subtitle">Valitse kaikki sopivat</string>
<string name="report_choose_posts">Onko julkaisuja, jotka tukevat tätä raporttia?</string>
<string name="report_choose_posts_subtitle">Valitse kaikki sopivat</string>
<string name="report_comment_title">Olisiko jotain muuta, mitä meidän pitäisi tietää?</string>
<string name="report_comment_hint">Lisäkommentit</string>
<string name="sending_report">Lähetetään raporttia…</string>
<string name="report_sent_title">Kiitos raportista, tutkimme asiaa.</string>
<string name="report_sent_subtitle">Sillä välin kun tarkistamme tätä, voit ryhtyä toimenpiteisiin käyttäjää @%s vastaan:</string>
<string name="unfollow_user">Lopeta käyttäjän %s seuraaminen</string>
<string name="unfollow">Lopeta seuraaminen</string>
<string name="mute_user_explain">Et näe hänen viestejään. Hän voi silti seurata sinua ja nähdä viestisi. Hän ei tiedä, että on mykistetty.</string>
<string name="block_user_explain">Et näe hänen viestejään, eikä hän voi nähdä viestejäsi tai seurata sinua. Hän näkevät, että olet estänyt hänet.</string>
<string name="report_personal_title">Etkö halua nähdä tätä?</string>
<string name="report_personal_subtitle">Tässä on vaihtoehtosi hallita näkemääsi Mastodonissa:</string>
<string name="back">Takaisin</string>
<string name="search_communities">Palvelimen nimi tai URL-osoite</string>
<string name="instance_rules_title">Palvelimen säännöt</string>
<string name="instance_rules_subtitle">Jatkamalla sitoudut noudattamaan seuraavia sääntöjä, jotka %s moderaattorit ovat asettaneet ja valvoneet.</string>
<string name="signup_title">Luo tili</string>
<string name="display_name">Nimi</string>
<string name="username">Käyttäjätunnus</string>
<string name="email">Sähköposti</string>
<string name="password">Salasana</string>
<string name="confirm_password">Vahvista salasana</string>
<string name="password_note">Sisällytä suuraakkoset, erikoismerkit, ja numerot, jotta voit lisätä salasanan voimaa.</string>
<string name="category_academia">Akateeminen</string>
<string name="category_activism">Aktivismi</string>
<string name="category_all">Kaikki</string>
@@ -22,39 +176,378 @@
<string name="category_music">Musiikki</string>
<string name="category_regional">Alueellinen</string>
<string name="category_tech">Teknologia</string>
<string name="confirm_email_title">Tarkista sähköpostisi</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">Napauta lähettämäämme linkkiä vahvistaaksesi tunnuksen %s. Odotamme täällä.</string>
<string name="confirm_email_didnt_get">Etkö saanut linkkiä?</string>
<string name="resend">Lähetä uudelleen</string>
<string name="open_email_app">Avaa sähköpostiohjelma</string>
<string name="resent_email">Vahvistusviesti lähetetty</string>
<string name="compose_hint">Kirjoita tai liitä mitä mietit</string>
<string name="content_warning">Sisältövaroitus</string>
<string name="save">Tallenna</string>
<string name="add_alt_text">Lisää selitys</string>
<string name="visibility_public">Julkinen</string>
<string name="visibility_followers_only">Vain seuraajat</string>
<string name="visibility_private">Vain mainitsemani tilit</string>
<string name="recent_searches">Viimeisimmät</string>
<string name="skip">Ohita</string>
<string name="notification_type_follow">Uudet seuraajat</string>
<string name="notification_type_favorite">Suosikit</string>
<string name="notification_type_reblog">Tehostukset</string>
<string name="notification_type_mention">Maininnat</string>
<string name="notification_type_poll">Kyselyt</string>
<string name="choose_account">Valitse tili</string>
<string name="err_not_logged_in">Kirjaudu ensin Mastodoniin</string>
<plurals name="cant_add_more_than_x_attachments">
<item quantity="one">Et voi lisätä enempää kuin %d medialiitteen</item>
<item quantity="other">Et voi lisätä enempää kuin %d medialiitettä</item>
</plurals>
<string name="media_attachment_unsupported_type">Tiedosto %s on tyyppiä jota ei tueta</string>
<string name="media_attachment_too_big">Tiedosto %1$s ylittää %2$s MB kokorajan</string>
<string name="settings_theme">Ulkoasu</string>
<string name="theme_auto">Käytä laitteen ulkoasua</string>
<string name="theme_light">Vaalea</string>
<string name="theme_dark">Tumma</string>
<string name="settings_behavior">Toiminnot</string>
<string name="settings_gif">Toista animoidut käyttäjäkuvat ja emojit</string>
<string name="settings_custom_tabs">Käytä sovelluksen sisäistä selainta</string>
<string name="settings_notifications">Ilmoitukset</string>
<string name="settings_contribute">Osallistu Mastodoniin</string>
<string name="settings_tos">Käyttöehdot</string>
<string name="settings_privacy_policy">Tietosuojakäytäntö</string>
<string name="settings_clear_cache">Tyhjennä median välimuisti</string>
<string name="settings_app_version">Mastodon Android v%1$s (%2$d)</string>
<string name="media_cache_cleared">Median välimuisti tyhjennetty</string>
<string name="confirm_log_out">Kirjaudu ulos %s?</string>
<string name="sensitive_content_explain">Kirjoittaja merkitsi tämän median arkaluontoiseksi.</string>
<string name="avatar_description">Avaa profiili %s</string>
<string name="more_options">Lisää asetuksia</string>
<string name="new_post">Uusi julkaisu</string>
<string name="button_reply">Vastaa</string>
<string name="button_reblog">Tehosta</string>
<string name="button_favorite">Suosikki</string>
<string name="button_share">Jaa</string>
<string name="media_no_description">Kuva ilma kuvausta</string>
<string name="add_media">Lisää mediatiedosto</string>
<string name="add_poll">Lisää kysely</string>
<string name="emoji">Emoji</string>
<string name="home_timeline">Kotiaikajana</string>
<string name="my_profile">Oma profiili</string>
<string name="media_viewer">Median katselin</string>
<string name="follow_user">Follow %s</string>
<string name="unfollowed_user">Käyttäjän %s seuraaminen lopetettu</string>
<string name="followed_user">Seuraat nyt käyttäjää %s</string>
<string name="following_user_requested">Käyttäjän %s seuraamista pyydetty</string>
<string name="open_in_browser">Avaa selaimessa</string>
<string name="hide_boosts_from_user">Piilota käyttäjän @%s tehostukset</string>
<string name="show_boosts_from_user">Näytä tehostukset käyttäjältä @%s</string>
<string name="signup_reason">Miksi haluat liittyä?</string>
<string name="signup_reason_note">Tämä auttaa meitä arvioimaan hakemustasi.</string>
<string name="clear">Tyhjennä</string>
<string name="profile_header">Otsikon kuva</string>
<string name="profile_picture">Profiilikuva</string>
<string name="reorder">Järjestä uudelleen</string>
<string name="download">Lataa</string>
<string name="permission_required">Käyttöoikeus vaaditaan</string>
<string name="storage_permission_to_download">Sovellus tarvitsee pääsyn tallennustilaan, jotta voit tallentaa tämän tiedoston.</string>
<string name="open_settings">Avaa asetukset</string>
<string name="error_saving_file">Virhe tallennettaessa tiedostoa</string>
<string name="file_saved">Tiedosto tallennettu</string>
<string name="downloading">Ladataan…</string>
<string name="no_app_to_handle_action">Tätä toimintoa käsittelevää sovellusta ei ole</string>
<string name="local_timeline">Paikallinen</string>
<string name="trending_posts_info_banner">Nämä julkaisut ovat saamassa vetoa eri puolilla Mastodonia.</string>
<string name="trending_links_info_banner">Näistä uutisista puhutaan Mastodonissa.</string>
<!-- %s is the server domain -->
<string name="local_timeline_info_banner">Nämä ovat viestit kaikilta palvelimesi (%s) käyttäjiltä.</string>
<string name="recommended_accounts_info_banner">Muiden seuraamiesi perusteella saattaisit pitää näistä tileistä.</string>
<string name="see_new_posts">Uusia julkaisuja</string>
<string name="load_missing_posts">Lataa puuttuvat julkaisut</string>
<string name="follow_back">Seuraa takaisin</string>
<string name="button_follow_pending">Pyydetty</string>
<string name="follows_you">Seuraa sinua</string>
<string name="manually_approves_followers">Hyväksyy seuraajat käsin</string>
<!-- translators: %,d is a valid placeholder, it formats the number with locale-dependent grouping separators -->
<plurals name="x_followers">
<item quantity="one">%d seuraaja</item>
<item quantity="other">%d seuraajaa</item>
</plurals>
<plurals name="x_following">
<item quantity="one">%d seurattu</item>
<item quantity="other">%d seurattua</item>
</plurals>
<plurals name="x_favorites">
<item quantity="one">%,d suosikki</item>
<item quantity="other">%,d suosikkia</item>
</plurals>
<plurals name="x_reblogs">
<item quantity="one">%,d tehostus</item>
<item quantity="other">%,tehostusta</item>
</plurals>
<string name="timestamp_via_app">%1$s sovelluksella %2$s</string>
<string name="time_now">nyt</string>
<string name="edit_history">Muokkaushistoria</string>
<string name="last_edit_at_x">Muokattiin viimeksi %s</string>
<string name="time_just_now">juuri nyt</string>
<plurals name="x_seconds_ago">
<item quantity="one">%d sekunti sitten</item>
<item quantity="other">%d sekuntia sitten</item>
</plurals>
<plurals name="x_minutes_ago">
<item quantity="one">%d minuutti sitten</item>
<item quantity="other">%d minuuttia sitten</item>
</plurals>
<string name="edited_timestamp">muokattu %s</string>
<string name="edit_original_post">Alkuperäinen viesti</string>
<string name="edit_text_edited">Tekstiä muokattu</string>
<string name="edit_spoiler_added">Sisältövaroitus</string>
<string name="edit_spoiler_edited">Sisältövaroitus muokattu</string>
<string name="edit_spoiler_removed">Sisältövaroitus poistettu</string>
<string name="edit_poll_added">Kysely lisätty</string>
<string name="edit_poll_edited">Kyselyä muokattu</string>
<string name="edit_poll_removed">Kysely poistettu</string>
<string name="edit_media_added">Mediatiedosto lisätty</string>
<string name="edit_media_removed">Mediatiedosto poistettu</string>
<string name="edit_media_reordered">Mediatiedostoja järjestetty</string>
<string name="edit_marked_sensitive">Merkitty arkaluontoiseksi</string>
<string name="edit_marked_not_sensitive">Merkitty ei arkaluontoiseksi</string>
<string name="edit_multiple_changed">Julkaisu muokattu</string>
<string name="edit">Muokkaa</string>
<string name="discard_changes">Hylätäänkö muutokset?</string>
<string name="upload_failed">Lataus epäonnistui</string>
<string name="file_size_bytes">%d tavua</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">Käsitellään…</string>
<!-- %s is version like 1.2.3 -->
<!-- %s is version like 1.2.3 -->
<!-- %s is file size -->
<string name="download_update">Lataa (%s)</string>
<string name="install_update">Asenna</string>
<string name="privacy_policy_title">Yksityisyytesi</string>
<string name="privacy_policy_subtitle">Vaikka Mastodon-sovellus ei kerää mitään tietoja, palvelimella, jonka olet rekisteröitynyt, voi olla eri käytäntö.\n\nJos olet eri mieltä käytännöstä %s, voit palata ja valita eri palvelin.</string>
<string name="i_agree">Hyväksyn</string>
<string name="empty_list">Luettelo on tyhjä</string>
<string name="instance_signup_closed">Tämä palvelin ei hyväksy uusia rekisteröintejä.</string>
<string name="text_copied">Kopioitu leikepöydälle</string>
<string name="add_bookmark">Kirjanmerkki</string>
<string name="remove_bookmark">Poista kirjanmerkki</string>
<string name="bookmarks">Kirjanmerkit</string>
<string name="your_favorites">Omat suosikit</string>
<string name="login_title">Tervetuloa takaisin</string>
<string name="login_subtitle">Kirjaudu sisään palvelimella, jossa olet luonut tilisi.</string>
<string name="server_url">Palvelimen URL-osoite</string>
<string name="signup_random_server_explain">Palvelin valitaan kielesi perusteella, jos jatkat ilman valintaa.</string>
<string name="server_filter_any_language">Millä tahansa kielellä</string>
<string name="server_filter_instant_signup">Välitön rekisteröityminen</string>
<string name="server_filter_manual_review">Manuaalinen hyväksyntä</string>
<string name="server_filter_any_signup_speed">Mikä tahansa rekisteröintinopeus</string>
<string name="server_filter_region_europe">Eurooppa</string>
<string name="server_filter_region_north_america">Pohjois-Amerikka</string>
<string name="server_filter_region_south_america">Etelä-Amerikka</string>
<string name="server_filter_region_africa">Afrikka</string>
<string name="server_filter_region_asia">Aasia</string>
<string name="server_filter_region_oceania">Oseania</string>
<string name="not_accepting_new_members">Ei hyväksy uusia jäseniä</string>
<string name="category_special_interests">Erityiset Kiinnostukset</string>
<string name="signup_passwords_dont_match">Salasanat eivät täsmää</string>
<string name="pick_server_for_me">Valitse minulle</string>
<string name="profile_add_row">Lisää rivi</string>
<string name="profile_setup">Profiilin asetukset</string>
<string name="profile_setup_subtitle">Voit myös täyttää tämän myöhemmin Profiili-välilehdellä.</string>
<string name="profile_setup_explanation">Voit lisätä enintään neljä profiilikenttää joissa on mitä haluat. Sijainti, linkit, pronominit — taivas on rajana.</string>
<string name="popular_on_mastodon">Suosittua Mastodonissa</string>
<string name="follow_all">Seuraa kaikkia</string>
<string name="server_rules_disagree">Eri mieltä</string>
<string name="privacy_policy_explanation">TL;DR: Emme kerää tai käsittele mitään.</string>
<!-- %s is server domain -->
<string name="server_policy_disagree">Eri mieltä tästä %s</string>
<string name="profile_bio">Kuvaus</string>
<!-- Shown in a progress dialog when you tap "follow all" -->
<string name="sending_follows">Seurataan käyttäjiä…</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 ei salli ilmoittautumisia osoitteesta %2$s. Kokeile toista osoitetta tai &lt;a&gt;valitse toinen palvelin&lt;/a&gt;.</string>
<string name="spoiler_show">Näytä joka tapauksessa</string>
<string name="spoiler_hide">Piilota uudelleen</string>
<string name="poll_multiple_choice">Valitse yksi tai useampi</string>
<string name="save_changes">Tallenna muutokset</string>
<string name="profile_featured">Suositellut</string>
<string name="profile_timeline">Aikajana</string>
<string name="view_all">Näytä kaikki</string>
<string name="profile_endorsed_accounts">Tilit</string>
<string name="verified_link">Vahvistettu linkki</string>
<string name="show">Näytä</string>
<string name="hide">Piilota</string>
<string name="join_default_server">Liity palvelimelle %s</string>
<string name="pick_server">Valitse toinen palvelin</string>
<string name="signup_or_login">tai</string>
<string name="learn_more">Lue lisää</string>
<string name="welcome_to_mastodon">Tervetuloa Mastodoniin</string>
<!-- %s is formatted file size ("467 KB image") -->
<string name="poll_style_title">Kyselyn tyyli</string>
<string name="alt_text">Selitys</string>
<string name="help">Ohje</string>
<string name="what_is_alt_text">Mikä on selitys?</string>
<string name="alt_text_help">Kuvaselitys auttaa ihmisiä, joilla on näkövamma, hidas yhteys, tai jotka tarvitsevat lisäkontekstia. \n\nVoit parantaa saavutettavuutta ja kaikkien mahdollisuutta ymmärtää kirjoittamalla selkeän, lyhyen ja objektiivisen selityksen. \n\n<ul><li>Mainitse tärkeät elementit</li>\n<li>Anna tiivistelmä kuvissa olevista teksteistä</li>\n<li>Käytä normaalia lauserakennetta</li>\n<li>Vältä turhaa toistoa</li>\n<li>Keskity monimutkaisissa kuvioissa (kuten kartoissa ja taulukoissa) trendeihin ja tärkeimpiin tietoihin</li></ul></string>
<string name="edit_post">Muokkaa julkaisua</string>
<string name="no_verified_link">Ei todennettua linkkiä</string>
<string name="compose_autocomplete_emoji_empty">Selaa emojeita</string>
<string name="compose_autocomplete_users_empty">Löydä etsimäsi henkilöt</string>
<string name="no_search_results">Näille hakusanoille ei löytynyt mitään</string>
<string name="language">Kieli</string>
<string name="language_default">Oletus</string>
<string name="language_system">Järjestelmä</string>
<string name="language_detecting">Tunnista kieli</string>
<string name="language_cant_detect">Ei voi tunnistaa kieltä</string>
<string name="language_detected">Tunnistettu</string>
<string name="media_hidden">Media piilotettu</string>
<string name="post_hidden">Julkaisu piilotettu</string>
<string name="report_title_post">Raportoi julkaisu</string>
<string name="forward_report_explanation">Tämä tili on toisella palvelimella. Haluatko lähettää nimettömän raportin myös sinne?</string>
<!-- %s is the server domain -->
<string name="forward_report_to_server">Välitä kohteeseen %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">Raportoitu</string>
<string name="report_unfollow_explanation">Jos et enää halua nähdä tämän käyttäjän julkaisuja kotiaikajanallasi, lopeta seuraaminen.</string>
<string name="muted_user">Käyttäjä %s mykistetty</string>
<string name="report_sent_already_blocked">Olet jo estänyt tämän käyttäjän, sinun ei tarvitse tehdä muuta sillä aikaa kun tarkastamme raporttisi.</string>
<string name="report_personal_already_blocked">Olet jo estänyt tämän käyttäjän, joten sinun ei tarvitse tehdä mitään muuta.\n\nKiitos, että autat pitämään Mastodonin turvallisena paikkana kaikille!</string>
<string name="blocked_user">Estetty %s</string>
<string name="mark_all_notifications_read">Merkitse kaikki luetuksi</string>
<string name="settings_display">Näyttö</string>
<string name="settings_filters">Suodattimet</string>
<string name="settings_server_explanation">Yleiskatsaus, säännöt, valvojat</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">Tietoa: %s</string>
<string name="default_post_language">Julkaisun oletuskieli</string>
<string name="settings_alt_text_reminders">Lisää muistutus kuvaselityksestä</string>
<string name="settings_confirm_unfollow">Kysy ennen kuin käyttäjän seuraaminen lopetetaan</string>
<string name="settings_confirm_boost">Kysy ennen tehostusta</string>
<string name="settings_confirm_delete_post">Kysy ennen julkaisujen poistamista</string>
<string name="pause_all_notifications">Keskeytä kaikki</string>
<string name="pause_notifications_off">Pois Päältä</string>
<string name="notifications_policy_anyone">Kuka tahansa</string>
<string name="notifications_policy_followed">Seuraajasi</string>
<string name="notifications_policy_follower">Seuraamasi henkilöt</string>
<string name="notifications_policy_no_one">Ei kukaan</string>
<string name="settings_notifications_policy">Ota vastaan ilmoituksia käyttäjältä</string>
<string name="notification_type_mentions_and_replies">Maininnat ja vastaukset</string>
<string name="pause_all_notifications_title">Keskeytä kaikki ilmoitukset</string>
<plurals name="x_weeks">
<item quantity="one">%d viikko</item>
<item quantity="other">%d viikkoa</item>
</plurals>
<!-- %1$s is the date (may be relative, e.g. "today" or "yesterday"), %2$s is the time. You can reorder these placeholders if that works better for your language -->
<string name="date_at_time">%1$s klo %2$s</string>
<string name="today">tänään</string>
<string name="yesterday">eilen</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="server_administrator">Ylläpitäjä</string>
<string name="send_email_to_server_admin">Viestin ylläpitäjä</string>
<string name="notifications_disabled_in_system">Ota ilmoitukset käyttöön laitteesi asetuksista nähdäksesi päivityksiä mistä tahansa.</string>
<string name="settings_even_more">Vielä enemmän asetuksia</string>
<string name="settings_show_cws">Näytä sisältövaroitukset</string>
<string name="settings_hide_sensitive_media">Piilota arkaluontoiseksi merkitty media</string>
<string name="settings_show_interaction_counts">Näytä reaktiolaskurit</string>
<string name="settings_show_emoji_in_names">Mukautetut emojit näyttönimissä</string>
<plurals name="in_x_seconds">
<item quantity="one">%d sekunnin kuluttua</item>
<item quantity="other">%d sekunnin kuluttua</item>
</plurals>
<plurals name="in_x_minutes">
<item quantity="one">%d minuutin kuluttua</item>
<item quantity="other">%d minuutin kuluttua</item>
</plurals>
<plurals name="in_x_hours">
<item quantity="one">%d tunnin kuluttua</item>
<item quantity="other">%d tunnin kuluttua</item>
</plurals>
<plurals name="x_hours_ago">
<item quantity="one">%d tunti sitten</item>
<item quantity="other">%d tuntia sitten</item>
</plurals>
<string name="alt_text_reminder_title">Mediasta puuttuu selitysteksti</string>
<plurals name="alt_text_reminder_x_images">
<item quantity="one">%s kuvastasi puuttuu selitysteksti. Julkaistaanko silti?</item>
<item quantity="other">%s kuvastasi puuttuu selitysteksti. Julkaistaanko silti?</item>
</plurals>
<plurals name="alt_text_reminder_x_attachments">
<item quantity="one">%s mediatiedostostasi puuttuu selitysteksti. Julkaistaanko silti?</item>
<item quantity="other">%s mediatiedostostasi puuttuu selitysteksti. Julkaistaanko silti?</item>
</plurals>
<string name="count_one">Yksi</string>
<string name="count_two">Kaksi</string>
<string name="count_three">Kolme</string>
<string name="count_four">Neljä</string>
<string name="alt_text_reminder_post_anyway">Julkaise</string>
<!-- %s is the username -->
<string name="unfollow_confirmation">Lopeta käyttäjän %s seuraaminen?</string>
<string name="filter_active">Aktiivinen</string>
<string name="filter_inactive">Ei käytössä</string>
<string name="settings_add_filter">Lisää suodatin</string>
<string name="settings_edit_filter">Muokkaa suodatinta</string>
<string name="settings_filter_duration">Kesto</string>
<string name="settings_filter_muted_words">Mykistetyt sanat</string>
<string name="settings_filter_context">Mykistä alkaen</string>
<string name="settings_filter_show_cw">Näytä sisältövaroituksella</string>
<string name="settings_filter_show_cw_explanation">Näytä vielä viestejä, jotka täsmäävät tähän suodattimeen, mutta sisällönvaroituksen takana</string>
<string name="settings_delete_filter">Poista suodatin</string>
<string name="filter_duration_forever">Ikuisesti</string>
<!-- %s is the timestamp ("tomorrow at 12:34") -->
<string name="settings_filter_ends">Päättyy %s</string>
<plurals name="settings_x_muted_words">
<item quantity="one">%d mykistetty sana tai lause</item>
<item quantity="other">%d mykistettyä sanaa tai lauseita</item>
</plurals>
<string name="selection_2_options">%1$s ja %2$s</string>
<string name="selection_3_options">%1$s, %2$s ja %3$s</string>
<string name="selection_4_or_more">%1$s, %2$s, ja %3$d lisää</string>
<string name="filter_context_home_lists">Koti &amp; listat</string>
<string name="filter_context_notifications">Ilmoitukset</string>
<string name="filter_context_public_timelines">Julkiset aikajanat</string>
<string name="filter_context_threads_replies">Langat &amp; vastaukset</string>
<string name="filter_context_profiles">Profiilit</string>
<string name="settings_filter_title">Otsikko</string>
<string name="settings_delete_filter_title">Poistetaanko suodatin “%s”?</string>
<string name="settings_delete_filter_confirmation">Tämä suodatin poistetaan tililtäsi kaikissa laitteissa.</string>
<string name="add_muted_word">Lisää mykistetty sana</string>
<string name="edit_muted_word">Muokkaa mykistettyä sanaa</string>
<string name="add">Lisää</string>
<string name="filter_word_or_phrase">Sana tai lause</string>
<string name="filter_add_word_help">Sanat ovat tapauskohtaisia ja vastaavat vain kokonaisia sanoja.\n\nJos suodattaa avainsana “Apple”, se piilottaa viestit sisältävät “omena” tai “aPPLe” mutta ei “ananas\".</string>
<string name="settings_delete_filter_word">Poista sana “%s”?</string>
<string name="enter_selection_mode">Valitse</string>
<string name="select_all">Valitse kaikki</string>
<string name="settings_filter_duration_title">Suodattimen kesto</string>
<string name="filter_duration_custom">Mukautettu</string>
<plurals name="settings_delete_x_filter_words">
<item quantity="one">Poista %d sana?</item>
<item quantity="other">Poista %d sanaa?</item>
</plurals>
<plurals name="x_items_selected">
<item quantity="one">%d valittu</item>
<item quantity="other">%d valittu</item>
</plurals>
<string name="required_form_field_blank">Tätä ei voi jättää tyhjäksi</string>
<string name="filter_word_already_in_list">Jo luettelossa</string>
<string name="app_update_ready">Sovelluksen päivitys valmis</string>
<string name="app_update_version">Versio %s</string>
<string name="downloading_update">Ladataan (%d%%)</string>
<!-- Shown like a content warning, %s is the name of the filter -->
<string name="post_matches_filter_x">Sopii suodattimeen ”%s”</string>
<string name="search_mastodon">Etsi Mastodonista</string>
<string name="clear_all">Tyhjennä kaikki</string>
<string name="search_open_url">Avaa URL-osoite Mastodonissa</string>
<string name="posts_matching_hashtag">Julkaisut joissa on \"%s\"</string>
<string name="search_go_to_account">Siirry tiliin %s</string>
<string name="posts_matching_string">Julkaisut joissa on \"%s\"</string>
<string name="accounts_matching_string">Henkilöt jossa on \"%s\"</string>
<!-- Shown in the post header. Please keep it short -->
<string name="time_seconds_ago_short">%ds sitten</string>
<string name="time_minutes_ago_short">%dm sitten</string>
<string name="time_hours_ago_short">%dh sitten</string>
<string name="time_days_ago_short">%dd sitten</string>
</resources>

View File

@@ -368,6 +368,7 @@
<string name="welcome_to_mastodon">Selamat datang di Mastodon</string>
<string name="welcome_paragraph1">Mastodon adalah jejaring sosial terdesentralisasi, tidak ada satu pun perusahaan yang mengontrol. Semua dijalankan oleh server independen, terkoneksi bersama.</string>
<string name="what_are_servers">Apa itu server?</string>
<string name="welcome_paragraph2">Semua akun Mastodon berada pada sebuah server — dengan nilai, aturan, &amp; admin masing-masing. Mana pun yang Anda pilih, Anda dapat mengikuti dan berinteraksi dengan server mana pun.</string>
<string name="opening_link">Membuka tautan…</string>
<string name="link_not_supported">Tautan ini tidak didukung dalam aplikasi</string>
<string name="log_out_all_accounts">Keluar dari semua akun</string>

View File

@@ -8,7 +8,7 @@
<string name="ok">OK</string>
<string name="preparing_auth">Preparando para autenticação…</string>
<string name="finishing_auth">Finalizando autenticação…</string>
<string name="user_boosted">%s impulsionado</string>
<string name="user_boosted">%s impulsionou</string>
<string name="in_reply_to">Em resposta à %s</string>
<string name="notifications">Notificações</string>
<string name="user_followed_you">%s seguiu você</string>

View File

@@ -425,6 +425,7 @@
<string name="welcome_to_mastodon">Вітаємо у Mastodon</string>
<string name="welcome_paragraph1">Mastodon - це децентралізована соціальна мережа, тобто жодна компанія не контролює її. Вона складається з багатьох незалежних серверів, які з\'єднані між собою.</string>
<string name="what_are_servers">Що таке сервери?</string>
<string name="welcome_paragraph2">Кожен обліковий запис Mastodon розміщений на сервері - кожен сервер має свої цінності, правила, й &amp; адмінів. Немає різниці, який ви оберете, ви зможете підписуватися та спілкуватися з користувачами з будь-якого.</string>
<string name="opening_link">Відкриття посилання…</string>
<string name="link_not_supported">Це посилання не підтримується застосунком</string>
<string name="log_out_all_accounts">Вийти з усіх акаунтів</string>